Back to home page

MITgcm

 
 

    


File indexing completed on 2026-05-23 05:08:31 UTC

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