Back to home page

MITgcm

 
 

    


File indexing completed on 2025-09-11 05:12:44 UTC

view on githubraw file Latest commit d4a066fa on 2025-09-10 18:05:35 UTC
d676f916b2 Jean*0001 #include "AIM_OPTIONS.h"
                0002 
90299b0597 Jean*0003 CBOP
                0004 C     !ROUTINE: AIM_DIAGNOSTICS
                0005 C     !INTERFACE:
                0006       SUBROUTINE AIM_DIAGNOSTICS( bi, bj, myTime, myIter, myThid )
                0007 
                0008 C     !DESCRIPTION: \bv
d676f916b2 Jean*0009 C     *==========================================================*
90299b0597 Jean*0010 C     | S/R AIM_DIAGNOSTICS
d676f916b2 Jean*0011 C     | o Calculate AIM diagnostics
                0012 C     *==========================================================*
90299b0597 Jean*0013 C     \ev
                0014 
                0015 C     !USES:
d676f916b2 Jean*0016       IMPLICIT NONE
                0017 
90299b0597 Jean*0018 C     == Global variables ===
d676f916b2 Jean*0019 C-- size for MITgcm & Physics package :
abe521d840 Jean*0020 #include "AIM_SIZE.h"
d676f916b2 Jean*0021 
                0022 #include "EEPARAMS.h"
                0023 #include "PARAMS.h"
d2b04ae38b Jean*0024 #include "GRID.h"
d676f916b2 Jean*0025 
65007c221b Jean*0026 #include "AIM_PARAMS.h"
1a72cb671e Jean*0027 c #include "AIM2DYN.h"
10308cbe80 Jean*0028 #include "AIM_TAVE.h"
d676f916b2 Jean*0029 #include "com_physvar.h"
b6caddd47f Jean*0030 #include "com_forcing.h"
d676f916b2 Jean*0031 
90299b0597 Jean*0032 C     !INPUT/OUTPUT PARAMETERS:
d4a066fa68 Jean*0033 C     bi, bj :: Tile index
90299b0597 Jean*0034 C     myTime :: Current time of simulation ( s )
                0035 C     myIter :: Current iteration number in simulation
d4a066fa68 Jean*0036 C     myThid :: my Thread Id number
90299b0597 Jean*0037       INTEGER bi, bj
d676f916b2 Jean*0038       _RL     myTime
90299b0597 Jean*0039       INTEGER myIter, myThid
                0040 CEOP
d676f916b2 Jean*0041 
                0042 #ifdef ALLOW_AIM
90299b0597 Jean*0043 C     !FUNCTIONS:
                0044       LOGICAL  DIFFERENT_MULTIPLE
                0045       EXTERNAL DIFFERENT_MULTIPLE
                0046 #ifdef ALLOW_DIAGNOSTICS
                0047       LOGICAL  DIAGNOSTICS_IS_ON
                0048       EXTERNAL DIAGNOSTICS_IS_ON
                0049 #endif
d676f916b2 Jean*0050 
90299b0597 Jean*0051 C     !LOCAL VARIABLES:
d4a066fa68 Jean*0052       INTEGER J
ab33782b56 Jean*0053       CHARACTER*(10) suff
d4a066fa68 Jean*0054 #ifdef ALLOW_AIM_TAVE
                0055       INTEGER i, k, I2, Katm
                0056       _RL DDTT
                0057 #endif
e749d70ece Jean*0058 #ifdef ALLOW_DIAGNOSTICS
                0059       _RL tmpVar(NGP)
                0060 #endif
90299b0597 Jean*0061 #ifdef ALLOW_MNC
b22b541fe9 Ed H*0062       CHARACTER*(1) pf
90299b0597 Jean*0063 #endif
d676f916b2 Jean*0064 
                0065 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0066 
e749d70ece Jean*0067 C--  mean surf. temp. change:
e204a6fa13 Jean*0068 C note: comment out ice-free ocean contribution (small part anyway)
                0069 C       which is not yet available when this S/R is called
044a9a9d92 Jean*0070       DO J=1,NGP
e749d70ece Jean*0071          dTsurf(J,1,myThid) = fMask1(J,1,myThid)*dTsurf(J,1,myThid)
e204a6fa13 Jean*0072 c    &                      + fMask1(J,2,myThid)*dTsurf(J,2,myThid)
e749d70ece Jean*0073      &                      + fMask1(J,3,myThid)*dTsurf(J,3,myThid)
                0074          dTsurf(J,1,myThid) = ABS(dTsurf(J,1,myThid))
044a9a9d92 Jean*0075       ENDDO
e749d70ece Jean*0076 
ab33782b56 Jean*0077       IF ( DIFFERENT_MULTIPLE( aim_tendFreq,
                0078      &                         myTime+deltaTClock, deltaTClock )
abe521d840 Jean*0079      &   ) THEN
044a9a9d92 Jean*0080 C---  Write Tendencies to files :
78ad6fc820 Ed H*0081 
                0082        IF ( aim_snapshot_mdsio ) THEN
044a9a9d92 Jean*0083 C-    using MDSIO based S/R
ab33782b56 Jean*0084          IF ( rwSuffixType.EQ.0 ) THEN
                0085            WRITE(suff,'(I10.10)') myIter+1
                0086          ELSE
                0087            CALL RW_GET_SUFFIX( suff,
                0088      &                 myTime+deltaTClock, myIter+1, myThid )
                0089          ENDIF
