8.6.4. SHELFICE Remeshing

Author: James Jordan and Daniel Goldberg Introduction

This code works the nonlinear free surface feature of the ocean model to allow continuous updating of the ice shelf draft in a mass-, salt- and heat-conservative fashion. Note ‘Shelfice Remeshing’ is not a separate physical package as such, but works in conjunction with pkg/shelfice, and all code is contained within pkg/shelfice. However, as a separate line of development its application and use warrants its own entry in the documentation. By using pkg/streamice at the same time, remeshing can allow synchronous coupling between ocean and ice shelf. REMESHING configuration and compiling Compile-time options

Shelfice remeshing requires that pkg/shelfice be enabled, which is done by adding shelfice to packages.conf (see Section Section 3.5). Nonlinear free surface is required, which is enabled by adding #define NONLIN_FRSURF to CPP_OPTIONS.h. Additionally, Run-time parameters

Table 8.24 lists run-time parameters in data.shelfice relevant to shelfice remeshing. In addition, nonlinFreeSurf=4 should be set, and select_rstar should be zero (the model default) in file data.

Table 8.24 Run-time parameters and default values


Default value




Necessary for mass/volume-conservative freezing/melting when SHELFICEboundaryLayer = .true.



With SHELFICEboundaryLayer = .true. compute \(u^*\) from uVel,vVel averaged over top \(\Delta z\) thickness


' '

Initialization file for ice shelf mass (kg m-2)



Enables ice mass to change in time


' '

Input file to specify non-thermodynamic ice mass change rate in kg/s (overridden when pkg/streamice enabled)



Update shelficeMass via non-thermodynamic change only (overridden when pkg/streamice enabled



Frequency of remeshing operation (seconds)



Maximum allowed hFacC for a cell



Minimum allowed hFacC for a cell Description

When pkg/shelfice is enabled, the elevation of the free surface in a grid cell is determined by the mass of the ice shelf in that cell, see Jordan et al. (2018) [JHG+18]. In general use of shelfice this mass is held constant, but if it is allowed to change the free surface adjusts if implicitFreeSurface = .true. through adjustment of the thickness of the top-level cell (Figure 8.12). If nonlinFreeSurf=4 these changes are fully accounted for in the ocean dynamics and tracer transport. However:

  • in the case of ice thinning, the numerical approximation to the governing equations will break down if the top-level cell becomes too thick, and

  • in the case of ice thickening, the top-level cell thickness cannot become negative or the model will fail.

Remeshing addresses these issues. At predefined intervals (set by SHELFICERemeshFrequency), the code checks every column and flags those where the top-level cell is too thick (\(h_c\) is larger than SHELFICESplitThreshold) or where it is too thin (\(h_c\) is smaller than SHELFICEMergeThreshold). In the former case, the cell is split into two cells as described in Figure 8.13. In the latter case, the top cells is “merged” with the one below it. In both cases, splitting and merging conserves mass, heat, and salt. Momentum is conserved where possible but this is more difficult because velocities live at cell edges.

Ice shelf basal melt and freezing add and remove water from the ocean. useRealFreshWaterFlux = .true. will cause the ocean volume to be updated - unless SHELFICEboundaryLayer`` = .true.``, which inputs heat and salt fluxes over a distance \(\Delta z\) from the ice-ocean interface, instead of inputting directly into the top cell (Figure 8.12). In this case, an additional option SHI_withBL_realFWflux=.true. can be set in data.shelfice to allow volume conservation.

Remeshing schematic 1

Figure 8.12 Schematic representation of (a) reference ice-shelf depth, d, vertical position of the ice-ocean interface, \(z_{surf}\), and the distance between the two, \(\eta\), and (b) the extent of the ice-shelf boundary layer used to calculate velocities, Bv (red), and tracers, B \(_\chi\) (blue), used in the melt rate calculation. The model grid is represented by dashed lines with the actual sizeof the cells represented by the solid lines.

Remeshing schematic 2

Figure 8.13 Schematic representation of dimensionless vertical grid size, \(h_c\), and reference ice-shelf depth, d, at i=2 in (a) a “normal” case, (b) a cell with \(h_c\) > \(h_{max}\) at i=2, k=2 just before a model remesh check, and (c) the same cell just after a model remesh has occurred. Alternate boundary layer formulation

If SHELFICEboundaryLayer= .true., then salt and temperature are averaged over a distance \(\Delta z\) from the ice-ocean interface in order to calculate melt rates, as described in Losch (2008) [Los08]. When SHI_ALLOW_GAMMAFRICT is defined and SHELFICEuseGammaFrict= .true., near-ice velocities are used to calculate exchange coefficients of heat and salt, which can lead to spurious features where there is a change in the level of the top fluid cell. In the default formulation velocities (or rather square velocities) are first averaged horizontally from cell faces to cell centers, and then vertically over a distance \(\Delta z\). The run-time parameter SHI_withBL_uStarTopDz= .true. reverses this order: velocities are first averaged vertically, and then horizontally. In some cases this has been found to give less spurious variability, but either can be used. Coupling with pkg/streamice

Shelfice remeshing can be used on its own (i.e. without coupling to an ice sheet model), with the effects of ice dynamics specified via SHELFICEMassDynTendFile. Alternatively it can be coupled to the pkg/streamice. To allow this, pkg/streamice must be enabled. Please see the verification/shelfice_2d_remesh for an example. (Documentation on SHELFICE is under construction) Diagnostics

In addition to the diagnostics from pkg/SHELFICE, remeshing adds one additional diagnostic: SHIRshel, the “reference” elevation of the ice shelf base (d in Figure 8.12). Experiments that use Remeshing