C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_init_depths.F,v 1.1 2017/04/10 23:50:41 jmc Exp $
C $Name: $
#include "SHELFICE_OPTIONS.h"
CBOP
C !ROUTINE: SHELFICE_INIT_DEPTHS
C !INTERFACE:
SUBROUTINE SHELFICE_INIT_DEPTHS(
U rLowC, rSurfC,
I myThid )
C !DESCRIPTION: \bv
C *==========================================================*
C | SUBROUTINE SHELFICE_INIT_DEPTHS
C | o Modify ocean upper boundary position according to
C | ice-shelf topography
C *==========================================================*
C \ev
C !USES:
IMPLICIT NONE
C === Global variables ===
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#ifdef ALLOW_SHELFICE
# include "SHELFICE.h"
#endif /* ALLOW_SHELFICE */
C !INPUT/OUTPUT PARAMETERS:
C == Routine arguments ==
C rLowC :: base of fluid column in r_unit at grid-cell center
C rSurfC :: surface reference position (r_unit) at grid-cell center
C myThid :: my Thread Id number
_RS rLowC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS rSurfC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
INTEGER myThid
#ifdef ALLOW_SHELFICE
C !LOCAL VARIABLES:
C == Local variables ==
C bi, bj :: tile indices
C i, j :: Loop counters
INTEGER bi, bj
INTEGER i, j
CEOP
C-- Initialize R_shelfIce
DO bj = myByLo(myThid), myByHi(myThid)
DO bi = myBxLo(myThid), myBxHi(myThid)
DO j=1-OLy,sNy+OLy
DO i=1-OLx,sNx+OLx
R_shelfIce(i,j,bi,bj) = 0. _d 0
ENDDO
ENDDO
ENDDO
ENDDO
IF ( SHELFICEtopoFile .NE. ' ' ) THEN
_BARRIER
C- Read the shelfIce draught using the mid-level I/O pacakage read_write_rec
C The 0 is the "iteration" argument. The 1 is the record number.
CALL READ_REC_XY_RS( SHELFICEtopoFile, R_shelfIce,
& 1, 0, myThid )
C- Read the shelfIce draught using the mid-level I/O pacakage read_write_fld
C The 0 is the "iteration" argument. The ' ' is an empty suffix
C CALL READ_FLD_XY_RS( SHELFICEtopoFile, ' ', R_shelfIce,
C & 0, myThid )
C- end setup R_shelfIce in the interior
ENDIF
C- fill in the overlap (+ BARRIER):
_EXCH_XY_RS( R_shelfIce, myThid )
C-- Modify ocean upper boundary position according to ice-shelf topography
IF ( usingZCoords ) THEN
DO bj=myByLo(myThid), myByHi(myThid)
DO bi=myBxLo(myThid), myBxHi(myThid)
DO j=1-OLy,sNy+OLy
DO i=1-OLx,sNx+OLx
rSurfC(i,j,bi,bj) =
& MIN( rSurfC(i,j,bi,bj), R_shelfIce(i,j,bi,bj) )
ENDDO
ENDDO
ENDDO
ENDDO
ELSE
STOP 'SHELFICE_INIT_DEPTHS: Missing code for P-coords'
ENDIF
#endif /* ALLOW_SHELFICE */
RETURN
END