044a9a9d92 Jean*0090 
ab33782b56 Jean*0091          CALL AIM_WRITE_PHYS( 'aim_dT_RSW.', suff, Nr, TT_RSW,
044a9a9d92 Jean*0092      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0093          CALL AIM_WRITE_PHYS( 'aim_dT_RLW.', suff, Nr, TT_RLW,
044a9a9d92 Jean*0094      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0095          CALL AIM_WRITE_PHYS( 'aim_dT_CNV.', suff, Nr, TT_CNV,
044a9a9d92 Jean*0096      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0097          CALL AIM_WRITE_PHYS( 'aim_dT_PBL.', suff, Nr, TT_PBL,
044a9a9d92 Jean*0098      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0099          CALL AIM_WRITE_PHYS( 'aim_dT_LSC.', suff, Nr, TT_LSC,
044a9a9d92 Jean*0100      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0101          CALL AIM_WRITE_PHYS( 'aim_dQ_CNV.', suff, Nr, QT_CNV,
044a9a9d92 Jean*0102      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0103          CALL AIM_WRITE_PHYS( 'aim_dQ_PBL.', suff, Nr, QT_PBL,
044a9a9d92 Jean*0104      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0105          CALL AIM_WRITE_PHYS( 'aim_dQ_LSC.', suff, Nr, QT_LSC,
044a9a9d92 Jean*0106      &                         0, bi, bj, 1, myIter, myThid )
e749d70ece Jean*0107 #ifdef ALLOW_CLR_SKY_DIAG
044a9a9d92 Jean*0108 C-    write clear-sky tendencies to files :
                0109          IF ( aim_clrSkyDiag ) THEN
ab33782b56 Jean*0110           CALL AIM_WRITE_PHYS( 'aim_dT_clskySW.', suff, Nr, TT_SWclr,
044a9a9d92 Jean*0111      &                         0, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0112           CALL AIM_WRITE_PHYS( 'aim_dT_clskyLW.', suff, Nr, TT_LWclr,
044a9a9d92 Jean*0113      &                         0, bi, bj, 1, myIter, myThid )
                0114          ENDIF
e749d70ece Jean*0115 #endif /* ALLOW_CLR_SKY_DIAG */
78ad6fc820 Ed H*0116 
044a9a9d92 Jean*0117 C-    end if aim_snapshot_mdsio
78ad6fc820 Ed H*0118        ENDIF
                0119 
                0120 #ifdef ALLOW_MNC
044a9a9d92 Jean*0121 c      IF ( useMNC .AND. aim_snapshot_mnc ) THEN
                0122 C-    using MNC S/R
                0123        IF ( .FALSE. ) THEN
                0124 C jmc: temporary turn off this part until this get fixed:
                0125 C      > MNC_CW_RL_W ERROR: vtype 'aim_dT_RSW' is not defined
                0126 
90299b0597 Jean*0127          IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
                0128            pf(1:1) = 'D'
                0129          ELSE
                0130            pf(1:1) = 'R'
                0131          ENDIF
                0132 
044a9a9d92 Jean*0133          IF ( bi.EQ.1 .AND. bj.EQ.1 ) THEN
                0134           WRITE(suff,'(a)') 'aim_tend'
                0135           CALL MNC_CW_SET_UDIM(suff, -1, myThid)
                0136           CALL MNC_CW_RL_W_S('D',suff,0,0,'T',myTime,myThid)
                0137           CALL MNC_CW_SET_UDIM(suff, 0, myThid)
                0138           CALL MNC_CW_I_W_S('I',suff,0,0,'iter',myIter,myThid)
                0139          ENDIF
                0140 
                0141          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dT_RSW',TT_RSW,myThid)
                0142          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dT_RLW',TT_RLW,myThid)
                0143          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dT_CNV',TT_CNV,myThid)
                0144          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dT_PBL',TT_PBL,myThid)
                0145          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dT_LSC',TT_LSC,myThid)
                0146          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dQ_CNV',QT_CNV,myThid)
                0147          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dQ_PBL',QT_PBL,myThid)
                0148          CALL MNC_CW_RL_W(pf,suff,bi,bj,'aim_dQ_LSC',QT_LSC,myThid)
                0149 
                0150 C-    end if aim_snapshot_mnc
78ad6fc820 Ed H*0151        ENDIF
044a9a9d92 Jean*0152 #endif /* ALLOW_MNC */
78ad6fc820 Ed H*0153 
044a9a9d92 Jean*0154 C---  end writing tendencies
d676f916b2 Jean*0155       ENDIF
                0156 
044a9a9d92 Jean*0157       IF ( DIFFERENT_MULTIPLE( aim_diagFreq,
                0158      &                         myTime+deltaTClock, deltaTClock )
abe521d840 Jean*0159      &   ) THEN
044a9a9d92 Jean*0160 C---  Write Physics Fields
78ad6fc820 Ed H*0161 
                0162        IF ( aim_snapshot_mdsio ) THEN
044a9a9d92 Jean*0163 C-    using MDSIO based S/R
ab33782b56 Jean*0164          IF ( rwSuffixType.EQ.0 ) THEN
                0165            WRITE(suff,'(I10.10)') myIter+1
                0166          ELSE
                0167            CALL RW_GET_SUFFIX( suff,
                0168      &                 myTime+deltaTClock, myIter+1, myThid )
                0169          ENDIF
d676f916b2 Jean*0170 
                0171 C--   Write Relative Humidity :
ab33782b56 Jean*0172          CALL AIM_WRITE_PHYS( 'aim_RelHum.', suff, Nr, RH,
044a9a9d92 Jean*0173      &                         0, bi, bj, 1, myIter, myThid )
d676f916b2 Jean*0174 
                0175 C--   Write AIM Physics diagnostics (2D, all in 1 file) :
ab33782b56 Jean*0176          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 4, DRAG,
044a9a9d92 Jean*0177      &                         1, bi, bj, 1, myIter, myThid )
ab33782b56 Jean*0178          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, SPEED0,
044a9a9d92 Jean*0179      &                         1, bi, bj, 2, myIter, myThid )
ab33782b56 Jean*0180          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, TSR,
044a9a9d92 Jean*0181      &                         1, bi, bj, 3, myIter, myThid )
ab33782b56 Jean*0182          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, OLR,
044a9a9d92 Jean*0183      &                         1, bi, bj, 4, myIter, myThid )
ab33782b56 Jean*0184          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 4, SSR,
044a9a9d92 Jean*0185      &                         1, bi, bj, 5, myIter, myThid )
ab33782b56 Jean*0186          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 4, SLR,
044a9a9d92 Jean*0187      &                         1, bi, bj, 6, myIter, myThid )
ab33782b56 Jean*0188          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 4, SHF,
044a9a9d92 Jean*0189      &                         1, bi, bj, 7, myIter, myThid )
ab33782b56 Jean*0190          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 4, EVAP,
044a9a9d92 Jean*0191      &                         1, bi, bj, 8, myIter, myThid )
ab33782b56 Jean*0192          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, PRECNV,
044a9a9d92 Jean*0193      &                         1, bi, bj, 9, myIter, myThid )
ab33782b56 Jean*0194          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, PRECLS,
044a9a9d92 Jean*0195      &                         1, bi, bj,10, myIter, myThid )
ab33782b56 Jean*0196          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, CLOUDC,
044a9a9d92 Jean*0197      &                         1, bi, bj,11, myIter, myThid )
ab33782b56 Jean*0198          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, CLTOP,
044a9a9d92 Jean*0199      &                         1, bi, bj,12, myIter, myThid )
ab33782b56 Jean*0200          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, CBMF,
044a9a9d92 Jean*0201      &                         1, bi, bj,13, myIter, myThid )
ab33782b56 Jean*0202          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, T0,
044a9a9d92 Jean*0203      &                         1, bi, bj,14, myIter, myThid )
ab33782b56 Jean*0204          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, Q0,
044a9a9d92 Jean*0205      &                         1, bi, bj,15, myIter, myThid )
ab33782b56 Jean*0206          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 1, EnPrec,
044a9a9d92 Jean*0207      &                         1, bi, bj,16, myIter, myThid )
ab33782b56 Jean*0208          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 4, alb1,
044a9a9d92 Jean*0209      &                         1, bi, bj,17, myIter, myThid )
ab33782b56 Jean*0210          CALL AIM_WRITE_PHYS( 'aimPhyDiag.', suff, 3, dTsurf,
044a9a9d92 Jean*0211      &                         1, bi, bj,18, myIter, myThid )
e749d70ece Jean*0212 #ifdef ALLOW_CLR_SKY_DIAG
                0213 C--   write clear-sky radiative fluxes to files :
