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 == |
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 |
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) |
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 |
350 |
DO K=1,Nr |
DO K=1,Nr |
351 |
DO j = 1,sNy |
DO j = 1,sNy |
352 |
DO i = 1,sNx+1 |
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 |
634 |
|
|
635 |
IF ( selectVars.EQ.4 ) THEN |
IF ( selectVars.EQ.4 ) THEN |
636 |
C Second fill sequence for state variable tendency diagnostics: add state variable |
C Second fill sequence for state variable tendency diagnostics: add state variable |
637 |
C NOTE: send a '-1' for the bibjflag and allow counter to be incremented |
C NOTE: send a '-1' for the bibjflag and do not increment counter |
638 |
C this means that diag fill is called from inside the bi-bj loop |
C (next fill for these diagnostics WILL allow counter to be incremented) |
639 |
|
|
640 |
IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN |
IF ( DIAGNOSTICS_IS_ON('TOTUTEND',myThid) ) THEN |
641 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |