Back to home page

MITgcm

 
 

    


File indexing completed on 2025-11-04 06:08:41 UTC

view on githubraw file Latest commit 78dc053d on 2025-11-03 22:25:45 UTC
c90c060abd Ed H*0001 #include "DIAG_OPTIONS.h"
ab685e6b35 Jean*0002 
c83206cd4e Jean*0003 CBOP
                0004 C     !ROUTINE: DIAGNOSTICS_FILL_STATE
                0005 C     !INTERFACE:
8ce775c441 Jean*0006       SUBROUTINE DIAGNOSTICS_FILL_STATE( selectVars, myIter, myThid )
c90c060abd Ed H*0007 
c83206cd4e Jean*0008 C     !DESCRIPTION: \bv
                0009 C     *==========================================================*
                0010 C     | SUBROUTINE DIAGNOSTICS_FILL_STATE
                0011 C     | o Fill-in main code, state-variables diagnostics
                0012 C     *==========================================================*
                0013 C     \ev
                0014 
                0015 C     !USES:
                0016       IMPLICIT NONE
                0017 C     == Global variables ===
2e735ea21e Andr*0018 #include "SIZE.h"
                0019 #include "EEPARAMS.h"
d316948822 Andr*0020 #include "PARAMS.h"
2e735ea21e Andr*0021 #include "GRID.h"
0ef6d0142d Jean*0022 #include "SURFACE.h"
5b0d80d77c Jean*0023 #include "DYNVARS.h"
                0024 #include "NH_VARS.h"
8ce775c441 Jean*0025 #ifdef ALLOW_GENERIC_ADVDIFF
                0026 # include "GAD.h"
                0027 #endif
2e735ea21e Andr*0028 
c83206cd4e Jean*0029 C     !INPUT/OUTPUT PARAMETERS:
                0030 C     == Routine arguments ==
                0031 C     selectVars :: select which group of dianostics variables to fill-in
                0032 C            = 1 :: fill-in diagnostics for tracer   variables only
                0033 C            = 2 :: fill-in diagnostics for momentum variables only
                0034 C            = 3 :: fill-in diagnostics for momentum & tracer variables
7b936be362 Andr*0035 C            = 4 :: fill-in state variable tendency diagnostics the second time
8ce775c441 Jean*0036 C     myIter     :: current Iteration number
c83206cd4e Jean*0037 C     myThid     :: my Thread Id number
9ba8ef70b1 Jean*0038       INTEGER selectVars
8ce775c441 Jean*0039       INTEGER myIter
9ba8ef70b1 Jean*0040       INTEGER myThid
ab685e6b35 Jean*0041 
                0042 #ifdef ALLOW_DIAGNOSTICS
c83206cd4e Jean*0043 C     !LOCAL VARIABLES:
                0044 C     == Local variables ==
337bea277a Jean*0045       LOGICAL  DIAGNOSTICS_IS_ON
                0046       EXTERNAL DIAGNOSTICS_IS_ON
                0047       _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
                0048       _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
06349ecfd7 Jean*0049       _RL tmpU (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
                0050       _RL tmpV (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
84d01e10aa Jean*0051       _RL tmpFac, uBarC, vBarC
b21f2d376f Jean*0052 #ifdef ALLOW_FIZHI
d316948822 Andr*0053       _RL dummy1, dummy2, dummy3, dummy4, kappa, getcon
b21f2d376f Jean*0054 #endif
8ce775c441 Jean*0055 #ifdef ALLOW_ADAMSBASHFORTH_3
                0056       INTEGER m1
                0057 #endif
                0058       INTEGER i,j,k,bi,bj
337bea277a Jean*0059       INTEGER km1
9ba8ef70b1 Jean*0060 
7b936be362 Andr*0061       IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN
c83206cd4e Jean*0062 C--   fill momentum state-var diagnostics:
                0063 
62f9c88755 Jean*0064         CALL DIAGNOSTICS_FILL(etaN, 'ETAN    ',0, 1,0,1,1,myThid)
ee04343829 Andr*0065 
                0066         IF ( DIAGNOSTICS_IS_ON('RSURF   ',myThid) ) THEN
                0067          DO bj = myByLo(myThid), myByHi(myThid)
                0068           DO bi = myBxLo(myThid), myBxHi(myThid)
                0069            DO j = 1,sNy
                0070             DO i = 1,sNx
                0071               tmp1k(i,j,bi,bj) = Ro_surf(i,j,bi,bj) + etaH(i,j,bi,bj)
                0072             ENDDO
                0073            ENDDO
                0074           ENDDO
                0075          ENDDO
                0076          CALL DIAGNOSTICS_FILL(tmp1k,'RSURF   ',0,1,0,1,1,myThid)
                0077         ENDIF
                0078 
d9055b137d Jean*0079         CALL DIAGNOSTICS_SCALE_FILL( etaN, oneRL, 2,
62f9c88755 Jean*0080      &                              'ETANSQ  ',0, 1,0,1,1,myThid)
d9055b137d Jean*0081         CALL DIAGNOSTICS_SCALE_FILL( dEtaHdt, oneRL, 2,
62f9c88755 Jean*0082      &                              'DETADT2 ',0, 1,0,1,1,myThid)
78dc053d11 Jean*0083 
5b0d80d77c Jean*0084 #ifdef ALLOW_NONHYDROSTATIC
                0085         IF ( use3Dsolver ) THEN
                0086           CALL DIAGNOSTICS_FILL( phi_nh,'PHI_NH  ',0,Nr,0,1,1,myThid )
                0087         ENDIF
                0088 #endif
9ba8ef70b1 Jean*0089 
ff78c25591 Jean*0090         IF ( nonlinFreeSurf.GT.0 ) THEN
                0091          CALL DIAGNOSTICS_FILL_RS( hFacW,'hFactorW',0,Nr,0,1,1,myThid )
                0092          CALL DIAGNOSTICS_FILL_RS( hFacS,'hFactorS',0,Nr,0,1,1,myThid )
                0093         ENDIF
                0094 
c83206cd4e Jean*0095         CALL DIAGNOSTICS_FILL(uVel, 'UVEL    ',0,Nr,0,1,1,myThid)
                0096         CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)
                0097         CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)