044a9a9d92 Jean*0214          IF ( aim_clrSkyDiag ) THEN
ab33782b56 Jean*0215           CALL AIM_WRITE_PHYS('aimPhyDiag.', suff, 1, TSWclr,
044a9a9d92 Jean*0216      &                         1, bi, bj,19, myIter, myThid )
ab33782b56 Jean*0217           CALL AIM_WRITE_PHYS('aimPhyDiag.', suff, 1, OLWclr,
044a9a9d92 Jean*0218      &                         1, bi, bj,20, myIter, myThid )
ab33782b56 Jean*0219           CALL AIM_WRITE_PHYS('aimPhyDiag.', suff, 1, SSWclr,
044a9a9d92 Jean*0220      &                         1, bi, bj,21, myIter, myThid )
ab33782b56 Jean*0221           CALL AIM_WRITE_PHYS('aimPhyDiag.', suff, 1, SLWclr,
044a9a9d92 Jean*0222      &                         1, bi, bj,22, myIter, myThid )
                0223          ENDIF
e749d70ece Jean*0224 #endif /* ALLOW_CLR_SKY_DIAG */
044a9a9d92 Jean*0225 
                0226 C-    end if aim_snapshot_mdsio
78ad6fc820 Ed H*0227        ENDIF
                0228 
                0229 #ifdef ALLOW_MNC
                0230        IF ( useMNC .AND. aim_snapshot_mnc ) THEN
044a9a9d92 Jean*0231 C-    using MNC S/R
                0232 
90299b0597 Jean*0233          IF ( writeBinaryPrec .EQ. precFloat64 ) THEN
                0234            pf(1:1) = 'D'
                0235          ELSE
                0236            pf(1:1) = 'R'
                0237          ENDIF
                0238 
