mom_ice_shelf module reference
Implements the thermodynamic aspects of ocean / ice-shelf interactions, along with a crude placeholder for a later implementation of full ice shelf dynamics, all using the MOM framework and coding style.
Data Types
Control structure that contains ice shelf parameters and diagnostics handles. |
Functions/Subroutines
Calculates fluxes between the ocean and ice-shelf using the three-equations formulation (optional to use just two equations). |
|
Copies frazil from the ocean surface state to the ice sheet state. |
|
Converts the ice-shelf-to-ocean calving and calving_hflx variables from the ice-shelf state (ISS) type to the ocean public type. |
|
Changes the thickness (mass) of the ice shelf based on sub-ice-shelf melting. |
|
This subroutine adds the mechanical forcing fields and perhaps shelf areas, based on the ice state in ice_shelf_CS. |
|
This subroutine adds the ice shelf pressure to the fluxes type. |
|
Updates surface fluxes that are influenced by sub-ice-shelf melting. |
|
Initializes shelf model data, parameters and diagnostics. |
|
Allocate and initialize the ice-shelf forcing elements of a mechanical forcing type. |
|
Initializes shelf mass based on three options (file, zero and user) |
|
This subroutine applies net accumulation/ablation at the top surface to the dynamic ice shelf. |
|
Updates the ice shelf mass using data from a file. |
|
Save the ice shelf restart file. |
|
Save the ice shelf restart file. |
|
Deallocates all memory associated with this module. |
|
This routine is for stepping a stand-alone ice shelf model without an ocean. |
|
Post_data calls for ice-sheet scalars. |
Detailed Description
section_ICE_SHELF
This module implements the thermodynamic aspects of ocean/ice-shelf inter-actions using the MOM framework and coding style.
Derived from code by Chris Little, early 2010.
The ice-sheet dynamics subroutines do the following: initialize_shelf_mass - Initializes the ice shelf mass distribution. * Initializes h_shelf, h_mask, area_shelf_h
CURRENTLY: initializes mass_shelf as well, but this is unnecessary, as mass_shelf is initialized based on h_shelf and density_ice immediately afterwards. Possibly subroutine should be renamed update_shelf_mass - updates ice shelf mass via netCDF file USER_update_shelf_mass (TODO). solo_step_ice_shelf - called only in ice-only mode. shelf_calc_flux - after melt rate & fluxes are calculated, ice dynamics are done. Currently mass_shelf is updated immediately after ice_shelf_advect in fully dynamic mode.
NOTES: be aware that hmask(:,:) has a number of functions; it is used for front advancement, for subroutines in the velocity solve, and for thickness boundary conditions (this last one may be removed). in other words, interfering with its updates will have implications you might not expect.
Overall issues: Many variables need better documentation and units and the subgrid on which they are discretized.
ICE_SHELF equations
The three fundamental equations are: Heat flux
Salt flux
Freezing temperature
where ….
References
Asay-Davis, Xylar S., Stephen L. Cornford, Benjamin K. Galton-Fenzi, Rupert M. Gladstone, G. Hilmar Gudmundsson, David M. Holland, Paul R. Holland, and Daniel F. Martin. Experimental design for three interrelated marine ice sheet and ocean model intercomparison projects: MISMIP v. 3 (MISMIP+), ISOMIP v. 2 (ISOMIP+) and MISOMIP v. 1 (MISOMIP1). Geoscientific Model Development 9, no. 7 (2016): 2471.
Goldberg, D. N., et al. Investigation of land ice-ocean interaction with a fully coupled ice-ocean model: 1. Model description and behavior. Journal of Geophysical Research: Earth Surface 117.F2 (2012).
Goldberg, D. N., et al. Investigation of land ice-ocean interaction with a fully coupled ice-ocean model: 2. Sensitivity to external forcings. Journal of Geophysical Research: Earth Surface 117.F2 (2012).
Holland, David M., and Adrian Jenkins. Modeling thermodynamic ice-ocean interactions at the base of an ice shelf. Journal of Physical Oceanography 29.8 (1999): 1787-1800.
Type Documentation
- type mom_ice_shelf/ice_shelf_cs
Control structure that contains ice shelf parameters and diagnostics handles.
- Type fields:
% id_melt ::
integerDiagnostic handles.% id_exch_vel_s ::
integerDiagnostic handles.% id_exch_vel_t ::
integerDiagnostic handles.% id_tfreeze ::
integerDiagnostic handles.% id_tfl_shelf ::
integerDiagnostic handles.% id_thermal_driving ::
integerDiagnostic handles.% id_haline_driving ::
integerDiagnostic handles.% id_u_ml ::
integerDiagnostic handles.% id_v_ml ::
integerDiagnostic handles.% id_sbdry ::
integerDiagnostic handles.% id_h_shelf ::
integerDiagnostic handles.% id_dhdt_shelf ::
integerDiagnostic handles.% id_h_mask ::
integerDiagnostic handles.% id_frazil ::
integerDiagnostic handles.% id_surf_elev ::
integerDiagnostic handles.% id_bathym ::
integerDiagnostic handles.% id_area_shelf_h ::
integerDiagnostic handles.% id_ustar_shelf ::
integerDiagnostic handles.% id_shelf_mass ::
integerDiagnostic handles.% id_mass_flux ::
integerDiagnostic handles.% id_shelf_sfc_mass_flux ::
integerDiagnostic handles.% id_vaf ::
integerDiagnostic handles.% id_g_adott ::
integerDiagnostic handles.% id_f_adott ::
integerDiagnostic handles.% id_adott ::
integerDiagnostic handles.% id_bdott_melt ::
integerDiagnostic handles.% id_bdott_accum ::
integerDiagnostic handles.% id_bdott ::
integerDiagnostic handles.% id_dvafdt ::
integerDiagnostic handles.% id_g_adot ::
integerDiagnostic handles.% id_f_adot ::
integerDiagnostic handles.% id_adot ::
integerDiagnostic handles.% id_bdot_melt ::
integerDiagnostic handles.% id_bdot_accum ::
integerDiagnostic handles.% id_bdot ::
integerDiagnostic handles.% id_t_area ::
integerDiagnostic handles.% id_g_area ::
integerDiagnostic handles.% id_f_area ::
integerDiagnostic handles.% id_ant_vaf ::
integerDiagnostic handles.% id_ant_g_adott ::
integerDiagnostic handles.% id_ant_f_adott ::
integerDiagnostic handles.% id_ant_adott ::
integerDiagnostic handles.% id_ant_bdott_melt ::
integerDiagnostic handles.% id_ant_bdott_accum ::
integerDiagnostic handles.% id_ant_bdott ::
integerDiagnostic handles.% id_ant_dvafdt ::
integerDiagnostic handles.% id_ant_g_adot ::
integerDiagnostic handles.% id_ant_f_adot ::
integerDiagnostic handles.% id_ant_adot ::
integerDiagnostic handles.% id_ant_bdot_melt ::
integerDiagnostic handles.% id_ant_bdot_accum ::
integerDiagnostic handles.% id_ant_bdot ::
integerDiagnostic handles.% id_ant_t_area ::
integerDiagnostic handles.% id_ant_g_area ::
integerDiagnostic handles.% id_ant_f_area ::
integerDiagnostic handles.% id_gr_vaf ::
integerDiagnostic handles.% id_gr_g_adott ::
integerDiagnostic handles.% id_gr_f_adott ::
integerDiagnostic handles.% id_gr_adott ::
integerDiagnostic handles.% id_gr_bdott_melt ::
integerDiagnostic handles.% id_gr_bdott_accum ::
integerDiagnostic handles.% id_gr_bdott ::
integerDiagnostic handles.% id_gr_dvafdt ::
integerDiagnostic handles.% id_gr_g_adot ::
integerDiagnostic handles.% id_gr_f_adot ::
integerDiagnostic handles.% id_gr_adot ::
integerDiagnostic handles.% id_gr_bdot_melt ::
integerDiagnostic handles.% id_gr_bdot_accum ::
integerDiagnostic handles.% id_gr_bdot ::
integerDiagnostic handles.% id_gr_t_area ::
integerDiagnostic handles.% id_gr_g_area ::
integerDiagnostic handles.% id_gr_f_area ::
integerDiagnostic handles.% restart_csp ::
type(mom_restart_cs), pointerA pointer to the restart control structure for the ice shelves.% grid_in ::
type(ocean_grid_type), pointerun-rotated input grid metric% rotate_index ::
logicalTrue if index map is rotated.% turns ::
integerThe number of quarter turns for rotation testing.% grid ::
type(ocean_grid_type), pointerGrid for the ice-shelf model.% us ::
type(unit_scale_type), pointerA structure containing various unit conversion factors.% ocn_grid ::
type(ocean_grid_type), pointerA pointer to the ocean model grid The rest is private.% flux_factor ::
realA factor that can be used to turn off ice shelf melting (flux_factor = 0) [nondim].% restart_output_dir ::
character(len=128)The directory in which to write restart files.% iss ::
type(ice_shelf_state), pointerA structure with elements that describe the ice-shelf state.% dcs ::
type(ice_shelf_dyn_cs), pointerThe control structure for the ice-shelf dynamics.% utide ::
real, dimension(:,:), pointerAn unresolved tidal velocity [L T-1 ~> m s-1].% ustar_bg ::
realA minimum value for ustar under ice shelves [Z T-1 ~> m s-1].% ustar_max ::
realA maximum value for ustar under ice shelves, or a negative value to have no limit [Z T-1 ~> m s-1].% cdrag ::
realdrag coefficient under ice shelves [nondim].% g_earth ::
realThe gravitational acceleration [L2 Z-1 T-2 ~> m s-2].% cp ::
realThe heat capacity of sea water [Q C-1 ~> J kg-1 degC-1].% rho_ocn ::
realA reference ocean density [R ~> kg m-3].% cp_ice ::
realThe heat capacity of fresh ice [Q C-1 ~> J kg-1 degC-1].% gamma_t ::
realThe (fixed) turbulent exchange velocity in the 2-equation formulation [Z T-1 ~> m s-1].% salin_ice ::
realThe salinity of shelf ice [S ~> ppt].% temp_ice ::
realThe core temperature of shelf ice [C ~> degC].% kv_ice ::
realThe viscosity of ice [L4 Z-2 T-1 ~> m2 s-1].% density_ice ::
realA typical density of ice [R ~> kg m-3].% kv_molec ::
realThe molecular kinematic viscosity of sea water [Z2 T-1 ~> m2 s-1].% kd_molec_salt ::
realThe molecular diffusivity of salt [Z2 T-1 ~> m2 s-1].% kd_molec_temp ::
realThe molecular diffusivity of heat [Z2 T-1 ~> m2 s-1].% lat_fusion ::
realThe latent heat of fusion [Q ~> J kg-1].% gamma_t_3eq ::
realNondimensional heat-transfer coefficient, used in the 3Eq. formulation [nondim].% gamma_s_3eq ::
realNondimensional salt-transfer coefficient, used in the 3Eq. formulation [nondim] This number should be specified by the user.% col_mass_melt_threshold ::
realAn ocean column mass below the iceshelf below which melting does not occur [R Z ~> kg m-2].% mass_from_file ::
logicalRead the ice shelf mass from a file every dt.% ustar_shelf_from_vel ::
logicalIf true, use the surface velocities, and not the previous values of the stresses to set ustar.% time_step ::
realthis is the shortest timestep that the ice shelf sees [T ~> s], and is equal to the forcing timestep (it is passed in when the shelf is initialized - so need to reorganize MOM driver. it will be the prognostic timestep … maybe.% solo_ice_sheet ::
logicalwhether the ice model is running without being coupled to the ocean% gl_regularize ::
logicalwhether to regularize the floatation condition at the grounding line a la Goldberg Holland Schoof 2009% gl_couple ::
logicalwhether to let the floatation condition be determined by ocean column thickness means update_OD_ffrac will be called (note: GL_regularize and GL_couple should be exclusive)% calve_to_mask ::
logicalIf true, calve any ice that passes outside of a masked area.% calve_ice_shelf_bergs ::
logicalIf true, flux through a static ice front is converted to point bergs.% min_thickness_simple_calve ::
realmin. ice shelf thickness criteria for calving [Z ~> m].% t0 ::
realtemperature at ocean surface in the restoring region [C ~> degC]% s0 ::
realSalinity at ocean surface in the restoring region [S ~> ppt].% input_flux ::
realThe vertically integrated inward ice thickness flux per unit face length at an upstream boundary [Z L T-1 ~> m2 s-1].% input_thickness ::
realIce thickness at an upstream open boundary [Z ~> m].% time ::
type(time_type)The component’s time.% eqn_of_state ::
type(eos_type)Type that indicates the equation of state to use.% active_shelf_dynamics ::
logicalTrue if the ice shelf mass changes as a result the dynamic ice-shelf model.% shelf_mass_is_dynamic ::
logicalTrue if ice shelf mass changes over time. If true, ice shelf dynamics will be initialized.% data_override_shelf_fluxes ::
logicalTrue if the ice shelf surface mass fluxes can be written using the data_override feature (only for MOSAIC grids)% override_shelf_movement ::
logicalIf true, user code specifies the shelf movement instead of using the dynamic ice-shelf mode.% isthermo ::
logicalTrue if the ice shelf can exchange heat and mass with the underlying ocean.% threeeq ::
logicalIf true, the 3 equation consistency equations are used to calculate the flux at the ocean-ice interface.% insulator ::
logicalIf true, ice shelf is a perfect insulator.% const_gamma ::
logicalIf true, gamma_T is specified by the user.% constant_sea_level ::
logicalif true, apply an evaporative, heat and salt fluxes. It will avoid large increase in sea level.% constant_sea_level_misomip ::
logicalIf true, constant_sea_level fluxes are applied only over the surface sponge cells from the ISOMIP/MISOMIP configuration.% smb_diag ::
logicalIf true, calculate diagnostics related to surface mass balance.% bmb_diag ::
logicalIf true, calculate diagnostics related to basal mass balance.% min_ocean_mass_float ::
realThe minimum ocean mass per unit area before the ice shelf is considered to float when constant_sea_level is used [R Z ~> kg m-2].% cutoff_depth ::
realDepth above which melt is set to zero (>= 0) [Z ~> m].% find_salt_root ::
logicalIf true, if true find Sbdry using a quadratic eq.% tfr_0_0 ::
realThe freezing point at 0 pressure and 0 salinity [C ~> degC].% dtfr_ds ::
realPartial derivative of freezing temperature with salinity [C S-1 ~> degC ppt-1].% dtfr_dp ::
realPartial derivative of freezing temperature with pressure [C T2 R-1 L-2 ~> degC Pa-1].% zeta_n ::
realThe stability constant xi_N = 0.052 from Holland & Jenkins ‘99 divided by the von Karman constant VK [nondim]. Was 1/8.% vk ::
realVon Karman’s constant [nondim].% rc ::
realcritical flux Richardson number [nondim]% ustar_from_vel_bugfix ::
logicalIf true, fixes ustar from ocean velocity bug.% buoy_flux_itt_bugfix ::
logicalIf true, fixes buoyancy iteration bug.% salt_flux_itt_bugfix ::
logicalIf true, fixes salt iteration bug.% buoy_flux_tol ::
realFractional buoyancy iteration tolerance for convergence [nondim].% mass_handle ::
type(external_field)Handle for reading the time interpolated ice shelf mass from a file.% area_handle ::
type(external_field)Handle for reading the time interpolated ice shelf area from a file.% diag ::
type(diag_ctrl), pointerA structure that is used to control diagnostic output.% user_cs ::
type(user_ice_shelf_cs), pointerA pointer to the control structure for user-supplied modifications to the ice shelf code.% debug ::
logicalIf true, write verbose checksums for debugging purposes and use reproducible sums.
Function/Subroutine Documentation
- subroutine mom_ice_shelf/shelf_calc_flux(sfc_state_in, fluxes_in, Time, time_step_in, CS)
Calculates fluxes between the ocean and ice-shelf using the three-equations formulation (optional to use just two equations). See ICE_SHELF equations.
- Parameters:
sfc_state_in ::
sfc_state_in[inout] A structure containing fields that describe the surface state of the ocean. The intent is only inout to allow for halo updates.fluxes_in ::
fluxes_in[inout] structure containing pointers to any possible thermodynamic or mass-flux forcing fields.time :: [in] Start time of the fluxes.
time_step_in ::
time_step_in[in] Length of time over which these fluxes will be applied [T ~> s].cs :: A pointer to the control structure returned by a previous call to initialize_ice_shelf.
- Call to:
add_shelf_fluxchange_thickness_using_meltchange_thickness_using_precipid_clock_passid_clock_shelfprocess_and_post_scalar_datamom_forcing_type::rotate_forcingmom_variables::rotate_surface_stateupdate_shelf_massmom_ice_shelf_dynamics::volume_above_floatation- Called from:
mom6
- subroutine mom_ice_shelf/adjust_ice_sheet_frazil(sfc_state_in, fluxes_in, CS)
Copies frazil from the ocean surface state to the ice sheet state. Removes frazil that will be used by the ice sheet from the ocean surface state.
- Parameters:
sfc_state_in ::
sfc_state_in[inout] A structure containing fields that describe the surface state of the ocean. The intent is only inout to allow for halo updates.fluxes_in ::
fluxes_in[in] structure containing pointers to any possible thermodynamic or mass-flux forcing fields.cs :: A pointer to the control structure returned by a previous call to initialize_ice_shelf.
- Call to:
mom_forcing_type::rotate_forcingmom_variables::rotate_surface_state- Called from:
mom6ocean_model_mod::ocean_model_initocean_model_mod::ocean_model_init_sfcocean_model_mod::update_ocean_model
- function mom_ice_shelf/integrate_over_ice_sheet_area(G, ISS, var, unscale, hemisphere)
- Parameters:
g :: [in] The grid structure used by the ice shelf.
iss :: [in] A structure with elements that describe the ice-shelf state
var ::
var[in] Ice variable to integrate in arbitrary units [A ~> a]unscale ::
unscale[in] Dimensional scaling for variable to integrate [a A-1 ~> 1]hemisphere ::
hemisphere[in] 0 for Antarctica only, 1 for Greenland only. Otherwise, all ice sheets
- Return:
undefined :: Variable integrated over the area of the ice sheet in arbitrary scaled units [A L2 ~> a m2]
- Called from:
- subroutine mom_ice_shelf/ice_sheet_calving_to_ocean_sfc(CS, US, calving, calving_hflx)
Converts the ice-shelf-to-ocean calving and calving_hflx variables from the ice-shelf state (ISS) type to the ocean public type.
- Parameters:
cs :: A pointer to the ice shelf control structure
us :: [in] A dimensional unit scaling type
calving ::
calving[inout] The mass flux per unit area of the ice shelf to convert to bergs [R Z T-1 ~> kg m-2 s-1].calving_hflx ::
calving_hflx[inout] Calving heat flux [Q R Z T-1 ~> W m-2].
- Called from:
- subroutine mom_ice_shelf/change_thickness_using_melt(ISS, G, US, time_step, fluxes, density_ice, debug)
Changes the thickness (mass) of the ice shelf based on sub-ice-shelf melting.
- Parameters:
g :: [inout] The ocean’s grid structure.
iss :: [inout] A structure with elements that describe the ice-shelf state
us :: [in] A dimensional unit scaling type
time_step ::
time_step[in] The time step for this update [T ~> s].fluxes ::
fluxes[inout] structure containing pointers to any possible thermodynamic or mass-flux forcing fields.density_ice ::
density_ice[in] The density of ice-shelf ice [R ~> kg m-3].debug ::
debug[in] If present and true, write chksums
- Called from:
- subroutine mom_ice_shelf/add_shelf_forces(Ocn_grid, US, CS, forces_in, do_shelf_area, external_call)
This subroutine adds the mechanical forcing fields and perhaps shelf areas, based on the ice state in ice_shelf_CS.
- Parameters:
ocn_grid :: [in] The ocean’s grid structure.
us :: [in] A dimensional unit scaling type
cs :: This module’s control structure.
forces_in ::
forces_in[inout] A structure with the driving mechanical forcesdo_shelf_area ::
do_shelf_area[in] If true find the shelf-covered areas.external_call ::
external_call[in] If true the incoming forcing type is using the unrotated input grid and may need to be rotated.
- Call to:
- Called from:
- subroutine mom_ice_shelf/add_shelf_pressure(Ocn_grid, US, CS, fluxes)
This subroutine adds the ice shelf pressure to the fluxes type.
- Parameters:
ocn_grid :: [in] The ocean’s grid structure.
us :: [in] A dimensional unit scaling type
cs :: [in] This module’s control structure.
fluxes ::
fluxes[inout] A structure of surface fluxes that may be updated.
- Called from:
- subroutine mom_ice_shelf/add_shelf_flux(G, US, CS, sfc_state, fluxes, time_step)
Updates surface fluxes that are influenced by sub-ice-shelf melting.
- Parameters:
g :: [inout] The ocean’s grid structure.
us :: [in] A dimensional unit scaling type
cs :: This module’s control structure.
sfc_state ::
sfc_state[inout] Surface ocean statefluxes ::
fluxes[inout] A structure of surface fluxes that may be used/updated.time_step ::
time_step[in] Time step over which fluxes are applied [T ~> s]
- Call to:
- Called from:
- subroutine mom_ice_shelf/initialize_ice_shelf(param_file, ocn_grid, Time, CS, diag, Time_init, directory, forces_in, fluxes_in, sfc_state_in, solo_ice_sheet_in, calve_ice_shelf_bergs)
Initializes shelf model data, parameters and diagnostics.
- Parameters:
param_file ::
param_file[in] A structure to parse for run-time parametersocn_grid ::
ocn_gridThe calling ocean model’s horizontal grid structuretime :: [inout] The clock that that will indicate the model time
cs :: A pointer to the ice shelf control structure
diag ::
diagThis is a pointer to the MOM diag CS which will be discardedtime_init :: [in] The time at initialization.
directory ::
directory[in] The directory where the energy file goes.forces_in ::
forces_in[inout] A structure with the driving mechanical forcesfluxes_in ::
fluxes_in[inout] A structure containing pointers to any possible thermodynamic or mass-flux forcing fields.sfc_state_in ::
sfc_state_in[inout] A structure containing fields that describe the surface state of the ocean. The intent is only inout to allow for halo updates.solo_ice_sheet_in ::
solo_ice_sheet_in[in] If present, this indicates whether a solo ice-sheet driver.calve_ice_shelf_bergs ::
calve_ice_shelf_bergsIf true, will add point iceberg calving variables to the ice shelf restart
- Call to:
mom_error_handler::calltree_waypointmom_dyn_horgrid::create_dyn_horgridmom_dyn_horgrid::destroy_dyn_horgridmom_eos::eos_initmom_unit_scaling::fix_restart_unit_scalingmom_get_input::get_mom_inputmom_ice_shelf_state::ice_shelf_state_initid_clock_passid_clock_shelfinitialize_ice_shelf_fluxesinitialize_ice_shelf_forcesmom_ice_shelf_initialize::initialize_ice_thicknessmom_grid_initialize::initialize_masksinitialize_shelf_massmom_grid::mom_grid_initmom_is_diag_mediator::mom_is_diag_mediator_close_registrationmom_restart::restart_initmom_restart::restore_statemom_hor_index::rotate_hor_indexmom_variables::rotate_surface_statemom_grid_initialize::set_grid_metricsmom_unit_scaling::unit_scaling_init- Called from:
mom::initialize_mommom6
- subroutine mom_ice_shelf/initialize_ice_shelf_fluxes(CS, ocn_grid, US, fluxes_in)
- Parameters:
cs :: A pointer to the ice shelf control structure
ocn_grid ::
ocn_gridThe calling ocean model’s horizontal grid structureus :: [in] A dimensional unit scaling type
fluxes_in ::
fluxes_in[inout] A structure containing pointers to any possible thermodynamic or mass-flux forcing fields.
- Call to:
- Called from:
initialize_ice_shelfmom6
- subroutine mom_ice_shelf/initialize_ice_shelf_forces(CS, ocn_grid, US, forces_in)
Allocate and initialize the ice-shelf forcing elements of a mechanical forcing type. This forcing type is on the unrotated grid that is used outside of the MOM6 ice shelf code.
- Parameters:
cs :: A pointer to the ice shelf control structure
ocn_grid ::
ocn_gridThe calling ocean model’s horizontal grid structureus :: [in] A dimensional unit scaling type
forces_in ::
forces_in[inout] A structure with the driving mechanical forces
- Call to:
- Called from:
initialize_ice_shelfmom6
- subroutine mom_ice_shelf/initialize_shelf_mass(G, param_file, CS, ISS, new_sim)
Initializes shelf mass based on three options (file, zero and user)
- Parameters:
g :: [in] The ocean’s grid structure.
param_file ::
param_file[in] A structure to parse for run-time parameterscs :: A pointer to the ice shelf control structure
iss :: [inout] The ice shelf state type that is being updated
new_sim ::
new_sim[in] If present and false, this run is being restarted
- Called from:
- subroutine mom_ice_shelf/change_thickness_using_precip(CS, ISS, G, US, fluxes, time_step, Time)
This subroutine applies net accumulation/ablation at the top surface to the dynamic ice shelf. acc_rate[m-s]=surf_mass_flux/density_ice is ablation/accumulation rate positive for accumulation negative for ablation.
- Parameters:
cs :: [in] A pointer to the ice shelf control structure
g :: [inout] The ocean’s grid structure.
iss :: [inout] A structure with elements that describe the ice-shelf state
fluxes ::
fluxes[in] A structure of surface fluxes that includes surface mass fluxtime :: [in] The current model time
us :: [in] A dimensional unit scaling type
time_step ::
time_step[in] The time step for this update [T ~> s].
- Called from:
- subroutine mom_ice_shelf/update_shelf_mass(G, US, CS, ISS, Time)
Updates the ice shelf mass using data from a file.
- Parameters:
g :: [inout] The ocean’s grid structure.
us :: [in] A dimensional unit scaling type
cs :: [in] A pointer to the ice shelf control structure
iss :: [inout] The ice shelf state type that is being updated
time :: [in] The current model time
- Called from:
- subroutine mom_ice_shelf/ice_shelf_query(CS, G, frac_shelf_h, mass_shelf, data_override_shelf_fluxes)
Save the ice shelf restart file.
- Parameters:
cs :: ice shelf control structure
g :: [in] A pointer to an ocean grid control structure.
frac_shelf_h ::
frac_shelf_h[out] Ice shelf area fraction [nondim].mass_shelf ::
mass_shelf[out] Ice shelf mass [R Z ~> kg m-2]data_override_shelf_fluxes ::
data_override_shelf_fluxesIf true, shelf fluxes can be written using the data_override capability (only for MOSAIC grids)
- Called from:
mom::initialize_mommom6
- subroutine mom_ice_shelf/ice_shelf_save_restart(CS, Time, directory, time_stamped, filename_suffix)
Save the ice shelf restart file.
- Parameters:
cs :: ice shelf control structure
time :: [in] model time at this call
directory ::
directory[in] An optional directory into which to write these restart files.time_stamped ::
time_stamped[in] f true, the restart file names include a unique time stamp. The default is false.filename_suffix ::
filename_suffix[in] An optional suffix (e.g., a time-stamp) to append to the restart file names.
- Called from:
mom6
- subroutine mom_ice_shelf/ice_shelf_end(CS)
Deallocates all memory associated with this module.
- Parameters:
cs :: A pointer to the ice shelf control structure
- Call to:
- Called from:
mom6
- subroutine mom_ice_shelf/solo_step_ice_shelf(CS, time_interval, nsteps, Time, min_time_step_in, fluxes_in)
This routine is for stepping a stand-alone ice shelf model without an ocean.
- Parameters:
cs :: A pointer to the ice shelf control structure
time_interval ::
time_interval[in] The time interval for this update [s].nsteps ::
nsteps[inout] The running number of ice shelf steps.time :: [inout] The current model time
min_time_step_in ::
min_time_step_in[in] The minimum permitted time step [T ~> s].fluxes_in ::
fluxes_in[inout] A structure containing pointers to any possible thermodynamic or mass-flux forcing fields.
- Call to:
change_thickness_using_precipprocess_and_post_scalar_datamom_ice_shelf_dynamics::volume_above_floatation
- subroutine mom_ice_shelf/process_and_post_scalar_data(CS, vaf0, vaf0_A, vaf0_G, Itime_step, dh_adott, dh_bdott)
Post_data calls for ice-sheet scalars.
- Parameters:
cs :: A pointer to the ice shelf control structure
vaf0 ::
vaf0The previous volumes above floatation for all ice sheets [Z L2 ~> m3]vaf0_a :: The previous volumes above floatation for the Antarctic ice sheet [Z L2 ~> m3]
vaf0_g :: The previous volumes above floatation for the Greenland ice sheet [Z L2 ~> m3]
itime_step :: Inverse of the time step [T-1 ~> s-1]
dh_adott ::
dh_adottSurface (plus basal if solo shelf mode) melt/accumulation over a time step [Z ~> m]dh_bdott ::
dh_bdottSurface (plus basal if solo shelf mode) melt/accumulation over a time step [Z ~> m]
- Call to:
integrate_over_ice_sheet_areamom_ice_shelf_dynamics::masked_var_groundedmom_ice_shelf_dynamics::volume_above_floatation- Called from: