/[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.22 - (hide annotations) (download)
Mon Jul 11 21:58:19 2005 UTC (18 years, 10 months ago) by molod
Branch: MAIN
Changes since 1.21: +15 -1 lines
Add code to fill new diagnostic called RSURF with surface location (pressure or height)

1 molod 1.22 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_fill_state.F,v 1.21 2005/07/11 18:59: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     #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.21 _RL tmpFac
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     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
123     & *(uVel(i,j,K,bi,bj)+uVel(i+1,j,K,bi,bj))
124     & *(vVel(i,j,K,bi,bj)+vVel(i,j+1,K,bi,bj))
125     ENDDO
126     ENDDO
127     ENDDO
128     ENDDO
129     ENDDO
130     CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid)
131     ENDIF
132    
133     IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN
134     DO bj = myByLo(myThid), myByHi(myThid)
135     DO bi = myBxLo(myThid), myBxHi(myThid)
136     DO K=1,Nr
137     DO j = 1,sNy+1
138     DO i = 1,sNx+1
139     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
140     & *(uVel(i,j-1,K,bi,bj)+uVel(i,j,K,bi,bj))
141     & *(vVel(i-1,j,K,bi,bj)+vVel(i,j,K,bi,bj))
142     ENDDO
143     ENDDO
144     ENDDO
145     ENDDO
146     ENDDO
147     CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid)
148     ENDIF
149    
150 jmc 1.16 IF ( DIAGNOSTICS_IS_ON('WU_VEL ',myThid) ) THEN
151     DO bj = myByLo(myThid), myByHi(myThid)
152     DO bi = myBxLo(myThid), myBxHi(myThid)
153     DO K=1,Nr
154     km1 = MAX(k-1,1)
155     DO j = 1,sNy
156     DO i = 1,sNx+1
157     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
158 jmc 1.17 & *(uVel(i,j,km1,bi,bj)+uVel(i,j,K,bi,bj))
159 jmc 1.16 & *(wVel(i-1,j,K,bi,bj)*rA(i-1,j,bi,bj)
160     & +wVel( i ,j,K,bi,bj)*rA( i ,j,bi,bj)
161     & )*recip_rAw(i,j,bi,bj)
162     ENDDO
163     ENDDO
164     ENDDO
165     ENDDO
166     ENDDO
167     CALL DIAGNOSTICS_FILL(tmpMk,'WU_VEL ',0,Nr,0,1,1,myThid)
168     ENDIF
169    
170     IF ( DIAGNOSTICS_IS_ON('WV_VEL ',myThid) ) THEN
171     DO bj = myByLo(myThid), myByHi(myThid)
172     DO bi = myBxLo(myThid), myBxHi(myThid)
173     DO K=1,Nr
174     km1 = MAX(k-1,1)
175     DO j = 1,sNy+1
176     DO i = 1,sNx
177     tmpMk(i,j,K,bi,bj) = 0.25 _d 0
178 jmc 1.17 & *(vVel(i,j,km1,bi,bj)+vVel(i,j,K,bi,bj))
179 jmc 1.16 & *(wVel(i,j-1,K,bi,bj)*rA(i,j-1,bi,bj)
180     & +wVel(i, j ,K,bi,bj)*rA(i, j ,bi,bj)
181     & )*recip_rAs(i,j,bi,bj)
182     ENDDO
183     ENDDO
184     ENDDO
185     ENDDO
186     ENDDO
187     CALL DIAGNOSTICS_FILL(tmpMk,'WV_VEL ',0,Nr,0,1,1,myThid)
188     ENDIF
189    
190 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
191    
192     IF ( DIAGNOSTICS_IS_ON('UVELTH ',myThid) ) THEN
193     DO bj = myByLo(myThid), myByHi(myThid)
194     DO bi = myBxLo(myThid), myBxHi(myThid)
195     DO K=1,Nr
196 jmc 1.13 DO j = 1,sNy
197 jmc 1.15 DO i = 1,sNx+1
198     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
199     & *(theta(i,j,K,bi,bj)+theta(i-1,j,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,'UVELTH ',0,Nr,0,1,1,myThid)
206     ENDIF
207    
208     IF ( DIAGNOSTICS_IS_ON('VVELTH ',myThid) ) THEN
209     DO bj = myByLo(myThid), myByHi(myThid)
210     DO bi = myBxLo(myThid), myBxHi(myThid)
211     DO K=1,Nr
212     DO j = 1,sNy+1
213     DO i = 1,sNx
214     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
215     & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,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,'VVELTH ',0,Nr,0,1,1,myThid)
222     ENDIF
223    
224     IF ( DIAGNOSTICS_IS_ON('WVELTH ',myThid) ) THEN
225     DO bj = myByLo(myThid), myByHi(myThid)
226     DO bi = myBxLo(myThid), myBxHi(myThid)
227     DO K=1,Nr
228     km1 = MAX(k-1,1)
229 jmc 1.13 DO j = 1,sNy
230 jmc 1.15 DO i = 1,sNx
231     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
232     & *(theta(i,j,K,bi,bj)+theta(i,j,km1,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,'WVELTH ',0,Nr,0,1,1,myThid)
239     ENDIF
240 jmc 1.13
241 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN
242     DO bj = myByLo(myThid), myByHi(myThid)
243     DO bi = myBxLo(myThid), myBxHi(myThid)
244     DO K=1,Nr
245 jmc 1.13 DO j = 1,sNy
246 jmc 1.15 DO i = 1,sNx+1
247     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
248     & *(salt(i,j,K,bi,bj)+salt(i-1,j,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,'UVELSLT ',0,Nr,0,1,1,myThid)
255     ENDIF
256    
257     IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN
258     DO bj = myByLo(myThid), myByHi(myThid)
259     DO bi = myBxLo(myThid), myBxHi(myThid)
260     DO K=1,Nr
261     DO j = 1,sNy+1
262     DO i = 1,sNx
263     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
264     & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,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,'VVELSLT ',0,Nr,0,1,1,myThid)
271     ENDIF
272    
273     IF ( DIAGNOSTICS_IS_ON('WVELSLT ',myThid) ) THEN
274     DO bj = myByLo(myThid), myByHi(myThid)
275     DO bi = myBxLo(myThid), myBxHi(myThid)
276     DO K=1,Nr
277     km1 = MAX(k-1,1)
278 jmc 1.13 DO j = 1,sNy
279 jmc 1.15 DO i = 1,sNx
280     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
281     & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
282     ENDDO
283 jmc 1.13 ENDDO
284 jmc 1.15 ENDDO
285 jmc 1.13 ENDDO
286 jmc 1.15 ENDDO
287     CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
288     ENDIF
289 jmc 1.13
290 molod 1.20 IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN
291     DO bj = myByLo(myThid), myByHi(myThid)
292     DO bi = myBxLo(myThid), myBxHi(myThid)
293     do j = 1,sNy
294     do i = 1,sNx
295     do K = 1,Nr
296     tmpMk1(i,j,K,bi,bj) = 0.
297     enddo
298     enddo
299     enddo
300     do j = 1,sNy
301     do i = 1,sNx
302     if(ksurfC(i,j,bi,bj).ne.0.)
303     . tmpMk1(i,j,ksurfC(i,j,bi,bj),bi,bj) =
304     . (Ro_surf(i,j,bi,bj) + etaH(i,j,bi,bj))
305     enddo
306     enddo
307     do j = 1,sNy
308     do i = 1,sNx
309     do K = ksurfC(i,j,bi,bj)+1,Nr+1
310     tmpMk1(i,j,K,bi,bj) = tmpMk1(i,j,K-1,bi,bj) -
311     . drF(K-1)*hfacC(i,j,K-1,bi,bj)
312     enddo
313     do K = 1,Nr
314     tmpMk(i,j,K,bi,bj) =
315     . (tmpMk1(i,j,K,bi,bj) + tmpMk1(i,j,K+1,bi,bj)) /2.
316     enddo
317     enddo
318     enddo
319     ENDDO
320     ENDDO
321     CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid)
322     ENDIF
323    
324 jmc 1.15 C-- fill momentum state-var diagnostics: end
325 jmc 1.13 ENDIF
326 jmc 1.15
327     C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
328    
329     IF ( selectVars.EQ.1 .OR. selectVars.EQ.3 ) THEN
330     C-- fill tracer state-var diagnostics:
331    
332     CALL DIAGNOSTICS_FILL(theta,'THETA ',0,Nr,0,1,1,myThid)
333     CALL DIAGNOSTICS_FILL(salt, 'SALT ',0,Nr,0,1,1,myThid)
334 jmc 1.21
335     CALL DIAGNOSTICS_SCALE_FILL(theta,tmpFac,2,
336     & 'THETASQ ',0,Nr,0,1,1,myThid)
337     CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,
338     & 'SALTSQ ',0,Nr,0,1,1,myThid)
339 dimitri 1.19
340     IF ( DIAGNOSTICS_IS_ON('SST ',myThid) ) THEN
341     DO bj = myByLo(myThid), myByHi(myThid)
342     DO bi = myBxLo(myThid), myBxHi(myThid)
343     DO j = 1,sNy
344     DO i = 1,sNx
345     tmp1k(i,j,bi,bj) = THETA(i,j,1,bi,bj)
346     ENDDO
347     ENDDO
348     ENDDO
349     ENDDO
350     CALL DIAGNOSTICS_FILL(tmp1k,'SST ',0,1,0,1,1,myThid)
351     ENDIF
352    
353     IF ( DIAGNOSTICS_IS_ON('SSS ',myThid) ) THEN
354     DO bj = myByLo(myThid), myByHi(myThid)
355     DO bi = myBxLo(myThid), myBxHi(myThid)
356     DO j = 1,sNy
357     DO i = 1,sNx
358     tmp1k(i,j,bi,bj) = SALT(i,j,1,bi,bj)
359     ENDDO
360     ENDDO
361     ENDDO
362     ENDDO
363     CALL DIAGNOSTICS_FILL(tmp1k,'SSS ',0,1,0,1,1,myThid)
364     ENDIF
365 jmc 1.15
366 dimitri 1.18 IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN
367     DO bj = myByLo(myThid), myByHi(myThid)
368     DO bi = myBxLo(myThid), myBxHi(myThid)
369     DO K=1,Nr
370     DO j = 1,sNy
371     DO i = 1,sNx
372     tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)-35
373     ENDDO
374     ENDDO
375     ENDDO
376     ENDDO
377     ENDDO
378     CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
379     ENDIF
380    
381     IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN
382     DO bj = myByLo(myThid), myByHi(myThid)
383     DO bi = myBxLo(myThid), myBxHi(myThid)
384     DO K=1,Nr
385     DO j = 1,sNy
386     DO i = 1,sNx
387     tmpMk(i,j,K,bi,bj) =
388     & (salt(i,j,K,bi,bj)-35)*(salt(i,j,K,bi,bj)-35)
389     ENDDO
390     ENDDO
391     ENDDO
392     ENDDO
393     ENDDO
394     CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid)
395     ENDIF
396    
397 jmc 1.15 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
398 jmc 1.13
399 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
400     DO bj = myByLo(myThid), myByHi(myThid)
401     DO bi = myBxLo(myThid), myBxHi(myThid)
402     DO K=1,Nr
403 jmc 1.13 DO j = 1,sNy
404     DO i = 1,sNx
405     tmpMk(i,j,K,bi,bj)
406 edhill 1.11 & = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
407 jmc 1.13 ENDDO
408     ENDDO
409 jmc 1.15 ENDDO
410 jmc 1.13 ENDDO
411 jmc 1.15 ENDDO
412     CALL DIAGNOSTICS_FILL(tmpMk,'UVELMASS',0,Nr,0,1,1,myThid)
413     ENDIF
414    
415     IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
416     DO bj = myByLo(myThid), myByHi(myThid)
417     DO bi = myBxLo(myThid), myBxHi(myThid)
418     DO K=1,Nr
419 jmc 1.13 DO j = 1,sNy
420     DO i = 1,sNx
421     tmpMk(i,j,K,bi,bj)
422 edhill 1.11 & = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
423 jmc 1.13 ENDDO
424     ENDDO
425 jmc 1.15 ENDDO
426 jmc 1.13 ENDDO
427 jmc 1.15 ENDDO
428     CALL DIAGNOSTICS_FILL(tmpMk,'VVELMASS',0,Nr,0,1,1,myThid)
429     ENDIF
430    
431     CALL DIAGNOSTICS_FILL(wVel, 'WVELMASS',0,Nr,0,1,1,myThid)
432 jmc 1.13
433 jmc 1.15 IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
434     DO bj = myByLo(myThid), myByHi(myThid)
435     DO bi = myBxLo(myThid), myBxHi(myThid)
436     DO K=1,Nr
437 jmc 1.13 DO j = 1,sNy
438 jmc 1.15 DO i = 1,sNx+1
439     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
440 jmc 1.13 & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
441     & * hFacW(i,j,K,bi,bj)
442 jmc 1.15 ENDDO
443 jmc 1.13 ENDDO
444 jmc 1.15 ENDDO
445 jmc 1.13 ENDDO
446 jmc 1.15 ENDDO
447     CALL DIAGNOSTICS_FILL(tmpMk,'UTHMASS ',0,Nr,0,1,1,myThid)
448     ENDIF
449    
450     IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
451     DO bj = myByLo(myThid), myByHi(myThid)
452     DO bi = myBxLo(myThid), myBxHi(myThid)
453     DO K=1,Nr
454     DO j = 1,sNy+1
455     DO i = 1,sNx
456     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
457 jmc 1.13 & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
458     & * hFacS(i,j,K,bi,bj)
459 jmc 1.15 ENDDO
460     ENDDO
461     ENDDO
462     ENDDO
463     ENDDO
464     CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
465     ENDIF
466    
467     IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN
468     DO bj = myByLo(myThid), myByHi(myThid)
469     DO bi = myBxLo(myThid), myBxHi(myThid)
470     DO K=1,Nr
471     km1 = MAX(k-1,1)
472     DO j = 1,sNy
473     DO i = 1,sNx
474     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
475     & *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
476     ENDDO
477 jmc 1.13 ENDDO
478 jmc 1.15 ENDDO
479 jmc 1.13 ENDDO
480 jmc 1.15 ENDDO
481     CALL DIAGNOSTICS_FILL(tmpMk,'WTHMASS ',0,Nr,0,1,1,myThid)
482     ENDIF
483    
484     IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
485     DO bj = myByLo(myThid), myByHi(myThid)
486     DO bi = myBxLo(myThid), myBxHi(myThid)
487     DO K=1,Nr
488 jmc 1.13 DO j = 1,sNy
489 jmc 1.15 DO i = 1,sNx+1
490     tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
491 jmc 1.13 & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
492     & * hFacW(i,j,K,bi,bj)
493 jmc 1.15 ENDDO
494 jmc 1.13 ENDDO
495 jmc 1.15 ENDDO
496 jmc 1.13 ENDDO
497 jmc 1.15 ENDDO
498     CALL DIAGNOSTICS_FILL(tmpMk,'USLTMASS',0,Nr,0,1,1,myThid)
499     ENDIF
500    
501     IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
502     DO bj = myByLo(myThid), myByHi(myThid)
503     DO bi = myBxLo(myThid), myBxHi(myThid)
504     DO K=1,Nr
505     DO j = 1,sNy+1
506     DO i = 1,sNx
507     tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
508 jmc 1.13 & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
509     & * hFacS(i,j,K,bi,bj)
510 jmc 1.15 ENDDO
511     ENDDO
512     ENDDO
513     ENDDO
514     ENDDO
515     CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
516     ENDIF
517    
518     IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN
519     DO bj = myByLo(myThid), myByHi(myThid)
520     DO bi = myBxLo(myThid), myBxHi(myThid)
521     DO K=1,Nr
522     km1 = MAX(k-1,1)
523     DO j = 1,sNy
524     DO i = 1,sNx
525     tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
526     & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
527     ENDDO
528 jmc 1.13 ENDDO
529 jmc 1.15 ENDDO
530 jmc 1.13 ENDDO
531 jmc 1.15 ENDDO
532     CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)
533     ENDIF
534    
535     C-- fill tracer state-var diagnostics: end
536 jmc 1.13 ENDIF
537 jmc 1.15
538 jmc 1.7 #endif /* ALLOW_DIAGNOSTICS */
539 edhill 1.11
540 jmc 1.13 RETURN
541     END

  ViewVC Help
Powered by ViewVC 1.1.22