9ba8ef70b1 Jean*0098 
d9055b137d Jean*0099         CALL DIAGNOSTICS_SCALE_FILL( uVel, oneRL, 2,
62f9c88755 Jean*0100      &                              'UVELSQ  ',0,Nr,0,1,1,myThid)
d9055b137d Jean*0101         CALL DIAGNOSTICS_SCALE_FILL( vVel, oneRL, 2,
62f9c88755 Jean*0102      &                              'VVELSQ  ',0,Nr,0,1,1,myThid)
d9055b137d Jean*0103         CALL DIAGNOSTICS_SCALE_FILL( wVel, oneRL, 2,
62f9c88755 Jean*0104      &                              'WVELSQ  ',0,Nr,0,1,1,myThid)
                0105 
c83206cd4e Jean*0106 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0107 
78dc053d11 Jean*0108         IF ( DIAGNOSTICS_IS_ON('VSHEARSQ',myThid) ) THEN
                0109          DO bj = myByLo(myThid), myByHi(myThid)
                0110           DO bi = myBxLo(myThid), myBxHi(myThid)
                0111            DO j = 1,sNy
                0112             DO i = 1,sNx
                0113               tmpMk(i,j,1,bi,bj) = 0. _d 0
                0114             ENDDO
                0115            ENDDO
                0116            DO k=2,Nr
                0117             DO j = 1,sNy+1
                0118              DO i = 1,sNx+1
                0119               tmpU(i,j) = ( uVel(i,j,k,bi,bj) - uVel(i,j,k-1,bi,bj) )
                0120 c                       * maskW(i,j,k,bi,bj)*maskW(i,j,k-1,bi,bj)
                0121               tmpV(i,j) = ( vVel(i,j,k,bi,bj) - vVel(i,j,k-1,bi,bj) )
                0122 c                       * maskS(i,j,k,bi,bj)*maskS(i,j,k-1,bi,bj)
                0123              ENDDO
                0124             ENDDO
                0125             DO j = 1,sNy
                0126              DO i = 1,sNx
                0127               tmpMk(i,j,k,bi,bj) = recip_drC(k)*recip_drC(k)*halfRL
                0128      &           *( ( tmpU(i,j)*tmpU(i,j) + tmpU(i+1,j)*tmpU(i+1,j) )
                0129      &            + ( tmpV(i,j)*tmpV(i,j) + tmpV(i,j+1)*tmpV(i,j+1) )
                0130      &            )
                0131              ENDDO
                0132             ENDDO
                0133            ENDDO
                0134           ENDDO
                0135          ENDDO
                0136          CALL DIAGNOSTICS_FILL(tmpMk,'VSHEARSQ',0,Nr,0,1,1,myThid)
                0137         ENDIF
                0138 
06349ecfd7 Jean*0139         IF ( DIAGNOSTICS_IS_ON('UE_VEL_C',myThid) .OR.
                0140      &       DIAGNOSTICS_IS_ON('VN_VEL_C',myThid) .OR.
                0141      &       DIAGNOSTICS_IS_ON('UV_VEL_C',myThid) ) THEN
c83206cd4e Jean*0142          DO bj = myByLo(myThid), myByHi(myThid)
                0143           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0144            DO k=1,Nr
337bea277a Jean*0145             DO j = 1,sNy
c83206cd4e Jean*0146              DO i = 1,sNx
84d01e10aa Jean*0147               uBarC = 0.5 _d 0
8ce775c441 Jean*0148      &           *(uVel(i,j,k,bi,bj)+uVel(i+1,j,k,bi,bj))
84d01e10aa Jean*0149               vBarC = 0.5 _d 0
8ce775c441 Jean*0150      &           *(vVel(i,j,k,bi,bj)+vVel(i,j+1,k,bi,bj))
06349ecfd7 Jean*0151               tmpU(i,j) = angleCosC(i,j,bi,bj)*uBarC
                0152      &                   -angleSinC(i,j,bi,bj)*vBarC
                0153               tmpV(i,j) = angleSinC(i,j,bi,bj)*uBarC
                0154      &                   +angleCosC(i,j,bi,bj)*vBarC
8ce775c441 Jean*0155               tmpMk(i,j,k,bi,bj) = tmpU(i,j)*tmpV(i,j)
c83206cd4e Jean*0156              ENDDO
337bea277a Jean*0157             ENDDO
06349ecfd7 Jean*0158             CALL DIAGNOSTICS_FILL(tmpU,'UE_VEL_C',k,1,2,bi,bj,myThid)
                0159             CALL DIAGNOSTICS_FILL(tmpV,'VN_VEL_C',k,1,2,bi,bj,myThid)
c83206cd4e Jean*0160            ENDDO
337bea277a Jean*0161           ENDDO
c83206cd4e Jean*0162          ENDDO
                0163          CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid)
                0164         ENDIF
