namespace mom_ice_shelf_dynamics

Overview

Implements a crude placeholder for a later implementation of full ice shelf dynamics. More…

namespace mom_ice_shelf_dynamics {

// global functions

real function slope_limiter(num num, denom denom);
subroutine, public register_ice_shelf_dyn_restarts(G G, param_file param_file, CS CS, restart_CS restart_CS);

subroutine, public initialize_ice_shelf_dyn(
    param_file param_file,
    Time Time,
    ISS ISS,
    CS CS,
    G G,
    US US,
    diag diag,
    new_sim new_sim,
    solo_ice_sheet_in solo_ice_sheet_in
    );

real function, public ice_time_step_cfl(CS CS, ISS ISS, G G);

subroutine, public update_ice_shelf(
    CS CS,
    ISS ISS,
    G G,
    US US,
    time_step time_step,
    Time Time,
    ocean_mass ocean_mass,
    coupled_grounding coupled_grounding,
    must_update_vel must_update_vel
    );

subroutine, public shelf_advance_front(CS CS, ISS ISS, G G, flux_enter flux_enter);

subroutine, public ice_shelf_min_thickness_calve(
    G G,
    h_shelf h_shelf,
    area_shelf_h area_shelf_h,
    hmask hmask,
    thickness_calve thickness_calve
    );

subroutine, public calve_to_mask(
    G G,
    h_shelf h_shelf,
    area_shelf_h area_shelf_h,
    hmask hmask,
    calve_mask calve_mask
    );

subroutine, public ice_shelf_dyn_end(CS CS);

} // namespace mom_ice_shelf_dynamics

Detailed Documentation

Implements a crude placeholder for a later implementation of full ice shelf dynamics.

Global Functions

real function slope_limiter(num num, denom denom)

used for flux limiting in advective subroutines Van Leer limiter (source: Wikipedia)

Parameters:

num

The numerator of the ratio used in the Van Leer slope limiter

denom

The denominator of the ratio used in the Van Leer slope limiter

subroutine, public register_ice_shelf_dyn_restarts(
    G G,
    param_file param_file,
    CS CS,
    restart_CS restart_CS
    )

This subroutine is used to register any fields related to the ice shelf dynamics that should be written to or read from the restart file.

Parameters:

g

The grid type describing the ice shelf grid.

param_file

A structure to parse for run-time parameters

cs

A pointer to the ice shelf dynamics control structure

restart_cs

A pointer to the restart control structure.

subroutine, public initialize_ice_shelf_dyn(
    param_file param_file,
    Time Time,
    ISS ISS,
    CS CS,
    G G,
    US US,
    diag diag,
    new_sim new_sim,
    solo_ice_sheet_in solo_ice_sheet_in
    )

Initializes shelf model data, parameters and diagnostics.

Parameters:

param_file

A structure to parse for run-time parameters

time

The clock that that will indicate the model time

iss

A structure with elements that describe the ice-shelf state

cs

A pointer to the ice shelf dynamics control structure

g

The grid type describing the ice shelf grid.

us

Pointer to a structure containing unit conversion factors

diag

A structure that is used to regulate the diagnostic output.

new_sim

If true this is a new simulation, otherwise has been started from a restart file.

solo_ice_sheet_in

If present, this indicates whether a solo ice-sheet driver.

real function, public ice_time_step_cfl(CS CS, ISS ISS, G G)

This function returns the global maximum timestep that can be taken based on the current ice velocities. Because it involves finding a global minimum, it can be suprisingly expensive.

Parameters:

cs

The ice shelf dynamics control structure

iss

A structure with elements that describe the ice-shelf state

g

The grid structure used by the ice shelf.

Returns:

The maximum permitted timestep based on the ice velocities [s].

subroutine, public update_ice_shelf(
    CS CS,
    ISS ISS,
    G G,
    US US,
    time_step time_step,
    Time Time,
    ocean_mass ocean_mass,
    coupled_grounding coupled_grounding,
    must_update_vel must_update_vel
    )

This subroutine updates the ice shelf velocities, mass, stresses and properties due to the ice shelf dynamics.

Parameters:

cs

The ice shelf dynamics control structure

iss

A structure with elements that describe the ice-shelf state

g

The grid structure used by the ice shelf.

us

Pointer to a structure containing unit conversion factors

time_step

time step [s]

time

The current model time

ocean_mass

If present this is the mass per unit area

coupled_grounding

If true, the grounding line is determined by coupled ice-ocean dynamics

must_update_vel

Always update the ice velocities if true.

subroutine, public shelf_advance_front(
    CS CS,
    ISS ISS,
    G G,
    flux_enter flux_enter
    )

Parameters:

cs

A pointer to the ice shelf control structure

iss

A structure with elements that describe the ice-shelf state

g

The grid structure used by the ice shelf.

flux_enter

The ice volume flux into the cell

subroutine, public ice_shelf_min_thickness_calve(
    G G,
    h_shelf h_shelf,
    area_shelf_h area_shelf_h,
    hmask hmask,
    thickness_calve thickness_calve
    )

Apply a very simple calving law using a minimum thickness rule.

Parameters:

g

The grid structure used by the ice shelf.

h_shelf

The ice shelf thickness [Z ~> m].

area_shelf_h

The area per cell covered by the ice shelf [m2].

hmask

A mask indicating which tracer points are

thickness_calve

The thickness at which to trigger calving [Z ~> m].

subroutine, public calve_to_mask(
    G G,
    h_shelf h_shelf,
    area_shelf_h area_shelf_h,
    hmask hmask,
    calve_mask calve_mask
    )

Parameters:

g

The grid structure used by the ice shelf.

h_shelf

The ice shelf thickness [Z ~> m].

area_shelf_h

The area per cell covered by the ice shelf [m2].

hmask

A mask indicating which tracer points are

calve_mask

A mask that indicates where the ice shelf

subroutine, public ice_shelf_dyn_end(CS CS)

Deallocates all memory associated with the ice shelf dynamics module.

Parameters:

cs

A pointer to the ice shelf dynamics control structure