044a9a9d92 Jean*0239          IF ( bi.EQ.1 .AND. bj.EQ.1 ) THEN
37b353148c Davi*0240           WRITE(suff,'(a)') 'aim_phys'
044a9a9d92 Jean*0241           CALL MNC_CW_SET_UDIM(suff, -1, myThid)
37b353148c Davi*0242           CALL MNC_CW_RL_W_S('D',suff,0,0,'T',myTime+deltaTClock,myThid)
044a9a9d92 Jean*0243           CALL MNC_CW_SET_UDIM(suff, 0, myThid)
37b353148c Davi*0244           CALL MNC_CW_I_W_S('I',suff,0,0,'iter',myIter+1,myThid)
044a9a9d92 Jean*0245          ENDIF
                0246 
                0247          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0248      &        'aim_DRAG0',DRAG(1,0,myThid),myThid)
044a9a9d92 Jean*0249          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0250      &        'aim_SPEED0',SPEED0(1,myThid),myThid)
044a9a9d92 Jean*0251          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0252      &        'aim_TSR',TSR(1,myThid),myThid)
044a9a9d92 Jean*0253          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0254      &        'aim_OLR',OLR(1,myThid),myThid)
044a9a9d92 Jean*0255          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0256      &        'aim_SSR0',SSR(1,0,myThid),myThid)
044a9a9d92 Jean*0257          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0258      &        'aim_SLR0',SLR(1,0,myThid),myThid)
044a9a9d92 Jean*0259          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0260      &        'aim_SHF0',SHF(1,0,myThid),myThid)
044a9a9d92 Jean*0261          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0262      &        'aim_EVAP0',EVAP(1,0,myThid),myThid)
044a9a9d92 Jean*0263          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0264      &        'aim_PRECNV',PRECNV(1,myThid),myThid)
044a9a9d92 Jean*0265          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0266      &        'aim_PRECLS',PRECLS(1,myThid),myThid)
044a9a9d92 Jean*0267          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0268      &        'aim_CLOUDC',CLOUDC(1,myThid),myThid)
044a9a9d92 Jean*0269          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0270      &        'aim_CLTOP',CLTOP(1,myThid),myThid)
044a9a9d92 Jean*0271          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0272      &        'aim_CBMF',CBMF(1,myThid),myThid)
044a9a9d92 Jean*0273          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0274      &        'aim_T0',T0(1,myThid),myThid)
044a9a9d92 Jean*0275          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0276      &        'aim_Q0',Q0(1,myThid),myThid)
044a9a9d92 Jean*0277          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0278      &        'aim_EnPrec',EnPrec(1,myThid),myThid)
044a9a9d92 Jean*0279          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0280      &        'aim_alb10',alb1(1,0,myThid),myThid)
044a9a9d92 Jean*0281          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0282      &        'aim_dTsurf1',dTsurf(1,1,myThid),myThid)
044a9a9d92 Jean*0283 #ifdef ALLOW_CLR_SKY_DIAG
                0284 C--   write clear-sky radiative fluxes to files :
                0285         IF ( aim_clrSkyDiag ) THEN
                0286          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0287      &        'aim_TSWclr',TSWclr(1,myThid),myThid)
044a9a9d92 Jean*0288          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0289      &        'aim_OLWclr',OLWclr(1,myThid),myThid)
044a9a9d92 Jean*0290          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0291      &        'aim_SSWclr',SSWclr(1,myThid),myThid)
044a9a9d92 Jean*0292          CALL MNC_CW_RL_W(pf,suff,bi,bj,
78ad6fc820 Ed H*0293      &        'aim_SLWclr',SLWclr(1,myThid),myThid)
044a9a9d92 Jean*0294         ENDIF
                0295 #endif /* ALLOW_CLR_SKY_DIAG */
abe521d840 Jean*0296 
044a9a9d92 Jean*0297 C     end if aim_snapshot_mnc
78ad6fc820 Ed H*0298        ENDIF
044a9a9d92 Jean*0299 #endif /* ALLOW_MNC */
78ad6fc820 Ed H*0300 
044a9a9d92 Jean*0301 C--   end writing Physics Fields
d676f916b2 Jean*0302       ENDIF
                0303 
                0304 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0305 
e749d70ece Jean*0306 C--   cloud-top pressure: multiplied by cloud fraction before averaging:
                0307       DO J=1,NGP
ab33782b56 Jean*0308         CLTOP(J,myThid)=CLTOP(J,myThid)*CLOUDC(J,myThid)
e749d70ece Jean*0309       ENDDO
                0310 
