58 |
INTEGER myThid |
INTEGER myThid |
59 |
|
|
60 |
C == Local variables |
C == Local variables |
|
C maskUp o maskUp: land/water mask for W points |
|
61 |
C fVer[STUV] o fVer: Vertical flux term - note fVer |
C fVer[STUV] o fVer: Vertical flux term - note fVer |
62 |
C is "pipelined" in the vertical |
C is "pipelined" in the vertical |
63 |
C so we need an fVer for each |
C so we need an fVer for each |
77 |
C kDown, km1 are switched with layer to be the appropriate |
C kDown, km1 are switched with layer to be the appropriate |
78 |
C index into fVerTerm. |
C index into fVerTerm. |
79 |
C tauAB - Adams-Bashforth timestepping weight: 0=forward ; 1/2=Adams-Bashf. |
C tauAB - Adams-Bashforth timestepping weight: 0=forward ; 1/2=Adams-Bashf. |
|
_RS maskUp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
80 |
_RL fVerU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL fVerU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
81 |
_RL fVerV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL fVerV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
82 |
_RL phiHyd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL phiHyd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
98 |
INTEGER jMin, jMax |
INTEGER jMin, jMax |
99 |
INTEGER bi, bj |
INTEGER bi, bj |
100 |
INTEGER i, j |
INTEGER i, j |
101 |
INTEGER k, km1, kup, kDown |
INTEGER k, km1, kp1, kup, kDown |
102 |
|
|
103 |
Cjmc : add for phiHyd output <- but not working if multi tile per CPU |
Cjmc : add for phiHyd output <- but not working if multi tile per CPU |
104 |
c CHARACTER*(MAX_LEN_MBUF) suff |
c CHARACTER*(MAX_LEN_MBUF) suff |
159 |
DO i=1-OLx,sNx+OLx |
DO i=1-OLx,sNx+OLx |
160 |
DO k=1,Nr |
DO k=1,Nr |
161 |
phiHyd(i,j,k) = 0. _d 0 |
phiHyd(i,j,k) = 0. _d 0 |
162 |
KappaRU(i,j,k) = 0. _d 0 |
cph KappaRU(i,j,k) = 0. _d 0 |
163 |
KappaRV(i,j,k) = 0. _d 0 |
cph KappaRV(i,j,k) = 0. _d 0 |
164 |
sigmaX(i,j,k) = 0. _d 0 |
sigmaX(i,j,k) = 0. _d 0 |
165 |
sigmaY(i,j,k) = 0. _d 0 |
sigmaY(i,j,k) = 0. _d 0 |
166 |
sigmaR(i,j,k) = 0. _d 0 |
sigmaR(i,j,k) = 0. _d 0 |
238 |
I myThid ) |
I myThid ) |
239 |
ENDIF |
ENDIF |
240 |
|
|
241 |
|
#ifdef INCLUDE_CALC_DIFFUSIVITY_CALL |
242 |
|
C-- Calculate the total vertical diffusivity |
243 |
|
DO k=1,Nr |
244 |
|
CALL CALC_VISCOSITY( |
245 |
|
I bi,bj,iMin,iMax,jMin,jMax,k, |
246 |
|
O KappaRU,KappaRV, |
247 |
|
I myThid) |
248 |
|
ENDDO |
249 |
|
#endif |
250 |
|
|
251 |
C-- Start of dynamics loop |
C-- Start of dynamics loop |
252 |
DO k=1,Nr |
DO k=1,Nr |
253 |
|
|
256 |
C-- kDown Cycles through 2,1 to point to current layer |
C-- kDown Cycles through 2,1 to point to current layer |
257 |
|
|
258 |
km1 = MAX(1,k-1) |
km1 = MAX(1,k-1) |
259 |
|
kp1 = MIN(k+1,Nr) |
260 |
kup = 1+MOD(k+1,2) |
kup = 1+MOD(k+1,2) |
261 |
kDown= 1+MOD(k,2) |
kDown= 1+MOD(k,2) |
262 |
|
|
281 |
I myThid ) |
I myThid ) |
282 |
ENDIF |
ENDIF |
283 |
|
|
|
#ifdef INCLUDE_CALC_DIFFUSIVITY_CALL |
|
|
C-- Calculate the total vertical diffusivity |
|
|
CALL CALC_VISCOSITY( |
|
|
I bi,bj,iMin,iMax,jMin,jMax,k, |
|
|
I maskUp, |
|
|
O KappaRU,KappaRV, |
|
|
I myThid) |
|
|
#endif |
|
|
|
|
284 |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
285 |
C and step forward storing the result in gUnm1, gVnm1, etc... |
C and step forward storing the result in gUnm1, gVnm1, etc... |
286 |
IF ( momStepping ) THEN |
IF ( momStepping ) THEN |