/[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.24 - (hide annotations) (download)
Tue Aug 16 21:29:38 2005 UTC (18 years, 8 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint57q_post
Changes since 1.23: +27 -1 lines
Add relative humidity diagnostic for when fizhi is running

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

  ViewVC Help
Powered by ViewVC 1.1.22