3a474aa258 Jean*0311 #ifdef ALLOW_AIM_TAVE
d676f916b2 Jean*0312 
ab33782b56 Jean*0313       IF ( aim_taveFreq.GT.0. ) THEN
d676f916b2 Jean*0314 
e204a6fa13 Jean*0315         DDTT = deltaTClock
d676f916b2 Jean*0316 
d4a066fa68 Jean*0317         DO j=1,sNy
                0318          DO i=1,sNx
                0319           I2 = i+(j-1)*sNx
d676f916b2 Jean*0320           TSRtave(i,j,bi,bj)    = TSRtave(i,j,bi,bj)
                0321      &                          + TSR(I2,myThid)*DDTT
                0322           OLRtave(i,j,bi,bj)    = OLRtave(i,j,bi,bj)
                0323      &                          + OLR(I2,myThid)*DDTT
                0324           SSRtave(i,j,bi,bj)    = SSRtave(i,j,bi,bj)
b3097ed02d Jean*0325      &                          + SSR(I2,0,myThid)*DDTT
d676f916b2 Jean*0326           SLRtave(i,j,bi,bj)    = SLRtave(i,j,bi,bj)
b3097ed02d Jean*0327      &                          + SLR(I2,0,myThid)*DDTT
d676f916b2 Jean*0328           SHFtave(i,j,bi,bj)    = SHFtave(i,j,bi,bj)
b3097ed02d Jean*0329      &                          + SHF(I2,0,myThid)*DDTT
d676f916b2 Jean*0330           EVAPtave(i,j,bi,bj)   = EVAPtave(i,j,bi,bj)
b3097ed02d Jean*0331      &                          + EVAP(I2,0,myThid)*DDTT
d676f916b2 Jean*0332           PRECNVtave(i,j,bi,bj) = PRECNVtave(i,j,bi,bj)
                0333      &                          + PRECNV(I2,myThid)*DDTT
                0334           PRECLStave(i,j,bi,bj) = PRECLStave(i,j,bi,bj)
                0335      &                          + PRECLS(I2,myThid)*DDTT
                0336           CLOUDCtave(i,j,bi,bj) = CLOUDCtave(i,j,bi,bj)
                0337      &                          + CLOUDC(I2,myThid)*DDTT
3a474aa258 Jean*0338           CLTOPtave(i,j,bi,bj)  = CLTOPtave(i,j,bi,bj)
                0339      &                          + CLTOP(I2,myThid)*DDTT
                0340           CBMFtave(i,j,bi,bj)   = CBMFtave(i,j,bi,bj)
                0341      &                          + CBMF(I2,myThid)*DDTT
                0342           DRAGtave(i,j,bi,bj)   = DRAGtave(i,j,bi,bj)
b3097ed02d Jean*0343      &                          + DRAG(I2,0,myThid)*DDTT
3a474aa258 Jean*0344           aimV0tave(i,j,bi,bj)  = aimV0tave(i,j,bi,bj)
                0345      &                          + SPEED0(I2,myThid)*DDTT
                0346           aimT0tave(i,j,bi,bj)  = aimT0tave(i,j,bi,bj)
                0347      &                          + T0(I2,myThid)*DDTT
                0348           aimQ0tave(i,j,bi,bj)  = aimQ0tave(i,j,bi,bj)
                0349      &                          + Q0(I2,myThid)*DDTT
b3097ed02d Jean*0350           EnFxPrtave(i,j,bi,bj) = EnFxPrtave(i,j,bi,bj)
                0351      &                          + EnPrec(I2,myThid)
                0352      &                          *(PRECNV(I2,myThid)+
                0353      &                            PRECLS(I2,myThid))*DDTT
e749d70ece Jean*0354           albedotave(i,j,bi,bj) = albedotave(i,j,bi,bj)
                0355      &                          + alb1(I2,0,myThid)*DDTT
                0356           dTsurftave(i,j,bi,bj) = dTsurftave(i,j,bi,bj)
                0357      &                          + dTsurf(I2,1,myThid)*DDTT
