/[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.20 - (hide annotations) (download)
Fri Jun 17 01:03:56 2005 UTC (18 years, 10 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint57k_post, checkpoint57i_post, checkpoint57j_post
Changes since 1.19: +36 -1 lines
Add code to fill dynamics pressures into diagnostics array

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

  ViewVC Help
Powered by ViewVC 1.1.22