/[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.23 - (hide annotations) (download)
Wed Jul 13 00:46:07 2005 UTC (18 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57o_post, checkpoint57m_post, checkpoint57n_post, checkpoint57p_post, checkpoint57l_post
Changes since 1.22: +9 -3 lines
change UV_VEL_C diagnostics to be the true product of Zonal & Merid. comp.

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

  ViewVC Help
Powered by ViewVC 1.1.22