MOM6
|
The control structure for the ice shelf dynamics.
Definition at line 41 of file MOM_ice_shelf_dynamics.F90.
Public variables and constants | |
real, dimension(:,:), pointer | u_shelf => NULL() |
the zonal (?) velocity of the ice shelf/sheet on q-points (B grid) [m s-1]?? More... | |
real, dimension(:,:), pointer | v_shelf => NULL() |
the meridional velocity of the ice shelf/sheet on q-points (B grid) [m s-1]?? More... | |
real, dimension(:,:), pointer | u_face_mask => NULL() |
mask for velocity boundary conditions on the C-grid u-face - this is because the FEM cares about FACES THAT GET INTEGRATED OVER, not vertices. Will represent boundary conditions on computational boundary (or permanent boundary between fast-moving and near-stagnant ice FOR NOW: 1=interior bdry, 0=no-flow boundary, 2=stress bdry condition, 3=inhomogeneous dirichlet boundary, 4=flux boundary: at these faces a flux will be specified which will override velocities; a homogeneous velocity condition will be specified (this seems to give the solver less difficulty) More... | |
real, dimension(:,:), pointer | v_face_mask => NULL() |
A mask for velocity boundary conditions on the C-grid v-face, with valued defined similarly to u_face_mask. More... | |
real, dimension(:,:), pointer | u_face_mask_bdry => NULL() |
A duplicate copy of u_face_mask? More... | |
real, dimension(:,:), pointer | v_face_mask_bdry => NULL() |
A duplicate copy of v_face_mask? More... | |
real, dimension(:,:), pointer | u_flux_bdry_val => NULL() |
The ice volume flux into the cell through open boundary u-faces (where u_face_mask=4) [Z m2 s-1 ~> m3 s-1]?? More... | |
real, dimension(:,:), pointer | v_flux_bdry_val => NULL() |
The ice volume flux into the cell through open boundary v-faces (where v_face_mask=4) [Z m2 s-1 ~> m3 s-1]?? More... | |
real, dimension(:,:), pointer | umask => NULL() |
u-mask on the actual degrees of freedom (B grid) 1=normal node, 3=inhomogeneous boundary node, 0 - no flow node (will also get ice-free nodes) More... | |
real, dimension(:,:), pointer | vmask => NULL() |
v-mask on the actual degrees of freedom (B grid) 1=normal node, 3=inhomogeneous boundary node, 0 - no flow node (will also get ice-free nodes) More... | |
real, dimension(:,:), pointer | calve_mask => NULL() |
a mask to prevent the ice shelf front from advancing past its initial position (but it may retreat) More... | |
real, dimension(:,:), pointer | t_shelf => NULL() |
Veritcally integrated temperature in the ice shelf/stream, on corner-points (B grid) [degC]. More... | |
real, dimension(:,:), pointer | tmask => NULL() |
A mask on tracer points that is 1 where there is ice. More... | |
real, dimension(:,:), pointer | ice_visc => NULL() |
Glen's law ice viscosity, perhaps in [m]. More... | |
real, dimension(:,:), pointer | thickness_bdry_val => NULL() |
The ice thickness at an inflowing boundary [Z ~> m]. More... | |
real, dimension(:,:), pointer | u_bdry_val => NULL() |
The zonal ice velocity at inflowing boundaries [m s-1]?? More... | |
real, dimension(:,:), pointer | v_bdry_val => NULL() |
The meridional ice velocity at inflowing boundaries [m s-1]?? More... | |
real, dimension(:,:), pointer | h_bdry_val => NULL() |
The ice thickness at inflowing boundaries [m]. More... | |
real, dimension(:,:), pointer | t_bdry_val => NULL() |
The ice temperature at inflowing boundaries [degC]. More... | |
real, dimension(:,:), pointer | taub_beta_eff => NULL() |
nonlinear part of "linearized" basal stress. The exact form depends on basal law exponent and/or whether flow is "hybridized" a la Goldberg 2011 More... | |
real, dimension(:,:), pointer | od_rt => NULL() |
A running total for calculating OD_av. More... | |
real, dimension(:,:), pointer | float_frac_rt => NULL() |
A running total for calculating float_frac. More... | |
real, dimension(:,:), pointer | od_av => NULL() |
The time average open ocean depth [Z ~> m]. More... | |
real, dimension(:,:), pointer | float_frac => NULL() |
Fraction of the time a cell is "exposed", i.e. the column thickness is below a threshold. More... | |
integer | od_rt_counter = 0 |
A counter of the number of contributions to OD_rt. More... | |
real | velocity_update_time_step |
The time interval over which to update the ice shelf velocity using the nonlinear elliptic equation, or 0 to update every timestep [s]. More... | |
real | elapsed_velocity_time |
The elapsed time since the ice velocies were last udated [s]. More... | |
real | g_earth |
The gravitational acceleration [m s-2]. More... | |
real | density_ice |
A typical density of ice [kg m-3]. More... | |
logical | gl_regularize |
Specifies whether to regularize the floatation condition at the grounding line as in Goldberg Holland Schoof 2009. More... | |
integer | n_sub_regularize |
partition of cell over which to integrate for interpolated grounding line the (rectangular) is divided into nxn equally-sized rectangles, over which basal contribution is integrated (iterative quadrature) More... | |
logical | gl_couple |
whether 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) More... | |
real | cfl_factor |
A factor used to limit subcycled advective timestep in uncoupled runs i.e. dt <= CFL_factor * min(dx / u) More... | |
real | a_glen_isothermal |
Ice viscosity parameter in Glen's Lawa, [Pa-1/3 year]. More... | |
real | n_glen |
Nonlinearity exponent in Glen's Law. More... | |
real | eps_glen_min |
Min. strain rate to avoid infinite Glen's law viscosity, [year-1]. More... | |
real | c_basal_friction |
Ceofficient in sliding law tau_b = C u^(n_basal_friction), in units="Pa (m-a)-(n_basal_friction) More... | |
real | n_basal_friction |
Exponent in sliding law tau_b = C u^(m_slide) More... | |
real | density_ocean_avg |
This does not affect ocean circulation or thermodynamics. It is used to estimate the gravitational driving force at the shelf front (until we think of a better way to do it, but any difference will be negligible). More... | |
real | thresh_float_col_depth |
The water column depth over which the shelf if considered to be floating. More... | |
logical | moving_shelf_front |
Specify whether to advance shelf front (and calve). More... | |
logical | calve_to_mask |
If true, calve off the ice shelf when it passes the edge of a mask. More... | |
real | min_thickness_simple_calve |
min. ice shelf thickness criteria for calving [Z ~> m]. More... | |
real | cg_tolerance |
The tolerance in the CG solver, relative to initial residual, that deterimnes when to stop the conguage gradient iterations. More... | |
real | nonlinear_tolerance |
The fractional nonlinear tolerance, relative to the initial error, that sets when to stop the iterative velocity solver. More... | |
integer | cg_max_iterations |
The maximum number of iterations that can be used in the CG solver. More... | |
integer | nonlin_solve_err_mode |
1: exit vel solve based on nonlin residual 2: exit based on "fixed point" metric (|u - u_last| / |u| < tol where | | is infty-norm More... | |
logical | use_reproducing_sums |
Use reproducing global sums. More... | |
logical | debug |
If true, write verbose checksums for debugging purposes and use reproducible sums. More... | |
logical | module_is_initialized = .false. |
True if this module has been initialized. More... | |
integer | id_u_shelf = -1 |
Diagnostic handles. More... | |
integer | id_v_shelf = -1 |
Diagnostic handles. More... | |
integer | id_t_shelf = -1 |
Diagnostic handles. More... | |
integer | id_float_frac = -1 |
Diagnostic handles. More... | |
integer | id_col_thick = -1 |
Diagnostic handles. More... | |
integer | id_od_av = -1 |
Diagnostic handles. More... | |
integer | id_u_mask = -1 |
Diagnostic handles. More... | |
integer | id_v_mask = -1 |
Diagnostic handles. More... | |
integer | id_t_mask = -1 |
Diagnostic handles. More... | |
type(diag_ctrl), pointer | diag => NULL() |
A structure that is used to control diagnostic output. More... | |
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::a_glen_isothermal |
Ice viscosity parameter in Glen's Lawa, [Pa-1/3 year].
Definition at line 119 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::c_basal_friction |
Ceofficient in sliding law tau_b = C u^(n_basal_friction), in units="Pa (m-a)-(n_basal_friction)
Definition at line 122 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::calve_mask => NULL() |
a mask to prevent the ice shelf front from advancing past its initial position (but it may retreat)
Definition at line 70 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::calve_to_mask |
If true, calve off the ice shelf when it passes the edge of a mask.
Definition at line 131 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::cfl_factor |
A factor used to limit subcycled advective timestep in uncoupled runs i.e. dt <= CFL_factor * min(dx / u)
Definition at line 116 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::cg_max_iterations |
The maximum number of iterations that can be used in the CG solver.
Definition at line 138 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::cg_tolerance |
The tolerance in the CG solver, relative to initial residual, that deterimnes when to stop the conguage gradient iterations.
Definition at line 134 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::debug |
If true, write verbose checksums for debugging purposes and use reproducible sums.
Definition at line 146 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::density_ice |
A typical density of ice [kg m-3].
Definition at line 102 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::density_ocean_avg |
This does not affect ocean circulation or thermodynamics. It is used to estimate the gravitational driving force at the shelf front (until we think of a better way to do it, but any difference will be negligible).
Definition at line 125 of file MOM_ice_shelf_dynamics.F90.
type(diag_ctrl), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::diag => NULL() |
A structure that is used to control diagnostic output.
Definition at line 158 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::elapsed_velocity_time |
The elapsed time since the ice velocies were last udated [s].
Definition at line 99 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::eps_glen_min |
Min. strain rate to avoid infinite Glen's law viscosity, [year-1].
Definition at line 121 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::float_frac => NULL() |
Fraction of the time a cell is "exposed", i.e. the column thickness is below a threshold.
Definition at line 88 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::float_frac_rt => NULL() |
A running total for calculating float_frac.
Definition at line 86 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::g_earth |
The gravitational acceleration [m s-2].
Definition at line 101 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::gl_couple |
whether 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)
Definition at line 111 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::gl_regularize |
Specifies whether to regularize the floatation condition at the grounding line as in Goldberg Holland Schoof 2009.
Definition at line 104 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::h_bdry_val => NULL() |
The ice thickness at inflowing boundaries [m].
Definition at line 79 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::ice_visc => NULL() |
Glen's law ice viscosity, perhaps in [m].
Definition at line 75 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_col_thick = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_float_frac = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_od_av = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_t_mask = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_t_shelf = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_u_mask = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_u_shelf = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_v_mask = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::id_v_shelf = -1 |
Diagnostic handles.
Definition at line 151 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::min_thickness_simple_calve |
min. ice shelf thickness criteria for calving [Z ~> m].
Definition at line 132 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::module_is_initialized = .false. |
True if this module has been initialized.
Definition at line 148 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::moving_shelf_front |
Specify whether to advance shelf front (and calve).
Definition at line 130 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::n_basal_friction |
Exponent in sliding law tau_b = C u^(m_slide)
Definition at line 124 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::n_glen |
Nonlinearity exponent in Glen's Law.
Definition at line 120 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::n_sub_regularize |
partition of cell over which to integrate for interpolated grounding line the (rectangular) is divided into nxn equally-sized rectangles, over which basal contribution is integrated (iterative quadrature)
Definition at line 106 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::nonlin_solve_err_mode |
1: exit vel solve based on nonlin residual 2: exit based on "fixed point" metric (|u - u_last| / |u| < tol where | | is infty-norm
Definition at line 139 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::nonlinear_tolerance |
The fractional nonlinear tolerance, relative to the initial error, that sets when to stop the iterative velocity solver.
Definition at line 136 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::od_av => NULL() |
The time average open ocean depth [Z ~> m].
Definition at line 87 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::od_rt => NULL() |
A running total for calculating OD_av.
Definition at line 85 of file MOM_ice_shelf_dynamics.F90.
integer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::od_rt_counter = 0 |
A counter of the number of contributions to OD_rt.
Definition at line 91 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::t_bdry_val => NULL() |
The ice temperature at inflowing boundaries [degC].
Definition at line 80 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::t_shelf => NULL() |
Veritcally integrated temperature in the ice shelf/stream, on corner-points (B grid) [degC].
Definition at line 72 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::taub_beta_eff => NULL() |
nonlinear part of "linearized" basal stress. The exact form depends on basal law exponent and/or whether flow is "hybridized" a la Goldberg 2011
Definition at line 82 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::thickness_bdry_val => NULL() |
The ice thickness at an inflowing boundary [Z ~> m].
Definition at line 76 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::thresh_float_col_depth |
The water column depth over which the shelf if considered to be floating.
Definition at line 129 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::tmask => NULL() |
A mask on tracer points that is 1 where there is ice.
Definition at line 74 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::u_bdry_val => NULL() |
The zonal ice velocity at inflowing boundaries [m s-1]??
Definition at line 77 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::u_face_mask => NULL() |
mask for velocity boundary conditions on the C-grid u-face - this is because the FEM cares about FACES THAT GET INTEGRATED OVER, not vertices. Will represent boundary conditions on computational boundary (or permanent boundary between fast-moving and near-stagnant ice FOR NOW: 1=interior bdry, 0=no-flow boundary, 2=stress bdry condition, 3=inhomogeneous dirichlet boundary, 4=flux boundary: at these faces a flux will be specified which will override velocities; a homogeneous velocity condition will be specified (this seems to give the solver less difficulty)
Definition at line 47 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::u_face_mask_bdry => NULL() |
A duplicate copy of u_face_mask?
Definition at line 57 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::u_flux_bdry_val => NULL() |
The ice volume flux into the cell through open boundary u-faces (where u_face_mask=4) [Z m2 s-1 ~> m3 s-1]??
Definition at line 59 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::u_shelf => NULL() |
the zonal (?) velocity of the ice shelf/sheet on q-points (B grid) [m s-1]??
Definition at line 42 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::umask => NULL() |
u-mask on the actual degrees of freedom (B grid) 1=normal node, 3=inhomogeneous boundary node, 0 - no flow node (will also get ice-free nodes)
Definition at line 64 of file MOM_ice_shelf_dynamics.F90.
logical mom_ice_shelf_dynamics::ice_shelf_dyn_cs::use_reproducing_sums |
Use reproducing global sums.
Definition at line 141 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::v_bdry_val => NULL() |
The meridional ice velocity at inflowing boundaries [m s-1]??
Definition at line 78 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::v_face_mask => NULL() |
A mask for velocity boundary conditions on the C-grid v-face, with valued defined similarly to u_face_mask.
Definition at line 55 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::v_face_mask_bdry => NULL() |
A duplicate copy of v_face_mask?
Definition at line 58 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::v_flux_bdry_val => NULL() |
The ice volume flux into the cell through open boundary v-faces (where v_face_mask=4) [Z m2 s-1 ~> m3 s-1]??
Definition at line 61 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::v_shelf => NULL() |
the meridional velocity of the ice shelf/sheet on q-points (B grid) [m s-1]??
Definition at line 44 of file MOM_ice_shelf_dynamics.F90.
real mom_ice_shelf_dynamics::ice_shelf_dyn_cs::velocity_update_time_step |
The time interval over which to update the ice shelf velocity using the nonlinear elliptic equation, or 0 to update every timestep [s].
Definition at line 93 of file MOM_ice_shelf_dynamics.F90.
real, dimension(:,:), pointer mom_ice_shelf_dynamics::ice_shelf_dyn_cs::vmask => NULL() |
v-mask on the actual degrees of freedom (B grid) 1=normal node, 3=inhomogeneous boundary node, 0 - no flow node (will also get ice-free nodes)
Definition at line 67 of file MOM_ice_shelf_dynamics.F90.