/[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.23 - (show annotations) (download)
Wed Jul 13 00:46:07 2005 UTC (18 years, 10 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57o_post, checkpoint57m_post, checkpoint57n_post, checkpoint57p_post, checkpoint57l_post
Changes since 1.22: +9 -3 lines
change UV_VEL_C diagnostics to be the true product of Zonal & Merid. comp.

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

  ViewVC Help
Powered by ViewVC 1.1.22