/[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.28 - (show annotations) (download)
Wed Nov 16 16:55:21 2005 UTC (18 years, 5 months ago) by molod
Branch: MAIN
CVS Tags: checkpoint57y_post, checkpoint57y_pre, checkpoint58, checkpoint57x_post, checkpoint57z_post
Changes since 1.27: +33 -1 lines
Add diagnostics for horizontal transport of geopotential (need for APE)

1 C $Header: /u/gcmpack/MITgcm/pkg/diagnostics/diagnostics_fill_state.F,v 1.27 2005/09/20 18:30:41 molod 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 "PARAMS.h"
24 #include "GRID.h"
25 #include "DYNVARS.h"
26 #include "SURFACE.h"
27
28 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 INTEGER myThid
37
38 #ifdef ALLOW_DIAGNOSTICS
39 C !LOCAL VARIABLES:
40 C == Local variables ==
41 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 _RL tmpFac, uBarC, vBarC
46 #ifdef ALLOW_FIZHI
47 _RL dummy1, dummy2, dummy3, dummy4, kappa, getcon
48 #endif
49 INTEGER i,j,K,bi,bj
50 INTEGER km1
51
52 tmpFac = 1. _d 0
53
54 IF ( selectVars .GE. 2 ) THEN
55 C-- fill momentum state-var diagnostics:
56
57 CALL DIAGNOSTICS_FILL(etaN, 'ETAN ',0, 1,0,1,1,myThid)
58
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 CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2,
73 & 'ETANSQ ',0, 1,0,1,1,myThid)
74
75 #ifdef EXACT_CONSERV
76 CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2,
77 & 'DETADT2 ',0, 1,0,1,1,myThid)
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 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 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 uBarC = 0.5 _d 0
100 & *(uVel(i,j,K,bi,bj)+uVel(i+1,j,K,bi,bj))
101 vBarC = 0.5 _d 0
102 & *(vVel(i,j,K,bi,bj)+vVel(i,j+1,K,bi,bj))
103 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 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 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 & *(uVel(i,j,km1,bi,bj)+uVel(i,j,K,bi,bj))
142 & *(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 & *(vVel(i,j,km1,bi,bj)+vVel(i,j,K,bi,bj))
162 & *(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 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 DO j = 1,sNy
180 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 ENDDO
185 ENDDO
186 ENDDO
187 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 ENDDO
201 ENDDO
202 ENDDO
203 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 DO j = 1,sNy
213 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 ENDDO
218 ENDDO
219 ENDDO
220 ENDDO
221 CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH ',0,Nr,0,1,1,myThid)
222 ENDIF
223
224 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 DO j = 1,sNy
229 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 ENDDO
234 ENDDO
235 ENDDO
236 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 ENDDO
250 ENDDO
251 ENDDO
252 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 DO j = 1,sNy
262 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 ENDDO
267 ENDDO
268 ENDDO
269 ENDDO
270 CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid)
271 ENDIF
272
273 IF ( DIAGNOSTICS_IS_ON('UVELPHI ',myThid) ) THEN
274 DO bj = myByLo(myThid), myByHi(myThid)
275 DO bi = myBxLo(myThid), myBxHi(myThid)
276 DO K=1,Nr
277 DO j = 1,sNy
278 DO i = 1,sNx+1
279 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
280 & *(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i-1,j,K,bi,bj))
281 ENDDO
282 ENDDO
283 ENDDO
284 ENDDO
285 ENDDO
286 CALL DIAGNOSTICS_FILL(tmpMk,'UVELPHI ',0,Nr,0,1,1,myThid)
287 ENDIF
288
289 IF ( DIAGNOSTICS_IS_ON('VVELPHI ',myThid) ) THEN
290 DO bj = myByLo(myThid), myByHi(myThid)
291 DO bi = myBxLo(myThid), myBxHi(myThid)
292 DO K=1,Nr
293 DO j = 1,sNy+1
294 DO i = 1,sNx
295 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
296 & *(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i,j-1,K,bi,bj))
297 ENDDO
298 ENDDO
299 ENDDO
300 ENDDO
301 ENDDO
302 CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid)
303 ENDIF
304
305 IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN
306 DO bj = myByLo(myThid), myByHi(myThid)
307 DO bi = myBxLo(myThid), myBxHi(myThid)
308 DO j = 1,sNy
309 DO i = 1,sNx
310 tmp1k(i,j,bi,bj) = R_low(i,j,bi,bj)
311 ENDDO
312 ENDDO
313 DO k = Nr,1,-1
314 DO j = 1,sNy
315 DO i = 1,sNx
316 tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj)
317 & + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0
318 tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj)
319 & + drF(k)*hFacC(i,j,k,bi,bj)
320 ENDDO
321 ENDDO
322 ENDDO
323 ENDDO
324 ENDDO
325 CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid)
326 ENDIF
327
328 C-- fill momentum state-var diagnostics: end
329 ENDIF
330
331 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
332
333 IF ( selectVars.EQ.1 .OR. selectVars.EQ.3 ) THEN
334 C-- fill tracer state-var diagnostics:
335
336 CALL DIAGNOSTICS_FILL(theta,'THETA ',0,Nr,0,1,1,myThid)
337 CALL DIAGNOSTICS_FILL(salt, 'SALT ',0,Nr,0,1,1,myThid)
338
339 #ifdef ALLOW_FIZHI
340 IF((useFIZHI).and.(DIAGNOSTICS_IS_ON('RELHUM ',myThid)))THEN
341 kappa = getcon('KAPPA')
342 do bj = myByLo(myThid), myByHi(myThid)
343 do bi = myBxLo(myThid), myBxHi(myThid)
344 do j = 1,sNy
345 do i = 1,sNx
346 do K = 1,Nr
347 dummy1 = theta(i,j,k,bi,bj) * ((rc(k)/100.)/1000.)**kappa
348 dummy2 = rc(k) / 100.
349 call qsat(dummy1,dummy2,dummy3,dummy4,.false.)
350 tmpMk(i,j,K,bi,bj) = hfacC(i,j,K,bi,bj) *
351 . salt(i,j,k,bi,bj) * 100. / dummy3
352 enddo
353 enddo
354 enddo
355 enddo
356 enddo
357 CALL DIAGNOSTICS_FILL(tmpMk, 'RELHUM ',0,Nr,0,1,1,myThid)
358 ENDIF
359 #endif /* ALLOW_FIZHI */
360
361 CALL DIAGNOSTICS_SCALE_FILL(theta,tmpFac,2,
362 & 'THETASQ ',0,Nr,0,1,1,myThid)
363 CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2,
364 & 'SALTSQ ',0,Nr,0,1,1,myThid)
365
366 c IF ( DIAGNOSTICS_IS_ON('SST ',myThid) ) THEN
367 c DO bj = myByLo(myThid), myByHi(myThid)
368 c DO bi = myBxLo(myThid), myBxHi(myThid)
369 c DO j = 1,sNy
370 c DO i = 1,sNx
371 c tmp1k(i,j,bi,bj) = THETA(i,j,1,bi,bj)
372 c ENDDO
373 c ENDDO
374 c ENDDO
375 c ENDDO
376 c CALL DIAGNOSTICS_FILL(tmp1k,'SST ',0,1,0,1,1,myThid)
377 c ENDIF
378
379 c IF ( DIAGNOSTICS_IS_ON('SSS ',myThid) ) THEN
380 c DO bj = myByLo(myThid), myByHi(myThid)
381 c DO bi = myBxLo(myThid), myBxHi(myThid)
382 c DO j = 1,sNy
383 c DO i = 1,sNx
384 c tmp1k(i,j,bi,bj) = SALT(i,j,1,bi,bj)
385 c ENDDO
386 c ENDDO
387 c ENDDO
388 c ENDDO
389 c CALL DIAGNOSTICS_FILL(tmp1k,'SSS ',0,1,0,1,1,myThid)
390 c ENDIF
391
392 IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN
393 DO bj = myByLo(myThid), myByHi(myThid)
394 DO bi = myBxLo(myThid), myBxHi(myThid)
395 DO K=1,Nr
396 DO j = 1,sNy
397 DO i = 1,sNx
398 tmpMk(i,j,K,bi,bj) = salt(i,j,K,bi,bj)-35. _d 0
399 ENDDO
400 ENDDO
401 ENDDO
402 ENDDO
403 ENDDO
404 CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid)
405 ENDIF
406
407 IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN
408 DO bj = myByLo(myThid), myByHi(myThid)
409 DO bi = myBxLo(myThid), myBxHi(myThid)
410 DO K=1,Nr
411 DO j = 1,sNy
412 DO i = 1,sNx
413 tmpMk(i,j,K,bi,bj) = (salt(i,j,K,bi,bj)-35. _d 0)
414 & *(salt(i,j,K,bi,bj)-35. _d 0)
415 ENDDO
416 ENDDO
417 ENDDO
418 ENDDO
419 ENDDO
420 CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid)
421 ENDIF
422
423 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
424
425 IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN
426 DO bj = myByLo(myThid), myByHi(myThid)
427 DO bi = myBxLo(myThid), myBxHi(myThid)
428 DO K=1,Nr
429 DO j = 1,sNy
430 DO i = 1,sNx
431 tmpMk(i,j,K,bi,bj)
432 & = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj)
433 ENDDO
434 ENDDO
435 ENDDO
436 ENDDO
437 ENDDO
438 CALL DIAGNOSTICS_FILL(tmpMk,'UVELMASS',0,Nr,0,1,1,myThid)
439 ENDIF
440
441 IF ( DIAGNOSTICS_IS_ON('VVELMASS',myThid) ) THEN
442 DO bj = myByLo(myThid), myByHi(myThid)
443 DO bi = myBxLo(myThid), myBxHi(myThid)
444 DO K=1,Nr
445 DO j = 1,sNy
446 DO i = 1,sNx
447 tmpMk(i,j,K,bi,bj)
448 & = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj)
449 ENDDO
450 ENDDO
451 ENDDO
452 ENDDO
453 ENDDO
454 CALL DIAGNOSTICS_FILL(tmpMk,'VVELMASS',0,Nr,0,1,1,myThid)
455 ENDIF
456
457 CALL DIAGNOSTICS_FILL(wVel, 'WVELMASS',0,Nr,0,1,1,myThid)
458
459 IF ( DIAGNOSTICS_IS_ON('UTHMASS ',myThid) ) THEN
460 DO bj = myByLo(myThid), myByHi(myThid)
461 DO bi = myBxLo(myThid), myBxHi(myThid)
462 DO K=1,Nr
463 DO j = 1,sNy
464 DO i = 1,sNx+1
465 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
466 & *(theta(i,j,K,bi,bj)+theta(i-1,j,K,bi,bj))
467 & * hFacW(i,j,K,bi,bj)
468 ENDDO
469 ENDDO
470 ENDDO
471 ENDDO
472 ENDDO
473 CALL DIAGNOSTICS_FILL(tmpMk,'UTHMASS ',0,Nr,0,1,1,myThid)
474 ENDIF
475
476 IF ( DIAGNOSTICS_IS_ON('VTHMASS ',myThid) ) THEN
477 DO bj = myByLo(myThid), myByHi(myThid)
478 DO bi = myBxLo(myThid), myBxHi(myThid)
479 DO K=1,Nr
480 DO j = 1,sNy+1
481 DO i = 1,sNx
482 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
483 & *(theta(i,j,K,bi,bj)+theta(i,j-1,K,bi,bj))
484 & * hFacS(i,j,K,bi,bj)
485 ENDDO
486 ENDDO
487 ENDDO
488 ENDDO
489 ENDDO
490 CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid)
491 ENDIF
492
493 IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN
494 DO bj = myByLo(myThid), myByHi(myThid)
495 DO bi = myBxLo(myThid), myBxHi(myThid)
496 DO K=1,Nr
497 km1 = MAX(k-1,1)
498 DO j = 1,sNy
499 DO i = 1,sNx
500 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
501 & *(theta(i,j,K,bi,bj)+theta(i,j,km1,bi,bj))
502 ENDDO
503 ENDDO
504 ENDDO
505 ENDDO
506 ENDDO
507 CALL DIAGNOSTICS_FILL(tmpMk,'WTHMASS ',0,Nr,0,1,1,myThid)
508 ENDIF
509
510 IF ( DIAGNOSTICS_IS_ON('USLTMASS',myThid) ) THEN
511 DO bj = myByLo(myThid), myByHi(myThid)
512 DO bi = myBxLo(myThid), myBxHi(myThid)
513 DO K=1,Nr
514 DO j = 1,sNy
515 DO i = 1,sNx+1
516 tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0
517 & *(salt(i,j,K,bi,bj)+salt(i-1,j,K,bi,bj))
518 & * hFacW(i,j,K,bi,bj)
519 ENDDO
520 ENDDO
521 ENDDO
522 ENDDO
523 ENDDO
524 CALL DIAGNOSTICS_FILL(tmpMk,'USLTMASS',0,Nr,0,1,1,myThid)
525 ENDIF
526
527 IF ( DIAGNOSTICS_IS_ON('VSLTMASS',myThid) ) THEN
528 DO bj = myByLo(myThid), myByHi(myThid)
529 DO bi = myBxLo(myThid), myBxHi(myThid)
530 DO K=1,Nr
531 DO j = 1,sNy+1
532 DO i = 1,sNx
533 tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0
534 & *(salt(i,j,K,bi,bj)+salt(i,j-1,K,bi,bj))
535 & * hFacS(i,j,K,bi,bj)
536 ENDDO
537 ENDDO
538 ENDDO
539 ENDDO
540 ENDDO
541 CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid)
542 ENDIF
543
544 IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN
545 DO bj = myByLo(myThid), myByHi(myThid)
546 DO bi = myBxLo(myThid), myBxHi(myThid)
547 DO K=1,Nr
548 km1 = MAX(k-1,1)
549 DO j = 1,sNy
550 DO i = 1,sNx
551 tmpMk(i,j,K,bi,bj) = wVel(i,j,K,bi,bj)*0.5 _d 0
552 & *(salt(i,j,K,bi,bj)+salt(i,j,km1,bi,bj))
553 ENDDO
554 ENDDO
555 ENDDO
556 ENDDO
557 ENDDO
558 CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid)
559 ENDIF
560
561 C-- fill tracer state-var diagnostics: end
562 ENDIF
563
564 #endif /* ALLOW_DIAGNOSTICS */
565
566 RETURN
567 END

  ViewVC Help
Powered by ViewVC 1.1.22