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 == |
78 |
CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2, |
CALL DIAGNOSTICS_SCALE_FILL(dEtaHdt,tmpFac,2, |
79 |
& 'DETADT2 ',0, 1,0,1,1,myThid) |
& 'DETADT2 ',0, 1,0,1,1,myThid) |
80 |
#endif |
#endif |
81 |
|
#ifdef ALLOW_NONHYDROSTATIC |
82 |
|
IF ( use3Dsolver ) THEN |
83 |
|
CALL DIAGNOSTICS_FILL( phi_nh,'PHI_NH ',0,Nr,0,1,1,myThid ) |
84 |
|
ENDIF |
85 |
|
#endif |
86 |
|
|
87 |
CALL DIAGNOSTICS_FILL(uVel, 'UVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(uVel, 'UVEL ',0,Nr,0,1,1,myThid) |
88 |
CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(vVel, 'VVEL ',0,Nr,0,1,1,myThid) |
283 |
DO K=1,Nr |
DO K=1,Nr |
284 |
DO j = 1,sNy |
DO j = 1,sNy |
285 |
DO i = 1,sNx+1 |
DO i = 1,sNx+1 |
286 |
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) |
287 |
& *(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)) |
288 |
ENDDO |
ENDDO |
289 |
ENDDO |
ENDDO |
290 |
ENDDO |
ENDDO |
299 |
DO K=1,Nr |
DO K=1,Nr |
300 |
DO j = 1,sNy+1 |
DO j = 1,sNy+1 |
301 |
DO i = 1,sNx |
DO i = 1,sNx |
302 |
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) |
303 |
& *(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)) |
304 |
ENDDO |
ENDDO |
305 |
ENDDO |
ENDDO |
306 |
ENDDO |
ENDDO |
309 |
CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'VVELPHI ',0,Nr,0,1,1,myThid) |
310 |
ENDIF |
ENDIF |
311 |
|
|
312 |
IF ( DIAGNOSTICS_IS_ON('PRESSURE',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('RCENTER ',myThid) ) THEN |
313 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
314 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
315 |
DO j = 1,sNy |
DO j = 1,sNy |
321 |
DO j = 1,sNy |
DO j = 1,sNy |
322 |
DO i = 1,sNx |
DO i = 1,sNx |
323 |
tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj) |
tmpMk(i,j,k,bi,bj) = tmp1k(i,j,bi,bj) |
324 |
& + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0 |
& + (rF(k)-rC(k))*hFacC(i,j,k,bi,bj) |
325 |
|
C above: more general (setInterFDr/setCenterDr) than line below |
326 |
|
c & + drF(k)*hFacC(i,j,k,bi,bj)*0.5 _d 0 |
327 |
tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj) |
tmp1k(i,j,bi,bj) = tmp1k(i,j,bi,bj) |
328 |
& + drF(k)*hFacC(i,j,k,bi,bj) |
& + drF(k)*hFacC(i,j,k,bi,bj) |
329 |
ENDDO |
ENDDO |
331 |
ENDDO |
ENDDO |
332 |
ENDDO |
ENDDO |
333 |
ENDDO |
ENDDO |
334 |
CALL DIAGNOSTICS_FILL(tmpMk,'PRESSURE',0,Nr,0,1,1,myThid) |
CALL DIAGNOSTICS_FILL(tmpMk,'RCENTER ',0,Nr,0,1,1,myThid) |
335 |
ENDIF |
ENDIF |
336 |
|
|
337 |
C First fill sequence for state variable tendency diagnostics: subtract state variable |
C First fill sequence for state variable tendency diagnostics: subtract state variable |
343 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
344 |
DO K=1,Nr |
DO K=1,Nr |
345 |
DO j = 1,sNy |
DO j = 1,sNy |
346 |
DO i = 1,sNx |
DO i = 1,sNx+1 |
347 |
tmpMk(i,j,K,bi,bj) = -uVel(i,j,K,bi,bj)* |
tmpMk(i,j,K,bi,bj) = -uVel(i,j,K,bi,bj) |
348 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
349 |
ENDDO |
ENDDO |
350 |
ENDDO |
ENDDO |
358 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
359 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
360 |
DO K=1,Nr |
DO K=1,Nr |
361 |
DO j = 1,sNy |
DO j = 1,sNy+1 |
362 |
DO i = 1,sNx |
DO i = 1,sNx |
363 |
tmpMk(i,j,K,bi,bj) = -vVel(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) = -vVel(i,j,K,bi,bj) |
364 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
492 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
493 |
DO K=1,Nr |
DO K=1,Nr |
494 |
DO j = 1,sNy |
DO j = 1,sNy |
495 |
DO i = 1,sNx |
DO i = 1,sNx+1 |
496 |
tmpMk(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) |
497 |
& = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj) |
& = uVel(i,j,K,bi,bj)*hFacW(i,j,K,bi,bj) |
498 |
ENDDO |
ENDDO |
507 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
508 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
509 |
DO K=1,Nr |
DO K=1,Nr |
510 |
DO j = 1,sNy |
DO j = 1,sNy+1 |
511 |
DO i = 1,sNx |
DO i = 1,sNx |
512 |
tmpMk(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) |
513 |
& = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj) |
& = vVel(i,j,K,bi,bj)*hFacS(i,j,K,bi,bj) |
636 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
637 |
DO K=1,Nr |
DO K=1,Nr |
638 |
DO j = 1,sNy |
DO j = 1,sNy |
639 |
DO i = 1,sNx |
DO i = 1,sNx+1 |
640 |
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) = uVel(i,j,K,bi,bj) |
641 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |
642 |
ENDDO |
ENDDO |
651 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
652 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
653 |
DO K=1,Nr |
DO K=1,Nr |
654 |
DO j = 1,sNy |
DO j = 1,sNy+1 |
655 |
DO i = 1,sNx |
DO i = 1,sNx |
656 |
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj) |
tmpMk(i,j,K,bi,bj) = vVel(i,j,K,bi,bj) |
657 |
. *86400./dTtracerLev(1) |
. *86400./dTtracerLev(1) |