Basal Melt
Physical basis
This model is described in [Reese2018] and [Pelle2019]. It consists in calculating basal melt rates under ice shelves based only on far field ocean temperature and salinity.
PICO
PICO is a box model of ocean circulation under ice shelf cavities. each ice shelf is divided in a set of boxes, and the temperature () and salinity (
) of each box is given by:
where:
is the surface area of box
is the melt rate in box
is the strength of the overturning circulation

Schematic view of the PICO model (taken from [Reese2018]).
PICOP
PICOP is described in [Pelle2019]. The idea is to use PICO to calculate the temperature and salinity in each box, but instead of using PICO’s calculated melt, use these quantities to drive a plume model from [Lazeroms2018]:

Melt calculation in PICOP, adapted from [Pelle2019].
Model parameters
To activate this melt parameterization, you need to use the class basalforcingspico
:
>> md.basalforcings = basalforcingspico();
The parameters relevant to the calculation can be displayed by running:
>> md.basalforcings
md.basalforcings.num_basins
: number of basins the model domain is partitioned into [unitless]md.basalforcings.basin_id
: basin number assigned to each node [unitless]md.basalforcings.maxboxcount
: maximum number of boxes initialized under all ice shelvesmd.basalforcings.overturning_coeff
: overturning strength [/s]
md.basalforcings.gamma_T
: turbulent temperature exchange velocity [m/s]md.basalforcings.farocean_temperature
: depth averaged ocean temperature in front of the ice shelf for basin i [K]md.basalforcings.farocean_salinity
: depth averaged ocean salinity in front of the ice shelf for basin i [psu]md.basalforcings.isplume
: boolean to use buoyant plume melt rate parameterization from Lazeroms et al., 2018 (PICOP, default false)
Example: the Amundsen sea
To set up a model of the Amundsen sea using PICOP, we only need one basin:
>> md.basalforcings = basalforcingspico();
>> md.basalforcings.basin_id = ones(md.mesh.numberofelements, 1);
>> md.basalforcings.num_basins = 1;
We generally do not need to have more than 5 boxes per ice shelf:
>> md.basalforcings.maxboxcount = 5;
and finally, we can prescribe the far field ocean properties (they can be time series):
>> md.basalforcings.farocean_temperature = [0.47 + 273.15]; %0.47C converted to K
>> md.basalforcings.farocean_salinity = [34.73]; %PSU
To activate PICOP instead of PICO:
>> md.basalforcings.isplume = 1;
To run a simulation, use the following command:
>> md = solve(md, 'Transient');