3a474aa258 Jean*0358          ENDDO
                0359         ENDDO
                0360 
                0361 C-      Relative Humidity :
                0362         DO k=1,Nr
                0363          Katm = _KD2KA( k )
                0364          DO j=1,sNy
                0365           DO i=1,sNx
                0366            I2 = i+(j-1)*sNx
                0367            aimRHtave(i,j,k,bi,bj) = aimRHtave(i,j,k,bi,bj)
                0368      &                            + RH(I2,Katm,myThid)*DDTT
                0369           ENDDO
d676f916b2 Jean*0370          ENDDO
                0371         ENDDO
                0372 
                0373 C-    Keep record of how much time has been integrated over
10308cbe80 Jean*0374         aim_timeAve(bi,bj) = aim_timeAve(bi,bj)+DDTT
d676f916b2 Jean*0375 
                0376       ENDIF
                0377 
3a474aa258 Jean*0378 #endif /* ALLOW_AIM_TAVE */
d676f916b2 Jean*0379 
9340658285 Jean*0380 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
abe521d840 Jean*0381 
                0382 #ifdef ALLOW_DIAGNOSTICS
ab33782b56 Jean*0383        IF ( useDiagnostics ) THEN
9340658285 Jean*0384         CALL DIAGNOSTICS_FILL( TT_RSW(1,1,myThid),
1392931580 Jean*0385      &                        'RADSW   ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0386         CALL DIAGNOSTICS_FILL( TT_RLW(1,1,myThid),
1392931580 Jean*0387      &                        'RADLW   ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0388         CALL DIAGNOSTICS_FILL( TT_CNV(1,1,myThid),
1392931580 Jean*0389      &                        'DTCONV  ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0390         CALL DIAGNOSTICS_FILL( TT_PBL(1,1,myThid),
1392931580 Jean*0391      &                        'TURBT   ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0392         CALL DIAGNOSTICS_FILL( TT_LSC(1,1,myThid),
1392931580 Jean*0393      &                        'DTLS    ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0394         CALL DIAGNOSTICS_FILL( QT_CNV(1,1,myThid),
1392931580 Jean*0395      &                        'DQCONV  ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0396         CALL DIAGNOSTICS_FILL( QT_PBL(1,1,myThid),
1392931580 Jean*0397      &                        'TURBQ   ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0398         CALL DIAGNOSTICS_FILL( QT_LSC(1,1,myThid),
1392931580 Jean*0399      &                        'DQLS    ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0400         CALL DIAGNOSTICS_FILL( RH(1,1,myThid),
1392931580 Jean*0401      &                        'RELHUM  ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0402         CALL DIAGNOSTICS_FILL( TSR(1,myThid),
abe521d840 Jean*0403      &                        'TSR     ', 1, 1 , 3,bi,bj, myThid )
9340658285 Jean*0404         CALL DIAGNOSTICS_FILL( OLR(1,myThid),
                0405      &                        'OLR     ', 1, 1 , 3,bi,bj, myThid )
                0406         CALL DIAGNOSTICS_FILL( SSR(1,0,myThid),
                0407      &                        'RADSWG  ', 1, 1 , 3,bi,bj, myThid )
                0408         CALL DIAGNOSTICS_FILL( SLR(1,0,myThid),
                0409      &                        'RADLWG  ', 1, 1 , 3,bi,bj, myThid )
                0410         CALL DIAGNOSTICS_FILL( SHF(1,0,myThid),
                0411      &                        'HFLUX   ', 1, 1 , 3,bi,bj, myThid )
                0412         CALL DIAGNOSTICS_FILL( EVAP(1,0,myThid),
                0413      &                        'EVAP    ', 1, 1 , 3,bi,bj, myThid )
                0414         CALL DIAGNOSTICS_FILL( PRECNV(1,myThid),
                0415      &                        'PRECON  ', 1, 1 , 3,bi,bj, myThid )
                0416         CALL DIAGNOSTICS_FILL( PRECLS(1,myThid),
                0417      &                        'PRECLS  ', 1, 1 , 3,bi,bj, myThid )
                0418         CALL DIAGNOSTICS_FILL( CLOUDC(1,myThid),
                0419      &                        'CLDFRC  ', 1, 1 , 3,bi,bj, myThid )
                0420         CALL DIAGNOSTICS_FILL( CLTOP(1,myThid),
                0421      &                        'CLDPRS  ', 1, 1 , 3,bi,bj, myThid )
