/[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.28 - (hide annotations) (download)
Wed Nov 16 16:55:21 2005 UTC (18 years, 5 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint57y_post, checkpoint57y_pre, checkpoint58, checkpoint57x_post, checkpoint57z_post
Changes since 1.27: +33 -1 lines
Add diagnostics for horizontal transport of geopotential (need for APE)

1 molod 1.28 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_fill_state.F,v 1.27 2005/09/20 18:30:41 molod 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.28 IF ( DIAGNOSTICS_IS_ON('UVELPHI ',myThid) ) THEN
274     DO bj = myByLo(myThid), myByHi(myThid)
275     DO bi = myBxLo(myThid), myBxHi(myThid)
276     DO K=1,Nr
277     DO j = 1,sNy
278     DO i = 1,sNx+1
279     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
280     & *(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i-1,j,K,bi,bj))
281     ENDDO
282     ENDDO
283     ENDDO
284     ENDDO
285     ENDDO
286     CALL DIAGNOSTICS_FILL(tmpMk,'UVELPHI ',0,Nr,0,1,1,myThid)
287     ENDIF
288    
289     IF ( DIAGNOSTICS_IS_ON('VVELPHI ',myThid) ) THEN
290     DO bj = myByLo(myThid), myByHi(myThid)
291     DO bi = myBxLo(myThid), myBxHi(myThid)
292     DO K=1,Nr
293     DO j = 1,sNy+1
294     DO i = 1,sNx
295     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
296     & *(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i,j-1,K,bi,bj))
297     ENDDO
298     ENDDO
299     ENDDO
300     ENDDO
301     ENDDO
302     CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid)
303     ENDIF
304    
305 molod 1.20 IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN
306     DO bj = myByLo(myThid), myByHi(myThid)
307     DO bi = myBxLo(myThid), myBxHi(myThid)
308 jmc 1.26 DO j = 1,sNy
309     DO i = 1,sNx
310     tmp1k(i,j,bi,bj) = R_low(i,j,bi,bj)
311     ENDDO
312     ENDDO
313     DO k = Nr,1,-1
314     DO j = 1,sNy
315     DO i = 1,sNx
316     tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj)
317     & + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0
318     tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj)
319     & + drF(k)*hFacC(i,j,k,bi,bj)
320     ENDDO
321     ENDDO
322     ENDDO
323 molod 1.20 ENDDO
324     ENDDO
325     CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid)
326     ENDIF
327    
328 jmc 1.15 C-- fill momentum state-var diagnostics: end
329 jmc 1.13 ENDIF
330 jmc 1.15
331     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
332    
333     IF ( selectVars.EQ.1 .OR. selectVars.EQ.3 ) THEN
334     C-- fill tracer state-var diagnostics:
335    
336     CALL DIAGNOSTICS_FILL(theta,'THETA ',0,Nr,0,1,1,myThid)
337     CALL DIAGNOSTICS_FILL(salt, 'SALT ',0,Nr,0,1,1,myThid)
338 jmc 1.21
339 molod 1.24 #ifdef ALLOW_FIZHI
340     IF((useFIZHI).and.(DIAGNOSTICS_IS_ON('RELHUM ',myThid)))THEN
341     kappa = getcon('KAPPA')
342     do bj = myByLo(myThid), myByHi(myThid)
343     do bi = myBxLo(myThid), myBxHi(myThid)
344     do j = 1,sNy
345     do i = 1,sNx
346     do K = 1,Nr
347     dummy1 = theta(i,j,k,bi,bj) * ((rc(k)/100.)/1000.)**kappa
348     dummy2 = rc(k) / 100.
349     call qsat(dummy1,dummy2,dummy3,dummy4,.false.)
350     tmpMk(i,j,K,bi,bj) = hfacC(i,j,K,bi,bj) *
351     . salt(i,j,k,bi,bj) * 100. / dummy3
352     enddo
353     enddo
354     enddo
355     enddo
356     enddo
357     CALL DIAGNOSTICS_FILL(tmpMk, 'RELHUM ',0,Nr,0,1,1,myThid)
358     ENDIF
359     #endif /* ALLOW_FIZHI */
360    
361 jmc 1.21 CALL DIAGNOSTICS_SCALE_FILL(theta,tmpFac,2,
362     & 'THETASQ ',0,Nr,0,1,1,myThid)
363     CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,
364     & 'SALTSQ ',0,Nr,0,1,1,myThid)
365 dimitri 1.19
366 jmc 1.25 c IF ( DIAGNOSTICS_IS_ON('SST ',myThid) ) THEN
367     c DO bj = myByLo(myThid), myByHi(myThid)
368     c DO bi = myBxLo(myThid), myBxHi(myThid)
369     c DO j = 1,sNy
370     c DO i = 1,sNx
371     c tmp1k(i,j,bi,bj) = THETA(i,j,1,bi,bj)
372     c ENDDO
373     c ENDDO
374     c ENDDO
375     c ENDDO
376     c CALL DIAGNOSTICS_FILL(tmp1k,'SST ',0,1,0,1,1,myThid)
377     c ENDIF
378    
379     c IF ( DIAGNOSTICS_IS_ON('SSS ',myThid) ) THEN
380     c DO bj = myByLo(myThid), myByHi(myThid)
381     c DO bi = myBxLo(myThid), myBxHi(myThid)
382     c DO j = 1,sNy
383     c DO i = 1,sNx
384     c tmp1k(i,j,bi,bj) = SALT(i,j,1,bi,bj)
385     c ENDDO
386     c ENDDO
387     c ENDDO
388     c ENDDO
389     c CALL DIAGNOSTICS_FILL(tmp1k,'SSS ',0,1,0,1,1,myThid)
390     c ENDIF
391 jmc 1.15
392 dimitri 1.18 IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN
393     DO bj = myByLo(myThid), myByHi(myThid)
394     DO bi = myBxLo(myThid), myBxHi(myThid)
395     DO K=1,Nr
396     DO j = 1,sNy
397     DO i = 1,sNx
398 jmc 1.25 tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)-35. _d 0
399 dimitri 1.18 ENDDO
400     ENDDO
401     ENDDO
402     ENDDO
403     ENDDO
404     CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
405     ENDIF
406    
407     IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN
408     DO bj = myByLo(myThid), myByHi(myThid)
409     DO bi = myBxLo(myThid), myBxHi(myThid)
410     DO K=1,Nr
411     DO j = 1,sNy
412     DO i = 1,sNx
413 jmc 1.25 tmpMk(i,j,K,bi,bj) = (salt(i,j,K,bi,bj)-35. _d 0)
414     & *(salt(i,j,K,bi,bj)-35. _d 0)
415 dimitri 1.18 ENDDO
416     ENDDO
417     ENDDO
418     ENDDO
419     ENDDO
420     CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid)
421     ENDIF
422    
423 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
424 jmc 1.13
425 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
426     DO bj = myByLo(myThid), myByHi(myThid)
427     DO bi = myBxLo(myThid), myBxHi(myThid)
428     DO K=1,Nr
429 jmc 1.13 DO j = 1,sNy
430     DO i = 1,sNx
431     tmpMk(i,j,K,bi,bj)
432 edhill 1.11 & = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
433 jmc 1.13 ENDDO
434     ENDDO
435 jmc 1.15 ENDDO
436 jmc 1.13 ENDDO
437 jmc 1.15 ENDDO
438     CALL DIAGNOSTICS_FILL(tmpMk,'UVELMASS',0,Nr,0,1,1,myThid)
439     ENDIF
440    
441     IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
442     DO bj = myByLo(myThid), myByHi(myThid)
443     DO bi = myBxLo(myThid), myBxHi(myThid)
444     DO K=1,Nr
445 jmc 1.13 DO j = 1,sNy
446     DO i = 1,sNx
447     tmpMk(i,j,K,bi,bj)
448 edhill 1.11 & = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
449 jmc 1.13 ENDDO
450     ENDDO
451 jmc 1.15 ENDDO
452 jmc 1.13 ENDDO
453 jmc 1.15 ENDDO
454     CALL DIAGNOSTICS_FILL(tmpMk,'VVELMASS',0,Nr,0,1,1,myThid)
455     ENDIF
456    
457     CALL DIAGNOSTICS_FILL(wVel, 'WVELMASS',0,Nr,0,1,1,myThid)
458 jmc 1.13
459 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
460     DO bj = myByLo(myThid), myByHi(myThid)
461     DO bi = myBxLo(myThid), myBxHi(myThid)
462     DO K=1,Nr
463 jmc 1.13 DO j = 1,sNy
464 jmc 1.15 DO i = 1,sNx+1
465     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
466 jmc 1.13 & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
467     & * hFacW(i,j,K,bi,bj)
468 jmc 1.15 ENDDO
469 jmc 1.13 ENDDO
470 jmc 1.15 ENDDO
471 jmc 1.13 ENDDO
472 jmc 1.15 ENDDO
473     CALL DIAGNOSTICS_FILL(tmpMk,'UTHMASS ',0,Nr,0,1,1,myThid)
474     ENDIF
475    
476     IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
477     DO bj = myByLo(myThid), myByHi(myThid)
478     DO bi = myBxLo(myThid), myBxHi(myThid)
479     DO K=1,Nr
480     DO j = 1,sNy+1
481     DO i = 1,sNx
482     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
483 jmc 1.13 & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
484     & * hFacS(i,j,K,bi,bj)
485 jmc 1.15 ENDDO
486     ENDDO
487     ENDDO
488     ENDDO
489     ENDDO
490     CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
491     ENDIF
492    
493     IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN
494     DO bj = myByLo(myThid), myByHi(myThid)
495     DO bi = myBxLo(myThid), myBxHi(myThid)
496     DO K=1,Nr
497     km1 = MAX(k-1,1)
498     DO j = 1,sNy
499     DO i = 1,sNx
500     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
501     & *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
502     ENDDO
503 jmc 1.13 ENDDO
504 jmc 1.15 ENDDO
505 jmc 1.13 ENDDO
506 jmc 1.15 ENDDO
507     CALL DIAGNOSTICS_FILL(tmpMk,'WTHMASS ',0,Nr,0,1,1,myThid)
508     ENDIF
509    
510     IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
511     DO bj = myByLo(myThid), myByHi(myThid)
512     DO bi = myBxLo(myThid), myBxHi(myThid)
513     DO K=1,Nr
514 jmc 1.13 DO j = 1,sNy
515 jmc 1.15 DO i = 1,sNx+1
516     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
517 jmc 1.13 & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
518     & * hFacW(i,j,K,bi,bj)
519 jmc 1.15 ENDDO
520 jmc 1.13 ENDDO
521 jmc 1.15 ENDDO
522 jmc 1.13 ENDDO
523 jmc 1.15 ENDDO
524     CALL DIAGNOSTICS_FILL(tmpMk,'USLTMASS',0,Nr,0,1,1,myThid)
525     ENDIF
526    
527     IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
528     DO bj = myByLo(myThid), myByHi(myThid)
529     DO bi = myBxLo(myThid), myBxHi(myThid)
530     DO K=1,Nr
531     DO j = 1,sNy+1
532     DO i = 1,sNx
533     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
534 jmc 1.13 & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
535     & * hFacS(i,j,K,bi,bj)
536 jmc 1.15 ENDDO
537     ENDDO
538     ENDDO
539     ENDDO
540     ENDDO
541     CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
542     ENDIF
543    
544     IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN
545     DO bj = myByLo(myThid), myByHi(myThid)
546     DO bi = myBxLo(myThid), myBxHi(myThid)
547     DO K=1,Nr
548     km1 = MAX(k-1,1)
549     DO j = 1,sNy
550     DO i = 1,sNx
551     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
552     & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
553     ENDDO
554 jmc 1.13 ENDDO
555 jmc 1.15 ENDDO
556 jmc 1.13 ENDDO
557 jmc 1.15 ENDDO
558     CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)
559     ENDIF
560    
561     C-- fill tracer state-var diagnostics: end
562 jmc 1.13 ENDIF
563 jmc 1.15
564 jmc 1.7 #endif /* ALLOW_DIAGNOSTICS */
565 edhill 1.11
566 jmc 1.13 RETURN
567     END

  ViewVC Help
Powered by ViewVC 1.1.22