9ba8ef70b1 Jean*0165 
c83206cd4e Jean*0166         IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN
                0167          DO bj = myByLo(myThid), myByHi(myThid)
                0168           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0169            DO k=1,Nr
c83206cd4e Jean*0170             DO j = 1,sNy+1
                0171              DO i = 1,sNx+1
8ce775c441 Jean*0172               tmpMk(i,j,k,bi,bj) = 0.25 _d 0
                0173      &           *(uVel(i,j-1,k,bi,bj)+uVel(i,j,k,bi,bj))
                0174      &           *(vVel(i-1,j,k,bi,bj)+vVel(i,j,k,bi,bj))
c83206cd4e Jean*0175              ENDDO
337bea277a Jean*0176             ENDDO
c83206cd4e Jean*0177            ENDDO
337bea277a Jean*0178           ENDDO
c83206cd4e Jean*0179          ENDDO
                0180          CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)
                0181         ENDIF
9ba8ef70b1 Jean*0182 
6df3568a20 Jean*0183         IF ( DIAGNOSTICS_IS_ON('WU_VEL  ',myThid) ) THEN
                0184          DO bj = myByLo(myThid), myByHi(myThid)
                0185           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0186            DO k=1,Nr
6df3568a20 Jean*0187             km1 = MAX(k-1,1)
                0188             DO j = 1,sNy
                0189              DO i = 1,sNx+1
8ce775c441 Jean*0190               tmpMk(i,j,k,bi,bj) = 0.25 _d 0
                0191      &           *(uVel(i,j,km1,bi,bj)+uVel(i,j,k,bi,bj))
                0192      &           *(wVel(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)
                0193      &            +wVel( i ,j,k,bi,bj)*rA( i ,j,bi,bj)
6df3568a20 Jean*0194      &            )*recip_rAw(i,j,bi,bj)
                0195              ENDDO
                0196             ENDDO
                0197            ENDDO
                0198           ENDDO
                0199          ENDDO
                0200          CALL DIAGNOSTICS_FILL(tmpMk,'WU_VEL  ',0,Nr,0,1,1,myThid)
                0201         ENDIF
                0202 
                0203         IF ( DIAGNOSTICS_IS_ON('WV_VEL  ',myThid) ) THEN
                0204          DO bj = myByLo(myThid), myByHi(myThid)
                0205           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0206            DO k=1,Nr
6df3568a20 Jean*0207             km1 = MAX(k-1,1)
                0208             DO j = 1,sNy+1
                0209              DO i = 1,sNx
