/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_fill_state.F
ViewVC logotype

Diff of /MITgcm/pkg/diagnostics/diagnostics_fill_state.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.27 by molod, Tue Sep 20 18:30:41 2005 UTC revision 1.41 by jmc, Wed Nov 30 20:59:40 2011 UTC
# Line 6  C $Name$ Line 6  C $Name$
6  CBOP  CBOP
7  C     !ROUTINE: DIAGNOSTICS_FILL_STATE  C     !ROUTINE: DIAGNOSTICS_FILL_STATE
8  C     !INTERFACE:  C     !INTERFACE:
9        SUBROUTINE DIAGNOSTICS_FILL_STATE( selectVars, myThid )        SUBROUTINE DIAGNOSTICS_FILL_STATE( selectVars, myIter, myThid )
10    
11  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
12  C     *==========================================================*  C     *==========================================================*
# Line 22  C     == Global variables === Line 22  C     == Global variables ===
22  #include "EEPARAMS.h"  #include "EEPARAMS.h"
23  #include "PARAMS.h"  #include "PARAMS.h"
24  #include "GRID.h"  #include "GRID.h"
 #include "DYNVARS.h"  
25  #include "SURFACE.h"  #include "SURFACE.h"
26    #include "DYNVARS.h"
27    #include "NH_VARS.h"
28    #ifdef ALLOW_GENERIC_ADVDIFF
29    # include "GAD.h"
30    #endif
31    
32  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
33  C     == Routine arguments ==  C     == Routine arguments ==
# Line 31  C     selectVars :: select which group o Line 35  C     selectVars :: select which group o
35  C            = 1 :: fill-in diagnostics for tracer   variables only  C            = 1 :: fill-in diagnostics for tracer   variables only
36  C            = 2 :: fill-in diagnostics for momentum variables only  C            = 2 :: fill-in diagnostics for momentum variables only
37  C            = 3 :: fill-in diagnostics for momentum & tracer variables  C            = 3 :: fill-in diagnostics for momentum & tracer variables
38    C            = 4 :: fill-in state variable tendency diagnostics the second time
39    C     myIter     :: current Iteration number
40  C     myThid     :: my Thread Id number  C     myThid     :: my Thread Id number
41        INTEGER selectVars        INTEGER selectVars
42        INTEGER myThid        INTEGER myIter
43          INTEGER myThid
44    
45  #ifdef ALLOW_DIAGNOSTICS  #ifdef ALLOW_DIAGNOSTICS
46  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
# Line 42  C     == Local variables == Line 49  C     == Local variables ==
49        EXTERNAL DIAGNOSTICS_IS_ON        EXTERNAL DIAGNOSTICS_IS_ON
50        _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)        _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
51        _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)        _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
52          _RL tmpU (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
53          _RL tmpV (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
54        _RL tmpFac, uBarC, vBarC        _RL tmpFac, uBarC, vBarC
55  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
56        _RL dummy1, dummy2, dummy3, dummy4, kappa, getcon        _RL dummy1, dummy2, dummy3, dummy4, kappa, getcon
57  #endif  #endif
58        INTEGER i,j,K,bi,bj  #ifdef ALLOW_ADAMSBASHFORTH_3
59          INTEGER m1
60    #endif
61          INTEGER i,j,k,bi,bj
62        INTEGER km1        INTEGER km1
63          
64        tmpFac = 1. _d 0        tmpFac = 1. _d 0
65    
66        IF ( selectVars .GE. 2 ) THEN        IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN
67  C--   fill momentum state-var diagnostics:  C--   fill momentum state-var diagnostics:
68    
69          CALL DIAGNOSTICS_FILL(etaN, 'ETAN    ',0, 1,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(etaN, 'ETAN    ',0, 1,0,1,1,myThid)
# Line 71  C--   fill momentum state-var diagnostic Line 83  C--   fill momentum state-var diagnostic
83    
84          CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2,
85       &                              'ETANSQ  ',0, 1,0,1,1,myThid)       &                              'ETANSQ  ',0, 1,0,1,1,myThid)
86          
87  #ifdef EXACT_CONSERV  #ifdef EXACT_CONSERV
88          CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2,
89       &                              'DETADT2 ',0, 1,0,1,1,myThid)       &                              'DETADT2 ',0, 1,0,1,1,myThid)
90  #endif  #endif
91          #ifdef ALLOW_NONHYDROSTATIC
92            IF ( use3Dsolver ) THEN
93              CALL DIAGNOSTICS_FILL( phi_nh,'PHI_NH  ',0,Nr,0,1,1,myThid )
94            ENDIF
95    #endif
96    
97          CALL DIAGNOSTICS_FILL(uVel, 'UVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(uVel, 'UVEL    ',0,Nr,0,1,1,myThid)
98          CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(vVel, 'VVEL    ',0,Nr,0,1,1,myThid)
99          CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(wVel, 'WVEL    ',0,Nr,0,1,1,myThid)
100          
101          CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2,
102       &                              'UVELSQ  ',0,Nr,0,1,1,myThid)       &                              'UVELSQ  ',0,Nr,0,1,1,myThid)
103          CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2,
# Line 90  C--   fill momentum state-var diagnostic Line 107  C--   fill momentum state-var diagnostic
107    
108  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
109    
110          IF ( DIAGNOSTICS_IS_ON('UV_VEL_C',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UE_VEL_C',myThid) .OR.
111         &       DIAGNOSTICS_IS_ON('VN_VEL_C',myThid) .OR.
112         &       DIAGNOSTICS_IS_ON('UV_VEL_C',myThid) ) THEN
113           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
114            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
115             DO K=1,Nr             DO k=1,Nr
116              DO j = 1,sNy              DO j = 1,sNy
117               DO i = 1,sNx               DO i = 1,sNx
118                uBarC = 0.5 _d 0                uBarC = 0.5 _d 0
119       &           *(uVel(i,j,K,bi,bj)+uVel(i+1,j,K,bi,bj))       &           *(uVel(i,j,k,bi,bj)+uVel(i+1,j,k,bi,bj))
120                vBarC = 0.5 _d 0                vBarC = 0.5 _d 0
121       &           *(vVel(i,j,K,bi,bj)+vVel(i,j+1,K,bi,bj))       &           *(vVel(i,j,k,bi,bj)+vVel(i,j+1,k,bi,bj))
122                tmpMk(i,j,K,bi,bj) =                tmpU(i,j) = angleCosC(i,j,bi,bj)*uBarC
123       &            ( angleCosC(i,j,bi,bj)*uBarC       &                   -angleSinC(i,j,bi,bj)*vBarC
124       &             -angleSinC(i,j,bi,bj)*vBarC )                tmpV(i,j) = angleSinC(i,j,bi,bj)*uBarC
125       &           *( angleSinC(i,j,bi,bj)*uBarC       &                   +angleCosC(i,j,bi,bj)*vBarC
126       &             +angleCosC(i,j,bi,bj)*vBarC )                tmpMk(i,j,k,bi,bj) = tmpU(i,j)*tmpV(i,j)
127               ENDDO               ENDDO
128              ENDDO              ENDDO
129                CALL DIAGNOSTICS_FILL(tmpU,'UE_VEL_C',k,1,2,bi,bj,myThid)
130                CALL DIAGNOSTICS_FILL(tmpV,'VN_VEL_C',k,1,2,bi,bj,myThid)
131             ENDDO             ENDDO
132            ENDDO            ENDDO
133           ENDDO           ENDDO
134           CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid)
135          ENDIF          ENDIF
136          
137          IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN
138           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
139            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
140             DO K=1,Nr             DO k=1,Nr
141              DO j = 1,sNy+1              DO j = 1,sNy+1
142               DO i = 1,sNx+1               DO i = 1,sNx+1
143                tmpMk(i,j,K,bi,bj) = 0.25 _d 0                tmpMk(i,j,k,bi,bj) = 0.25 _d 0
144       &           *(uVel(i,j-1,K,bi,bj)+uVel(i,j,K,bi,bj))       &           *(uVel(i,j-1,k,bi,bj)+uVel(i,j,k,bi,bj))
145       &           *(vVel(i-1,j,K,bi,bj)+vVel(i,j,K,bi,bj))       &           *(vVel(i-1,j,k,bi,bj)+vVel(i,j,k,bi,bj))
146               ENDDO               ENDDO
147              ENDDO              ENDDO
148             ENDDO             ENDDO
# Line 129  C---+----1----+----2----+----3----+----4 Line 150  C---+----1----+----2----+----3----+----4
150           ENDDO           ENDDO
151           CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)
152          ENDIF          ENDIF
153          
154          IF ( DIAGNOSTICS_IS_ON('WU_VEL  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('WU_VEL  ',myThid) ) THEN
155           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
156            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
157             DO K=1,Nr             DO k=1,Nr
158              km1 = MAX(k-1,1)              km1 = MAX(k-1,1)
159              DO j = 1,sNy              DO j = 1,sNy
160               DO i = 1,sNx+1               DO i = 1,sNx+1
161                tmpMk(i,j,K,bi,bj) = 0.25 _d 0                tmpMk(i,j,k,bi,bj) = 0.25 _d 0
162       &           *(uVel(i,j,km1,bi,bj)+uVel(i,j,K,bi,bj))       &           *(uVel(i,j,km1,bi,bj)+uVel(i,j,k,bi,bj))
163       &           *(wVel(i-1,j,K,bi,bj)*rA(i-1,j,bi,bj)       &           *(wVel(i-1,j,k,bi,bj)*rA(i-1,j,bi,bj)
164       &            +wVel( i ,j,K,bi,bj)*rA( i ,j,bi,bj)       &            +wVel( i ,j,k,bi,bj)*rA( i ,j,bi,bj)
165       &            )*recip_rAw(i,j,bi,bj)       &            )*recip_rAw(i,j,bi,bj)
166               ENDDO               ENDDO
167              ENDDO              ENDDO
# Line 153  C---+----1----+----2----+----3----+----4 Line 174  C---+----1----+----2----+----3----+----4
174          IF ( DIAGNOSTICS_IS_ON('WV_VEL  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('WV_VEL  ',myThid) ) THEN
175           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
176            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
177             DO K=1,Nr             DO k=1,Nr
178              km1 = MAX(k-1,1)              km1 = MAX(k-1,1)
179              DO j = 1,sNy+1              DO j = 1,sNy+1
180               DO i = 1,sNx               DO i = 1,sNx
181                tmpMk(i,j,K,bi,bj) = 0.25 _d 0                tmpMk(i,j,k,bi,bj) = 0.25 _d 0
182       &           *(vVel(i,j,km1,bi,bj)+vVel(i,j,K,bi,bj))       &           *(vVel(i,j,km1,bi,bj)+vVel(i,j,k,bi,bj))
183       &           *(wVel(i,j-1,K,bi,bj)*rA(i,j-1,bi,bj)       &           *(wVel(i,j-1,k,bi,bj)*rA(i,j-1,bi,bj)
184       &            +wVel(i, j ,K,bi,bj)*rA(i, j ,bi,bj)       &            +wVel(i, j ,k,bi,bj)*rA(i, j ,bi,bj)
185       &            )*recip_rAs(i,j,bi,bj)       &            )*recip_rAs(i,j,bi,bj)
186               ENDDO               ENDDO
187              ENDDO              ENDDO
# Line 175  C---+----1----+----2----+----3----+----4 Line 196  C---+----1----+----2----+----3----+----4
196          IF ( DIAGNOSTICS_IS_ON('UVELTH  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELTH  ',myThid) ) THEN
197           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
198            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
199             DO K=1,Nr             DO k=1,Nr
200              DO j = 1,sNy              DO j = 1,sNy
201               DO i = 1,sNx+1               DO i = 1,sNx+1
202                 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
203       &                  *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))       &                  *(theta(i,j,k,bi,bj)+theta(i-1,j,k,bi,bj))
204               ENDDO               ENDDO
205              ENDDO              ENDDO
206             ENDDO             ENDDO
# Line 187  C---+----1----+----2----+----3----+----4 Line 208  C---+----1----+----2----+----3----+----4
208           ENDDO           ENDDO
209           CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH  ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH  ',0,Nr,0,1,1,myThid)
210          ENDIF          ENDIF
211          
212          IF ( DIAGNOSTICS_IS_ON('VVELTH  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('VVELTH  ',myThid) ) THEN
213           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
214            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
215             DO K=1,Nr             DO k=1,Nr
216              DO j = 1,sNy+1              DO j = 1,sNy+1
217               DO i = 1,sNx               DO i = 1,sNx
218                 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
219       &                  *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))       &                  *(theta(i,j,k,bi,bj)+theta(i,j-1,k,bi,bj))
220               ENDDO               ENDDO
221              ENDDO              ENDDO
222             ENDDO             ENDDO
# Line 203  C---+----1----+----2----+----3----+----4 Line 224  C---+----1----+----2----+----3----+----4
224           ENDDO           ENDDO
225           CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH  ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH  ',0,Nr,0,1,1,myThid)
226          ENDIF          ENDIF
227          
228          IF ( DIAGNOSTICS_IS_ON('WVELTH  ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('WVELTH  ',myThid) ) THEN
229           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
230            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
231             DO K=1,Nr             DO k=1,Nr
232              km1 = MAX(k-1,1)              km1 = MAX(k-1,1)
233              DO j = 1,sNy              DO j = 1,sNy
234               DO i = 1,sNx               DO i = 1,sNx
235                 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
236       &                  *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))       &                  *(theta(i,j,k,bi,bj)+theta(i,j,km1,bi,bj))
237               ENDDO               ENDDO
238              ENDDO              ENDDO
239             ENDDO             ENDDO
# Line 220  C---+----1----+----2----+----3----+----4 Line 241  C---+----1----+----2----+----3----+----4
241           ENDDO           ENDDO
242           CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH  ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH  ',0,Nr,0,1,1,myThid)
243          ENDIF          ENDIF
244          
245          IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN
246           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
247            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
248             DO K=1,Nr             DO k=1,Nr
249              DO j = 1,sNy              DO j = 1,sNy
250               DO i = 1,sNx+1               DO i = 1,sNx+1
251                 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
252       &                  *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))       &                  *(salt(i,j,k,bi,bj)+salt(i-1,j,k,bi,bj))
253               ENDDO               ENDDO
254              ENDDO              ENDDO
255             ENDDO             ENDDO
# Line 236  C---+----1----+----2----+----3----+----4 Line 257  C---+----1----+----2----+----3----+----4
257           ENDDO           ENDDO
258           CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid)
259          ENDIF          ENDIF
260          
261          IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN
262           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
263            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
264             DO K=1,Nr             DO k=1,Nr
265              DO j = 1,sNy+1              DO j = 1,sNy+1
266               DO i = 1,sNx               DO i = 1,sNx
267                 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
268       &                  *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))       &                  *(salt(i,j,k,bi,bj)+salt(i,j-1,k,bi,bj))
269               ENDDO               ENDDO
270              ENDDO              ENDDO
271             ENDDO             ENDDO
# Line 256  C---+----1----+----2----+----3----+----4 Line 277  C---+----1----+----2----+----3----+----4
277          IF ( DIAGNOSTICS_IS_ON('WVELSLT ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('WVELSLT ',myThid) ) THEN
278           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
279            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
280             DO K=1,Nr             DO k=1,Nr
281              km1 = MAX(k-1,1)              km1 = MAX(k-1,1)
282              DO j = 1,sNy              DO j = 1,sNy
283               DO i = 1,sNx               DO i = 1,sNx
284                 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
285       &                  *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))       &                  *(salt(i,j,k,bi,bj)+salt(i,j,km1,bi,bj))
286               ENDDO               ENDDO
287              ENDDO              ENDDO
288             ENDDO             ENDDO
# Line 269  C---+----1----+----2----+----3----+----4 Line 290  C---+----1----+----2----+----3----+----4
290           ENDDO           ENDDO
291           CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
292          ENDIF          ENDIF
293          
294          IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELPHI ',myThid) ) THEN
295             DO bj = myByLo(myThid), myByHi(myThid)
296              DO bi = myBxLo(myThid), myBxHi(myThid)
297               DO k=1,Nr
298                DO j = 1,sNy
299                 DO i = 1,sNx+1
300                   tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
301         &       *0.5 _d 0*(totPhiHyd(i,j,k,bi,bj)+totPhiHyd(i-1,j,k,bi,bj))
302                 ENDDO
303                ENDDO
304               ENDDO
305              ENDDO
306             ENDDO
307             CALL DIAGNOSTICS_FILL(tmpMk,'UVELPHI ',0,Nr,0,1,1,myThid)
308            ENDIF
309    
310            IF ( DIAGNOSTICS_IS_ON('VVELPHI ',myThid) ) THEN
311             DO bj = myByLo(myThid), myByHi(myThid)
312              DO bi = myBxLo(myThid), myBxHi(myThid)
313               DO k=1,Nr
314                DO j = 1,sNy+1
315                 DO i = 1,sNx
316                   tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj)
317         &       *0.5 _d 0*(totPhiHyd(i,j,k,bi,bj)+totPhiHyd(i,j-1,k,bi,bj))
318                 ENDDO
319                ENDDO
320               ENDDO
321              ENDDO
322             ENDDO
323             CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid)
324            ENDIF
325    
326            IF ( DIAGNOSTICS_IS_ON('RCENTER ',myThid) ) THEN
327           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
328            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
329             DO j = 1,sNy             DO j = 1,sNy
# Line 282  C---+----1----+----2----+----3----+----4 Line 335  C---+----1----+----2----+----3----+----4
335              DO j = 1,sNy              DO j = 1,sNy
336               DO i = 1,sNx               DO i = 1,sNx
337                tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj)                tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj)
338       &                      + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0       &             + (rF(k+1)-rC(k))*hFacC(i,j,k,bi,bj)*rkSign
339    C         above: more general (setInterFDr/setCenterDr) than line below
340    c    &                      + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0
341                tmp1k(i,j,bi,bj) =   tmp1k(i,j,bi,bj)                tmp1k(i,j,bi,bj) =   tmp1k(i,j,bi,bj)
342       &                      + drF(k)*hFacC(i,j,k,bi,bj)       &                      + drF(k)*hFacC(i,j,k,bi,bj)
343               ENDDO               ENDDO
# Line 290  C---+----1----+----2----+----3----+----4 Line 345  C---+----1----+----2----+----3----+----4
345             ENDDO             ENDDO
346            ENDDO            ENDDO
347           ENDDO           ENDDO
348           CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'RCENTER ',0,Nr,0,1,1,myThid)
349            ENDIF
350    
351    C First fill sequence for state variable tendency diagnostics: subtract state variable
352    C NOTE: send a '0' for the bibjflag and allow counter to be incremented
353    C     (next fill for these diagnostics will NOT allow counter to be incremented)
354    
355            IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN
356             DO bj = myByLo(myThid), myByHi(myThid)
357              DO bi = myBxLo(myThid), myBxHi(myThid)
358               DO k=1,Nr
359                DO j = 1,sNy
360                 DO i = 1,sNx+1
361                   tmpMk(i,j,k,bi,bj) = -uVel(i,j,k,bi,bj)
362         .                    *86400./dTtracerLev(1)
363                 ENDDO
364                ENDDO
365               ENDDO
366              ENDDO
367             ENDDO
368             CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,0,1,1,myThid)
369            ENDIF
370    
371            IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN
372             DO bj = myByLo(myThid), myByHi(myThid)
373              DO bi = myBxLo(myThid), myBxHi(myThid)
374               DO k=1,Nr
375                DO j = 1,sNy+1
376                 DO i = 1,sNx
377                   tmpMk(i,j,k,bi,bj) = -vVel(i,j,k,bi,bj)
378         .                    *86400./dTtracerLev(1)
379                 ENDDO
380                ENDDO
381               ENDDO
382              ENDDO
383             ENDDO
384             CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,0,1,1,myThid)
385            ENDIF
386    
387            IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN
388             DO bj = myByLo(myThid), myByHi(myThid)
389              DO bi = myBxLo(myThid), myBxHi(myThid)
390               DO k=1,Nr
391                DO j = 1,sNy
392                 DO i = 1,sNx
393                   tmpMk(i,j,k,bi,bj) = -theta(i,j,k,bi,bj)
394         .                    *86400./dTtracerLev(1)
395                 ENDDO
396                ENDDO
397               ENDDO
398              ENDDO
399             ENDDO
400             CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,0,1,1,myThid)
401            ENDIF
402    
403            IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN
404             DO bj = myByLo(myThid), myByHi(myThid)
405              DO bi = myBxLo(myThid), myBxHi(myThid)
406               DO k=1,Nr
407                DO j = 1,sNy
408                 DO i = 1,sNx
409                   tmpMk(i,j,k,bi,bj) = -salt(i,j,k,bi,bj)
410         .                    *86400./dTtracerLev(1)
411                 ENDDO
412                ENDDO
413               ENDDO
414              ENDDO
415             ENDDO
416             CALL DIAGNOSTICS_FILL(tmpMk,'TOTSTEND',0,Nr,0,1,1,myThid)
417          ENDIF          ENDIF
418    
419  C--   fill momentum state-var diagnostics: end  C--   fill momentum state-var diagnostics: end
# Line 305  C--   fill tracer state-var diagnostics: Line 428  C--   fill tracer state-var diagnostics:
428          CALL DIAGNOSTICS_FILL(salt, 'SALT    ',0,Nr,0,1,1,myThid)          CALL DIAGNOSTICS_FILL(salt, 'SALT    ',0,Nr,0,1,1,myThid)
429    
430  #ifdef ALLOW_FIZHI  #ifdef ALLOW_FIZHI
431        IF((useFIZHI).and.(DIAGNOSTICS_IS_ON('RELHUM  ',myThid)))THEN        IF ( useFIZHI .AND. DIAGNOSTICS_IS_ON('RELHUM  ',myThid) ) THEN
432         kappa = getcon('KAPPA')         kappa = getcon('KAPPA')
433         do bj = myByLo(myThid), myByHi(myThid)         DO bj = myByLo(myThid), myByHi(myThid)
434         do bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
435          do j = 1,sNy           DO j = 1,sNy
436           do i = 1,sNx            DO i = 1,sNx
437            do K = 1,Nr             DO k = 1,Nr
438             dummy1 = theta(i,j,k,bi,bj) * ((rc(k)/100.)/1000.)**kappa              dummy1 = theta(i,j,k,bi,bj) * ((rC(k)/100.)/1000.)**kappa
439             dummy2 = rc(k) / 100.              dummy2 = rC(k) / 100.
440             call qsat(dummy1,dummy2,dummy3,dummy4,.false.)              CALL QSAT(dummy1,dummy2,dummy3,dummy4,.false.)
441             tmpMk(i,j,K,bi,bj) = hfacC(i,j,K,bi,bj) *              tmpMk(i,j,k,bi,bj) = hFacC(i,j,k,bi,bj)
442       .                    salt(i,j,k,bi,bj) * 100. / dummy3       &                          *salt(i,j,k,bi,bj)*100. / dummy3
443            enddo             ENDDO
444           enddo            ENDDO
445          enddo           ENDDO
446         enddo          ENDDO
447         enddo         ENDDO
448         CALL DIAGNOSTICS_FILL(tmpMk, 'RELHUM  ',0,Nr,0,1,1,myThid)         CALL DIAGNOSTICS_FILL(tmpMk, 'RELHUM  ',0,Nr,0,1,1,myThid)
449        ENDIF        ENDIF
450  #endif /* ALLOW_FIZHI */  #endif /* ALLOW_FIZHI */
# Line 330  C--   fill tracer state-var diagnostics: Line 453  C--   fill tracer state-var diagnostics:
453       &                              'THETASQ ',0,Nr,0,1,1,myThid)       &                              'THETASQ ',0,Nr,0,1,1,myThid)
454          CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,          CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,
455       &                              'SALTSQ  ',0,Nr,0,1,1,myThid)       &                              'SALTSQ  ',0,Nr,0,1,1,myThid)
456          
457    #ifdef ALLOW_GENERIC_ADVDIFF
458    # ifdef ALLOW_ADAMSBASHFORTH_3
459          IF ( selectVars.EQ.1 ) THEN
460    C-    stagger time-step: fill diags after updating myIter
461            m1 = 1 + MOD(myIter,2)
462          ELSE
463    C-    synchronous time-step: fill diags before updating myIter
464            m1 = 1 + MOD(myIter+1,2)
465          ENDIF
466          IF ( AdamsBashforthGt )
467         & CALL DIAGNOSTICS_FILL( gtNm(1-OLx,1-OLy,1,1,1,m1),
468         &                        'gTinAB  ',0,Nr,0,1,1,myThid )
469          IF ( AdamsBashforthGs )
470         & CALL DIAGNOSTICS_FILL( gsNm(1-OLx,1-OLy,1,1,1,m1),
471         &                        'gSinAB  ',0,Nr,0,1,1,myThid )
472    # else /* ALLOW_ADAMSBASHFORTH_3 */
473          IF ( AdamsBashforthGt )
474         & CALL DIAGNOSTICS_FILL( gtNm1,'gTinAB  ',0,Nr,0,1,1,myThid )
475          IF ( AdamsBashforthGs )
476         & CALL DIAGNOSTICS_FILL( gsNm1,'gSinAB  ',0,Nr,0,1,1,myThid )
477    # endif /* ALLOW_ADAMSBASHFORTH_3 */
478    #endif /* ALLOW_GENERIC_ADVDIFF */
479    
480  c       IF ( DIAGNOSTICS_IS_ON('SST     ',myThid) ) THEN  c       IF ( DIAGNOSTICS_IS_ON('SST     ',myThid) ) THEN
481  c        DO bj = myByLo(myThid), myByHi(myThid)  c        DO bj = myByLo(myThid), myByHi(myThid)
482  c         DO bi = myBxLo(myThid), myBxHi(myThid)  c         DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 343  c         ENDDO Line 489  c         ENDDO
489  c        ENDDO  c        ENDDO
490  c        CALL DIAGNOSTICS_FILL(tmp1k,'SST     ',0,1,0,1,1,myThid)  c        CALL DIAGNOSTICS_FILL(tmp1k,'SST     ',0,1,0,1,1,myThid)
491  c       ENDIF  c       ENDIF
492          
493  c       IF ( DIAGNOSTICS_IS_ON('SSS     ',myThid) ) THEN  c       IF ( DIAGNOSTICS_IS_ON('SSS     ',myThid) ) THEN
494  c        DO bj = myByLo(myThid), myByHi(myThid)  c        DO bj = myByLo(myThid), myByHi(myThid)
495  c         DO bi = myBxLo(myThid), myBxHi(myThid)  c         DO bi = myBxLo(myThid), myBxHi(myThid)
# Line 357  c        ENDDO Line 503  c        ENDDO
503  c        CALL DIAGNOSTICS_FILL(tmp1k,'SSS     ',0,1,0,1,1,myThid)  c        CALL DIAGNOSTICS_FILL(tmp1k,'SSS     ',0,1,0,1,1,myThid)
504  c       ENDIF  c       ENDIF
505    
506          IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN          IF ( fluidIsWater .AND.
507         &       ( DIAGNOSTICS_IS_ON('SALTanom',myThid)
508         &     .OR.DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) ) THEN
509           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
510            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
511             DO K=1,Nr             DO k=1,Nr
512              DO j = 1,sNy              DO j = 1,sNy
513               DO i = 1,sNx               DO i = 1,sNx
514                 tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)-35. _d 0                 tmpMk(i,j,k,bi,bj) = salt(i,j,k,bi,bj)-35. _d 0
515               ENDDO               ENDDO
516              ENDDO              ENDDO
517             ENDDO             ENDDO
518            ENDDO            ENDDO
519           ENDDO           ENDDO
520           CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
521             CALL DIAGNOSTICS_SCALE_FILL(tmpMk,tmpFac,2,
522         &                                'SALTSQan',0,Nr,0,1,1,myThid)
523          ENDIF          ENDIF
524          
         IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN  
          DO bj = myByLo(myThid), myByHi(myThid)  
           DO bi = myBxLo(myThid), myBxHi(myThid)  
            DO K=1,Nr  
             DO j = 1,sNy  
              DO i = 1,sNx  
                tmpMk(i,j,K,bi,bj) = (salt(i,j,K,bi,bj)-35. _d 0)  
      &                             *(salt(i,j,K,bi,bj)-35. _d 0)  
              ENDDO  
             ENDDO  
            ENDDO  
           ENDDO  
          ENDDO  
          CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid)  
         ENDIF  
         
