Ocean model components¶
PISM’s ocean model components provide sub-shelf ice temperature (shelfbtemp
) and
sub-shelf mass flux (shelfbmassflux
) to the ice dynamics core.
The sub-shelf ice temperature is used as a Dirichlet boundary condition in the energy conservation code. The sub-shelf mass flux is used as a source in the mass-continuity (transport) equation. Positive flux corresponds to ice loss; in other words, this sub-shelf mass flux is a “melt rate”.
Constant in time and space¶
- Options
-ocean constant
- Variables
none
- C++ class
pism::ocean::Constant
Note
This is the default choice.
This ocean model component implements boundary conditions at the ice/ocean interface that are constant both in space and time.
The sub-shelf ice temperature is set to pressure melting and the sub-shelf melt rate is
controlled by ocean
.constant
.melt_rate
.
Reading forcing data from a file¶
- Options
-ocean given
- Variables
shelfbtemp
Kelvin,shelfbmassflux
\(kg / (m^{2} s)\)- C++ class
pism::ocean::Given
This ocean model component reads sub-shelf ice temperature shelfbtemp
and the
sub-shelf mass flux shelfbmassflux
from a file.
Variables shelfbtemp
and shelfbmassflux
may be time-dependent. (The -ocean
given
component is very similar to -surface given
and -atmosphere given
.)
Parameters
Prefix: ocean.given.
PIK¶
- Options
-ocean pik
- Variables
none
- C++ class
pism::ocean::PIK
This ocean model component implements the ocean forcing setup used in [52]. The sub-shelf ice temperature is set to pressure-melting; the sub-shelf mass flux computation follows [164].
Parameters
Prefix: ocean.pik_
melt_factor
(0.005) dimensionless tuning parameter in the-ocean pik
ocean heat flux parameterization; see [52]
Basal melt rate and temperature from thermodynamics in boundary layer¶
- Options
-ocean th
- Variables
theta_ocean
(absolute potential ocean temperature), [Kelvin],salinity_ocean
(salinity of the adjacent ocean), [g/kg]- C++ class
pism::ocean::GivenTH
This ocean model component derives basal melt rate and basal temperature from thermodynamics in a boundary layer at the base of the ice shelf. It uses a set of three equations describing
the energy flux balance,
the salt flux balance,
the pressure and salinity dependent freezing point in the boundary layer.
This model is described in [151] and [165].
Inputs are two-dimensional, possibly time-dependent potential temperature (variable
theta_ocean
) and salinity (variable salinity_ocean
) read from a file
ocean
.th
.file
. A constant salinity (see constants
.sea_water
.salinity
)
is used if the input file does not contain salinity_ocean
.
No ocean circulation is modeled, so melt water computed by this model is not fed back into the surrounding ocean.
This implementation uses different approximations of the temperature gradient at the base of an ice shelf column depending on whether there is sub-shelf melt, sub-shelf freeze-on, or neither (see [151] and Three-equation ocean model (implementation details) for details).
Parameters
Prefix: ocean.th.
clip_salinity
(yes) Clip shelf base salinity so that it is in the range [4, 40] k/kg. See [151].file
Name of the file containing climate forcing fields.gamma_S
(5.05e-07 m s-1) Turbulent salt transfer coefficient. See [151].gamma_T
(0.0001 m s-1) Turbulent heat transfer coefficient. See [151].periodic
(no) If true, interpret forcing data as periodic in time
Note
If ocean
.th
.clip_salinity
is set (the default), the sub-shelf salinity is
clipped so that it stays in the \([4, 40]\) psu range. This is done to ensure that we
stay in the range of applicability of the melting point temperature parameterization;
see [151].
Set ocean
.th
.clip_salinity
to false
if restricting salinity is not
appropriate.
PICO¶
- Options
-ocean pico
- Variables
theta_ocean
(potential ocean temperature), [Kelvin],salinity_ocean
(salinity of the adjacent ocean), [g/kg],basins
(mask of large-scale ocean basins that ocean input is averaged over), [integer]- C++ class
pism::ocean::Pico
The PICO model provides sub-shelf melt rates and temperatures consistent with the vertical overturning circulation in ice shelf cavities that drives the exchange with open ocean water masses. It is based on the ocean box model of [166] and includes a geometric approach which makes it applicable to ice shelves that evolve in two horizontal dimensions. For each ice shelf, PICO solves the box model equations describing the transport between coarse ocean boxes. It applies a boundary layer melt formulation [167], [151]. The overturning circulation is driven by the ice-pump [168]: melting at the ice-shelf base reduces the density of ambient water masses. Buoyant water rising along the shelf base draws in ocean water at depth, which flows across the continental shelf towards the deep grounding lines. The model captures this circulation by defining consecutive boxes following the flow within the ice shelf cavity, with the first box adjacent to the grounding line. The extents of the ocean boxes are computed adjusting to the evolving grounding lines and calving fronts. Open ocean properties in front of the shelf as well as the geometry of the shelf determine basal melt rate and basal temperature at each grid point.
The main equations reflect the
heat and salt balance for each ocean box in contact with the ice shelf base,
overturning flux driven by the density difference between open-ocean and grounding-line box,
boundary layer melt formulation.
The PICO model is described in detail in [169].
Inputs are two-dimensional, possibly time-dependent potential temperature (variable
theta_ocean
), salinity (variable salinity_ocean
) and a constant in time
ocean basin mask (variable basins
) read from a file ocean
.pico
.file
.
Forcing ocean temperature and salinity are taken from the water masses that occupy the sea
floor in front of the ice shelves, which extends down to a specified continental shelf
depth (see ocean
.pico
.continental_shelf_depth
). These water masses are
transported by the overturning circulation into the ice shelf cavity and towards the
grounding line. The basin mask defines regions of similar, large-scale ocean conditions;
each region is marked with a distinct positive integer. In PICO, ocean input temperature
and salinity are averaged on the continental shelf within each basins. For each ice shelf,
the input values of the overturning circulation are calculated as an area-weighted average
over all basins that intersect the ice shelf. Only those basins are considered in the average,
in which the ice shelf has in fact a connection to the ocean. Large ice shelves, that cover
across two basins, that do not share an ocean boundary, are considered as two separate ice
shelves with individual ocean inputs. If ocean input parameters cannot be
identified, standard values are used (Warning: this could strongly influence melt
rates computed by PICO). In regions where the PICO geometry cannot be identified,
[164] is applied.
Parameters
Prefix: ocean.pico.
continental_shelf_depth
(-800 meters) Specifies the depth up to which oceanic input temperatures and salinities are averaged over the continental shelf areas in front of the ice shelf cavities.exclude_ice_rises
(yes) If set to true, grounding lines of ice rises are excluded in the geometrical routines that determine the ocean boxes; using this option is recommended.file
Specifies the NetCDF file containing potential temperature (theta_ocean
), salinity (salinity_ocean
) and ocean basins (basins
).heat_exchange_coefficent
(2e-05 meters second-1) Sets the coefficient for turbulent heat exchange from the ambient ocean across the boundary layer beneath the ice shelf base.maximum_ice_rise_area
(100000 km2) Specifies an area threshold that separates ice rises from continental regions.number_of_boxes
(5) For each ice shelf the number of ocean boxes is determined by interpolating between 1 and number_of_boxes depending on its size and geometry such that larger ice shelves are resolved with more boxes; a value of 5 is suitable for the Antarctic setup.overturning_coefficent
(1e+06 meters6 seconds-1 kg-1) Sets the overturning strength coefficient.periodic
(no) If true, interpret forcing data as periodic in time
Scalar sea level offsets¶
- Options
-sea_level ...,delta_sl
- Variables
delta_SL
(meters)- C++ class
pism::ocean::sea_level::Delta_SL
The delta_sl
modifier implements sea level forcing using scalar offsets.
Parameters
Prefix: ocean.delta_sl.
file
Name of the file containing sea level offsets.periodic
(no) If true, interpret forcing data as periodic in time2d
.file
Name of the file containing climate forcing fields.2d
.periodic
(no) If true, interpret forcing data as periodic in time
Two-dimensional sea level offsets¶
- Options
-sea_level ...,delta_sl_2d
- Variables
delta_SL
(meters)- C++ class
pism::ocean::sea_level::Delta_SL_2D
The delta_sl
modifier implements sea level forcing using time-dependent and
spatially-variable offsets.
Parameters
Prefix: ocean.delta_sl_2d.
Scalar sub-shelf temperature offsets¶
- Options
-ocean ...,delta_T
- Variables
delta_T
(Kelvin)- C++ class
pism::ocean::Delta_T
This modifier implements forcing using sub-shelf ice temperature offsets.
Parameters
Prefix: ocean.delta_T.
Scalar sub-shelf mass flux offsets¶
- Options
-ocean ...,delta_SMB
- Variables
delta_SMB
\(kg / (m^{2} s)\)- C++ class
pism::ocean::Delta_SMB
This modifier implements forcing using sub-shelf mass flux (melt rate) offsets.
Parameters
Prefix: ocean.delta_mass_flux.
Scalar sub-shelf mass flux fraction offsets¶
- Options
-ocean ...,frac_SMB
- Variables
frac_SMB
[1]- C++ class
pism::ocean::Frac_SMB
This modifier implements forcing using sub-shelf mass flux (melt rate) fraction offsets.
Parameters
Prefix: ocean.frac_mass_flux.
Two-dimensional sub-shelf mass flux offsets¶
- Options
-ocean ...,anomaly
- Variables
shelf_base_mass_flux_anomaly
\(kg / (m^{2} s)\)- C++ class
pism::ocean::Anomaly
This modifier implements a spatially-variable version of -ocean ...,delta_SMB
which
applies time-dependent shelf base mass flux anomalies, as used for initMIP or LARMIP
model intercomparisons.
See also to -atmosphere ...,anomaly
or -surface ...,anomaly
(section
Using climate data anomalies) which is similar, but applies anomalies at the atmosphere or
surface level, respectively.
Parameters
Prefix: ocean.anomaly.
Scalar melange back pressure offsets¶
- Options
-ocean ...,delta_MBP
- Variables
delta_MBP
[Pascal]- C++ class
pism::ocean::Delta_MBP
The scalar time-dependent variable delta_MBP
(units: Pascal) has the meaning of the
melange back pressure \(\sigma_b\) in [170]. It is assumed that \(\sigma_b\) is
applied over the thickness of melange \(h\) specified using
ocean
.delta_MBP
.melange_thickness
.
To convert to the average pressure over the ice front thickness, we compute
where \(H\) is ice thickness.
See Modeling melange back-pressure for details.
Parameters
Prefix: ocean.delta_MBP.
file
Name of the file containing melange back-pressure offsetsmelange_thickness
(100 meters) Melange thickness (assumed to be constant in space and time)periodic
(no) If true, interpret forcing data as periodic in time
Melange back pressure as a fraction of pressure difference¶
- Options
-ocean ...,frac_MBP
- Variables
frac_MBP
- C++ class
pism::ocean::Frac_MBP
This modifier implements forcing using melange back pressure fraction (scaling).
Here we assume that the total vertically-averaged back pressure at an ice margin cannot exceed the vertically-averaged ice pressure at the same location:
We introduce \(\lambda \in [0, 1]\) such that
The scalar time-dependent variable frac_MBP
should take on values between 0 and 1
and has the meaning of \(\lambda\) above.
Please see Modeling melange back-pressure for details.
Parameters
Prefix: ocean.frac_MBP.
The caching modifier¶
- Options
-ocean ...,cache
- C++ class
pism::ocean::Cache
- See also
This modifier skips ocean model updates, so that a ocean model is called no more than
every ocean
.cache
.update_interval
365-day “years”. A time-step of \(1\) year
(respecting the chosen calendar) is used every time a ocean model is updated.
This is useful in cases when inter-annual climate variability is important, but one year differs little from the next. (Coarse-grid paleo-climate runs, for example.)
Parameters
Prefix: ocean.cache.
update_interval
(10 365days) update interval of thecache
ocean modifier
Previous | Up | Next |