Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:37:31 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
09a6f3668a Jeff*0001 #include "ctrparam.h"
                0002 #include "ATM2D_OPTIONS.h"
                0003 
                0004 C     !INTERFACE:
                0005       SUBROUTINE NORM_OCN_FLUXES( myThid )
                0006 C     *==========================================================*
                0007 C     | Converts non-seaice quantities to MITGCM ocn sign/units. |
                0008 c     | Seaice quantities put into seaice model sign/units.      |
                0009 C     *==========================================================*
                0010         IMPLICIT NONE
                0011 
                0012 #include "ATMSIZE.h"
                0013 #include "SIZE.h"
                0014 #include "GRID.h"
                0015 #include "EEPARAMS.h"
7d2ebbab53 Jean*0016 #include "FFIELDS.h"
09a6f3668a Jeff*0017 
                0018 C     === Global SeaIce Variables ===
                0019 #include "THSICE_VARS.h"
                0020 
                0021 C     === Atmos/Ocean/Seaice Interface Variables ===
                0022 #include "ATM2D_VARS.h"
                0023 
                0024 
                0025 C     !INPUT/OUTPUT PARAMETERS:
                0026 C     === Routine arguments ===
                0027 C     myThid - Thread no. that called this routine.
                0028       INTEGER myThid
                0029 
                0030 C     LOCAL VARIABLES:
                0031       INTEGER i,j
                0032       _RS nper    ! number of atm steps in a coupled period
                0033 
                0034       nper= dtcouplo/dtatmo
                0035 
                0036       DO j=1, sNy
                0037         DO i=1, sNx
9274434acc Jean*0038 
09a6f3668a Jeff*0039           IF (maskC(i,j,1,1,1) .EQ. 1.) THEN
                0040 
                0041             pass_runoff(i,j)= sum_runoff(i,j)/nper
                0042             pass_precip(i,j)= sum_precip(i,j)/nper
                0043             pass_evap(i,j)= -sum_evap(i,j)/nper   !convert sign convention here
                0044             pass_qnet(i,j)= sum_qnet(i,j)/nper
                0045             pass_fu(i,j)= sum_fu(i,j)/nper
                0046             pass_fv(i,j)= sum_fv(i,j)/nper
                0047             pass_wspeed(i,j)= sum_wspeed(i,j)/nper
                0048             pass_solarnet(i,j)= -sum_solarnet(i,j)/nper !change sign
b926efee65 Jeff*0049             pass_slp(i,j)= sum_slp(i,j)/nper*100. _d 0  !convert to Pa
                0050             pass_pCO2(i,j)= sum_pCO2(i,j)*1. _d -6/nper
09a6f3668a Jeff*0051 
b926efee65 Jeff*0052             sHeating(i,j,1,1) = sum_sHeat(i,j)/nper ! from temp-solve step
09a6f3668a Jeff*0053             flxCndBt(i,j,1,1)= sum_flxCnB(i,j)/nper ! from temp-solve step
                0054             pass_PrcAtm(i,j)= sum_prcIce(i,j)/nper
                0055             icFrwAtm(i,j,1,1)= sum_evapIce(i,j)/nper
9274434acc Jean*0056 
8586bcc627 Jeff*0057 C            pass_sIceLoad(i,j)=sIceLoad(i,j,1,1) !do this in thsice_step_fwd
49b18fc2f2 Jeff*0058 
09a6f3668a Jeff*0059 C  Load the following directly into the seaice common block
7d2ebbab53 Jean*0060             snowPrc(i,j)= sum_snowPrc(i,j)/nper
09a6f3668a Jeff*0061 
c291bfc6e7 Jeff*0062 C  Double check that wspeed>0 (unlikely, but possible given anomaly coupling)
                0063             IF ( pass_wspeed(i,j) .LT. 0. _d 0)
                0064      &         pass_wspeed(i,j) = 0. _d 0
                0065 
9274434acc Jean*0066 C  Seaice diagnostics - tally at end of coupled period
                0067             sum_iceMask(i,j)=sum_iceMask(i,j) +
09a6f3668a Jeff*0068      &                       iceMask(i,j,1,1)*dtcouplo
9274434acc Jean*0069             sum_iceHeight(i,j)= sum_iceHeight(i,j) +
09a6f3668a Jeff*0070      &                          iceHeight(i,j,1,1)*dtcouplo
9274434acc Jean*0071             IF (iceMask(i,j,1,1) .NE. 0. _d 0)
09a6f3668a Jeff*0072      &           sum_iceTime(i,j)= sum_iceTime(i,j) + dtcouplo
9274434acc Jean*0073             sum_oceMxLT(i,j)=sum_oceMxLT(i,j) +
09a6f3668a Jeff*0074      &                       tOceMxL(i,j,1,1)*dtcouplo
9274434acc Jean*0075             sum_oceMxLS(i,j)=sum_oceMxLS(i,j) +
09a6f3668a Jeff*0076      &                       sOceMxL(i,j,1,1)*dtcouplo
                0077 
                0078           ENDIF
                0079 
                0080         ENDDO
9274434acc Jean*0081       ENDDO
09a6f3668a Jeff*0082 
                0083       CALL INIT_SUMVARS( myThid)
                0084 
                0085       RETURN
                0086       END