/[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.21 - (hide annotations) (download)
Mon Jul 11 18:59:07 2005 UTC (18 years, 10 months ago) by jmc
Branch: MAIN
Changes since 1.20: +21 -103 lines
add option to fill a squared diagnostics directly.

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

  ViewVC Help
Powered by ViewVC 1.1.22