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 |
64 |
C variable. |
C variable. |
65 |
C rhoK, rhoKM1 - Density at current level, level above and level |
C rhoK, rhoKM1 - Density at current level, and level above |
|
C below. |
|
|
C rhoKP1 |
|
|
C buoyK, buoyKM1 - Buoyancy at current level and level above. |
|
66 |
C phiHyd - Hydrostatic part of the potential phiHydi. |
C phiHyd - Hydrostatic part of the potential phiHydi. |
67 |
C In z coords phiHydiHyd is the hydrostatic |
C In z coords phiHydiHyd is the hydrostatic |
68 |
C pressure anomaly |
C pressure anomaly |
92 |
_RL fVerU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL fVerU (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
93 |
_RL fVerV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
_RL fVerV (1-OLx:sNx+OLx,1-OLy:sNy+OLy,2) |
94 |
_RL phiHyd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL phiHyd (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
95 |
|
_RL phiHydInterface(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
96 |
_RL rhokm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL rhokm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
_RL rhokp1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
97 |
_RL rhok (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL rhok (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
_RL buoyKM1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL buoyK (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
|
_RL rhotmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
|
98 |
_RL KappaRT (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
_RL KappaRT (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
99 |
_RL KappaRS (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
_RL KappaRS (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
100 |
_RL KappaRU (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
_RL KappaRU (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr) |
186 |
uTrans(i,j) = 0. _d 0 |
uTrans(i,j) = 0. _d 0 |
187 |
vTrans(i,j) = 0. _d 0 |
vTrans(i,j) = 0. _d 0 |
188 |
DO k=1,Nr |
DO k=1,Nr |
|
phiHyd (i,j,k) = 0. _d 0 |
|
189 |
KappaRU(i,j,k) = 0. _d 0 |
KappaRU(i,j,k) = 0. _d 0 |
190 |
KappaRV(i,j,k) = 0. _d 0 |
KappaRV(i,j,k) = 0. _d 0 |
191 |
sigmaX(i,j,k) = 0. _d 0 |
sigmaX(i,j,k) = 0. _d 0 |
194 |
ENDDO |
ENDDO |
195 |
rhoKM1 (i,j) = 0. _d 0 |
rhoKM1 (i,j) = 0. _d 0 |
196 |
rhok (i,j) = 0. _d 0 |
rhok (i,j) = 0. _d 0 |
|
rhoKP1 (i,j) = 0. _d 0 |
|
|
rhoTMP (i,j) = 0. _d 0 |
|
|
buoyKM1(i,j) = 0. _d 0 |
|
|
buoyK (i,j) = 0. _d 0 |
|
197 |
maskC (i,j) = 0. _d 0 |
maskC (i,j) = 0. _d 0 |
198 |
ENDDO |
ENDDO |
199 |
ENDDO |
ENDDO |
247 |
fVerU (i,j,2) = 0. _d 0 |
fVerU (i,j,2) = 0. _d 0 |
248 |
fVerV (i,j,1) = 0. _d 0 |
fVerV (i,j,1) = 0. _d 0 |
249 |
fVerV (i,j,2) = 0. _d 0 |
fVerV (i,j,2) = 0. _d 0 |
|
phiHyd(i,j,1) = 0. _d 0 |
|
250 |
ENDDO |
ENDDO |
251 |
ENDDO |
ENDDO |
252 |
|
|
297 |
|
|
298 |
C-- Calculate gradients of potential density for isoneutral |
C-- Calculate gradients of potential density for isoneutral |
299 |
C slope terms (e.g. GM/Redi tensor or IVDC diffusivity) |
C slope terms (e.g. GM/Redi tensor or IVDC diffusivity) |
300 |
IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN |
c IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN |
301 |
|
IF ( useGMRedi .OR. (k.GT.1 .AND. ivdc_kappa.NE.0.) ) THEN |
302 |
CALL FIND_RHO( |
CALL FIND_RHO( |
303 |
I bi, bj, iMin, iMax, jMin, jMax, k, k, eosType, |
I bi, bj, iMin, iMax, jMin, jMax, k, k, eosType, |
304 |
|
I theta, salt, |
305 |
O rhoK, |
O rhoK, |
306 |
I myThid ) |
I myThid ) |
307 |
CALL FIND_RHO( |
IF (k.GT.1) CALL FIND_RHO( |
308 |
I bi, bj, iMin, iMax, jMin, jMax, k-1, k, eosType, |
I bi, bj, iMin, iMax, jMin, jMax, k-1, k, eosType, |
309 |
|
I theta, salt, |
310 |
O rhoKm1, |
O rhoKm1, |
311 |
I myThid ) |
I myThid ) |
312 |
CALL GRAD_SIGMA( |
CALL GRAD_SIGMA( |
317 |
ENDIF |
ENDIF |
318 |
|
|
319 |
C-- Implicit Vertical Diffusion for Convection |
C-- Implicit Vertical Diffusion for Convection |
320 |
|
c ==> should use sigmaR !!! |
321 |
IF (k.GT.1 .AND. ivdc_kappa.NE.0.) THEN |
IF (k.GT.1 .AND. ivdc_kappa.NE.0.) THEN |
322 |
CALL CALC_IVDC( |
CALL CALC_IVDC( |
323 |
I bi, bj, iMin, iMax, jMin, jMax, k, |
I bi, bj, iMin, iMax, jMin, jMax, k, |
324 |
I rhoKm1, rhoK, |
I rhoKm1, rhoK, |
|
c should use sigmaR !!! |
|
325 |
U ConvectCount, KappaRT, KappaRS, |
U ConvectCount, KappaRT, KappaRS, |
326 |
I myTime, myIter, myThid) |
I myTime, myIter, myThid) |
327 |
END IF |
END IF |
516 |
jMin = 1-OLy+2 |
jMin = 1-OLy+2 |
517 |
jMax = sNy+OLy-1 |
jMax = sNy+OLy-1 |
518 |
|
|
|
C-- Calculate buoyancy |
|
|
CALL FIND_RHO( |
|
|
I bi, bj, iMin, iMax, jMin, jMax, km1, km1, eosType, |
|
|
O rhoKm1, |
|
|
I myThid ) |
|
|
CALL CALC_BUOYANCY( |
|
|
I bi,bj,iMin,iMax,jMin,jMax,k,rhoKm1, |
|
|
O buoyKm1, |
|
|
I myThid ) |
|
|
CALL FIND_RHO( |
|
|
I bi, bj, iMin, iMax, jMin, jMax, k, k, eosType, |
|
|
O rhoK, |
|
|
I myThid ) |
|
|
CALL CALC_BUOYANCY( |
|
|
I bi,bj,iMin,iMax,jMin,jMax,k,rhoK, |
|
|
O buoyK, |
|
|
I myThid ) |
|
|
|
|
519 |
C-- Integrate hydrostatic balance for phiHyd with BC of |
C-- Integrate hydrostatic balance for phiHyd with BC of |
520 |
C-- phiHyd(z=0)=0 |
C-- phiHyd(z=0)=0 |
521 |
CALL CALC_PHI_HYD( |
CALL CALC_PHI_HYD( |
522 |
I bi,bj,iMin,iMax,jMin,jMax,k,buoyKm1,buoyK, |
I bi,bj,iMin,iMax,jMin,jMax,k, |
523 |
U phiHyd, |
I theta, salt, |
524 |
|
U phiHyd, phiHydInterface, |
525 |
I myThid ) |
I myThid ) |
526 |
|
|
527 |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |
C-- Calculate accelerations in the momentum equations (gU, gV, ...) |