MOM6
|
Implements a crude placeholder for a later implementation of full ice shelf dynamics.
Data Types | |
type | ice_shelf_dyn_cs |
The control structure for the ice shelf dynamics. More... | |
Functions/Subroutines | |
real function | slope_limiter (num, denom) |
used for flux limiting in advective subroutines Van Leer limiter (source: Wikipedia) More... | |
real function | quad_area (X, Y) |
Calculate area of quadrilateral. More... | |
subroutine, public | register_ice_shelf_dyn_restarts (G, param_file, 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. More... | |
subroutine, public | initialize_ice_shelf_dyn (param_file, Time, ISS, CS, G, US, diag, new_sim, solo_ice_sheet_in) |
Initializes shelf model data, parameters and diagnostics. More... | |
subroutine | initialize_diagnostic_fields (CS, ISS, G, US, Time) |
real function, public | ice_time_step_cfl (CS, ISS, 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. More... | |
subroutine, public | update_ice_shelf (CS, ISS, G, US, time_step, Time, ocean_mass, coupled_grounding, must_update_vel) |
This subroutine updates the ice shelf velocities, mass, stresses and properties due to the ice shelf dynamics. More... | |
subroutine | ice_shelf_advect (CS, ISS, G, time_step, Time) |
This subroutine takes the velocity (on the Bgrid) and timesteps h_t = - div (uh) once. Additionally, it will update the volume of ice in partially-filled cells, and update hmask accordingly. More... | |
subroutine | ice_shelf_solve_outer (CS, ISS, G, US, u, v, iters, time) |
subroutine | ice_shelf_solve_inner (CS, ISS, G, u, v, taudx, taudy, H_node, float_cond, hmask, conv_flag, iters, time, Phi, Phisub) |
subroutine | ice_shelf_advect_thickness_x (CS, G, time_step, hmask, h0, h_after_uflux, flux_enter) |
subroutine | ice_shelf_advect_thickness_y (CS, G, time_step, hmask, h_after_uflux, h_after_vflux, flux_enter) |
subroutine, public | shelf_advance_front (CS, ISS, G, flux_enter) |
subroutine, public | ice_shelf_min_thickness_calve (G, h_shelf, area_shelf_h, hmask, thickness_calve) |
Apply a very simple calving law using a minimum thickness rule. More... | |
subroutine, public | calve_to_mask (G, h_shelf, area_shelf_h, hmask, calve_mask) |
subroutine | calc_shelf_driving_stress (CS, ISS, G, US, TAUD_X, TAUD_Y, OD) |
subroutine | init_boundary_values (CS, G, time, hmask, input_flux, input_thick, new_sim) |
subroutine | cg_action (uret, vret, u, v, Phi, Phisub, umask, vmask, hmask, H_node, nu, float_cond, bathyT, beta, dxdyh, G, is, ie, js, je, dens_ratio) |
subroutine | cg_action_subgrid_basal (Phisub, H, U, V, DXDYH, bathyT, dens_ratio, Ucontr, Vcontr) |
subroutine | matrix_diagonal (CS, G, float_cond, H_node, nu, beta, hmask, dens_ratio, Phisub, u_diagonal, v_diagonal) |
returns the diagonal entries of the matrix for a Jacobi preconditioning More... | |
subroutine | cg_diagonal_subgrid_basal (Phisub, H_node, DXDYH, bathyT, dens_ratio, Ucontr, Vcontr) |
subroutine | apply_boundary_values (CS, ISS, G, time, Phisub, H_node, nu, beta, float_cond, dens_ratio, u_bdry_contr, v_bdry_contr) |
subroutine | calc_shelf_visc (CS, ISS, G, US, u, v) |
Update depth integrated viscosity, based on horizontal strain rates, and also update the nonlinear part of the basal traction. More... | |
subroutine | update_od_ffrac (CS, G, US, ocean_mass, find_avg) |
subroutine | update_od_ffrac_uncoupled (CS, G, h_shelf) |
subroutine | bilinear_shape_functions (X, Y, Phi, area) |
This subroutine calculates the gradients of bilinear basis elements that that are centered at the vertices of the cell. values are calculated at points of gaussian quadrature. More... | |
subroutine | bilinear_shape_functions_subgrid (Phisub, nsub) |
subroutine | update_velocity_masks (CS, G, hmask, umask, vmask, u_face_mask, v_face_mask) |
subroutine | interpolate_h_to_b (G, h_shelf, hmask, H_node) |
Interpolate the ice shelf thickness from tracer point to nodal points, subject to a mask. More... | |
subroutine, public | ice_shelf_dyn_end (CS) |
Deallocates all memory associated with the ice shelf dynamics module. More... | |
subroutine | ice_shelf_temp (CS, ISS, G, US, time_step, melt_rate, Time) |
This subroutine updates the vertically averaged ice shelf temperature. More... | |
subroutine | ice_shelf_advect_temp_x (CS, G, time_step, hmask, h0, h_after_uflux, flux_enter) |
subroutine | ice_shelf_advect_temp_y (CS, G, time_step, hmask, h_after_uflux, h_after_vflux, flux_enter) |
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in] | g | The grid structure used by the ice shelf. |
[in] | time | The current model time |
[in] | phisub | Quadrature structure weights at subgridscale |
[in] | h_node | The ice shelf thickness at nodal |
[in] | nu | A field related to the ice viscosity from Glen's |
[in] | beta | A field related to the nonlinear part of the |
[in] | float_cond | An array indicating where the ice |
[in] | dens_ratio | The density of ice divided by the density of seawater, nondimensional |
[in,out] | u_bdry_contr | Contributions to the zonal ice |
[in,out] | v_bdry_contr | Contributions to the zonal ice |
Definition at line 2809 of file MOM_ice_shelf_dynamics.F90.
References bilinear_shape_functions(), and cg_action_subgrid_basal().
Referenced by ice_shelf_solve_inner(), and ice_shelf_solve_outer().
|
private |
This subroutine calculates the gradients of bilinear basis elements that that are centered at the vertices of the cell. values are calculated at points of gaussian quadrature.
[in] | x | The x-positions of the vertices of the quadrilateral. |
[in] | y | The y-positions of the vertices of the quadrilateral. |
[in,out] | phi | The gradients of bilinear basis elements at Gaussian quadrature points surrounding the cell verticies. |
[out] | area | The quadrilateral cell area [m2]. |
Definition at line 3121 of file MOM_ice_shelf_dynamics.F90.
References quad_area().
Referenced by apply_boundary_values(), ice_shelf_solve_outer(), and matrix_diagonal().
|
private |
[in,out] | phisub | Quadrature structure weights at subgridscale |
[in] | nsub | The nubmer of subgridscale quadrature locations in each direction |
Definition at line 3186 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_solve_outer().
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in] | od | ocean floor depth at tracer points [Z ~> m]. |
[in,out] | taud_x | X-direction driving stress at q-points |
[in,out] | taud_y | Y-direction driving stress at q-points |
Definition at line 2091 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_solve_outer().
|
private |
Update depth integrated viscosity, based on horizontal strain rates, and also update the nonlinear part of the basal traction.
[in,out] | cs | A pointer to the ice shelf control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in,out] | u | The zonal ice shelf velocity [m year-1]. |
[in,out] | v | The meridional ice shelf velocity [m year-1]. |
Definition at line 2990 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_solve_outer().
subroutine, public mom_ice_shelf_dynamics::calve_to_mask | ( | type(ocean_grid_type), intent(in) | G, |
real, dimension(szdi_(g),szdj_(g)), intent(inout) | h_shelf, | ||
real, dimension(szdi_(g),szdj_(g)), intent(inout) | area_shelf_h, | ||
real, dimension(szdi_(g),szdj_(g)), intent(inout) | hmask, | ||
real, dimension(szdi_(g),szdj_(g)), intent(in) | calve_mask | ||
) |
[in] | g | The grid structure used by the ice shelf. |
[in,out] | h_shelf | The ice shelf thickness [Z ~> m]. |
[in,out] | area_shelf_h | The area per cell covered by the ice shelf [m2]. |
[in,out] | hmask | A mask indicating which tracer points are |
[in] | calve_mask | A mask that indicates where the ice shelf |
Definition at line 2066 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_advect().
|
private |
[in] | g | The grid structure used by the ice shelf. |
[in,out] | uret | The retarding stresses working at u-points. |
[in,out] | vret | The retarding stresses working at v-points. |
[in] | phi | The gradients of bilinear basis elements at Gaussian |
[in] | phisub | Quadrature structure weights at subgridscale |
[in] | u | The zonal ice shelf velocity at vertices [m year-1] |
[in] | v | The meridional ice shelf velocity at vertices [m year-1] |
[in] | umask | A coded mask indicating the nature of the |
[in] | vmask | A coded mask indicating the nature of the |
[in] | h_node | The ice shelf thickness at nodal (corner) |
[in] | hmask | A mask indicating which tracer points are |
[in] | nu | A field related to the ice viscosity from Glen's |
[in] | float_cond | An array indicating where the ice |
[in] | bathyt | The depth of ocean bathymetry at tracer points [Z ~> m]. |
[in] | beta | A field related to the nonlinear part of the |
[in] | dxdyh | The tracer cell area [m2] |
[in] | dens_ratio | The density of ice divided by the density of seawater, nondimensional |
[in] | is | The starting i-index to work on |
[in] | ie | The ending i-index to work on |
[in] | js | The starting j-index to work on |
[in] | je | The ending j-index to work on |
Definition at line 2355 of file MOM_ice_shelf_dynamics.F90.
References cg_action_subgrid_basal().
Referenced by ice_shelf_solve_inner(), and ice_shelf_solve_outer().
|
private |
[in] | phisub | Quadrature structure weights at subgridscale |
[in] | h | The ice shelf thickness at nodal (corner) points [Z ~> m]. |
[in] | u | The zonal ice shelf velocity at vertices [m year-1] |
[in] | v | The meridional ice shelf velocity at vertices [m year-1] |
[in] | dxdyh | The tracer cell area [m2] |
[in] | bathyt | The depth of ocean bathymetry at tracer points [Z ~> m]. |
[in] | dens_ratio | The density of ice divided by the density of seawater, nondimensional |
[in,out] | ucontr | A field related to the subgridscale contributions to the u-direction basal stress. |
[in,out] | vcontr | A field related to the subgridscale contributions to the v-direction basal stress. |
Definition at line 2565 of file MOM_ice_shelf_dynamics.F90.
Referenced by apply_boundary_values(), and cg_action().
|
private |
[in] | phisub | Quadrature structure weights at subgridscale |
[in] | h_node | The ice shelf thickness at nodal (corner) points [Z ~> m]. |
[in] | dxdyh | The tracer cell area [m2] |
[in] | bathyt | The depth of ocean bathymetry at tracer points [Z ~> m]. |
[in] | dens_ratio | The density of ice divided by the density of seawater, nondimensional |
[in,out] | ucontr | A field related to the subgridscale contributions to the u-direction diagonal elements from basal stress. |
[in,out] | vcontr | A field related to the subgridscale contributions to the v-direction diagonal elements from basal stress. |
Definition at line 2770 of file MOM_ice_shelf_dynamics.F90.
Referenced by matrix_diagonal().
|
private |
This subroutine takes the velocity (on the Bgrid) and timesteps h_t = - div (uh) once. Additionally, it will update the volume of ice in partially-filled cells, and update hmask accordingly.
[in,out] | cs | The ice shelf dynamics control structure |
[in,out] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | time_step | time step [s] |
[in] | time | The current model time |
Definition at line 672 of file MOM_ice_shelf_dynamics.F90.
References calve_to_mask(), ice_shelf_advect_thickness_x(), ice_shelf_advect_thickness_y(), ice_shelf_min_thickness_calve(), shelf_advance_front(), and update_velocity_masks().
Referenced by update_ice_shelf().
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | time_step | The time step for this update [s]. |
[in] | hmask | A mask indicating which tracer points are |
[in] | h0 | The initial ice shelf thicknesses [Z ~> m]. |
[in,out] | h_after_uflux | The ice shelf thicknesses after |
[in,out] | flux_enter | The integrated temperature flux into |
Definition at line 3613 of file MOM_ice_shelf_dynamics.F90.
References slope_limiter().
Referenced by ice_shelf_temp().
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in] | g | The grid structure used by the ice shelf. |
[in] | time_step | The time step for this update [s]. |
[in] | hmask | A mask indicating which tracer points are |
[in] | h_after_uflux | The ice shelf thicknesses after |
[in,out] | h_after_vflux | The ice shelf thicknesses after |
[in,out] | flux_enter | The integrated temperature flux into |
Definition at line 3844 of file MOM_ice_shelf_dynamics.F90.
References slope_limiter().
Referenced by ice_shelf_temp().
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in] | g | The grid structure used by the ice shelf. |
[in] | time_step | The time step for this update [s]. |
[in,out] | hmask | A mask indicating which tracer points are |
[in] | h0 | The initial ice shelf thicknesses [Z ~> m]. |
[in,out] | h_after_uflux | The ice shelf thicknesses after |
[in,out] | flux_enter | The ice volume flux into the cell |
Definition at line 1421 of file MOM_ice_shelf_dynamics.F90.
References slope_limiter().
Referenced by ice_shelf_advect().
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in] | g | The grid structure used by the ice shelf. |
[in] | time_step | The time step for this update [s]. |
[in,out] | hmask | A mask indicating which tracer points are |
[in] | h_after_uflux | The ice shelf thicknesses after |
[in,out] | h_after_vflux | The ice shelf thicknesses after |
[in,out] | flux_enter | The ice volume flux into the cell |
Definition at line 1651 of file MOM_ice_shelf_dynamics.F90.
References slope_limiter().
Referenced by ice_shelf_advect().
subroutine, public mom_ice_shelf_dynamics::ice_shelf_dyn_end | ( | type(ice_shelf_dyn_cs), pointer | CS | ) |
Deallocates all memory associated with the ice shelf dynamics module.
cs | A pointer to the ice shelf dynamics control structure |
Definition at line 3454 of file MOM_ice_shelf_dynamics.F90.
Referenced by mom_ice_shelf::ice_shelf_end().
subroutine, public mom_ice_shelf_dynamics::ice_shelf_min_thickness_calve | ( | type(ocean_grid_type), intent(in) | G, |
real, dimension(szdi_(g),szdj_(g)), intent(inout) | h_shelf, | ||
real, dimension(szdi_(g),szdj_(g)), intent(inout) | area_shelf_h, | ||
real, dimension(szdi_(g),szdj_(g)), intent(inout) | hmask, | ||
real, intent(in) | thickness_calve | ||
) |
Apply a very simple calving law using a minimum thickness rule.
[in] | g | The grid structure used by the ice shelf. |
[in,out] | h_shelf | The ice shelf thickness [Z ~> m]. |
[in,out] | area_shelf_h | The area per cell covered by the ice shelf [m2]. |
[in,out] | hmask | A mask indicating which tracer points are |
[in] | thickness_calve | The thickness at which to trigger calving [Z ~> m]. |
Definition at line 2039 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_advect().
|
private |
[in] | cs | A pointer to the ice shelf control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in,out] | u | The zonal ice shelf velocity at vertices [m year-1] |
[in,out] | v | The meridional ice shelf velocity at vertices [m year-1] |
[in] | taudx | The x-direction driving stress, in ??? |
[in] | taudy | The y-direction driving stress, in ??? |
[in] | h_node | The ice shelf thickness at nodal (corner) |
[in] | float_cond | An array indicating where the ice |
[in] | hmask | A mask indicating which tracer points are |
[out] | conv_flag | A flag indicating whether (1) or not (0) the iterations have converged to the specified tolerence |
[out] | iters | The number of iterations used in the solver. |
[in] | time | The current model time |
[in] | phi | The gradients of bilinear basis elements at Gaussian |
[in] | phisub | Quadrature structure weights at subgridscale |
Definition at line 1036 of file MOM_ice_shelf_dynamics.F90.
References apply_boundary_values(), cg_action(), matrix_diagonal(), and mom_domains::to_all.
Referenced by ice_shelf_solve_outer().
|
private |
[in,out] | cs | The ice shelf dynamics control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in,out] | u | The zonal ice shelf velocity at vertices [m year-1] |
[in,out] | v | The meridional ice shelf velocity at vertices [m year-1] |
[out] | iters | The number of iterations used in the solver. |
[in] | time | The current model time |
Definition at line 773 of file MOM_ice_shelf_dynamics.F90.
References apply_boundary_values(), bilinear_shape_functions(), bilinear_shape_functions_subgrid(), calc_shelf_driving_stress(), calc_shelf_visc(), cg_action(), ice_shelf_solve_inner(), interpolate_h_to_b(), and mom_error_handler::mom_mesg().
Referenced by initialize_diagnostic_fields(), initialize_ice_shelf_dyn(), and update_ice_shelf().
|
private |
This subroutine updates the vertically averaged ice shelf temperature.
[in,out] | cs | A pointer to the ice shelf control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in] | time_step | The time step for this update [s]. |
[in] | melt_rate | basal melt rate [kg m-2 s-1] |
[in] | time | The current model time |
Definition at line 3475 of file MOM_ice_shelf_dynamics.F90.
References ice_shelf_advect_temp_x(), and ice_shelf_advect_temp_y().
Referenced by update_ice_shelf().
real function, public mom_ice_shelf_dynamics::ice_time_step_cfl | ( | type(ice_shelf_dyn_cs), intent(inout) | CS, |
type(ice_shelf_state), intent(inout) | ISS, | ||
type(ocean_grid_type), intent(inout) | 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.
[in,out] | cs | The ice shelf dynamics control structure |
[in,out] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
Definition at line 576 of file MOM_ice_shelf_dynamics.F90.
Referenced by mom_ice_shelf::solo_time_step().
|
private |
[in,out] | cs | A pointer to the ice shelf control structure |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | time | The current model time |
[in] | hmask | A mask indicating which tracer points are |
[in] | input_flux | The integrated inward ice thickness flux [Z m2 s-1 ~> m3 s-1] |
[in] | input_thick | The ice thickness at boundaries [Z ~> m]. |
[in] | new_sim | If present and false, this run is being restarted |
Definition at line 2284 of file MOM_ice_shelf_dynamics.F90.
|
private |
[in,out] | cs | A pointer to the ice shelf control structure |
[in] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in] | time | The current model time |
Definition at line 540 of file MOM_ice_shelf_dynamics.F90.
References ice_shelf_solve_outer().
subroutine, public mom_ice_shelf_dynamics::initialize_ice_shelf_dyn | ( | type(param_file_type), intent(in) | param_file, |
type(time_type), intent(inout) | Time, | ||
type(ice_shelf_state), intent(in) | ISS, | ||
type(ice_shelf_dyn_cs), pointer | CS, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
type(diag_ctrl), intent(in), target | diag, | ||
logical, intent(in) | new_sim, | ||
logical, intent(in), optional | solo_ice_sheet_in | ||
) |
Initializes shelf model data, parameters and diagnostics.
[in] | param_file | A structure to parse for run-time parameters |
[in,out] | time | The clock that that will indicate the model time |
[in] | iss | A structure with elements that describe the ice-shelf state |
cs | A pointer to the ice shelf dynamics control structure | |
[in,out] | g | The grid type describing the ice shelf grid. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in] | diag | A structure that is used to regulate the diagnostic output. |
[in] | new_sim | If true this is a new simulation, otherwise has been started from a restart file. |
[in] | solo_ice_sheet_in | If present, this indicates whether a solo ice-sheet driver. |
Definition at line 263 of file MOM_ice_shelf_dynamics.F90.
References ice_shelf_solve_outer(), mom_error_handler::mom_error(), mom_error_handler::mom_mesg(), mom_domains::to_all, update_od_ffrac_uncoupled(), and update_velocity_masks().
|
private |
Interpolate the ice shelf thickness from tracer point to nodal points, subject to a mask.
[in,out] | g | The grid structure used by the ice shelf. |
[in] | h_shelf | The ice shelf thickness at tracer points [Z ~> m]. |
[in] | hmask | A mask indicating which tracer points are |
[in,out] | h_node | The ice shelf thickness at nodal (corner) |
Definition at line 3410 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_solve_outer().
|
private |
returns the diagonal entries of the matrix for a Jacobi preconditioning
[in] | cs | A pointer to the ice shelf control structure |
[in] | g | The grid structure used by the ice shelf. |
[in] | float_cond | An array indicating where the ice |
[in] | h_node | The ice shelf thickness at nodal |
[in] | nu | A field related to the ice viscosity from Glen's |
[in] | beta | A field related to the nonlinear part of the |
[in] | hmask | A mask indicating which tracer points are |
[in] | dens_ratio | The density of ice divided by the density of seawater, nondimensional |
[in] | phisub | Quadrature structure weights at subgridscale locations for finite element calculations |
[in,out] | u_diagonal | The diagonal elements of the u-velocity |
[in,out] | v_diagonal | The diagonal elements of the v-velocity |
Definition at line 2624 of file MOM_ice_shelf_dynamics.F90.
References bilinear_shape_functions(), and cg_diagonal_subgrid_basal().
Referenced by ice_shelf_solve_inner().
|
private |
Calculate area of quadrilateral.
[in] | x | The x-positions of the vertices of the quadrilateral. |
[in] | y | The y-positions of the vertices of the quadrilateral. |
Definition at line 184 of file MOM_ice_shelf_dynamics.F90.
Referenced by bilinear_shape_functions().
subroutine, public mom_ice_shelf_dynamics::register_ice_shelf_dyn_restarts | ( | type(ocean_grid_type), intent(inout) | G, |
type(param_file_type), intent(in) | param_file, | ||
type(ice_shelf_dyn_cs), pointer | CS, | ||
type(mom_restart_cs), pointer | 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.
[in,out] | g | The grid type describing the ice shelf grid. |
[in] | 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. |
Definition at line 203 of file MOM_ice_shelf_dynamics.F90.
References mom_error_handler::mom_error().
subroutine, public mom_ice_shelf_dynamics::shelf_advance_front | ( | type(ice_shelf_dyn_cs), intent(in) | CS, |
type(ice_shelf_state), intent(inout) | ISS, | ||
type(ocean_grid_type), intent(in) | G, | ||
real, dimension(szdi_(g),szdj_(g),4), intent(inout) | flux_enter | ||
) |
[in] | cs | A pointer to the ice shelf control structure |
[in,out] | iss | A structure with elements that describe the ice-shelf state |
[in] | g | The grid structure used by the ice shelf. |
[in,out] | flux_enter | The ice volume flux into the cell |
Definition at line 1860 of file MOM_ice_shelf_dynamics.F90.
References mom_error_handler::is_root_pe(), and mom_error_handler::mom_mesg().
Referenced by ice_shelf_advect().
real function mom_ice_shelf_dynamics::slope_limiter | ( | real, intent(in) | num, |
real, intent(in) | denom | ||
) |
used for flux limiting in advective subroutines Van Leer limiter (source: Wikipedia)
[in] | num | The numerator of the ratio used in the Van Leer slope limiter |
[in] | denom | The denominator of the ratio used in the Van Leer slope limiter |
Definition at line 166 of file MOM_ice_shelf_dynamics.F90.
Referenced by ice_shelf_advect_temp_x(), ice_shelf_advect_temp_y(), ice_shelf_advect_thickness_x(), and ice_shelf_advect_thickness_y().
subroutine, public mom_ice_shelf_dynamics::update_ice_shelf | ( | type(ice_shelf_dyn_cs), intent(inout) | CS, |
type(ice_shelf_state), intent(inout) | ISS, | ||
type(ocean_grid_type), intent(inout) | G, | ||
type(unit_scale_type), intent(in) | US, | ||
real, intent(in) | time_step, | ||
type(time_type), intent(in) | Time, | ||
real, dimension(szdi_(g),szdj_(g)), intent(in), optional | ocean_mass, | ||
logical, intent(in), optional | coupled_grounding, | ||
logical, intent(in), optional | must_update_vel | ||
) |
This subroutine updates the ice shelf velocities, mass, stresses and properties due to the ice shelf dynamics.
[in,out] | cs | The ice shelf dynamics control structure |
[in,out] | iss | A structure with elements that describe the ice-shelf state |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in] | time_step | time step [s] |
[in] | time | The current model time |
[in] | ocean_mass | If present this is the mass per unit area |
[in] | coupled_grounding | If true, the grounding line is determined by coupled ice-ocean dynamics |
[in] | must_update_vel | Always update the ice velocities if true. |
Definition at line 609 of file MOM_ice_shelf_dynamics.F90.
References mom_diag_mediator::disable_averaging(), mom_diag_mediator::enable_averaging(), ice_shelf_advect(), ice_shelf_solve_outer(), ice_shelf_temp(), update_od_ffrac(), and update_od_ffrac_uncoupled().
|
private |
[in,out] | cs | A pointer to the ice shelf control structure |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | us | Pointer to a structure containing unit conversion factors |
[in] | ocean_mass | The mass per unit area of the ocean [kg m-2]. |
[in] | find_avg | If true, find the average of OD and ffrac, and reset the underlying running sums to 0. |
Definition at line 3050 of file MOM_ice_shelf_dynamics.F90.
Referenced by update_ice_shelf().
|
private |
[in,out] | cs | A pointer to the ice shelf control structure |
[in] | g | The grid structure used by the ice shelf. |
[in] | h_shelf | the thickness of the ice shelf [Z ~> m]. |
Definition at line 3090 of file MOM_ice_shelf_dynamics.F90.
Referenced by initialize_ice_shelf_dyn(), and update_ice_shelf().
|
private |
[in] | cs | A pointer to the ice shelf dynamics control structure |
[in,out] | g | The grid structure used by the ice shelf. |
[in] | hmask | A mask indicating which tracer points are |
[out] | umask | A coded mask indicating the nature of the |
[out] | vmask | A coded mask indicating the nature of the |
[out] | u_face_mask | A coded mask for velocities at the C-grid u-face |
[out] | v_face_mask | A coded mask for velocities at the C-grid v-face |
Definition at line 3253 of file MOM_ice_shelf_dynamics.F90.
References mom_domains::to_all.
Referenced by ice_shelf_advect(), and initialize_ice_shelf_dyn().