229 |
DO j=jMin,jMax |
DO j=jMin,jMax |
230 |
DO i=iMin,iMax |
DO i=iMin,iMax |
231 |
phiHydC(i,j) = phiHydF(i,j) |
phiHydC(i,j) = phiHydF(i,j) |
232 |
& + halfRL*drF(k)*gravity*alphaRho(i,j)*recip_rhoConst |
& + halfRL*drF(k)*gravFacC(k)*gravity |
233 |
|
& *alphaRho(i,j)*recip_rhoConst |
234 |
phiHydF(i,j) = phiHydF(i,j) |
phiHydF(i,j) = phiHydF(i,j) |
235 |
& + drF(k)*gravity*alphaRho(i,j)*recip_rhoConst |
& + drF(k)*gravFacC(k)*gravity |
236 |
|
& *alphaRho(i,j)*recip_rhoConst |
237 |
ENDDO |
ENDDO |
238 |
ENDDO |
ENDDO |
239 |
ELSE |
ELSE |
244 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
245 |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
246 |
#endif |
#endif |
247 |
phiHydC(i,j) = ddRloc*gravity*alphaRho(i,j)*recip_rhoConst |
phiHydC(i,j) = ddRloc*gravFacC(k)*gravity |
248 |
|
& *alphaRho(i,j)*recip_rhoConst |
249 |
ELSE |
ELSE |
250 |
phiHydC(i,j) = phiHydF(i,j) |
phiHydC(i,j) = phiHydF(i,j) |
251 |
& + halfRL*drF(k)*gravity*alphaRho(i,j)*recip_rhoConst |
& + halfRL*drF(k)*gravFacC(k)*gravity |
252 |
|
& *alphaRho(i,j)*recip_rhoConst |
253 |
ENDIF |
ENDIF |
254 |
phiHydF(i,j) = phiHydC(i,j) |
phiHydF(i,j) = phiHydC(i,j) |
255 |
& + halfRL*drF(k)*gravity*alphaRho(i,j)*recip_rhoConst |
& + halfRL*drF(k)*gravFacC(k)*gravity |
256 |
|
& *alphaRho(i,j)*recip_rhoConst |
257 |
ENDDO |
ENDDO |
258 |
ENDDO |
ENDDO |
259 |
ENDIF |
ENDIF |
264 |
C---------- This discretization is the "energy conserving" form |
C---------- This discretization is the "energy conserving" form |
265 |
C which has been used since at least Adcroft et al., MWR 1997 |
C which has been used since at least Adcroft et al., MWR 1997 |
266 |
|
|
267 |
dRlocM = halfRL*drC(k) |
dRlocM = halfRL*drC(k)*gravFacF(k) |
268 |
IF (k.EQ.1) dRlocM=rF(k)-rC(k) |
IF (k.EQ.1) dRlocM = (rF(k)-rC(k))*gravFacF(k) |
269 |
IF (k.EQ.Nr) THEN |
IF (k.EQ.Nr) THEN |
270 |
dRlocP=rC(k)-rF(k+1) |
dRlocP = (rC(k)-rF(k+1))*gravFacF(k+1) |
271 |
ELSE |
ELSE |
272 |
dRlocP=halfRL*drC(k+1) |
dRlocP = halfRL*drC(k+1)*gravFacF(k+1) |
273 |
ENDIF |
ENDIF |
274 |
IF ( uniformFreeSurfLev ) THEN |
IF ( uniformFreeSurfLev ) THEN |
275 |
DO j=jMin,jMax |
DO j=jMin,jMax |
276 |
DO i=iMin,iMax |
DO i=iMin,iMax |
277 |
phiHydC(i,j) = phiHydF(i,j) |
phiHydC(i,j) = phiHydF(i,j) |
278 |
& +dRlocM*gravity*alphaRho(i,j)*recip_rhoConst |
& + dRlocM*gravity*alphaRho(i,j)*recip_rhoConst |
279 |
phiHydF(i,j) = phiHydC(i,j) |
phiHydF(i,j) = phiHydC(i,j) |
280 |
& +dRlocP*gravity*alphaRho(i,j)*recip_rhoConst |
& + dRlocP*gravity*alphaRho(i,j)*recip_rhoConst |
281 |
ENDDO |
ENDDO |
282 |
ENDDO |
ENDDO |
283 |
ELSE |
ELSE |
295 |
& )*gravity*alphaRho(i,j)*recip_rhoConst |
& )*gravity*alphaRho(i,j)*recip_rhoConst |
296 |
ELSE |
ELSE |
297 |
phiHydC(i,j) = phiHydF(i,j) |
phiHydC(i,j) = phiHydF(i,j) |
298 |
& +dRlocM*gravity*alphaRho(i,j)*recip_rhoConst |
& + dRlocM*gravity*alphaRho(i,j)*recip_rhoConst |
299 |
ENDIF |
ENDIF |
300 |
phiHydF(i,j) = phiHydC(i,j) |
phiHydF(i,j) = phiHydC(i,j) |
301 |
& +dRlocP*gravity*alphaRho(i,j)*recip_rhoConst |
& + dRlocP*gravity*alphaRho(i,j)*recip_rhoConst |
302 |
ENDDO |
ENDDO |
303 |
ENDDO |
ENDDO |
304 |
ENDIF |
ENDIF |