525  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
526    
527          IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
528           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
529            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
530             DO K=1,Nr             DO k=1,Nr
531              DO j = 1,sNy              DO j = 1,sNy
532                DO i = 1,sNx                DO i = 1,sNx+1
533                  tmpMk(i,j,K,bi,bj)                  tmpMk(i,j,k,bi,bj)
534       &               = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)       &               = uVel(i,j,k,bi,bj)*hFacW(i,j,k,bi,bj)
535                ENDDO                ENDDO
536              ENDDO              ENDDO
537             ENDDO             ENDDO
# Line 409  C---+----1----+----2----+----3----+----4 Line 543  C---+----1----+----2----+----3----+----4
543          IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
544           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
545            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
546             DO K=1,Nr             DO k=1,Nr
547              DO j = 1,sNy              DO j = 1,sNy+1
548                DO i = 1,sNx                DO i = 1,sNx
549                  tmpMk(i,j,K,bi,bj)                  tmpMk(i,j,k,bi,bj)
550       &               = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)       &               = vVel(i,j,k,bi,bj)*hFacS(i,j,k,bi,bj)
551                ENDDO                ENDDO
552              ENDDO              ENDDO
553             ENDDO             ENDDO
# Line 427  C---+----1----+----2----+----3----+----4 Line 561  C---+----1----+----2----+----3----+----4
561          IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
562           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
563            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
564             DO K=1,Nr             DO k=1,Nr
565              DO j = 1,sNy              DO j = 1,sNy
566               DO i = 1,sNx+1               DO i = 1,sNx+1
567                 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
568       &                  *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))       &                  *(theta(i,j,k,bi,bj)+theta(i-1,j,k,bi,bj))
569       &                  * hFacW(i,j,K,bi,bj)       &                  * hFacW(i,j,k,bi,bj)
570               ENDDO               ENDDO
571              ENDDO              ENDDO
572             ENDDO             ENDDO
# Line 444  C---+----1----+----2----+----3----+----4 Line 578  C---+----1----+----2----+----3----+----4
578          IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
579           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
580            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
581             DO K=1,Nr             DO k=1,Nr
582              DO j = 1,sNy+1              DO j = 1,sNy+1
583               DO i = 1,sNx               DO i = 1,sNx
584                 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
585       &                  *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))       &                  *(theta(i,j,k,bi,bj)+theta(i,j-1,k,bi,bj))
586       &                  * hFacS(i,j,K,bi,bj)       &                  * hFacS(i,j,k,bi,bj)
587               ENDDO               ENDDO
588              ENDDO              ENDDO
589             ENDDO             ENDDO
# Line 457  C---+----1----+----2----+----3----+----4 Line 591  C---+----1----+----2----+----3----+----4
591           ENDDO           ENDDO
592           CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
593          ENDIF          ENDIF
594          
595          IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN
596           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
597            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
598             DO K=1,Nr             DO k=1,Nr
599              km1 = MAX(k-1,1)              km1 = MAX(k-1,1)
600              DO j = 1,sNy              DO j = 1,sNy
601               DO i = 1,sNx               DO i = 1,sNx
602                 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
603       &                  *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))       &                  *(theta(i,j,k,bi,bj)+theta(i,j,km1,bi,bj))
604               ENDDO               ENDDO
605              ENDDO              ENDDO
606             ENDDO             ENDDO
# Line 478  C---+----1----+----2----+----3----+----4 Line 612  C---+----1----+----2----+----3----+----4
612          IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
613           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
614            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
615             DO K=1,Nr             DO k=1,Nr
616              DO j = 1,sNy              DO j = 1,sNy
617               DO i = 1,sNx+1               DO i = 1,sNx+1
618                 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)*0.5 _d 0
619       &                  *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))       &                  *(salt(i,j,k,bi,bj)+salt(i-1,j,k,bi,bj))
620       &                  * hFacW(i,j,K,bi,bj)       &                  * hFacW(i,j,k,bi,bj)
621               ENDDO               ENDDO
622              ENDDO              ENDDO
623             ENDDO             ENDDO
# Line 495  C---+----1----+----2----+----3----+----4 Line 629  C---+----1----+----2----+----3----+----4
629          IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
630           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
631            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
632             DO K=1,Nr             DO k=1,Nr
633              DO j = 1,sNy+1              DO j = 1,sNy+1
634               DO i = 1,sNx               DO i = 1,sNx
635                 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)*0.5 _d 0
636       &                  *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))       &                  *(salt(i,j,k,bi,bj)+salt(i,j-1,k,bi,bj))
637       &                  * hFacS(i,j,K,bi,bj)       &                  * hFacS(i,j,k,bi,bj)
638               ENDDO               ENDDO
639              ENDDO              ENDDO
640             ENDDO             ENDDO
# Line 508  C---+----1----+----2----+----3----+----4 Line 642  C---+----1----+----2----+----3----+----4
642           ENDDO           ENDDO
643           CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
644          ENDIF          ENDIF
645          
646          IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN          IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN
647           DO bj = myByLo(myThid), myByHi(myThid)           DO bj = myByLo(myThid), myByHi(myThid)
648            DO bi = myBxLo(myThid), myBxHi(myThid)            DO bi = myBxLo(myThid), myBxHi(myThid)
649             DO K=1,Nr             DO k=1,Nr
650              km1 = MAX(k-1,1)              km1 = MAX(k-1,1)
651              DO j = 1,sNy              DO j = 1,sNy
652               DO i = 1,sNx               DO i = 1,sNx
653                 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0                 tmpMk(i,j,k,bi,bj) = wVel(i,j,k,bi,bj)*0.5 _d 0
654       &                  *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))       &                  *(salt(i,j,k,bi,bj)+salt(i,j,km1,bi,bj))
655               ENDDO               ENDDO
656              ENDDO              ENDDO
657             ENDDO             ENDDO
# Line 525  C---+----1----+----2----+----3----+----4 Line 659  C---+----1----+----2----+----3----+----4
659           ENDDO           ENDDO
660           CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)           CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)
661          ENDIF          ENDIF
662          
663  C--   fill tracer state-var diagnostics: end  C--   fill tracer state-var diagnostics: end
664        ENDIF        ENDIF
665    
666          IF ( selectVars.EQ.4 ) THEN
667    C Second fill sequence for state variable tendency diagnostics: add state variable
668    C NOTE: send a '-1' for the bibjflag and do not increment counter
669    C     (next fill for these diagnostics WILL allow counter to be incremented)
670    
671            IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN
672             DO bj = myByLo(myThid), myByHi(myThid)
673              DO bi = myBxLo(myThid), myBxHi(myThid)
674               DO k=1,Nr
675                DO j = 1,sNy
676                 DO i = 1,sNx+1
677                   tmpMk(i,j,k,bi,bj) = uVel(i,j,k,bi,bj)
678         .                    *86400./dTtracerLev(1)
679                 ENDDO
680                ENDDO
681               ENDDO
682               CALL DIAGNOSTICS_FILL(tmpMk,'TOTUTEND',0,Nr,-1,bi,bj,myThid)
683              ENDDO
684             ENDDO
685            ENDIF
686    
687            IF ( DIAGNOSTICS_IS_ON('TOTVTEND',myThid) ) THEN
688             DO bj = myByLo(myThid), myByHi(myThid)
689              DO bi = myBxLo(myThid), myBxHi(myThid)
690               DO k=1,Nr
691                DO j = 1,sNy+1
692                 DO i = 1,sNx
693                   tmpMk(i,j,k,bi,bj) = vVel(i,j,k,bi,bj)
694         .                    *86400./dTtracerLev(1)
695                 ENDDO
696                ENDDO
697               ENDDO
698               CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,-1,bi,bj,myThid)
699              ENDDO
700             ENDDO
701            ENDIF
702    
703            IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN
704             DO bj = myByLo(myThid), myByHi(myThid)
705              DO bi = myBxLo(myThid), myBxHi(myThid)
706               DO k=1,Nr
707                DO j = 1,sNy
708                 DO i = 1,sNx
709                   tmpMk(i,j,k,bi,bj) = theta(i,j,k,bi,bj)
710         .                    *86400./dTtracerLev(1)
711                 ENDDO
712                ENDDO
713               ENDDO
714               CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,-1,bi,bj,myThid)
715              ENDDO
716             ENDDO
717            ENDIF
718    
719            IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN
720             DO bj = myByLo(myThid), myByHi(myThid)
721              DO bi = myBxLo(myThid), myBxHi(myThid)
722               DO k=1,Nr
723                DO j = 1,sNy
724                 DO i = 1,sNx
725                   tmpMk(i,j,k,bi,bj) = salt(i,j,k,bi,bj)
726         .                    *86400./dTtracerLev(1)
727                 ENDDO
728                ENDDO
729               ENDDO
730               CALL DIAGNOSTICS_FILL(tmpMk,'TOTSTEND',0,Nr,-1,bi,bj,myThid)
731              ENDDO
732             ENDDO
733            ENDIF
734    
735    C--   fill state tendency diagnostics the second time: end
736          ENDIF
737    
738  #endif /* ALLOW_DIAGNOSTICS */  #endif /* ALLOW_DIAGNOSTICS */
739          
740        RETURN        RETURN
741        END        END

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.41

  ViewVC Help
Powered by ViewVC 1.1.22