C $Header: /u/gcmpack/MITgcm/pkg/shelfice/SHELFICE.h,v 1.22 2017/12/15 19:37:08 jmc Exp $
C $Name: $
#ifdef ALLOW_SHELFICE
CBOP
C !ROUTINE: SHELFICE.h
C !DESCRIPTION: \bv
C *==========================================================*
C | SHELFICE.h
C | o Basic header thermodnynamic shelf ice package.
C | Contains all SHELFICE field declarations.
C *==========================================================*
C-----------------------------------------------------------------------
C
C-- Constants that can be set in data.shelfice
C SHELFICEtopoFile :: File containing the topography of the
C shelfice draught (unit=m)
C SHELFICEmassFile :: name of shelfice Mass file
C SHELFICEloadAnomalyFile :: name of shelfice load anomaly file
C SHELFICEMassDynTendFile :: file name for other mass tendency
C (e.g. dynamics)
C useISOMIPTD :: use simple ISOMIP thermodynamics, def: F
C SHELFICEconserve :: use conservative form of H&O-thermodynamics
C following Jenkins et al. (2001, JPO), def: F
C SHELFICEMassStepping :: flag to step forward ice shelf mass/thickness
C accounts for melting/freezing & dynamics
C (from file or from coupling), def: F
C SHELFICEDynMassOnly :: step ice mass ONLY with Shelficemassdyntendency
C (not melting/freezing) def: F
C SHELFICEboundaryLayer :: turn on vertical merging of cells to for a
C boundary layer of drF thickness, def: F
C SHELFICEadvDiffHeatFlux :: use advective-diffusive heat flux into the
C ice shelf instead of default diffusive heat
C flux, see Holland and Jenkins (1999),
C eq.21,22,26,31; def: F
C SHELFICEheatTransCoeff :: constant heat transfer coefficient that
C determines heat flux into shelfice
C (def: 1e-4 m/s)
C SHELFICEsaltTransCoeff :: constant salinity transfer coefficient that
C determines salt flux into shelfice
C (def: 5.05e-3 * 1e-4 m/s)
C -----------------------------------------------------------------------
C SHELFICEuseGammaFrict :: use velocity dependent exchange coefficients,
C see Holland and Jenkins (1999), eq.11-18,
C with the following parameters (def: F):
C SHELFICE_oldCalcUStar :: use old uStar averaging expression
C shiCdrag :: quadratic drag coefficient to compute uStar
C (def: 0.0015)
C shiZetaN :: ??? (def: 0.052)
C shiRc :: ??? (not used, def: 0.2)
C shiPrandtl, shiSchmidt :: constant Prandtl (13.8) and Schmidt (2432.0)
C numbers used to compute gammaTurb
C shiKinVisc :: constant kinetic viscosity used to compute
C gammaTurb (def: 1.95e-5)
C -----------------------------------------------------------------------
C SHELFICEDragLinear :: linear drag at bottom shelfice (1/s)
C SHELFICEDragQuadratic :: quadratic drag at bottom shelfice (default
C = shiCdrag or bottomDragQuadratic)
C no_slip_shelfice :: set slip conditions for shelfice separately,
C (by default the same as no_slip_bottom, but
C really should be false when there is linear
C or quadratic drag)
C SHELFICElatentHeat :: latent heat of fusion (def: 334000 J/kg)
C SHELFICEwriteState :: enable output
C SHELFICEHeatCapacity_Cp :: heat capacity of ice shelf (def: 2000 J/K/kg)
C rhoShelfIce :: density of ice shelf (def: 917.0 kg/m^3)
C
C SHELFICE_dump_mnc :: use netcdf for snapshot output
C SHELFICE_tave_mnc :: use netcdf for time-averaged output
C SHELFICE_dumpFreq :: analoguous to dumpFreq (= default)
C SHELFICE_taveFreq :: analoguous to taveFreq (= default)
C
C-- Fields
C ktopC :: index of the top "wet cell" (2D)
C R_shelfIce :: shelfice topography [m]
C shelficeMassInit :: ice-shelf mass (per unit area) (kg/m^2)
C shelficeMass :: ice-shelf mass (per unit area) (kg/m^2)
C shelfIceMassDynTendency :: other mass balance tendency (kg/m^2/s)
C :: (e.g., from dynamics)
C shelficeLoadAnomaly :: pressure load anomaly of shelfice (Pa)
C shelficeHeatFlux :: upward heat flux (W/m^2)
C shelficeFreshWaterFlux :: upward fresh water flux (virt. salt flux)
C (kg/m^2/s)
C shelficeForcingT :: analogue of surfaceForcingT
C units are r_unit.Kelvin/s (=Kelvin.m/s if r=z)
C shelficeForcingS :: analogue of surfaceForcingS
C units are r_unit.psu/s (=psu.m/s if r=z)
C-----------------------------------------------------------------------
C \ev
CEOP
COMMON /SHELFICE_PARMS_I/ kTopC,
& SHELFICEselectDragQuadr
INTEGER kTopC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
INTEGER SHELFICEselectDragQuadr
COMMON /SHELFICE_PARMS_R/
& SHELFICE_dumpFreq, SHELFICE_taveFreq,
& SHELFICEheatTransCoeff, SHELFICEsaltTransCoeff,
& rhoShelfice, SHELFICEkappa,
& SHELFICElatentHeat,
& SHELFICEheatCapacity_Cp,
& SHELFICEthetaSurface,
& SHELFICEDragLinear, SHELFICEDragQuadratic,
& shiCdrag, shiZetaN, shiRc,
& shiPrandtl, shiSchmidt, shiKinVisc
_RL SHELFICE_dumpFreq, SHELFICE_taveFreq
_RL SHELFICEheatTransCoeff
_RL SHELFICEsaltTransCoeff
_RL SHELFICElatentHeat
_RL SHELFICEheatCapacity_Cp
_RL rhoShelfice
_RL SHELFICEkappa
_RL SHELFICEDragLinear
_RL SHELFICEDragQuadratic
_RL SHELFICEthetaSurface
_RL shiCdrag, shiZetaN, shiRc
_RL shiPrandtl, shiSchmidt, shiKinVisc
COMMON /SHELFICE_FIELDS_RL/
& shelficeMass, shelficeMassInit,
& shelficeLoadAnomaly,
& shelficeForcingT, shelficeForcingS,
& shiTransCoeffT, shiTransCoeffS
_RL shelficeMass (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL shelficeMassInit (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL shelficeLoadAnomaly (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL shelficeForcingT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL shelficeForcingS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL shiTransCoeffT (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RL shiTransCoeffS (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
COMMON /SHELFICE_FIELDS_RS/
& R_shelfIce,
& shelficeHeatFlux,
& shelfIceFreshWaterFlux,
& shelfIceMassDynTendency
_RS R_shelfIce (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS shelficeHeatFlux (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS shelficeFreshWaterFlux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
_RS
& shelfIceMassDynTendency(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
#ifdef ALLOW_SHIFWFLX_CONTROL
COMMON /SHELFICE_MASKS_CTRL/ maskSHI
_RS maskSHI (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy)
#endif /* ALLOW_SHIFWFLX_CONTROL */
LOGICAL SHELFICEisOn
LOGICAL useISOMIPTD
LOGICAL SHELFICEconserve
LOGICAL SHELFICEboundaryLayer
LOGICAL no_slip_shelfice
LOGICAL SHELFICEwriteState
LOGICAL SHELFICE_dump_mdsio
LOGICAL SHELFICE_tave_mdsio
LOGICAL SHELFICE_dump_mnc
LOGICAL SHELFICE_tave_mnc
LOGICAL SHELFICEadvDiffHeatFlux
LOGICAL SHELFICEuseGammaFrict
LOGICAL SHELFICE_oldCalcUStar
LOGICAL SHELFICEMassStepping
LOGICAL SHELFICEDynMassOnly
COMMON /SHELFICE_PARMS_L/
& SHELFICEisOn,
& useISOMIPTD,
& SHELFICEconserve,
& SHELFICEboundaryLayer,
& no_slip_shelfice,
& SHELFICEwriteState,
& SHELFICE_dump_mdsio,
& SHELFICE_tave_mdsio,
& SHELFICE_dump_mnc,
& SHELFICE_tave_mnc,
& SHELFICEadvDiffHeatFlux,
& SHELFICEuseGammaFrict,
& SHELFICE_oldCalcUStar,
& SHELFICEMassStepping,
& SHELFICEDynMassOnly
CHARACTER*(MAX_LEN_FNAM) SHELFICEloadAnomalyFile
CHARACTER*(MAX_LEN_FNAM) SHELFICEmassFile
CHARACTER*(MAX_LEN_FNAM) SHELFICEtopoFile
CHARACTER*(MAX_LEN_FNAM) SHELFICEMassDynTendFile
CHARACTER*(MAX_LEN_FNAM) SHELFICETransCoeffTFile
COMMON /SHELFICE_PARM_C/
& SHELFICEloadAnomalyFile,
& SHELFICEmassFile,
& SHELFICEtopoFile,
& SHELFICEMassDynTendFile,
& SHELFICETransCoeffTFile
#endif /* ALLOW_SHELFICE */