8ce775c441 Jean*0210               tmpMk(i,j,k,bi,bj) = 0.25 _d 0
                0211      &           *(vVel(i,j,km1,bi,bj)+vVel(i,j,k,bi,bj))
                0212      &           *(wVel(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
                0213      &            +wVel(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
6df3568a20 Jean*0214      &            )*recip_rAs(i,j,bi,bj)
                0215              ENDDO
                0216             ENDDO
                0217            ENDDO
                0218           ENDDO
                0219          ENDDO
                0220          CALL DIAGNOSTICS_FILL(tmpMk,'WV_VEL  ',0,Nr,0,1,1,myThid)
                0221         ENDIF
                0222 
c83206cd4e Jean*0223 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0224 
                0225         IF ( DIAGNOSTICS_IS_ON('UVELTH  ',myThid) ) THEN
                0226          DO bj = myByLo(myThid), myByHi(myThid)
                0227           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0228            DO k=1,Nr
337bea277a Jean*0229             DO j = 1,sNy
c83206cd4e Jean*0230              DO i = 1,sNx+1
8ce775c441 Jean*0231                tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
                0232      &                  *(theta(i,j,k,bi,bj)+theta(i-1,j,k,bi,bj))
c83206cd4e Jean*0233              ENDDO
337bea277a Jean*0234             ENDDO
c83206cd4e Jean*0235            ENDDO
337bea277a Jean*0236           ENDDO
c83206cd4e Jean*0237          ENDDO
                0238          CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH  ',0,Nr,0,1,1,myThid)
                0239         ENDIF
9ba8ef70b1 Jean*0240 
c83206cd4e Jean*0241         IF ( DIAGNOSTICS_IS_ON('VVELTH  ',myThid) ) THEN
                0242          DO bj = myByLo(myThid), myByHi(myThid)
                0243           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0244            DO k=1,Nr
c83206cd4e Jean*0245             DO j = 1,sNy+1
                0246              DO i = 1,sNx
8ce775c441 Jean*0247                tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
                0248      &                  *(theta(i,j,k,bi,bj)+theta(i,j-1,k,bi,bj))
c83206cd4e Jean*0249              ENDDO
337bea277a Jean*0250             ENDDO
c83206cd4e Jean*0251            ENDDO
337bea277a Jean*0252           ENDDO
c83206cd4e Jean*0253          ENDDO
                0254          CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH  ',0,Nr,0,1,1,myThid)
                0255         ENDIF
9ba8ef70b1 Jean*0256 
c83206cd4e Jean*0257         IF ( DIAGNOSTICS_IS_ON('WVELTH  ',myThid) ) THEN
                0258          DO bj = myByLo(myThid), myByHi(myThid)
                0259           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0260            DO k=1,Nr
47146cb74f Ed H*0261             km1 = MAX(k-1,1)
337bea277a Jean*0262             DO j = 1,sNy
c83206cd4e Jean*0263              DO i = 1,sNx
8ce775c441 Jean*0264                tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
                0265      &                  *(theta(i,j,k,bi,bj)+theta(i,j,km1,bi,bj))
c83206cd4e Jean*0266              ENDDO
337bea277a Jean*0267             ENDDO
c83206cd4e Jean*0268            ENDDO
337bea277a Jean*0269           ENDDO
c83206cd4e Jean*0270          ENDDO
                0271          CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH  ',0,Nr,0,1,1,myThid)
                0272         ENDIF
9ba8ef70b1 Jean*0273 
c83206cd4e Jean*0274         IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN
                0275          DO bj = myByLo(myThid), myByHi(myThid)
                0276           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0277            DO k=1,Nr
337bea277a Jean*0278             DO j = 1,sNy
c83206cd4e Jean*0279              DO i = 1,sNx+1
8ce775c441 Jean*0280                tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
                0281      &                  *(salt(i,j,k,bi,bj)+salt(i-1,j,k,bi,bj))
c83206cd4e Jean*0282              ENDDO
337bea277a Jean*0283             ENDDO
c83206cd4e Jean*0284            ENDDO
337bea277a Jean*0285           ENDDO
c83206cd4e Jean*0286          ENDDO
                0287          CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid)
                0288         ENDIF
9ba8ef70b1 Jean*0289 
c83206cd4e Jean*0290         IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN
                0291          DO bj = myByLo(myThid), myByHi(myThid)
                0292           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0293            DO k=1,Nr
c83206cd4e Jean*0294             DO j = 1,sNy+1
                0295              DO i = 1,sNx
8ce775c441 Jean*0296                tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
                0297      &                  *(salt(i,j,k,bi,bj)+salt(i,j-1,k,bi,bj))
c83206cd4e Jean*0298              ENDDO
337bea277a Jean*0299             ENDDO
c83206cd4e Jean*0300            ENDDO
337bea277a Jean*0301           ENDDO
c83206cd4e Jean*0302          ENDDO
                0303          CALL DIAGNOSTICS_FILL(tmpMk,'VVELSLT ',0,Nr,0,1,1,myThid)
                0304         ENDIF
2e735ea21e Andr*0305 
c83206cd4e Jean*0306         IF ( DIAGNOSTICS_IS_ON('WVELSLT ',myThid) ) THEN
                0307          DO bj = myByLo(myThid), myByHi(myThid)
                0308           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0309            DO k=1,Nr
47146cb74f Ed H*0310             km1 = MAX(k-1,1)
337bea277a Jean*0311             DO j = 1,sNy
c83206cd4e Jean*0312              DO i = 1,sNx
8ce775c441 Jean*0313                tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
                0314      &                  *(salt(i,j,k,bi,bj)+salt(i,j,km1,bi,bj))
c83206cd4e Jean*0315              ENDDO
337bea277a Jean*0316             ENDDO
c83206cd4e Jean*0317            ENDDO
337bea277a Jean*0318           ENDDO
c83206cd4e Jean*0319          ENDDO
                0320          CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
                0321         ENDIF
9ba8ef70b1 Jean*0322 
fefa9e1c60 Andr*0323         IF ( DIAGNOSTICS_IS_ON('UVELPHI ',myThid) ) THEN
                0324          DO bj = myByLo(myThid), myByHi(myThid)
                0325           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0326            DO k=1,Nr
fefa9e1c60 Andr*0327             DO j = 1,sNy
                0328              DO i = 1,sNx+1
8ce775c441 Jean*0329                tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
                0330      &       *0.5 _d 0*(totPhiHyd(i,j,k,bi,bj)+totPhiHyd(i-1,j,k,bi,bj))
fefa9e1c60 Andr*0331              ENDDO
                0332             ENDDO
                0333            ENDDO
                0334           ENDDO
                0335          ENDDO
                0336          CALL DIAGNOSTICS_FILL(tmpMk,'UVELPHI ',0,Nr,0,1,1,myThid)
                0337         ENDIF
9ba8ef70b1 Jean*0338 
fefa9e1c60 Andr*0339         IF ( DIAGNOSTICS_IS_ON('VVELPHI ',myThid) ) THEN
                0340          DO bj = myByLo(myThid), myByHi(myThid)
                0341           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0342            DO k=1,Nr
fefa9e1c60 Andr*0343             DO j = 1,sNy+1
                0344              DO i = 1,sNx
8ce775c441 Jean*0345                tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj)
                0346      &       *0.5 _d 0*(totPhiHyd(i,j,k,bi,bj)+totPhiHyd(i,j-1,k,bi,bj))
fefa9e1c60 Andr*0347              ENDDO
                0348             ENDDO
                0349            ENDDO
                0350           ENDDO
                0351          ENDDO
                0352          CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid)
                0353         ENDIF
9ba8ef70b1 Jean*0354 
ee8b184348 Jean*0355         IF ( DIAGNOSTICS_IS_ON('RCENTER ',myThid) ) THEN
e4ea461a62 Andr*0356          DO bj = myByLo(myThid), myByHi(myThid)
                0357           DO bi = myBxLo(myThid), myBxHi(myThid)
57630d677b Jean*0358            DO j = 1,sNy
                0359             DO i = 1,sNx
                0360               tmp1k(i,j,bi,bj) = R_low(i,j,bi,bj)
                0361             ENDDO
                0362            ENDDO
                0363            DO k = Nr,1,-1
                0364             DO j = 1,sNy
                0365              DO i = 1,sNx
                0366               tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj)
