154 |
#ifdef ALLOW_SHELFICE |
#ifdef ALLOW_SHELFICE |
155 |
C mask rho, so that there is no contribution of phiHyd from |
C mask rho, so that there is no contribution of phiHyd from |
156 |
C overlying shelfice (whose density we do not know) |
C overlying shelfice (whose density we do not know) |
157 |
IF ( useShelfIce ) THEN |
IF ( useShelfIce .AND. useDOWN_SLOPE ) THEN |
158 |
|
C- note: does not work for down_slope pkg which needs rho below the bottom. |
159 |
|
C setting rho=0 above the ice-shelf base is enough (and works in both cases) |
160 |
|
C but might be slower (--> keep original masking if not using down_slope pkg) |
161 |
|
DO j=jMin,jMax |
162 |
|
DO i=iMin,iMax |
163 |
|
IF ( k.LT.kSurfC(i,j,bi,bj) ) alphaRho(i,j) = 0. _d 0 |
164 |
|
ENDDO |
165 |
|
ENDDO |
166 |
|
ELSEIF ( useShelfIce ) THEN |
167 |
DO j=jMin,jMax |
DO j=jMin,jMax |
168 |
DO i=iMin,iMax |
DO i=iMin,iMax |
169 |
alphaRho(i,j) = alphaRho(i,j)*maskC(i,j,k,bi,bj) |
alphaRho(i,j) = alphaRho(i,j)*maskC(i,j,k,bi,bj) |
291 |
C which has not been used to date since it does not |
C which has not been used to date since it does not |
292 |
C conserve KE+PE exactly even though it is more natural |
C conserve KE+PE exactly even though it is more natural |
293 |
C |
C |
294 |
IF (k.EQ.ksurfC(i,j,bi,bj)) THEN |
IF (k.EQ.kSurfC(i,j,bi,bj)) THEN |
295 |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
296 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
297 |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
330 |
|
|
331 |
C---------- This discretization is the "energy conserving" form |
C---------- This discretization is the "energy conserving" form |
332 |
|
|
333 |
IF (k.EQ.ksurfC(i,j,bi,bj)) THEN |
IF (k.EQ.kSurfC(i,j,bi,bj)) THEN |
334 |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
335 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
336 |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
413 |
& -((rF(k+1)/atm_Po)**atm_kappa) ) |
& -((rF(k+1)/atm_Po)**atm_kappa) ) |
414 |
DO j=jMin,jMax |
DO j=jMin,jMax |
415 |
DO i=iMin,iMax |
DO i=iMin,iMax |
416 |
IF (k.EQ.ksurfC(i,j,bi,bj)) THEN |
IF (k.EQ.kSurfC(i,j,bi,bj)) THEN |
417 |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
418 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
419 |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
457 |
rec_dRp = one/(rC(k)-rF(k+1)) |
rec_dRp = one/(rC(k)-rF(k+1)) |
458 |
DO j=jMin,jMax |
DO j=jMin,jMax |
459 |
DO i=iMin,iMax |
DO i=iMin,iMax |
460 |
IF (k.EQ.ksurfC(i,j,bi,bj)) THEN |
IF (k.EQ.kSurfC(i,j,bi,bj)) THEN |
461 |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
ddRloc = Ro_surf(i,j,bi,bj)-rC(k) |
462 |
#ifdef NONLIN_FRSURF |
#ifdef NONLIN_FRSURF |
463 |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |
ddRloc = ddRloc + surfPhiFac*etaH(i,j,bi,bj) |