2 |
C !DESCRIPTION: \bv |
C !DESCRIPTION: \bv |
3 |
C $Name$ |
C $Name$ |
4 |
|
|
|
c #include "PACKAGES_CONFIG.h" |
|
5 |
#include "CPP_OPTIONS.h" |
#include "CPP_OPTIONS.h" |
6 |
|
|
7 |
CBOP |
CBOP |
8 |
C !ROUTINE: CALC_GW |
C !ROUTINE: CALC_GW |
9 |
C !INTERFACE: |
C !INTERFACE: |
10 |
SUBROUTINE CALC_GW( |
SUBROUTINE CALC_GW( |
11 |
I KappaRU, KappaRV, |
I bi, bj, KappaRU, KappaRV, |
12 |
I myTime, myIter, myThid ) |
I myTime, myIter, myThid ) |
13 |
C !DESCRIPTION: \bv |
C !DESCRIPTION: \bv |
14 |
C *==========================================================* |
C *==========================================================* |
15 |
C | S/R CALC_GW |
C | S/R CALC_GW |
34 |
|
|
35 |
C !INPUT/OUTPUT PARAMETERS: |
C !INPUT/OUTPUT PARAMETERS: |
36 |
C == Routine arguments == |
C == Routine arguments == |
37 |
C KappaRU:: vertical viscosity at U points |
C bi,bj :: current tile indices |
38 |
C KappaRV:: vertical viscosity at V points |
C KappaRU :: vertical viscosity at U points |
39 |
C myTime :: Current time in simulation |
C KappaRV :: vertical viscosity at V points |
40 |
C myIter :: Current iteration number in simulation |
C myTime :: Current time in simulation |
41 |
C myThid :: Thread number for this instance of the routine. |
C myIter :: Current iteration number in simulation |
42 |
|
C myThid :: Thread number for this instance of the routine. |
43 |
|
INTEGER bi,bj |
44 |
_RL KappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL KappaRU(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
45 |
_RL KappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
_RL KappaRV(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr) |
46 |
_RL myTime |
_RL myTime |
51 |
|
|
52 |
C !LOCAL VARIABLES: |
C !LOCAL VARIABLES: |
53 |
C == Local variables == |
C == Local variables == |
|
C bi, bj, :: Loop counters |
|
54 |
C iMin, iMax, |
C iMin, iMax, |
55 |
C jMin, jMax |
C jMin, jMax |
56 |
C flx_NS :: Temp. used for fVol meridional terms. |
C flx_NS :: Temp. used for fVol meridional terms. |
57 |
C flx_EW :: Temp. used for fVol zonal terms. |
C flx_EW :: Temp. used for fVol zonal terms. |
58 |
C flx_Up :: Temp. used for fVol vertical terms. |
C flx_Up :: Temp. used for fVol vertical terms. |
59 |
C flx_Dn :: Temp. used for fVol vertical terms. |
C flx_Dn :: Temp. used for fVol vertical terms. |
60 |
INTEGER bi,bj,iMin,iMax,jMin,jMax |
INTEGER iMin,iMax,jMin,jMax |
61 |
_RL flx_NS(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_NS(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
62 |
_RL flx_EW(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_EW(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
63 |
_RL flx_Dn(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_Dn(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
64 |
_RL flx_Up(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) |
_RL flx_Up(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
65 |
_RL fZon(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL fZon (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
66 |
_RL fMer(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL fMer (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
67 |
_RL del2w(1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
_RL del2w (1-OLx:sNx+OLx,1-OLy:sNy+OLy) |
68 |
C i,j,k - Loop counters |
C i,j,k - Loop counters |
69 |
INTEGER i,j,k, kP1 |
INTEGER i,j,k, kp1 |
70 |
_RL wOverride |
_RL wOverride |
71 |
_RS hFacWtmp |
_RS hFacWtmp |
72 |
_RS hFacStmp |
_RS hFacStmp |
73 |
_RS hFacCtmp |
_RS hFacCtmp |
74 |
_RS recip_hFacCtmp |
_RS recip_hFacCtmp |
75 |
_RL slipSideFac |
_RL slipSideFac |
76 |
_RL tmp_VbarZ, tmp_UbarZ, tmp_WbarZ |
_RL tmp_VbarZ, tmp_UbarZ, tmp_WbarZ |
77 |
_RL vischere |
_RL viscLoc |
|
_RL visc4here |
|
78 |
_RL Half |
_RL Half |
79 |
PARAMETER(Half=0.5D0) |
PARAMETER(Half=0.5D0) |
80 |
CEOP |
CEOP |
97 |
CML not used anywhere in the code as far as I can see. |
CML not used anywhere in the code as far as I can see. |
98 |
C slipSideFac = 0. _d 0 |
C slipSideFac = 0. _d 0 |
99 |
|
|
100 |
C For each tile |
C-- Initialise gW to zero |
101 |
DO bj=myByLo(myThid),myByHi(myThid) |
DO k=1,Nr |
102 |
DO bi=myBxLo(myThid),myBxHi(myThid) |
DO j=1-OLy,sNy+OLy |
103 |
|
DO i=1-OLx,sNx+OLx |
|
C Initialise gW to zero |
|
|
DO K=1,Nr |
|
|
DO j=1-OLy,sNy+OLy |
|
|
DO i=1-OLx,sNx+OLx |
|
104 |
gW(i,j,k,bi,bj) = 0. |
gW(i,j,k,bi,bj) = 0. |
|
ENDDO |
|
105 |
ENDDO |
ENDDO |
106 |
ENDDO |
ENDDO |
107 |
|
ENDDO |
108 |
|
|
109 |
C Boundaries condition at top |
C-- Boundaries condition at top |
110 |
DO J=jMin,jMax |
DO j=jMin,jMax |
111 |
DO I=iMin,iMax |
DO i=iMin,iMax |
112 |
Flx_Dn(I,J,bi,bj)=0. |
flx_Up(i,j)=0. |
113 |
ENDDO |
ENDDO |
114 |
ENDDO |
ENDDO |
115 |
|
|
116 |
C Sweep down column |
C--- Sweep down column |
117 |
DO K=2,Nr |
DO k=2,Nr |
118 |
Kp1=K+1 |
kp1=k+1 |
119 |
wOverRide=1. |
wOverRide=1. |
120 |
if (K.EQ.Nr) then |
IF (k.EQ.Nr) THEN |
121 |
Kp1=Nr |
kp1=Nr |
122 |
wOverRide=0. |
wOverRide=0. |
123 |
endif |
ENDIF |
124 |
C horizontal bi-harmonic dissipation |
C-- horizontal bi-harmonic dissipation |
125 |
IF (momViscosity .AND. viscA4W.NE.0. ) THEN |
IF (momViscosity .AND. viscA4W.NE.0. ) THEN |
126 |
C calculate the horizontal Laplacian of vertical flow |
C- calculate the horizontal Laplacian of vertical flow |
127 |
C Zonal flux d/dx W |
C Zonal flux d/dx W |
128 |
DO j=1-Oly,sNy+Oly |
DO j=1-Oly,sNy+Oly |
129 |
fZon(1-Olx,j)=0. |
fZon(1-Olx,j)=0. |
130 |
DO i=1-Olx+1,sNx+Olx |
DO i=1-Olx+1,sNx+Olx |
131 |
|
C- Problem here: drF(k)*_hFacC & fZon are not at the same Horiz.&Vert. location |
132 |
fZon(i,j) = drF(k)*_hFacC(i,j,k,bi,bj) |
fZon(i,j) = drF(k)*_hFacC(i,j,k,bi,bj) |
133 |
& *_dyG(i,j,bi,bj) |
& *_dyG(i,j,bi,bj) |
134 |
& *_recip_dxC(i,j,bi,bj) |
& *_recip_dxC(i,j,bi,bj) |
135 |
& *(wVel(i,j,k,bi,bj)-wVel(i-1,j,k,bi,bj)) |
& *(wVel(i,j,k,bi,bj)-wVel(i-1,j,k,bi,bj)) |
136 |
#ifdef COSINEMETH_III |
#ifdef COSINEMETH_III |
137 |
& *sqcosFacU(J,bi,bj) |
& *sqcosFacU(j,bi,bj) |
138 |
#endif |
#endif |
139 |
ENDDO |
ENDDO |
140 |
ENDDO |
ENDDO |
141 |
C Meridional flux d/dy W |
C Meridional flux d/dy W |
142 |
DO i=1-Olx,sNx+Olx |
DO i=1-Olx,sNx+Olx |
143 |
fMer(I,1-Oly)=0. |
fMer(i,1-Oly)=0. |
144 |
ENDDO |
ENDDO |
145 |
DO j=1-Oly+1,sNy+Oly |
DO j=1-Oly+1,sNy+Oly |
146 |
DO i=1-Olx,sNx+Olx |
DO i=1-Olx,sNx+Olx |
147 |
|
C- Problem here: drF(k)*_hFacC & fMer are not at the same Horiz.&Vert. location |
148 |
fMer(i,j) = drF(k)*_hFacC(i,j,k,bi,bj) |
fMer(i,j) = drF(k)*_hFacC(i,j,k,bi,bj) |
149 |
& *_dxG(i,j,bi,bj) |
& *_dxG(i,j,bi,bj) |
150 |
& *_recip_dyC(i,j,bi,bj) |
& *_recip_dyC(i,j,bi,bj) |
171 |
DO i=1-Olx,sNx+Olx |
DO i=1-Olx,sNx+Olx |
172 |
C First compute the fraction of open water for the w-control volume |
C First compute the fraction of open water for the w-control volume |
173 |
C at the southern face |
C at the southern face |
174 |
hFacCtmp=max( _hFacC(I,J,K-1,bi,bj)-Half,0. _d 0 ) |
hFacCtmp=max( _hFacC(i,j,k-1,bi,bj)-Half,0. _d 0 ) |
175 |
& + min( _hFacC(I,J,K ,bi,bj) ,Half ) |
& + min( _hFacC(i,j,k ,bi,bj) ,Half ) |
176 |
IF (hFacCtmp .GT. 0.) THEN |
IF (hFacCtmp .GT. 0.) THEN |
177 |
recip_hFacCtmp = 1./hFacCtmp |
recip_hFacCtmp = 1./hFacCtmp |
178 |
ELSE |
ELSE |
191 |
CML No-slip Boundary conditions for bi-harmonic dissipation |
CML No-slip Boundary conditions for bi-harmonic dissipation |
192 |
CML need to be implemented here! |
CML need to be implemented here! |
193 |
CML ************************************************************ |
CML ************************************************************ |
194 |
ELSE |
ELSE |
195 |
C- Initialize del2w to zero: |
C- Initialize del2w to zero: |
196 |
DO j=1-Oly,sNy+Oly |
DO j=1-Oly,sNy+Oly |
197 |
DO i=1-Olx,sNx+Olx |
DO i=1-Olx,sNx+Olx |
198 |
del2w(i,j) = 0. _d 0 |
del2w(i,j) = 0. _d 0 |
199 |
ENDDO |
ENDDO |
200 |
ENDDO |
ENDDO |
201 |
ENDIF |
ENDIF |
202 |
|
|
203 |
C Flux on Southern face |
C Flux on Southern face |
204 |
DO J=jMin,jMax+1 |
DO j=jMin,jMax+1 |
205 |
DO I=iMin,iMax |
DO i=iMin,iMax |
206 |
C First compute the fraction of open water for the w-control volume |
C First compute the fraction of open water for the w-control volume |
207 |
C at the southern face |
C at the southern face |
208 |
hFacStmp=max(_hFacS(I,J,K-1,bi,bj)-Half,0. _d 0) |
hFacStmp=max(_hFacS(i,j,k-1,bi,bj)-Half,0. _d 0) |
209 |
& + min(_hFacS(I,J,K ,bi,bj),Half) |
& + min(_hFacS(i,j,k ,bi,bj),Half) |
210 |
tmp_VbarZ=Half*( |
tmp_VbarZ=Half*( |
211 |
& _hFacS(I,J,K-1,bi,bj)*vVel( I ,J,K-1,bi,bj) |
& _hFacS(i,j,k-1,bi,bj)*vVel( i ,j,k-1,bi,bj) |
212 |
& +_hFacS(I,J, K ,bi,bj)*vVel( I ,J, K ,bi,bj)) |
& +_hFacS(i,j, k ,bi,bj)*vVel( i ,j, k ,bi,bj)) |
213 |
Flx_NS(I,J,bi,bj)= |
flx_NS(i,j)= |
214 |
& 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)) |
215 |
& -viscAh_W(I,J,K,bi,bj)*_recip_dyC(I,J,bi,bj) |
& -(viscAh_W(i,j,k,bi,bj)+viscAh_W(i,j-1,k,bi,bj))*Half |
216 |
& *(hFacStmp*(wVel(I,J,K,bi,bj)-wVel(I,J-1,K,bi,bj)) |
& *_recip_dyC(i,j,bi,bj) |
217 |
|
& *(hFacStmp*(wVel(i,j,k,bi,bj)-wVel(i,j-1,k,bi,bj)) |
218 |
|
C- Problem here: No-slip bc CANNOT be written in term of a flux |
219 |
& +(1. _d 0 - hFacStmp)*(1. _d 0 - slipSideFac) |
& +(1. _d 0 - hFacStmp)*(1. _d 0 - slipSideFac) |
220 |
& *wVel(I,J,K,bi,bj)) |
& *wVel(i,j,k,bi,bj)) |
221 |
& +viscA4_W(I,J,K,bi,bj) |
& +(viscA4_W(i,j,k,bi,bj)+viscA4_W(i,j-1,k,bi,bj))*Half |
222 |
& *_recip_dyC(I,J,bi,bj)*(del2w(I,J)-del2w(I,J-1)) |
& *_recip_dyC(i,j,bi,bj)*(del2w(i,j)-del2w(i,j-1)) |
223 |
#ifdef ISOTROPIC_COS_SCALING |
#ifdef ISOTROPIC_COS_SCALING |
224 |
#ifdef COSINEMETH_III |
#ifdef COSINEMETH_III |
225 |
& *sqCosFacV(j,bi,bj) |
& *sqCosFacV(j,bi,bj) |
232 |
C the control volume. A more compact but less intelligible version |
C the control volume. A more compact but less intelligible version |
233 |
C of the last three lines is: |
C of the last three lines is: |
234 |
CML & *( (1 _d 0 - slipSideFac*(1 _d 0 - hFacStmp)) |
CML & *( (1 _d 0 - slipSideFac*(1 _d 0 - hFacStmp)) |
235 |
CML & *wVel(I,J,K,bi,bi) + hFacStmp*wVel(I,J-1,K,bi,bj) ) |
CML & *wVel(i,j,k,bi,bi) + hFacStmp*wVel(i,j-1,k,bi,bj) ) |
|
ENDDO |
|
236 |
ENDDO |
ENDDO |
237 |
|
ENDDO |
238 |
C Flux on Western face |
C Flux on Western face |
239 |
DO J=jMin,jMax |
DO j=jMin,jMax |
240 |
DO I=iMin,iMax+1 |
DO i=iMin,iMax+1 |
241 |
C First compute the fraction of open water for the w-control volume |
C First compute the fraction of open water for the w-control volume |
242 |
C at the western face |
C at the western face |
243 |
hFacWtmp=max(_hFacW(I,J,K-1,bi,bj)-Half,0. _d 0) |
hFacWtmp=max(_hFacW(i,j,k-1,bi,bj)-Half,0. _d 0) |
244 |
& + min(_hFacW(I,J,K ,bi,bj),Half) |
& + min(_hFacW(i,j,k ,bi,bj),Half) |
245 |
tmp_UbarZ=Half*( |
tmp_UbarZ=Half*( |
246 |
& _hFacW(I,J,K-1,bi,bj)*uVel( I ,J,K-1,bi,bj) |
& _hFacW(i,j,k-1,bi,bj)*uVel( i ,j,k-1,bi,bj) |
247 |
& +_hFacW(I,J, K ,bi,bj)*uVel( I ,J, K ,bi,bj)) |
& +_hFacW(i,j, k ,bi,bj)*uVel( i ,j, k ,bi,bj)) |
248 |
Flx_EW(I,J,bi,bj)= |
flx_EW(i,j)= |
249 |
& 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)) |
250 |
& -viscAh_W(I,J,K,bi,bj)*_recip_dxC(I,J,bi,bj) |
& -(viscAh_W(i,j,k,bi,bj)+viscAh_W(i-1,j,k,bi,bj))*Half |
251 |
& *(hFacWtmp*(wVel(I,J,K,bi,bj)-wVel(I-1,J,K,bi,bj)) |
& *_recip_dxC(i,j,bi,bj) |
252 |
|
& *(hFacWtmp*(wVel(i,j,k,bi,bj)-wVel(i-1,j,k,bi,bj)) |
253 |
|
C- Problem here: No-slip bc CANNOT be written in term of a flux |
254 |
& +(1 _d 0 - hFacWtmp)*(1 _d 0 - slipSideFac) |
& +(1 _d 0 - hFacWtmp)*(1 _d 0 - slipSideFac) |
255 |
& *wVel(I,J,K,bi,bj) ) |
& *wVel(i,j,k,bi,bj) ) |
256 |
& +viscA4_W(I,J,K,bi,bj) |
& +(viscA4_W(i,j,k,bi,bj)+viscA4_W(i-1,j,k,bi,bj))*Half |
257 |
& *_recip_dxC(I,J,bi,bj)*(del2w(I,J)-del2w(I-1,J)) |
& *_recip_dxC(i,j,bi,bj)*(del2w(i,j)-del2w(i-1,j)) |
258 |
#ifdef COSINEMETH_III |
#ifdef COSINEMETH_III |
259 |
& *sqCosFacU(j,bi,bj) |
& *sqCosFacU(j,bi,bj) |
260 |
#else |
#else |
265 |
C the control volume. A more compact but less intelligible version |
C the control volume. A more compact but less intelligible version |
266 |
C of the last three lines is: |
C of the last three lines is: |
267 |
CML & *( (1 _d 0 - slipSideFac*(1 _d 0 - hFacWtmp)) |
CML & *( (1 _d 0 - slipSideFac*(1 _d 0 - hFacWtmp)) |
268 |
CML & *wVel(I,J,K,bi,bi) + hFacWtmp*wVel(I-1,J,K,bi,bj) ) |
CML & *wVel(i,j,k,bi,bi) + hFacWtmp*wVel(i-1,j,k,bi,bj) ) |
|
ENDDO |
|
269 |
ENDDO |
ENDDO |
270 |
|
ENDDO |
271 |
C Flux on Lower face |
C Flux on Lower face |
272 |
DO J=jMin,jMax |
DO j=jMin,jMax |
273 |
DO I=iMin,iMax |
DO i=iMin,iMax |
274 |
C Interpolate vert viscosity to W points |
C Interpolate vert viscosity to W points |
275 |
vischere=0.125*(kappaRU(I,J,K) +kappaRU(I+1,J,K) |
viscLoc = ( KappaRU(i,j,k) +KappaRU(i+1,j,k) |
276 |
& +kappaRU(I,J,Kp1)+kappaRU(I+1,J,Kp1) |
& +KappaRU(i,j,kp1)+KappaRU(i+1,j,kp1) |
277 |
& +kappaRV(I,J,K) +kappaRV(I,J+1,K) |
& +KappaRV(i,j,k) +KappaRV(i,j+1,k) |
278 |
& +kappaRV(I,J,Kp1)+kappaRV(I,J+1,Kp1)) |
& +KappaRV(i,j,kp1)+KappaRV(i,j+1,kp1) |
279 |
Flx_Up(I,J,bi,bj)=Flx_Dn(I,J,bi,bj) |
& )*0.125 _d 0 |
280 |
tmp_WbarZ=Half*(wVel(I,J,K,bi,bj) |
tmp_WbarZ = Half*( wVel(i,j, k ,bi,bj) |
281 |
& +wOverRide*wVel(I,J,Kp1,bi,bj)) |
& +wVel(i,j,kp1,bi,bj)*wOverRide ) |
282 |
Flx_Dn(I,J,bi,bj)= |
flx_Dn(i,j)= |
283 |
& tmp_WbarZ*tmp_WbarZ |
& tmp_WbarZ*tmp_WbarZ |
284 |
& -vischere*recip_drF(K) |
& -viscLoc*recip_drF(k) |
285 |
& *( wVel(I,J,K,bi,bj)-wOverRide*wVel(I,J,Kp1,bi,bj) ) |
& *( wVel(i,j, k ,bi,bj) |
286 |
ENDDO |
& -wVel(i,j,kp1,bi,bj)*wOverRide ) |
287 |
ENDDO |
ENDDO |
288 |
C Divergence of fluxes |
ENDDO |
289 |
DO J=jMin,jMax |
C Divergence of fluxes |
290 |
DO I=iMin,iMax |
DO j=jMin,jMax |
291 |
gW(I,J,K,bi,bj) = 0. |
DO i=iMin,iMax |
292 |
|
gW(i,j,k,bi,bj) = 0. |
293 |
& -( |
& -( |
294 |
& +_recip_dxF(I,J,bi,bj)*( |
& +_recip_dxF(i,j,bi,bj)*( |
295 |
& Flx_EW(I+1,J,bi,bj)-Flx_EW(I,J,bi,bj) ) |
& flx_EW(i+1,j)-flx_EW(i,j) ) |
296 |
& +_recip_dyF(I,J,bi,bj)*( |
& +_recip_dyF(i,j,bi,bj)*( |
297 |
& Flx_NS(I,J+1,bi,bj)-Flx_NS(I,J,bi,bj) ) |
& flx_NS(i,j+1)-flx_NS(i,j) ) |
298 |
& +recip_drC(K) *( |
& +recip_drC(k) *( |
299 |
& Flx_Up(I,J,bi,bj) -Flx_Dn(I,J,bi,bj) ) |
& flx_Up(i,j) -flx_Dn(i,j) ) |
300 |
& ) |
& ) |
301 |
caja * recip_hFacU(I,J,K,bi,bj) |
caja * recip_hFacU(i,j,k,bi,bj) |
302 |
caja NOTE: This should be included |
caja NOTE: This should be included |
303 |
caja but we need an hFacUW (above U points) |
caja but we need an hFacUW (above U points) |
304 |
caja and an hFacUS (above V points) too... |
caja and an hFacUS (above V points) too... |
305 |
ENDDO |
C-- prepare for next level (k+1) |
306 |
|
flx_Up(i,j)=flx_Dn(i,j) |
307 |
ENDDO |
ENDDO |
308 |
|
ENDDO |
309 |
|
|
310 |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----| |
311 |
|
|
312 |
C- Compute effective gW_[n+1/2] terms (including Adams-Bashforth weights) |
C- Compute effective gW_[n+1/2] terms (including Adams-Bashforth weights) |
313 |
C and save gW_[n] into gwNm1 for the next time step. |
C and save gW_[n] into gwNm1 for the next time step. |
314 |
c#ifdef ALLOW_ADAMSBASHFORTH_3 |
c#ifdef ALLOW_ADAMSBASHFORTH_3 |
315 |
c CALL ADAMS_BASHFORTH3( |
c CALL ADAMS_BASHFORTH3( |
316 |
c I bi, bj, k, |
c I bi, bj, k, |
317 |
c U gW, gwNm, |
c U gW, gwNm, |
318 |
c I momStartAB, myIter, myThid ) |
c I momStartAB, myIter, myThid ) |
319 |
c#else /* ALLOW_ADAMSBASHFORTH_3 */ |
c#else /* ALLOW_ADAMSBASHFORTH_3 */ |
320 |
CALL ADAMS_BASHFORTH2( |
CALL ADAMS_BASHFORTH2( |
321 |
I bi, bj, k, |
I bi, bj, k, |
322 |
U gW, gwNm1, |
U gW, gwNm1, |
323 |
I myIter, myThid ) |
I myIter, myThid ) |
324 |
c#endif /* ALLOW_ADAMSBASHFORTH_3 */ |
c#endif /* ALLOW_ADAMSBASHFORTH_3 */ |
325 |
|
|
326 |
C- end of the k loop |
C- end of the k loop |
|
ENDDO |
|
|
|
|
|
C- end of bi,bj loops |
|
|
ENDDO |
|
327 |
ENDDO |
ENDDO |
328 |
|
|
329 |
#endif /* ALLOW_NONHYDROSTATIC */ |
#endif /* ALLOW_NONHYDROSTATIC */ |