b6c3833a19 Jean*0367      &             + (rF(k+1)-rC(k))*hFacC(i,j,k,bi,bj)*rkSign
4c2a1393c6 Jean*0368 C         above: more general (setInterFDr/setCenterDr) than line below
                0369 c    &                      + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0
57630d677b Jean*0370               tmp1k(i,j,bi,bj) =   tmp1k(i,j,bi,bj)
                0371      &                      + drF(k)*hFacC(i,j,k,bi,bj)
                0372              ENDDO
                0373             ENDDO
                0374            ENDDO
e4ea461a62 Andr*0375           ENDDO
                0376          ENDDO
ee8b184348 Jean*0377          CALL DIAGNOSTICS_FILL(tmpMk,'RCENTER ',0,Nr,0,1,1,myThid)
e4ea461a62 Andr*0378         ENDIF
                0379 
7b936be362 Andr*0380 C First fill sequence for state variable tendency diagnostics: subtract state variable
                0381 C NOTE: send a '0' for the bibjflag and allow counter to be incremented
                0382 C     (next fill for these diagnostics will NOT allow counter to be incremented)
                0383 
d9055b137d Jean*0384         tmpFac = -86400. _d 0/deltaTMom
                0385         CALL DIAGNOSTICS_SCALE_FILL( uVel, tmpFac, 1,
                0386      &                              'TOTUTEND',0,Nr,0,1,1,myThid )
                0387         CALL DIAGNOSTICS_SCALE_FILL( vVel, tmpFac, 1,
                0388      &                              'TOTVTEND',0,Nr,0,1,1,myThid )
9ba8ef70b1 Jean*0389 
7b936be362 Andr*0390         IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN
                0391          DO bj = myByLo(myThid), myByHi(myThid)
                0392           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0393            DO k=1,Nr
d9055b137d Jean*0394             tmpFac = -86400. _d 0/dTtracerLev(k)
7b936be362 Andr*0395             DO j = 1,sNy
                0396              DO i = 1,sNx
d9055b137d Jean*0397                tmpMk(i,j,k,bi,bj) = tmpFac*theta(i,j,k,bi,bj)
7b936be362 Andr*0398              ENDDO
                0399             ENDDO
                0400            ENDDO
                0401           ENDDO
                0402          ENDDO
                0403          CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,0,1,1,myThid)
edd113ba3f Ryan*0404 #ifdef ALLOW_LAYERS
                0405          IF ( useLayers ) THEN
                0406            CALL LAYERS_FILL(tmpMk,1,'TOT',0,Nr,0,1,1,myThid)
                0407          ENDIF
ff78c25591 Jean*0408 #endif /* ALLOW_LAYERS */
7b936be362 Andr*0409         ENDIF
9ba8ef70b1 Jean*0410 
7b936be362 Andr*0411         IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN
                0412          DO bj = myByLo(myThid), myByHi(myThid)
                0413           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0414            DO k=1,Nr
d9055b137d Jean*0415             tmpFac = -86400. _d 0/dTtracerLev(k)
7b936be362 Andr*0416             DO j = 1,sNy
                0417              DO i = 1,sNx
d9055b137d Jean*0418                tmpMk(i,j,k,bi,bj) = tmpFac*salt(i,j,k,bi,bj)
7b936be362 Andr*0419              ENDDO
                0420             ENDDO
                0421            ENDDO
                0422           ENDDO
                0423          ENDDO
                0424          CALL DIAGNOSTICS_FILL(tmpMk,'TOTSTEND',0,Nr,0,1,1,myThid)
edd113ba3f Ryan*0425 #ifdef ALLOW_LAYERS
                0426          IF ( useLayers ) THEN
                0427            CALL LAYERS_FILL(tmpMk,2,'TOT',0,Nr,0,1,1,myThid)
                0428          ENDIF
                0429 #endif /* ALLOW_LAYERS */
7b936be362 Andr*0430         ENDIF
                0431 
c83206cd4e Jean*0432 C--   fill momentum state-var diagnostics: end
337bea277a Jean*0433       ENDIF
c83206cd4e Jean*0434 
                0435 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0436 
                0437       IF ( selectVars.EQ.1 .OR. selectVars.EQ.3 ) THEN
                0438 C--   fill tracer state-var diagnostics:
                0439 
ff78c25591 Jean*0440         IF ( nonlinFreeSurf.GT.0 ) THEN
                0441          CALL DIAGNOSTICS_FILL_RS( hFacC,'hFactorC',0,Nr,0,1,1,myThid )
                0442         ENDIF
                0443 
c83206cd4e Jean*0444         CALL DIAGNOSTICS_FILL(theta,'THETA   ',0,Nr,0,1,1,myThid)
                0445         CALL DIAGNOSTICS_FILL(salt, 'SALT    ',0,Nr,0,1,1,myThid)
62f9c88755 Jean*0446 
d316948822 Andr*0447 #ifdef ALLOW_FIZHI
8ce775c441 Jean*0448       IF ( useFIZHI .AND. DIAGNOSTICS_IS_ON('RELHUM  ',myThid) ) THEN
d316948822 Andr*0449        kappa = getcon('KAPPA')
8ce775c441 Jean*0450        DO bj = myByLo(myThid), myByHi(myThid)
                0451         DO bi = myBxLo(myThid), myBxHi(myThid)
                0452          DO j = 1,sNy
                0453           DO i = 1,sNx
                0454            DO k = 1,Nr
                0455             dummy1 = theta(i,j,k,bi,bj) * ((rC(k)/100.)/1000.)**kappa
                0456             dummy2 = rC(k) / 100.
                0457             CALL QSAT(dummy1,dummy2,dummy3,dummy4,.false.)
                0458             tmpMk(i,j,k,bi,bj) = hFacC(i,j,k,bi,bj)
                0459      &                          *salt(i,j,k,bi,bj)*100. / dummy3
                0460            ENDDO
                0461           ENDDO
                0462          ENDDO
                0463         ENDDO
                0464        ENDDO
d316948822 Andr*0465        CALL DIAGNOSTICS_FILL(tmpMk, 'RELHUM  ',0,Nr,0,1,1,myThid)
                0466       ENDIF
                0467 #endif /* ALLOW_FIZHI */
                0468 
d9055b137d Jean*0469         CALL DIAGNOSTICS_SCALE_FILL( theta, oneRL, 2,
62f9c88755 Jean*0470      &                              'THETASQ ',0,Nr,0,1,1,myThid)
d9055b137d Jean*0471         CALL DIAGNOSTICS_SCALE_FILL( salt, oneRL, 2,
62f9c88755 Jean*0472      &                              'SALTSQ  ',0,Nr,0,1,1,myThid)
9ba8ef70b1 Jean*0473 
8ce775c441 Jean*0474 #ifdef ALLOW_GENERIC_ADVDIFF
                0475 # ifdef ALLOW_ADAMSBASHFORTH_3
                0476       IF ( selectVars.EQ.1 ) THEN
                0477 C-    stagger time-step: fill diags after updating myIter
                0478         m1 = 1 + MOD(myIter,2)
                0479       ELSE
                0480 C-    synchronous time-step: fill diags before updating myIter
                0481         m1 = 1 + MOD(myIter+1,2)
                0482       ENDIF
                0483       IF ( AdamsBashforthGt )
                0484      & CALL DIAGNOSTICS_FILL( gtNm(1-OLx,1-OLy,1,1,1,m1),
                0485      &                        'gTinAB  ',0,Nr,0,1,1,myThid )
                0486       IF ( AdamsBashforthGs )
                0487      & CALL DIAGNOSTICS_FILL( gsNm(1-OLx,1-OLy,1,1,1,m1),
                0488      &                        'gSinAB  ',0,Nr,0,1,1,myThid )
                0489 # else /* ALLOW_ADAMSBASHFORTH_3 */
                0490       IF ( AdamsBashforthGt )
                0491      & CALL DIAGNOSTICS_FILL( gtNm1,'gTinAB  ',0,Nr,0,1,1,myThid )
                0492       IF ( AdamsBashforthGs )
                0493      & CALL DIAGNOSTICS_FILL( gsNm1,'gSinAB  ',0,Nr,0,1,1,myThid )
                0494 # endif /* ALLOW_ADAMSBASHFORTH_3 */
                0495 #endif /* ALLOW_GENERIC_ADVDIFF */
                0496 
b21f2d376f Jean*0497 c       IF ( DIAGNOSTICS_IS_ON('SST     ',myThid) ) THEN
                0498 c        DO bj = myByLo(myThid), myByHi(myThid)
                0499 c         DO bi = myBxLo(myThid), myBxHi(myThid)
                0500 c          DO j = 1,sNy
                0501 c           DO i = 1,sNx
                0502 c             tmp1k(i,j,bi,bj) = THETA(i,j,1,bi,bj)
                0503 c           ENDDO
                0504 c          ENDDO
                0505 c         ENDDO
                0506 c        ENDDO
                0507 c        CALL DIAGNOSTICS_FILL(tmp1k,'SST     ',0,1,0,1,1,myThid)
                0508 c       ENDIF
9ba8ef70b1 Jean*0509 
b21f2d376f Jean*0510 c       IF ( DIAGNOSTICS_IS_ON('SSS     ',myThid) ) THEN
                0511 c        DO bj = myByLo(myThid), myByHi(myThid)
                0512 c         DO bi = myBxLo(myThid), myBxHi(myThid)
                0513 c          DO j = 1,sNy
                0514 c           DO i = 1,sNx
                0515 c             tmp1k(i,j,bi,bj) = SALT(i,j,1,bi,bj)
                0516 c           ENDDO
                0517 c          ENDDO
                0518 c         ENDDO
                0519 c        ENDDO
                0520 c        CALL DIAGNOSTICS_FILL(tmp1k,'SSS     ',0,1,0,1,1,myThid)
                0521 c       ENDIF
c83206cd4e Jean*0522 
9ba8ef70b1 Jean*0523         IF ( fluidIsWater .AND.
                0524      &       ( DIAGNOSTICS_IS_ON('SALTanom',myThid)
                0525      &     .OR.DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) ) THEN
23753a76a9 Dimi*0526          DO bj = myByLo(myThid), myByHi(myThid)
                0527           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0528            DO k=1,Nr
23753a76a9 Dimi*0529             DO j = 1,sNy
                0530              DO i = 1,sNx
8ce775c441 Jean*0531                tmpMk(i,j,k,bi,bj) = salt(i,j,k,bi,bj)-35. _d 0
23753a76a9 Dimi*0532              ENDDO
                0533             ENDDO
                0534            ENDDO
                0535           ENDDO
                0536          ENDDO
