/[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.26 - (hide annotations) (download)
Thu Aug 25 20:51:38 2005 UTC (18 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57s_post, checkpoint57r_post
Changes since 1.25: +16 -28 lines
simpler and more robust PRESSURE diagnostics

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

  ViewVC Help
Powered by ViewVC 1.1.22