/[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.22 - (show annotations) (download)
Mon Jul 11 21:58:19 2005 UTC (18 years, 10 months ago) by molod
Branch: MAIN
Changes since 1.21: +15 -1 lines
Add code to fill new diagnostic called RSURF with surface location (pressure or height)

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

  ViewVC Help
Powered by ViewVC 1.1.22