61 |
_RS hFacROpen |
_RS hFacROpen |
62 |
_RS hFacRClosed |
_RS hFacRClosed |
63 |
_RL ab15,ab05 |
_RL ab15,ab05 |
64 |
|
_RL slipSideFac, slipBotFac |
65 |
_RL tmp_VbarZ, tmp_UbarZ, tmp_WbarZ |
_RL tmp_VbarZ, tmp_UbarZ, tmp_WbarZ |
66 |
|
|
67 |
_RL Half |
_RL Half |
76 |
ceh3 needs an IF ( useNONHYDROSTATIC ) THEN |
ceh3 needs an IF ( useNONHYDROSTATIC ) THEN |
77 |
|
|
78 |
C Adams-Bashforth timestepping weights |
C Adams-Bashforth timestepping weights |
79 |
ab15=1.5+abeps |
ab15 = 1.5 _d 0 + abeps |
80 |
ab05=-0.5-abeps |
ab05 = -0.5 _d 0 - abeps |
81 |
|
|
82 |
|
C Lateral friction (no-slip, free slip, or half slip): |
83 |
|
IF ( no_slip_sides ) THEN |
84 |
|
slipSideFac = -Half |
85 |
|
ELSE |
86 |
|
slipSideFac = Half |
87 |
|
ENDIF |
88 |
|
C- half slip was used before ; keep it for now. |
89 |
|
slipSideFac = 0. _d 0 |
90 |
|
|
91 |
|
C Bottom friction (no-slip, free slip, or half slip): |
92 |
|
IF ( no_slip_bottom ) THEN |
93 |
|
slipBotFac = -1. _d 0 |
94 |
|
ELSE |
95 |
|
slipBotFac = 1. _d 0 |
96 |
|
ENDIF |
97 |
|
C- half slip was used before ; keep it for now. |
98 |
|
slipBotFac = 0. _d 0 |
99 |
|
|
100 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO bj=myByLo(myThid),myByHi(myThid) |
101 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO bi=myBxLo(myThid),myBxHi(myThid) |
140 |
& +_hFacS(I,J, K ,bi,bj)*vVel( I ,J, K ,bi,bj)) |
& +_hFacS(I,J, K ,bi,bj)*vVel( I ,J, K ,bi,bj)) |
141 |
Flx_NS(I,J,bi,bj)= |
Flx_NS(I,J,bi,bj)= |
142 |
& tmp_VbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I,J-1,K,bi,bj)) |
& tmp_VbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I,J-1,K,bi,bj)) |
143 |
& -viscAh*_recip_dyC(I,J,bi,bj)*( |
& -viscAh*_recip_dyC(I,J,bi,bj) |
144 |
& wVel(I,J,K,bi,bj)-wVel(I,J-1,K,bi,bj) ) |
& *(1. _d 0 + slipSideFac* |
145 |
|
& (maskS(I,J,K-1,bi,bj)+maskS(I,J,K,bi,bj)-2. _d 0)) |
146 |
|
& *(wVel(I,J,K,bi,bj)-wVel(I,J-1,K,bi,bj)) |
147 |
ENDDO |
ENDDO |
148 |
ENDDO |
ENDDO |
149 |
C Flux on Western face |
C Flux on Western face |
154 |
& +_hFacW(I,J, K ,bi,bj)*uVel( I ,J, K ,bi,bj)) |
& +_hFacW(I,J, K ,bi,bj)*uVel( I ,J, K ,bi,bj)) |
155 |
Flx_EW(I,J,bi,bj)= |
Flx_EW(I,J,bi,bj)= |
156 |
& tmp_UbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I-1,J,K,bi,bj)) |
& tmp_UbarZ*Half*(wVel(I,J,K,bi,bj)+wVel(I-1,J,K,bi,bj)) |
157 |
& -viscAh*_recip_dxC(I,J,bi,bj)*( |
& -viscAh*_recip_dxC(I,J,bi,bj) |
158 |
& wVel(I,J,K,bi,bj)-wVel(I-1,J,K,bi,bj) ) |
& *(1. _d 0 + slipSideFac* |
159 |
|
& (maskW(I,J,K-1,bi,bj)+maskW(I,J,K,bi,bj)-2. _d 0)) |
160 |
|
& *(wVel(I,J,K,bi,bj)-wVel(I-1,J,K,bi,bj)) |
161 |
ENDDO |
ENDDO |
162 |
ENDDO |
ENDDO |
163 |
C Flux on Lower face |
C Flux on Lower face |
167 |
tmp_WbarZ=Half*(wVel(I,J,K,bi,bj)+wVel(I,J,Kp1,bi,bj)) |
tmp_WbarZ=Half*(wVel(I,J,K,bi,bj)+wVel(I,J,Kp1,bi,bj)) |
168 |
Flx_Dn(I,J,bi,bj)= |
Flx_Dn(I,J,bi,bj)= |
169 |
& tmp_WbarZ*tmp_WbarZ |
& tmp_WbarZ*tmp_WbarZ |
170 |
& -viscAr*recip_drF(K)*( wVel(I,J,K,bi,bj) |
& -viscAr*recip_drF(K) |
171 |
& -wOverRide*wVel(I,J,Kp1,bi,bj) ) |
& *( 1. _d 0 + slipBotFac* |
172 |
|
& (wOverRide*maskC(I,J,Kp1,bi,bj)-1. _d 0) ) |
173 |
|
& *( wVel(I,J,K,bi,bj)-wOverRide*wVel(I,J,Kp1,bi,bj) ) |
174 |
ENDDO |
ENDDO |
175 |
ENDDO |
ENDDO |
176 |
C Divergence of fluxes |
C Divergence of fluxes |
230 |
|
|
231 |
RETURN |
RETURN |
232 |
END |
END |
|
|
|