22 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
23 |
#include "PARAMS.h" |
#include "PARAMS.h" |
24 |
#include "GRID.h" |
#include "GRID.h" |
|
#include "DYNVARS.h" |
|
25 |
#include "SURFACE.h" |
#include "SURFACE.h" |
26 |
|
#include "DYNVARS.h" |
27 |
|
#include "NH_VARS.h" |
28 |
|
|
29 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
30 |
C == Routine arguments == |
C == Routine arguments == |
34 |
C = 3 :: fill-in diagnostics for momentum & tracer variables |
C = 3 :: fill-in diagnostics for momentum & tracer variables |
35 |
C = 4 :: fill-in state variable tendency diagnostics the second time |
C = 4 :: fill-in state variable tendency diagnostics the second time |
36 |
C myThid :: my Thread Id number |
C myThid :: my Thread Id number |
37 |
INTEGER selectVars |
INTEGER selectVars |
38 |
INTEGER myThid |
INTEGER myThid |
39 |
|
|
40 |
#ifdef ALLOW_DIAGNOSTICS |
#ifdef ALLOW_DIAGNOSTICS |
41 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
44 |
EXTERNAL DIAGNOSTICS_IS_ON |
EXTERNAL DIAGNOSTICS_IS_ON |
45 |
_RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
_RL tmpMk(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) |
46 |
_RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL tmp1k(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
47 |
|
_RL tmpU (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
48 |
|
_RL tmpV (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
49 |
_RL tmpFac, uBarC, vBarC |
_RL tmpFac, uBarC, vBarC |
50 |
#ifdef ALLOW_FIZHI |
#ifdef ALLOW_FIZHI |
51 |
_RL dummy1, dummy2, dummy3, dummy4, kappa, getcon |
_RL dummy1, dummy2, dummy3, dummy4, kappa, getcon |
52 |
#endif |
#endif |
53 |
INTEGER i,j,K,bi,bj |
INTEGER i,j,K,bi,bj |
54 |
INTEGER km1 |
INTEGER km1 |
55 |
|
|
56 |
tmpFac = 1. _d 0 |
tmpFac = 1. _d 0 |
57 |
|
|
58 |
IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN |
IF ( selectVars.EQ.2 .OR. selectVars.EQ.3 ) THEN |
75 |
|
|
76 |
CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL(etaN,tmpFac,2, |
77 |
& 'ETANSQ ',0, 1,0,1,1,myThid) |
& 'ETANSQ ',0, 1,0,1,1,myThid) |
78 |
|
|
79 |
#ifdef EXACT_CONSERV |
#ifdef EXACT_CONSERV |
80 |
CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2, |
81 |
& 'DETADT2 ',0, 1,0,1,1,myThid) |
& 'DETADT2 ',0, 1,0,1,1,myThid) |
82 |
#endif |
#endif |
83 |
|
#ifdef ALLOW_NONHYDROSTATIC |
84 |
|
IF ( use3Dsolver ) THEN |
85 |
|
CALL DIAGNOSTICS_FILL( phi_nh,'PHI_NH ',0,Nr,0,1,1,myThid ) |
86 |
|
ENDIF |
87 |
|
#endif |
88 |
|
|
89 |
CALL DIAGNOSTICS_FILL(uVel, 'UVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(uVel, 'UVEL ',0,Nr,0,1,1,myThid) |
90 |
CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid) |
91 |
CALL DIAGNOSTICS_FILL(wVel, 'WVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(wVel, 'WVEL ',0,Nr,0,1,1,myThid) |
92 |
|
|
93 |
CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL(uVel,tmpFac,2, |
94 |
& 'UVELSQ ',0,Nr,0,1,1,myThid) |
& 'UVELSQ ',0,Nr,0,1,1,myThid) |
95 |
CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL(vVel,tmpFac,2, |
99 |
|
|
100 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
101 |
|
|
102 |
IF ( DIAGNOSTICS_IS_ON('UV_VEL_C',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('UE_VEL_C',myThid) .OR. |
103 |
|
& DIAGNOSTICS_IS_ON('VN_VEL_C',myThid) .OR. |
104 |
|
& DIAGNOSTICS_IS_ON('UV_VEL_C',myThid) ) THEN |
105 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
106 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
107 |
DO K=1,Nr |
DO K=1,Nr |
111 |
& *(uVel(i,j,K,bi,bj)+uVel(i+1,j,K,bi,bj)) |
& *(uVel(i,j,K,bi,bj)+uVel(i+1,j,K,bi,bj)) |
112 |
vBarC = 0.5 _d 0 |
vBarC = 0.5 _d 0 |
113 |
& *(vVel(i,j,K,bi,bj)+vVel(i,j+1,K,bi,bj)) |
& *(vVel(i,j,K,bi,bj)+vVel(i,j+1,K,bi,bj)) |
114 |
tmpMk(i,j,K,bi,bj) = |
tmpU(i,j) = angleCosC(i,j,bi,bj)*uBarC |
115 |
& ( angleCosC(i,j,bi,bj)*uBarC |
& -angleSinC(i,j,bi,bj)*vBarC |
116 |
& -angleSinC(i,j,bi,bj)*vBarC ) |
tmpV(i,j) = angleSinC(i,j,bi,bj)*uBarC |
117 |
& *( angleSinC(i,j,bi,bj)*uBarC |
& +angleCosC(i,j,bi,bj)*vBarC |
118 |
& +angleCosC(i,j,bi,bj)*vBarC ) |
tmpMk(i,j,K,bi,bj) = tmpU(i,j)*tmpV(i,j) |
119 |
ENDDO |
ENDDO |
120 |
ENDDO |
ENDDO |
121 |
|
CALL DIAGNOSTICS_FILL(tmpU,'UE_VEL_C',k,1,2,bi,bj,myThid) |
122 |
|
CALL DIAGNOSTICS_FILL(tmpV,'VN_VEL_C',k,1,2,bi,bj,myThid) |
123 |
ENDDO |
ENDDO |
124 |
ENDDO |
ENDDO |
125 |
ENDDO |
ENDDO |
126 |
CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_C',0,Nr,0,1,1,myThid) |
127 |
ENDIF |
ENDIF |
128 |
|
|
129 |
IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('UV_VEL_Z',myThid) ) THEN |
130 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
131 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
142 |
ENDDO |
ENDDO |
143 |
CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'UV_VEL_Z',0,Nr,0,1,1,myThid) |
144 |
ENDIF |
ENDIF |
145 |
|
|
146 |
IF ( DIAGNOSTICS_IS_ON('WU_VEL ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('WU_VEL ',myThid) ) THEN |
147 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
148 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
200 |
ENDDO |
ENDDO |
201 |
CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'UVELTH ',0,Nr,0,1,1,myThid) |
202 |
ENDIF |
ENDIF |
203 |
|
|
204 |
IF ( DIAGNOSTICS_IS_ON('VVELTH ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('VVELTH ',myThid) ) THEN |
205 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
206 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
216 |
ENDDO |
ENDDO |
217 |
CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'VVELTH ',0,Nr,0,1,1,myThid) |
218 |
ENDIF |
ENDIF |
219 |
|
|
220 |
IF ( DIAGNOSTICS_IS_ON('WVELTH ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('WVELTH ',myThid) ) THEN |
221 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
222 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
233 |
ENDDO |
ENDDO |
234 |
CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'WVELTH ',0,Nr,0,1,1,myThid) |
235 |
ENDIF |
ENDIF |
236 |
|
|
237 |
IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('UVELSLT ',myThid) ) THEN |
238 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
239 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
249 |
ENDDO |
ENDDO |
250 |
CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'UVELSLT ',0,Nr,0,1,1,myThid) |
251 |
ENDIF |
ENDIF |
252 |
|
|
253 |
IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('VVELSLT ',myThid) ) THEN |
254 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
255 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
282 |
ENDDO |
ENDDO |
283 |
CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'WVELSLT ',0,Nr,0,1,1,myThid) |
284 |
ENDIF |
ENDIF |
285 |
|
|
286 |
IF ( DIAGNOSTICS_IS_ON('UVELPHI ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('UVELPHI ',myThid) ) THEN |
287 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
288 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
289 |
DO K=1,Nr |
DO K=1,Nr |
290 |
DO j = 1,sNy |
DO j = 1,sNy |
291 |
DO i = 1,sNx+1 |
DO i = 1,sNx+1 |
292 |
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*0.5 _d 0 |
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj)*hFacW(i,j,k,bi,bj) |
293 |
& *(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i-1,j,K,bi,bj)) |
& *0.5 _d 0*(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i-1,j,K,bi,bj)) |
294 |
ENDDO |
ENDDO |
295 |
ENDDO |
ENDDO |
296 |
ENDDO |
ENDDO |
298 |
ENDDO |
ENDDO |
299 |
CALL DIAGNOSTICS_FILL(tmpMk,'UVELPHI ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'UVELPHI ',0,Nr,0,1,1,myThid) |
300 |
ENDIF |
ENDIF |
301 |
|
|
302 |
IF ( DIAGNOSTICS_IS_ON('VVELPHI ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('VVELPHI ',myThid) ) THEN |
303 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
304 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
305 |
DO K=1,Nr |
DO K=1,Nr |
306 |
DO j = 1,sNy+1 |
DO j = 1,sNy+1 |
307 |
DO i = 1,sNx |
DO i = 1,sNx |
308 |
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*0.5 _d 0 |
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj)*hFacS(i,j,k,bi,bj) |
309 |
& *(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i,j-1,K,bi,bj)) |
& *0.5 _d 0*(totPhiHyd(i,j,K,bi,bj)+totPhiHyd(i,j-1,K,bi,bj)) |
310 |
ENDDO |
ENDDO |
311 |
ENDDO |
ENDDO |
312 |
ENDDO |
ENDDO |
314 |
ENDDO |
ENDDO |
315 |
CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid) |
316 |
ENDIF |
ENDIF |
317 |
|
|
318 |
IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('RCENTER ',myThid) ) THEN |
319 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
320 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
321 |
DO j = 1,sNy |
DO j = 1,sNy |
327 |
DO j = 1,sNy |
DO j = 1,sNy |
328 |
DO i = 1,sNx |
DO i = 1,sNx |
329 |
tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj) |
tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj) |
330 |
& + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0 |
& + (rF(k)-rC(k))*hFacC(i,j,k,bi,bj) |
331 |
|
C above: more general (setInterFDr/setCenterDr) than line below |
332 |
|
c & + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0 |
333 |
tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj) |
tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj) |
334 |
& + drF(k)*hFacC(i,j,k,bi,bj) |
& + drF(k)*hFacC(i,j,k,bi,bj) |
335 |
ENDDO |
ENDDO |
337 |
ENDDO |
ENDDO |
338 |
ENDDO |
ENDDO |
339 |
ENDDO |
ENDDO |
340 |
CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'RCENTER ',0,Nr,0,1,1,myThid) |
341 |
ENDIF |
ENDIF |
342 |
|
|
343 |
C First fill sequence for state variable tendency diagnostics: subtract state variable |
C First fill sequence for state variable tendency diagnostics: subtract state variable |
349 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
350 |
DO K=1,Nr |
DO K=1,Nr |
351 |
DO j = 1,sNy |
DO j = 1,sNy |
352 |
DO i = 1,sNx |
DO i = 1,sNx+1 |
353 |
tmpMk(i,j,K,bi,bj) = -uVel(i,j,K,bi,bj)* |
tmpMk(i,j,K,bi,bj) = -uVel(i,j,K,bi,bj) |
354 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
355 |
ENDDO |
ENDDO |
356 |
ENDDO |
ENDDO |
364 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
365 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
366 |
DO K=1,Nr |
DO K=1,Nr |
367 |
DO j = 1,sNy |
DO j = 1,sNy+1 |
368 |
DO i = 1,sNx |
DO i = 1,sNx |
369 |
tmpMk(i,j,K,bi,bj) = -vVel(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) = -vVel(i,j,K,bi,bj) |
370 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
375 |
ENDDO |
ENDDO |
376 |
CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'TOTVTEND',0,Nr,0,1,1,myThid) |
377 |
ENDIF |
ENDIF |
378 |
|
|
379 |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
380 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
381 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
391 |
ENDDO |
ENDDO |
392 |
CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'TOTTTEND',0,Nr,0,1,1,myThid) |
393 |
ENDIF |
ENDIF |
394 |
|
|
395 |
IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN |
396 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
397 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
430 |
dummy1 = theta(i,j,k,bi,bj) * ((rc(k)/100.)/1000.)**kappa |
dummy1 = theta(i,j,k,bi,bj) * ((rc(k)/100.)/1000.)**kappa |
431 |
dummy2 = rc(k) / 100. |
dummy2 = rc(k) / 100. |
432 |
call qsat(dummy1,dummy2,dummy3,dummy4,.false.) |
call qsat(dummy1,dummy2,dummy3,dummy4,.false.) |
433 |
tmpMk(i,j,K,bi,bj) = hfacC(i,j,K,bi,bj) * |
tmpMk(i,j,K,bi,bj) = hfacC(i,j,K,bi,bj) * |
434 |
. salt(i,j,k,bi,bj) * 100. / dummy3 |
. salt(i,j,k,bi,bj) * 100. / dummy3 |
435 |
enddo |
enddo |
436 |
enddo |
enddo |
445 |
& 'THETASQ ',0,Nr,0,1,1,myThid) |
& 'THETASQ ',0,Nr,0,1,1,myThid) |
446 |
CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL(salt,tmpFac,2, |
447 |
& 'SALTSQ ',0,Nr,0,1,1,myThid) |
& 'SALTSQ ',0,Nr,0,1,1,myThid) |
448 |
|
|
449 |
c IF ( DIAGNOSTICS_IS_ON('SST ',myThid) ) THEN |
c IF ( DIAGNOSTICS_IS_ON('SST ',myThid) ) THEN |
450 |
c DO bj = myByLo(myThid), myByHi(myThid) |
c DO bj = myByLo(myThid), myByHi(myThid) |
451 |
c DO bi = myBxLo(myThid), myBxHi(myThid) |
c DO bi = myBxLo(myThid), myBxHi(myThid) |
458 |
c ENDDO |
c ENDDO |
459 |
c CALL DIAGNOSTICS_FILL(tmp1k,'SST ',0,1,0,1,1,myThid) |
c CALL DIAGNOSTICS_FILL(tmp1k,'SST ',0,1,0,1,1,myThid) |
460 |
c ENDIF |
c ENDIF |
461 |
|
|
462 |
c IF ( DIAGNOSTICS_IS_ON('SSS ',myThid) ) THEN |
c IF ( DIAGNOSTICS_IS_ON('SSS ',myThid) ) THEN |
463 |
c DO bj = myByLo(myThid), myByHi(myThid) |
c DO bj = myByLo(myThid), myByHi(myThid) |
464 |
c DO bi = myBxLo(myThid), myBxHi(myThid) |
c DO bi = myBxLo(myThid), myBxHi(myThid) |
472 |
c CALL DIAGNOSTICS_FILL(tmp1k,'SSS ',0,1,0,1,1,myThid) |
c CALL DIAGNOSTICS_FILL(tmp1k,'SSS ',0,1,0,1,1,myThid) |
473 |
c ENDIF |
c ENDIF |
474 |
|
|
475 |
IF ( DIAGNOSTICS_IS_ON('SALTanom',myThid) ) THEN |
IF ( fluidIsWater .AND. |
476 |
|
& ( DIAGNOSTICS_IS_ON('SALTanom',myThid) |
477 |
|
& .OR.DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) ) THEN |
478 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
479 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
480 |
DO K=1,Nr |
DO K=1,Nr |
486 |
ENDDO |
ENDDO |
487 |
ENDDO |
ENDDO |
488 |
ENDDO |
ENDDO |
489 |
CALL DIAGNOSTICS_FILL(tmpMk,'SALTanom',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL( tmpMk,'SALTanom',0,Nr,0,1,1,myThid) |
490 |
|
CALL DIAGNOSTICS_SCALE_FILL(tmpMk,tmpFac,2, |
491 |
|
& 'SALTSQan',0,Nr,0,1,1,myThid) |
492 |
ENDIF |
ENDIF |
493 |
|
|
|
IF ( DIAGNOSTICS_IS_ON('SALTSQan',myThid) ) THEN |
|
|
DO bj = myByLo(myThid), myByHi(myThid) |
|
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
|
|
DO K=1,Nr |
|
|
DO j = 1,sNy |
|
|
DO i = 1,sNx |
|
|
tmpMk(i,j,K,bi,bj) = (salt(i,j,K,bi,bj)-35. _d 0) |
|
|
& *(salt(i,j,K,bi,bj)-35. _d 0) |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
ENDDO |
|
|
CALL DIAGNOSTICS_FILL(tmpMk,'SALTSQan',0,Nr,0,1,1,myThid) |
|
|
ENDIF |
|
|
|
|
494 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
495 |
|
|
496 |
IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('UVELMASS',myThid) ) THEN |
498 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
499 |
DO K=1,Nr |
DO K=1,Nr |
500 |
DO j = 1,sNy |
DO j = 1,sNy |
501 |
DO i = 1,sNx |
DO i = 1,sNx+1 |
502 |
tmpMk(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) |
503 |
& = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj) |
& = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj) |
504 |
ENDDO |
ENDDO |
505 |
ENDDO |
ENDDO |
513 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
514 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
515 |
DO K=1,Nr |
DO K=1,Nr |
516 |
DO j = 1,sNy |
DO j = 1,sNy+1 |
517 |
DO i = 1,sNx |
DO i = 1,sNx |
518 |
tmpMk(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) |
519 |
& = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj) |
& = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj) |
520 |
ENDDO |
ENDDO |
521 |
ENDDO |
ENDDO |
560 |
ENDDO |
ENDDO |
561 |
CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'VTHMASS ',0,Nr,0,1,1,myThid) |
562 |
ENDIF |
ENDIF |
563 |
|
|
564 |
IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('WTHMASS ',myThid) ) THEN |
565 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
566 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
611 |
ENDDO |
ENDDO |
612 |
CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'VSLTMASS',0,Nr,0,1,1,myThid) |
613 |
ENDIF |
ENDIF |
614 |
|
|
615 |
IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('WSLTMASS',myThid) ) THEN |
616 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
617 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
628 |
ENDDO |
ENDDO |
629 |
CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'WSLTMASS',0,Nr,0,1,1,myThid) |
630 |
ENDIF |
ENDIF |
631 |
|
|
632 |
C-- fill tracer state-var diagnostics: end |
C-- fill tracer state-var diagnostics: end |
633 |
ENDIF |
ENDIF |
634 |
|
|
642 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
643 |
DO K=1,Nr |
DO K=1,Nr |
644 |
DO j = 1,sNy |
DO j = 1,sNy |
645 |
DO i = 1,sNx |
DO i = 1,sNx+1 |
646 |
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj) |
647 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
648 |
ENDDO |
ENDDO |
657 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
658 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
659 |
DO K=1,Nr |
DO K=1,Nr |
660 |
DO j = 1,sNy |
DO j = 1,sNy+1 |
661 |
DO i = 1,sNx |
DO i = 1,sNx |
662 |
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj) |
663 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
668 |
ENDDO |
ENDDO |
669 |
ENDDO |
ENDDO |
670 |
ENDIF |
ENDIF |
671 |
|
|
672 |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTTTEND',myThid) ) THEN |
673 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
674 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
684 |
ENDDO |
ENDDO |
685 |
ENDDO |
ENDDO |
686 |
ENDIF |
ENDIF |
687 |
|
|
688 |
IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTSTEND',myThid) ) THEN |
689 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
690 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
705 |
ENDIF |
ENDIF |
706 |
|
|
707 |
#endif /* ALLOW_DIAGNOSTICS */ |
#endif /* ALLOW_DIAGNOSTICS */ |
708 |
|
|
709 |
RETURN |
RETURN |
710 |
END |
END |