PISM, A Parallel Ice Sheet Model  stable v2.1-1-g6902d5502 committed by Ed Bueler on 2023-12-20 08:38:27 -0800

◆ remove_narrow_tongues()

void pism::remove_narrow_tongues ( const Geometry geometry,
array::Scalar ice_thickness 
)

Remove tips of one-cell-wide ice tongues ("noses")..

The center icy cell in ice tongues like this one (and equivalent)

O O ?
X X O
O O ?

where "O" is ice-free and "?" is any mask value, are removed. Ice tongues like this one

# O ?
X X O
# O ?

where one or two of the "#" cells are ice-filled, are not removed.

See the code for the precise rule, which uses ice_free_ocean() for the "O" cells if the center cell has grounded ice, and uses ice_free() if the center cell has floating ice.

Note
We use geometry.cell_type (and not ice_thickness) to make decisions. This means that we can update ice_thickness in place without introducing a dependence on the grid traversal order.
Parameters
[in,out]maskcell type mask
[in,out]ice_thicknessmodeled ice thickness
Returns
0 on success

Definition at line 60 of file remove_narrow_tongues.cc.

References pism::Geometry::bed_elevation, pism::Geometry::cell_type, pism::array::Array::grid(), pism::mask::grounded_ice(), pism::mask::ice_free(), pism::mask::ice_free_ocean(), and pism::Geometry::sea_level_elevation.

Referenced by pism::IceModel::front_retreat_step().