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 |