abe521d840 Jean*0422 c       CALL DIAGNOSTICS_FILL( CLOUDC(1,myThid),
                0423 c    &                        'CTPCNT  ', 1, 1 , 3,bi,bj, myThid )
9340658285 Jean*0424         CALL DIAGNOSTICS_FILL( CBMF(1,myThid),
                0425      &                        'CLDMAS  ', 1, 1 , 3,bi,bj, myThid )
                0426         CALL DIAGNOSTICS_FILL( DRAG(1,0,myThid),
abe521d840 Jean*0427      &                        'DRAG    ', 1, 1 , 3,bi,bj, myThid )
9340658285 Jean*0428         CALL DIAGNOSTICS_FILL( SPEED0(1,myThid),
                0429      &                        'WINDS   ', 1, 1 , 3,bi,bj, myThid )
                0430         CALL DIAGNOSTICS_FILL( T0(1,myThid),
                0431      &                        'TS      ', 1, 1 , 3,bi,bj, myThid )
                0432         CALL DIAGNOSTICS_FILL( Q0(1,myThid),
                0433      &                        'QS      ', 1, 1 , 3,bi,bj, myThid )
                0434         IF ( DIAGNOSTICS_IS_ON('ENPREC  ',myThid) ) THEN
                0435           DO J=1,NGP
                0436             tmpVar(J) = EnPrec(J,myThid)
                0437      &                *(PRECNV(J,myThid)+PRECLS(J,myThid))
                0438           ENDDO
                0439           CALL DIAGNOSTICS_FILL( tmpVar,
                0440      &                        'ENPREC  ', 1, 1 , 3,bi,bj, myThid )
                0441         ENDIF
                0442         CALL DIAGNOSTICS_FILL( alb1(1,0,myThid),
                0443      &                        'ALBVISDF', 1, 1 , 3,bi,bj, myThid )
                0444         CALL DIAGNOSTICS_FILL( dTsurf(1,1,myThid),
5cbcb662ee Andr*0445      &                        'DTSIMPL ', 1, 1 , 3,bi,bj, myThid )
e749d70ece Jean*0446 #ifdef ALLOW_CLR_SKY_DIAG
abe521d840 Jean*0447         IF ( aim_clrSkyDiag ) THEN
9340658285 Jean*0448           CALL DIAGNOSTICS_FILL( TT_SWclr(1,1,myThid),
1392931580 Jean*0449      &                        'SWCLR   ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0450           CALL DIAGNOSTICS_FILL( TT_LWclr(1,1,myThid),
1392931580 Jean*0451      &                        'LWCLR   ',-1, Nr, 3,bi,bj, myThid )
9340658285 Jean*0452           CALL DIAGNOSTICS_FILL( TSWclr(1,myThid),
abe521d840 Jean*0453      &                        'TSRCLR  ', 1, 1 , 3,bi,bj, myThid )
9340658285 Jean*0454           CALL DIAGNOSTICS_FILL( OLWclr(1,myThid),
                0455      &                        'OLRCLR  ', 1, 1 , 3,bi,bj, myThid )
                0456           CALL DIAGNOSTICS_FILL( SSWclr(1,myThid),
                0457      &                        'SWGCLR  ', 1, 1 , 3,bi,bj, myThid )
                0458           CALL DIAGNOSTICS_FILL( SLWclr(1,myThid),
                0459      &                        'LWGCLR  ', 1, 1 , 3,bi,bj, myThid )
e749d70ece Jean*0460         ENDIF
                0461 #endif /* ALLOW_CLR_SKY_DIAG */
                0462 
                0463        ENDIF
                0464 #endif /* ALLOW_DIAGNOSTICS */
6c0f3858f1 Andr*0465 
d676f916b2 Jean*0466 #endif /* ALLOW_AIM */
                0467 
                0468       RETURN
                0469       END