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

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

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


Revision 1.27 - (hide annotations) (download)
Tue Sep 20 18:30:41 2005 UTC (18 years, 8 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint57t_post, checkpoint57v_post, checkpoint57w_post, checkpint57u_post
Changes since 1.26: +1 -3 lines
Remove print debug statement (was left in by accident....)

1 molod 1.27 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_fill_state.F,v 1.26 2005/08/25 20:51:38 jmc Exp $
2 edhill 1.6 C $Name: $
3    
4 edhill 1.10 #include "DIAG_OPTIONS.h"
5 jmc 1.7
6 jmc 1.15 CBOP
7     C !ROUTINE: DIAGNOSTICS_FILL_STATE
8     C !INTERFACE:
9     SUBROUTINE DIAGNOSTICS_FILL_STATE( selectVars, myThid )
10    
11     C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | SUBROUTINE DIAGNOSTICS_FILL_STATE
14     C | o Fill-in main code, state-variables diagnostics
15     C *==========================================================*
16     C \ev
17    
18     C !USES:
19     IMPLICIT NONE
20     C == Global variables ===
21 molod 1.1 #include "SIZE.h"
22     #include "EEPARAMS.h"
23 molod 1.24 #include "PARAMS.h"
24 molod 1.1 #include "GRID.h"
25     #include "DYNVARS.h"
26 jmc 1.12 #include "SURFACE.h"
27 molod 1.1
28 jmc 1.15 C !INPUT/OUTPUT PARAMETERS:
29     C == Routine arguments ==
30     C selectVars :: select which group of dianostics variables to fill-in
31     C = 1 :: fill-in diagnostics for tracer variables only
32     C = 2 :: fill-in diagnostics for momentum variables only
33     C = 3 :: fill-in diagnostics for momentum & tracer variables
34     C myThid :: my Thread Id number
35     INTEGER selectVars
36 jmc 1.13 INTEGER myThid
37 jmc 1.7
38     #ifdef ALLOW_DIAGNOSTICS
39 jmc 1.15 C !LOCAL VARIABLES:
40     C == Local variables ==
41 jmc 1.13 LOGICAL DIAGNOSTICS_IS_ON
42     EXTERNAL DIAGNOSTICS_IS_ON
43     _RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
44     _RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
45 jmc 1.23 _RL tmpFac, uBarC, vBarC
46 jmc 1.25 #ifdef ALLOW_FIZHI
47 molod 1.24 _RL dummy1, dummy2, dummy3, dummy4, kappa, getcon
48 jmc 1.25 #endif
49 jmc 1.13 INTEGER i,j,K,bi,bj
50     INTEGER km1
51    
52 jmc 1.21 tmpFac = 1. _d 0
53    
54 jmc 1.15 IF ( selectVars .GE. 2 ) THEN
55     C-- fill momentum state-var diagnostics:
56    
57 jmc 1.21 CALL DIAGNOSTICS_FILL(etaN, 'ETAN ',0, 1,0,1,1,myThid)
58 molod 1.22
59     IF ( DIAGNOSTICS_IS_ON('RSURF ',myThid) ) THEN
60     DO bj = myByLo(myThid), myByHi(myThid)
61     DO bi = myBxLo(myThid), myBxHi(myThid)
62     DO j = 1,sNy
63     DO i = 1,sNx
64     tmp1k(i,j,bi,bj) = Ro_surf(i,j,bi,bj) + etaH(i,j,bi,bj)
65     ENDDO
66     ENDDO
67     ENDDO
68     ENDDO
69     CALL DIAGNOSTICS_FILL(tmp1k,'RSURF ',0,1,0,1,1,myThid)
70     ENDIF
71    
72 jmc 1.21 CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2,
73     & 'ETANSQ ',0, 1,0,1,1,myThid)
74 jmc 1.14
75 jmc 1.12 #ifdef EXACT_CONSERV
76 jmc 1.21 CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2,
77     & 'DETADT2 ',0, 1,0,1,1,myThid)
78 jmc 1.12 #endif
79    
80 jmc 1.15 CALL DIAGNOSTICS_FILL(uVel, 'UVEL ',0,Nr,0,1,1,myThid)
81     CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid)
82     CALL DIAGNOSTICS_FILL(wVel, 'WVEL ',0,Nr,0,1,1,myThid)
83    
84 jmc 1.21 CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2,
85     & 'UVELSQ ',0,Nr,0,1,1,myThid)
86     CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2,
87     & 'VVELSQ ',0,Nr,0,1,1,myThid)
88     CALL DIAGNOSTICS_SCALE_FILL(wVel,tmpFac,2,
89     & 'WVELSQ ',0,Nr,0,1,1,myThid)
90    
91 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
92    
93     IF ( DIAGNOSTICS_IS_ON('UV_VEL_C',myThid) ) THEN
94     DO bj = myByLo(myThid), myByHi(myThid)
95     DO bi = myBxLo(myThid), myBxHi(myThid)
96     DO K=1,Nr
97     DO j = 1,sNy
98     DO i = 1,sNx
99 jmc 1.23 uBarC = 0.5 _d 0
100 jmc 1.15 & *(uVel(i,j,K,bi,bj)+uVel(i+1,j,K,bi,bj))
101 jmc 1.23 vBarC = 0.5 _d 0
102 jmc 1.15 & *(vVel(i,j,K,bi,bj)+vVel(i,j+1,K,bi,bj))
103 jmc 1.23 tmpMk(i,j,K,bi,bj) =
104     & ( angleCosC(i,j,bi,bj)*uBarC
105     & -angleSinC(i,j,bi,bj)*vBarC )
106     & *( angleSinC(i,j,bi,bj)*uBarC
107     & +angleCosC(i,j,bi,bj)*vBarC )
108 jmc 1.15 ENDDO
109     ENDDO
110     ENDDO
111     ENDDO
112     ENDDO
113     CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid)
114     ENDIF
115    
116     IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN
117     DO bj = myByLo(myThid), myByHi(myThid)
118     DO bi = myBxLo(myThid), myBxHi(myThid)
119     DO K=1,Nr
120     DO j = 1,sNy+1
121     DO i = 1,sNx+1
122     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
123     & *(uVel(i,j-1,K,bi,bj)+uVel(i,j,K,bi,bj))
124     & *(vVel(i-1,j,K,bi,bj)+vVel(i,j,K,bi,bj))
125     ENDDO
126     ENDDO
127     ENDDO
128     ENDDO
129     ENDDO
130     CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)
131     ENDIF
132    
133 jmc 1.16 IF ( DIAGNOSTICS_IS_ON('WU_VEL ',myThid) ) THEN
134     DO bj = myByLo(myThid), myByHi(myThid)
135     DO bi = myBxLo(myThid), myBxHi(myThid)
136     DO K=1,Nr
137     km1 = MAX(k-1,1)
138     DO j = 1,sNy
139     DO i = 1,sNx+1
140     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
141 jmc 1.17 & *(uVel(i,j,km1,bi,bj)+uVel(i,j,K,bi,bj))
142 jmc 1.16 & *(wVel(i-1,j,K,bi,bj)*rA(i-1,j,bi,bj)
143     & +wVel( i ,j,K,bi,bj)*rA( i ,j,bi,bj)
144     & )*recip_rAw(i,j,bi,bj)
145     ENDDO
146     ENDDO
147     ENDDO
148     ENDDO
149     ENDDO
150     CALL DIAGNOSTICS_FILL(tmpMk,'WU_VEL ',0,Nr,0,1,1,myThid)
151     ENDIF
152    
153     IF ( DIAGNOSTICS_IS_ON('WV_VEL ',myThid) ) THEN
154     DO bj = myByLo(myThid), myByHi(myThid)
155     DO bi = myBxLo(myThid), myBxHi(myThid)
156     DO K=1,Nr
157     km1 = MAX(k-1,1)
158     DO j = 1,sNy+1
159     DO i = 1,sNx
160     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
161 jmc 1.17 & *(vVel(i,j,km1,bi,bj)+vVel(i,j,K,bi,bj))
162 jmc 1.16 & *(wVel(i,j-1,K,bi,bj)*rA(i,j-1,bi,bj)
163     & +wVel(i, j ,K,bi,bj)*rA(i, j ,bi,bj)
164     & )*recip_rAs(i,j,bi,bj)
165     ENDDO
166     ENDDO
167     ENDDO
168     ENDDO
169     ENDDO
170     CALL DIAGNOSTICS_FILL(tmpMk,'WV_VEL ',0,Nr,0,1,1,myThid)
171     ENDIF
172    
173 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
174    
175     IF ( DIAGNOSTICS_IS_ON('UVELTH ',myThid) ) THEN
176     DO bj = myByLo(myThid), myByHi(myThid)
177     DO bi = myBxLo(myThid), myBxHi(myThid)
178     DO K=1,Nr
179 jmc 1.13 DO j = 1,sNy
180 jmc 1.15 DO i = 1,sNx+1
181     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
182     & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
183     ENDDO
184 jmc 1.13 ENDDO
185 jmc 1.15 ENDDO
186 jmc 1.13 ENDDO
187 jmc 1.15 ENDDO
188     CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH ',0,Nr,0,1,1,myThid)
189     ENDIF
190    
191     IF ( DIAGNOSTICS_IS_ON('VVELTH ',myThid) ) THEN
192     DO bj = myByLo(myThid), myByHi(myThid)
193     DO bi = myBxLo(myThid), myBxHi(myThid)
194     DO K=1,Nr
195     DO j = 1,sNy+1
196     DO i = 1,sNx
197     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
198     & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
199     ENDDO
200 jmc 1.13 ENDDO
201 jmc 1.15 ENDDO
202 jmc 1.13 ENDDO
203 jmc 1.15 ENDDO
204     CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH ',0,Nr,0,1,1,myThid)
205     ENDIF
206    
207     IF ( DIAGNOSTICS_IS_ON('WVELTH ',myThid) ) THEN
208     DO bj = myByLo(myThid), myByHi(myThid)
209     DO bi = myBxLo(myThid), myBxHi(myThid)
210     DO K=1,Nr
211     km1 = MAX(k-1,1)
212 jmc 1.13 DO j = 1,sNy
213 jmc 1.15 DO i = 1,sNx
214     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
215     & *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
216     ENDDO
217 jmc 1.13 ENDDO
218 jmc 1.15 ENDDO
219 jmc 1.13 ENDDO
220 jmc 1.15 ENDDO
221     CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH ',0,Nr,0,1,1,myThid)
222     ENDIF
223 jmc 1.13
224 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN
225     DO bj = myByLo(myThid), myByHi(myThid)
226     DO bi = myBxLo(myThid), myBxHi(myThid)
227     DO K=1,Nr
228 jmc 1.13 DO j = 1,sNy
229 jmc 1.15 DO i = 1,sNx+1
230     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
231     & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
232     ENDDO
233 jmc 1.13 ENDDO
234 jmc 1.15 ENDDO
235 jmc 1.13 ENDDO
236 jmc 1.15 ENDDO
237     CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid)
238     ENDIF
239    
240     IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN
241     DO bj = myByLo(myThid), myByHi(myThid)
242     DO bi = myBxLo(myThid), myBxHi(myThid)
243     DO K=1,Nr
244     DO j = 1,sNy+1
245     DO i = 1,sNx
246     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
247     & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
248     ENDDO
249 jmc 1.13 ENDDO
250 jmc 1.15 ENDDO
251 jmc 1.13 ENDDO
252 jmc 1.15 ENDDO
253     CALL DIAGNOSTICS_FILL(tmpMk,'VVELSLT ',0,Nr,0,1,1,myThid)
254     ENDIF
255    
256     IF ( DIAGNOSTICS_IS_ON('WVELSLT ',myThid) ) THEN
257     DO bj = myByLo(myThid), myByHi(myThid)
258     DO bi = myBxLo(myThid), myBxHi(myThid)
259     DO K=1,Nr
260     km1 = MAX(k-1,1)
261 jmc 1.13 DO j = 1,sNy
262 jmc 1.15 DO i = 1,sNx
263     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
264     & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
265     ENDDO
266 jmc 1.13 ENDDO
267 jmc 1.15 ENDDO
268 jmc 1.13 ENDDO
269 jmc 1.15 ENDDO
270     CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
271     ENDIF
272 jmc 1.13
273 molod 1.20 IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN
274     DO bj = myByLo(myThid), myByHi(myThid)
275     DO bi = myBxLo(myThid), myBxHi(myThid)
276 jmc 1.26 DO j = 1,sNy
277     DO i = 1,sNx
278     tmp1k(i,j,bi,bj) = R_low(i,j,bi,bj)
279     ENDDO
280     ENDDO
281     DO k = Nr,1,-1
282     DO j = 1,sNy
283     DO i = 1,sNx
284     tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj)
285     & + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0
286     tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj)
287     & + drF(k)*hFacC(i,j,k,bi,bj)
288     ENDDO
289     ENDDO
290     ENDDO
291 molod 1.20 ENDDO
292     ENDDO
293     CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid)
294     ENDIF
295    
296 jmc 1.15 C-- fill momentum state-var diagnostics: end
297 jmc 1.13 ENDIF
298 jmc 1.15
299     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
300    
301     IF ( selectVars.EQ.1 .OR. selectVars.EQ.3 ) THEN
302     C-- fill tracer state-var diagnostics:
303    
304     CALL DIAGNOSTICS_FILL(theta,'THETA ',0,Nr,0,1,1,myThid)
305     CALL DIAGNOSTICS_FILL(salt, 'SALT ',0,Nr,0,1,1,myThid)
306 jmc 1.21
307 molod 1.24 #ifdef ALLOW_FIZHI
308     IF((useFIZHI).and.(DIAGNOSTICS_IS_ON('RELHUM ',myThid)))THEN
309     kappa = getcon('KAPPA')
310     do bj = myByLo(myThid), myByHi(myThid)
311     do bi = myBxLo(myThid), myBxHi(myThid)
312     do j = 1,sNy
313     do i = 1,sNx
314     do K = 1,Nr
315     dummy1 = theta(i,j,k,bi,bj) * ((rc(k)/100.)/1000.)**kappa
316     dummy2 = rc(k) / 100.
317     call qsat(dummy1,dummy2,dummy3,dummy4,.false.)
318     tmpMk(i,j,K,bi,bj) = hfacC(i,j,K,bi,bj) *
319     . salt(i,j,k,bi,bj) * 100. / dummy3
320     enddo
321     enddo
322     enddo
323     enddo
324     enddo
325     CALL DIAGNOSTICS_FILL(tmpMk, 'RELHUM ',0,Nr,0,1,1,myThid)
326     ENDIF
327     #endif /* ALLOW_FIZHI */
328    
329 jmc 1.21 CALL DIAGNOSTICS_SCALE_FILL(theta,tmpFac,2,
330     & 'THETASQ ',0,Nr,0,1,1,myThid)
331     CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,
332     & 'SALTSQ ',0,Nr,0,1,1,myThid)
333 dimitri 1.19
334 jmc 1.25 c IF ( DIAGNOSTICS_IS_ON('SST ',myThid) ) THEN
335     c DO bj = myByLo(myThid), myByHi(myThid)
336     c DO bi = myBxLo(myThid), myBxHi(myThid)
337     c DO j = 1,sNy
338     c DO i = 1,sNx
339     c tmp1k(i,j,bi,bj) = THETA(i,j,1,bi,bj)
340     c ENDDO
341     c ENDDO
342     c ENDDO
343     c ENDDO
344     c CALL DIAGNOSTICS_FILL(tmp1k,'SST ',0,1,0,1,1,myThid)
345     c ENDIF
346    
347     c IF ( DIAGNOSTICS_IS_ON('SSS ',myThid) ) THEN
348     c DO bj = myByLo(myThid), myByHi(myThid)
349     c DO bi = myBxLo(myThid), myBxHi(myThid)
350     c DO j = 1,sNy
351     c DO i = 1,sNx
352     c tmp1k(i,j,bi,bj) = SALT(i,j,1,bi,bj)
353     c ENDDO
354     c ENDDO
355     c ENDDO
356     c ENDDO
357     c CALL DIAGNOSTICS_FILL(tmp1k,'SSS ',0,1,0,1,1,myThid)
358     c ENDIF
359 jmc 1.15
360 dimitri 1.18 IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN
361     DO bj = myByLo(myThid), myByHi(myThid)
362     DO bi = myBxLo(myThid), myBxHi(myThid)
363     DO K=1,Nr
364     DO j = 1,sNy
365     DO i = 1,sNx
366 jmc 1.25 tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)-35. _d 0
367 dimitri 1.18 ENDDO
368     ENDDO
369     ENDDO
370     ENDDO
371     ENDDO
372     CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
373     ENDIF
374    
375     IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN
376     DO bj = myByLo(myThid), myByHi(myThid)
377     DO bi = myBxLo(myThid), myBxHi(myThid)
378     DO K=1,Nr
379     DO j = 1,sNy
380     DO i = 1,sNx
381 jmc 1.25 tmpMk(i,j,K,bi,bj) = (salt(i,j,K,bi,bj)-35. _d 0)
382     & *(salt(i,j,K,bi,bj)-35. _d 0)
383 dimitri 1.18 ENDDO
384     ENDDO
385     ENDDO
386     ENDDO
387     ENDDO
388     CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid)
389     ENDIF
390    
391 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
392 jmc 1.13
393 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
394     DO bj = myByLo(myThid), myByHi(myThid)
395     DO bi = myBxLo(myThid), myBxHi(myThid)
396     DO K=1,Nr
397 jmc 1.13 DO j = 1,sNy
398     DO i = 1,sNx
399     tmpMk(i,j,K,bi,bj)
400 edhill 1.11 & = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
401 jmc 1.13 ENDDO
402     ENDDO
403 jmc 1.15 ENDDO
404 jmc 1.13 ENDDO
405 jmc 1.15 ENDDO
406     CALL DIAGNOSTICS_FILL(tmpMk,'UVELMASS',0,Nr,0,1,1,myThid)
407     ENDIF
408    
409     IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
410     DO bj = myByLo(myThid), myByHi(myThid)
411     DO bi = myBxLo(myThid), myBxHi(myThid)
412     DO K=1,Nr
413 jmc 1.13 DO j = 1,sNy
414     DO i = 1,sNx
415     tmpMk(i,j,K,bi,bj)
416 edhill 1.11 & = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
417 jmc 1.13 ENDDO
418     ENDDO
419 jmc 1.15 ENDDO
420 jmc 1.13 ENDDO
421 jmc 1.15 ENDDO
422     CALL DIAGNOSTICS_FILL(tmpMk,'VVELMASS',0,Nr,0,1,1,myThid)
423     ENDIF
424    
425     CALL DIAGNOSTICS_FILL(wVel, 'WVELMASS',0,Nr,0,1,1,myThid)
426 jmc 1.13
427 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
428     DO bj = myByLo(myThid), myByHi(myThid)
429     DO bi = myBxLo(myThid), myBxHi(myThid)
430     DO K=1,Nr
431 jmc 1.13 DO j = 1,sNy
432 jmc 1.15 DO i = 1,sNx+1
433     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
434 jmc 1.13 & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
435     & * hFacW(i,j,K,bi,bj)
436 jmc 1.15 ENDDO
437 jmc 1.13 ENDDO
438 jmc 1.15 ENDDO
439 jmc 1.13 ENDDO
440 jmc 1.15 ENDDO
441     CALL DIAGNOSTICS_FILL(tmpMk,'UTHMASS ',0,Nr,0,1,1,myThid)
442     ENDIF
443    
444     IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
445     DO bj = myByLo(myThid), myByHi(myThid)
446     DO bi = myBxLo(myThid), myBxHi(myThid)
447     DO K=1,Nr
448     DO j = 1,sNy+1
449     DO i = 1,sNx
450     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
451 jmc 1.13 & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
452     & * hFacS(i,j,K,bi,bj)
453 jmc 1.15 ENDDO
454     ENDDO
455     ENDDO
456     ENDDO
457     ENDDO
458     CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
459     ENDIF
460    
461     IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN
462     DO bj = myByLo(myThid), myByHi(myThid)
463     DO bi = myBxLo(myThid), myBxHi(myThid)
464     DO K=1,Nr
465     km1 = MAX(k-1,1)
466     DO j = 1,sNy
467     DO i = 1,sNx
468     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
469     & *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
470     ENDDO
471 jmc 1.13 ENDDO
472 jmc 1.15 ENDDO
473 jmc 1.13 ENDDO
474 jmc 1.15 ENDDO
475     CALL DIAGNOSTICS_FILL(tmpMk,'WTHMASS ',0,Nr,0,1,1,myThid)
476     ENDIF
477    
478     IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
479     DO bj = myByLo(myThid), myByHi(myThid)
480     DO bi = myBxLo(myThid), myBxHi(myThid)
481     DO K=1,Nr
482 jmc 1.13 DO j = 1,sNy
483 jmc 1.15 DO i = 1,sNx+1
484     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
485 jmc 1.13 & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
486     & * hFacW(i,j,K,bi,bj)
487 jmc 1.15 ENDDO
488 jmc 1.13 ENDDO
489 jmc 1.15 ENDDO
490 jmc 1.13 ENDDO
491 jmc 1.15 ENDDO
492     CALL DIAGNOSTICS_FILL(tmpMk,'USLTMASS',0,Nr,0,1,1,myThid)
493     ENDIF
494    
495     IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
496     DO bj = myByLo(myThid), myByHi(myThid)
497     DO bi = myBxLo(myThid), myBxHi(myThid)
498     DO K=1,Nr
499     DO j = 1,sNy+1
500     DO i = 1,sNx
501     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
502 jmc 1.13 & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
503     & * hFacS(i,j,K,bi,bj)
504 jmc 1.15 ENDDO
505     ENDDO
506     ENDDO
507     ENDDO
508     ENDDO
509     CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
510     ENDIF
511    
512     IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN
513     DO bj = myByLo(myThid), myByHi(myThid)
514     DO bi = myBxLo(myThid), myBxHi(myThid)
515     DO K=1,Nr
516     km1 = MAX(k-1,1)
517     DO j = 1,sNy
518     DO i = 1,sNx
519     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
520     & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
521     ENDDO
522 jmc 1.13 ENDDO
523 jmc 1.15 ENDDO
524 jmc 1.13 ENDDO
525 jmc 1.15 ENDDO
526     CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)
527     ENDIF
528    
529     C-- fill tracer state-var diagnostics: end
530 jmc 1.13 ENDIF
531 jmc 1.15
532 jmc 1.7 #endif /* ALLOW_DIAGNOSTICS */
533 edhill 1.11
534 jmc 1.13 RETURN
535     END

  ViewVC Help
Powered by ViewVC 1.1.22