Melt Rates

WAVI.jl has a number of community melt rate parametrizations/models (referred to here collectively as 'melt rates') implemented and ready to use. Details of the physics of these models can be found on the melt rate physics page. This page provides a description of how to endow ice sheet models with a melt rate model/parametrization, as well as the interface of each of those that are implemented in WAVI.jl.

Adding a Melt Rate to a WAVI.jl Model

Melt rates is WAVI.jl are interfaced via MeltRate objects. To build an ice sheet model with a melt rate, simply build the appropriate MeltRate object and then pass it to the Model when the latter is constructed.

This is best demonstrated by example: we first build a simple ice sheet model on a 20 x 20 grid, with a bed that is 50 m below sea level:

grid = Grid(nx = 20, ny = 20)
bed_elevation = 50.0 * ones(grid.nx, grid.ny)

We then build our melt rate model. Let consider a simple case in which the melt rate is assumed to depend quadratically on the thermal forcing:

melt_rate = QuadraticMeltRate();

Finally, build the ice sheet model and pass the melt rate model

model = Model(grid = grid, bed_elevation = bed_elevation, melt_rate = melt_rate)

Analytic Melt Rate Parametrizations

Input File Melt Rates

Quadratic Melt Rate

A QuadraticMeltModel – the melt rate used to implement the quadratic temperature melt rate parametrization is constructed using the QuadraticMeltModel(<kwargs>) constructor.

A QuadraticMeltModel accepts the following keyword arguments:

  • h (required): array of ice thickness values at grid points
  • melt_partial_cell (default: false): specify whether to apply melt to partially floating cells or not.
  • lambda_1 (default: -0.057): liquidus slope
  • lambda_2 (default: 0.0832): liquidus intercept
  • lambda_3 (default: 7.59e-4): liquidus pressure coefficient.
  • gamma_T (default 99.32e-5): heat exchange velocity. Note that gamma_T is typically used as a tuning parameter, the default value is the tuned value from [2].
  • L (default 3.35e-5): latent heat of fusion
  • rho_s (default 1028.0): sea water density
  • rho_i (default 918.0): ice density
  • c_p (default 3974.0): specific heat capacity of ocean
  • S_0: far-field practical salinity profile (units: psu), passed to the constructor as a function of depth. The default is the 'warm0' profile used in [2].
  • T_0: far-field potential temperature profile (units: ${}^\circ$C), passed to the constructor as a function of depth. The default is the 'warm0' profile used in [2].

Ambient temperature and salinity profiles are passed to PlumeEmulator objects via the Ta and Sa keyword arguments, respectively. These must be passed as single valued functions of depth (i.e. temporal dependence in the ambient conditions is not yet supported). Ta and Sa default to the warm ambient profiles used in ISOMIP experiments (referred to as 'warm0' therein), with a lower layer of temperature 1.2∘C and salinity 34.6PSU separated from an upper layer of temperature -1∘C and salinity 33.8PSU by a pycnocline of thickness 400m, which begins at a depth of 700m below sea level.

Plume Emulator Melt Rates

The plume model emulator of Lazeroms2018 is implemented via a PlumeEmulator object. Parameters used in plume model emulator melt rates are specified by keyword arguments passed to PlumeEmulator objects; these summarized in the following table:

Keyword ArgumentDescriptionUnitsDefault Value
αCalibration coefficientDimensionless0.73
λ1Liquidus slope∘C-0.057
λ2Liquidus intercept∘C0.0832
λ3Liquidus pressure coefficient∘C/m7.59e-4
E0Entrainment coefficientDimensionless3.6e-2
CdDrag coefficientDimensionless2.5e-3
Γ_TSCombination Stanton numberDimensionless0.0118
LLatent heat of ice fusionJ/kg3.35e5
cWater specific heat capacityJ/kg/∘C3.974e3
βsHaline contraction coefficient1/PSU7.86e-4
βtThermal expansion coefficient1/∘C3.87e-5
gGravitational accelerationm/s^29.81
ρiIce densitykg/m^3918.0
ρwWater densitykg/m^31028.0

Ambient temperature and salinity profiles are passed to PlumeEmulator objects via the Ta and Sa keyword arguments, respectively. These must be passed as single valued functions of depth (i.e. temporal dependence in the ambient conditions is not yet supported). Ta and Sa default to the warm ambient profiles used in ISOMIP experiments (referred to as 'warm0' therein), with a lower layer of temperature 1.2∘C and salinity 34.6PSU separated from an upper layer of temperature -1∘C and salinity 33.8PSU by a pycnocline of thickness 400m, which begins at a depth of 700m below sea level.

PICO Melt Rate Parametrization

PICOp Melt Rate Parametrization