/[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.25 - (hide annotations) (download)
Thu Aug 25 18:43:36 2005 UTC (18 years, 8 months ago) by jmc
Branch: MAIN
Changes since 1.24: +31 -55 lines
remove UVEL_k2,VVEL_k2 ; comment out SST,SSS.

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

  ViewVC Help
Powered by ViewVC 1.1.22