/[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.19 - (show annotations) (download)
Fri May 6 03:46:40 2005 UTC (19 years ago) by dimitri
Branch: MAIN
CVS Tags: checkpoint57h_done, checkpoint57h_pre, checkpoint57h_post
Changes since 1.18: +53 -1 lines
added SSS, SST, and 2nd level velocity diagnostics

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

  ViewVC Help
Powered by ViewVC 1.1.22