9ba8ef70b1 Jean*0537          CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
d9055b137d Jean*0538          CALL DIAGNOSTICS_SCALE_FILL( tmpMk, oneRL, 2,
9ba8ef70b1 Jean*0539      &                                'SALTSQan',0,Nr,0,1,1,myThid)
23753a76a9 Dimi*0540         ENDIF
9ba8ef70b1 Jean*0541 
c83206cd4e Jean*0542 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
                0543 
                0544         IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
                0545          DO bj = myByLo(myThid), myByHi(myThid)
                0546           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0547            DO k=1,Nr
337bea277a Jean*0548             DO j = 1,sNy
e2067c2922 Jean*0549               DO i = 1,sNx+1
8ce775c441 Jean*0550                 tmpMk(i,j,k,bi,bj)
                0551      &               = uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
337bea277a Jean*0552               ENDDO
                0553             ENDDO
c83206cd4e Jean*0554            ENDDO
337bea277a Jean*0555           ENDDO
c83206cd4e Jean*0556          ENDDO
                0557          CALL DIAGNOSTICS_FILL(tmpMk,'UVELMASS',0,Nr,0,1,1,myThid)
                0558         ENDIF
2e735ea21e Andr*0559 
c83206cd4e Jean*0560         IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
                0561          DO bj = myByLo(myThid), myByHi(myThid)
                0562           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0563            DO k=1,Nr
e2067c2922 Jean*0564             DO j = 1,sNy+1
337bea277a Jean*0565               DO i = 1,sNx
8ce775c441 Jean*0566                 tmpMk(i,j,k,bi,bj)
                0567      &               = vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj)
337bea277a Jean*0568               ENDDO
                0569             ENDDO
c83206cd4e Jean*0570            ENDDO
337bea277a Jean*0571           ENDDO
c83206cd4e Jean*0572          ENDDO
                0573          CALL DIAGNOSTICS_FILL(tmpMk,'VVELMASS',0,Nr,0,1,1,myThid)
                0574         ENDIF
2e735ea21e Andr*0575 
c83206cd4e Jean*0576         CALL DIAGNOSTICS_FILL(wVel, 'WVELMASS',0,Nr,0,1,1,myThid)
                0577 
                0578         IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
                0579          DO bj = myByLo(myThid), myByHi(myThid)
                0580           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0581            DO k=1,Nr
337bea277a Jean*0582             DO j = 1,sNy
c83206cd4e Jean*0583              DO i = 1,sNx+1
8ce775c441 Jean*0584                tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
                0585      &                  *(theta(i,j,k,bi,bj)+theta(i-1,j,k,bi,bj))
                0586      &                  * hFacW(i,j,k,bi,bj)
c83206cd4e Jean*0587              ENDDO
337bea277a Jean*0588             ENDDO
c83206cd4e Jean*0589            ENDDO
337bea277a Jean*0590           ENDDO
c83206cd4e Jean*0591          ENDDO
                0592          CALL DIAGNOSTICS_FILL(tmpMk,'UTHMASS ',0,Nr,0,1,1,myThid)
                0593         ENDIF
2e735ea21e Andr*0594 
c83206cd4e Jean*0595         IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
                0596          DO bj = myByLo(myThid), myByHi(myThid)
                0597           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0598            DO k=1,Nr
c83206cd4e Jean*0599             DO j = 1,sNy+1
                0600              DO i = 1,sNx
8ce775c441 Jean*0601                tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
                0602      &                  *(theta(i,j,k,bi,bj)+theta(i,j-1,k,bi,bj))
                0603      &                  * hFacS(i,j,k,bi,bj)
c83206cd4e Jean*0604              ENDDO
337bea277a Jean*0605             ENDDO
c83206cd4e Jean*0606            ENDDO
337bea277a Jean*0607           ENDDO
c83206cd4e Jean*0608          ENDDO
                0609          CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
                0610         ENDIF
9ba8ef70b1 Jean*0611 
c83206cd4e Jean*0612         IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN
                0613          DO bj = myByLo(myThid), myByHi(myThid)
                0614           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0615            DO k=1,Nr
c83206cd4e Jean*0616             km1 = MAX(k-1,1)
337bea277a Jean*0617             DO j = 1,sNy
c83206cd4e Jean*0618              DO i = 1,sNx
8ce775c441 Jean*0619                tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
                0620      &                  *(theta(i,j,k,bi,bj)+theta(i,j,km1,bi,bj))
c83206cd4e Jean*0621              ENDDO
                0622             ENDDO
                0623            ENDDO
                0624           ENDDO
                0625          ENDDO
                0626          CALL DIAGNOSTICS_FILL(tmpMk,'WTHMASS ',0,Nr,0,1,1,myThid)
                0627         ENDIF
                0628 
                0629         IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
                0630          DO bj = myByLo(myThid), myByHi(myThid)
                0631           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0632            DO k=1,Nr
c83206cd4e Jean*0633             DO j = 1,sNy
                0634              DO i = 1,sNx+1
8ce775c441 Jean*0635                tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
                0636      &                  *(salt(i,j,k,bi,bj)+salt(i-1,j,k,bi,bj))
                0637      &                  * hFacW(i,j,k,bi,bj)
c83206cd4e Jean*0638              ENDDO
337bea277a Jean*0639             ENDDO
c83206cd4e Jean*0640            ENDDO
337bea277a Jean*0641           ENDDO
c83206cd4e Jean*0642          ENDDO
                0643          CALL DIAGNOSTICS_FILL(tmpMk,'USLTMASS',0,Nr,0,1,1,myThid)
                0644         ENDIF
