Ice shelf melting (sbcisf.F90)
&namsbc_isf ! Top boundary layer (ISF)
! ! file name ! frequency (hours) ! variable ! time interpol. ! clim ! 'yearly'/ ! weights ! rotation !
! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing !
! nn_isf == 4
sn_qisf = 'rnfisf' , -12 ,'sohflisf', .false. , .true. , 'yearly' , '' , ''
sn_fwfisf = 'rnfisf' , -12 ,'sowflisf', .false. , .true. , 'yearly' , '' , ''
! nn_isf == 3
sn_rnfisf = 'runoffs' , -12 ,'sofwfisf', .false. , .true. , 'yearly' , '' , ''
! nn_isf == 2 and 3
sn_depmax_isf = 'runoffs' , -12 ,'sozisfmax' , .false. , .true. , 'yearly' , '' , ''
sn_depmin_isf = 'runoffs' , -12 ,'sozisfmin' , .false. , .true. , 'yearly' , '' , ''
! nn_isf == 2
sn_Leff_isf = 'rnfisf' , 0 ,'Leff' , .false. , .true. , 'yearly' , '' , ''
! for all case
ln_divisf = .true. ! apply isf melting as a mass flux or in the salinity trend. (maybe I should remove this option as for runoff?)
! only for nn_isf = 1 or 2
rn_gammat0 = 1.0e-4 ! gammat coefficient used in blk formula
rn_gammas0 = 1.0e-4 ! gammas coefficient used in blk formula
! only for nn_isf = 1
nn_isfblk = 1 ! 1 ISOMIP ; 2 conservative (3 equation formulation, Jenkins et al. 1991 ??)
rn_hisf_tbl = 30. ! thickness of the top boundary layer (Losh et al. 2008)
! 0 => thickness of the tbl = thickness of the first wet cell
ln_conserve = .true. ! conservative case (take into account meltwater advection)
nn_gammablk = 1 ! 0 = cst Gammat (= gammat/s)
! 1 = velocity dependend Gamma (u* * gammat/s) (Jenkins et al. 2010)
! if you want to keep the cd as in global config, adjust rn_gammat0 to compensate
! 2 = velocity and stability dependent Gamma Holland et al. 1999
Namelist variable in namsbc, nn_isf, controls the ice shelf representation used (Fig. 7.1):
Schematic for all the options available trough nn_isf.
- nn_isf = 0
- The ice shelf routines are not used. The ice shelf melting is not computed or prescribed, the cavity have to be closed.
If needed, the ice shelf melting should be added to the runoff or the precipitation file.
- nn_isf = 1
- The ice shelf cavity is represented. The fwf and heat flux are computed. Two different bulk formula are available:
- nn_isfblk = 1
- The bulk formula used to compute the melt is based the one described in Hunter .
This formulation is based on a balance between the upward ocean heat flux and the latent heat flux at the ice shelf base.
- nn_isfblk = 2
- The bulk formula used to compute the melt is based the one described in Jenkins .
This formulation is based on a 3 equations formulation (a heat flux budget, a salt flux budget and a linearised freezing point temperature equation).
For this 2 bulk formulations, there are 3 different ways to compute the exchange coeficient:
- nn_gammablk = 0
- The salt and heat exchange coefficients are constant and defined by rn_gammas0 and rn_gammat0
- nn_gammablk = 1
- The salt and heat exchange coefficients are velocity dependent and defined as
where is the friction velocity in the top boundary layer (ie first rn_hisf_tbl meters).
See Jenkins  for all the details on this formulation.
- nn_gammablk = 2
- The salt and heat exchange coefficients are velocity and stability dependent and defined as
where is the friction velocity in the top boundary layer (ie first rn_hisf_tbl meters),
the contribution of the ocean stability and
the contribution of the molecular diffusion.
See Holland and Jenkins  for all the details on this formulation.
- nn_isf = 2
- A parameterisation of isf is used. The ice shelf cavity is not represented.
The fwf is distributed along the ice shelf edge between the depth of the average grounding line (GL)
(sn_depmax_isf) and the base of the ice shelf along the calving front (sn_depmin_isf) as in (nn_isf = 3).
Furthermore the fwf and heat flux are computed using the Beckmann and Goosse  parameterisation of isf melting.
The effective melting length (sn_Leff_isf) is read from a file.
- nn_isf = 3
- A simple parameterisation of isf is used. The ice shelf cavity is not represented.
The fwf (sn_rnfisf) is prescribed and distributed along the ice shelf edge between the depth of the average grounding line (GL)
(sn_depmax_isf) and the base of the ice shelf along the calving front (sn_depmin_isf).
The heat flux () is computed as
- nn_isf = 4
- The ice shelf cavity is opened. However, the fwf is not computed but specified from file sn_fwfisf).
The heat flux () is computed as
nn_isf = 1 and nn_isf = 2 compute a melt rate based on the water mass properties, ocean velocities and depth.
This flux is thus highly dependent of the model resolution (horizontal and vertical), realism of the water masses onto the shelf ...
nn_isf = 3 and nn_isf = 4 read the melt rate from a file. You have total control of the fwf forcing.
This can be usefull if the water masses on the shelf are not realistic or the resolution (horizontal/vertical) are too
coarse to have realistic melting or for studies where you need to control your heat and fw input.
Two namelist parameters control how the heat and fw fluxes are passed to NEMO: rn_hisf_tbl and ln_divisf
- is the top boundary layer thickness as defined in Losch .
This parameter is only used if nn_isf = 1 or nn_isf = 4
It allows you to control over which depth you want to spread the heat and fw fluxes.
If rn_hisf_tbl = 0.0, the fluxes are put in the top level whatever is its tickness.
If rn_hisf_tbl 0.0, the fluxes are spread over the first rn_hisf_tbl m (ie over one or several cells).
- is a flag to apply the fw flux as a volume flux or as a salt flux.
ln_divisf = true applies the fwf as a volume flux. This volume flux is implemented with in the same way as for the runoff.
The fw addition due to the ice shelf melting is, at each relevant depth level, added to the horizontal divergence
(hdivn) in the subroutine sbc_isf_div, called from divcur.F90.
See the runoff section 7.9 for all the details about the divergence correction.
ln_divisf = false applies the fwf and heat flux directly on the salinity and temperature tendancy.
- is a flag for nn_isf = 1. A conservative boundary layer scheme as described in Jenkins 
is used if ln_conserve=true. It takes into account the fact that the melt water is at freezing T and needs to be warm up to ocean temperature.
It is only relevant for ln_divisf = false.
If ln_divisf = true, ln_conserve has to be set to false to avoid a double counting of the contribution.
Gurvan Madec and the NEMO Team
NEMO European Consortium2017-02-17