/[MITgcm]/MITgcm/pkg/diagnostics/diagnostics_fill_state.F
ViewVC logotype

Contents of /MITgcm/pkg/diagnostics/diagnostics_fill_state.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.20 - (show annotations) (download)
Fri Jun 17 01:03:56 2005 UTC (18 years, 10 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint57k_post, checkpoint57i_post, checkpoint57j_post
Changes since 1.19: +36 -1 lines
Add code to fill dynamics pressures into diagnostics array

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

  ViewVC Help
Powered by ViewVC 1.1.22