2e735ea21e Andr*0645 
c83206cd4e Jean*0646         IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
                0647          DO bj = myByLo(myThid), myByHi(myThid)
                0648           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0649            DO k=1,Nr
c83206cd4e Jean*0650             DO j = 1,sNy+1
                0651              DO i = 1,sNx
8ce775c441 Jean*0652                tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
                0653      &                  *(salt(i,j,k,bi,bj)+salt(i,j-1,k,bi,bj))
                0654      &                  * hFacS(i,j,k,bi,bj)
c83206cd4e Jean*0655              ENDDO
337bea277a Jean*0656             ENDDO
c83206cd4e Jean*0657            ENDDO
337bea277a Jean*0658           ENDDO
c83206cd4e Jean*0659          ENDDO
                0660          CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
                0661         ENDIF
9ba8ef70b1 Jean*0662 
c83206cd4e Jean*0663         IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN
                0664          DO bj = myByLo(myThid), myByHi(myThid)
                0665           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0666            DO k=1,Nr
c83206cd4e Jean*0667             km1 = MAX(k-1,1)
                0668             DO j = 1,sNy
                0669              DO i = 1,sNx
8ce775c441 Jean*0670                tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
                0671      &                  *(salt(i,j,k,bi,bj)+salt(i,j,km1,bi,bj))
c83206cd4e Jean*0672              ENDDO
                0673             ENDDO
                0674            ENDDO
                0675           ENDDO
                0676          ENDDO
                0677          CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)
                0678         ENDIF
9ba8ef70b1 Jean*0679 
c83206cd4e Jean*0680 C--   fill tracer state-var diagnostics: end
                0681       ENDIF
                0682 
7b936be362 Andr*0683       IF ( selectVars.EQ.4 ) THEN
                0684 C Second fill sequence for state variable tendency diagnostics: add state variable
3ab2854677 Dimi*0685 C NOTE: send a '-1' for the bibjflag and do not increment counter
d9055b137d Jean*0686 C     (previous fill for these diagnostics DID allow counter to be incremented)
7b936be362 Andr*0687 
d9055b137d Jean*0688         tmpFac = 86400. _d 0/deltaTMom
                0689         DO bj = myByLo(myThid), myByHi(myThid)
                0690          DO bi = myBxLo(myThid), myBxHi(myThid)
                0691           CALL DIAGNOSTICS_SCALE_FILL( uVel, tmpFac, 1,
                0692      &                           'TOTUTEND',0,Nr,-1,bi,bj,myThid )
                0693           CALL DIAGNOSTICS_SCALE_FILL( vVel, tmpFac, 1,
                0694      &                           'TOTVTEND',0,Nr,-1,bi,bj,myThid )
7b936be362 Andr*0695          ENDDO
d9055b137d Jean*0696         ENDDO
9ba8ef70b1 Jean*0697 
7b936be362 Andr*0698         IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN
                0699          DO bj = myByLo(myThid), myByHi(myThid)
                0700           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0701            DO k=1,Nr
d9055b137d Jean*0702             tmpFac = 86400. _d 0/dTtracerLev(k)
7b936be362 Andr*0703             DO j = 1,sNy
                0704              DO i = 1,sNx
d9055b137d Jean*0705                tmpMk(i,j,k,bi,bj) = tmpFac*theta(i,j,k,bi,bj)
7b936be362 Andr*0706              ENDDO
                0707             ENDDO
                0708            ENDDO
                0709            CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,-1,bi,bj,myThid)
edd113ba3f Ryan*0710 #ifdef ALLOW_LAYERS
                0711            IF ( useLayers ) THEN
                0712              CALL LAYERS_FILL(tmpMk,1,'TOT',0,Nr,-1,bi,bj,myThid)
                0713            ENDIF
ff78c25591 Jean*0714 #endif /* ALLOW_LAYERS */
7b936be362 Andr*0715           ENDDO
                0716          ENDDO
                0717         ENDIF
9ba8ef70b1 Jean*0718 
7b936be362 Andr*0719         IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN
                0720          DO bj = myByLo(myThid), myByHi(myThid)
                0721           DO bi = myBxLo(myThid), myBxHi(myThid)
8ce775c441 Jean*0722            DO k=1,Nr
d9055b137d Jean*0723             tmpFac = 86400. _d 0/dTtracerLev(k)
7b936be362 Andr*0724             DO j = 1,sNy
                0725              DO i = 1,sNx
d9055b137d Jean*0726                tmpMk(i,j,k,bi,bj) = tmpFac*salt(i,j,k,bi,bj)
7b936be362 Andr*0727              ENDDO
                0728             ENDDO
                0729            ENDDO
                0730            CALL DIAGNOSTICS_FILL(tmpMk,'TOTSTEND',0,Nr,-1,bi,bj,myThid)
edd113ba3f Ryan*0731 #ifdef ALLOW_LAYERS
                0732            IF ( useLayers ) THEN
                0733             CALL LAYERS_FILL(tmpMk,2,'TOT',0,Nr,-1,bi,bj,myThid)
                0734            ENDIF
ff78c25591 Jean*0735 #endif /* ALLOW_LAYERS */
7b936be362 Andr*0736           ENDDO
                0737          ENDDO
                0738         ENDIF
                0739 
                0740 C--   fill state tendency diagnostics the second time: end
                0741       ENDIF
                0742 
ab685e6b35 Jean*0743 #endif /* ALLOW_DIAGNOSTICS */
9ba8ef70b1 Jean*0744 
                0745       RETURN
337bea277a Jean*0746       END