MOM6
mom_ice_shelf_dynamics::ice_shelf_dyn_cs Type Reference

Detailed Description

The control structure for the ice shelf dynamics.

Definition at line 41 of file MOM_ice_shelf_dynamics.F90.

Collaboration diagram for mom_ice_shelf_dynamics::ice_shelf_dyn_cs:
[legend]

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]??
 
real, dimension(:,:), pointer v_shelf => NULL()
 the meridional velocity of the ice shelf/sheet on q-points (B grid) [m s-1]??
 
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)
 
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.
 
real, dimension(:,:), pointer u_face_mask_bdry => NULL()
 A duplicate copy of u_face_mask?
 
real, dimension(:,:), pointer v_face_mask_bdry => NULL()
 A duplicate copy of v_face_mask?
 
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]??
 
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]??
 
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)
 
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)
 
real, dimension(:,:), pointer calve_mask => NULL()
 a mask to prevent the ice shelf front from advancing past its initial position (but it may retreat)
 
real, dimension(:,:), pointer t_shelf => NULL()
 Veritcally integrated temperature in the ice shelf/stream, on corner-points (B grid) [degC].
 
real, dimension(:,:), pointer tmask => NULL()
 A mask on tracer points that is 1 where there is ice.
 
real, dimension(:,:), pointer ice_visc => NULL()
 Glen's law ice viscosity, perhaps in [m].
 
real, dimension(:,:), pointer thickness_bdry_val => NULL()
 The ice thickness at an inflowing boundary [Z ~> m].
 
real, dimension(:,:), pointer u_bdry_val => NULL()
 The zonal ice velocity at inflowing boundaries [m s-1]??
 
real, dimension(:,:), pointer v_bdry_val => NULL()
 The meridional ice velocity at inflowing boundaries [m s-1]??
 
real, dimension(:,:), pointer h_bdry_val => NULL()
 The ice thickness at inflowing boundaries [m].
 
real, dimension(:,:), pointer t_bdry_val => NULL()
 The ice temperature at inflowing boundaries [degC].
 
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
 
real, dimension(:,:), pointer od_rt => NULL()
 A running total for calculating OD_av.
 
real, dimension(:,:), pointer float_frac_rt => NULL()
 A running total for calculating float_frac.
 
real, dimension(:,:), pointer od_av => NULL()
 The time average open ocean depth [Z ~> m].
 
real, dimension(:,:), pointer float_frac => NULL()
 Fraction of the time a cell is "exposed", i.e. the column thickness is below a threshold.
 
integer od_rt_counter = 0
 A counter of the number of contributions to OD_rt.
 
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].
 
real elapsed_velocity_time
 The elapsed time since the ice velocies were last udated [s].
 
real g_earth
 The gravitational acceleration [m s-2].
 
real density_ice
 A typical density of ice [kg m-3].
 
logical gl_regularize
 Specifies whether to regularize the floatation condition at the grounding line as in Goldberg Holland Schoof 2009.
 
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)
 
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)
 
real cfl_factor
 A factor used to limit subcycled advective timestep in uncoupled runs i.e. dt <= CFL_factor * min(dx / u)
 
real a_glen_isothermal
 Ice viscosity parameter in Glen's Lawa, [Pa-1/3 year].
 
real n_glen
 Nonlinearity exponent in Glen's Law.
 
real eps_glen_min
 Min. strain rate to avoid infinite Glen's law viscosity, [year-1].
 
real c_basal_friction
 Ceofficient in sliding law tau_b = C u^(n_basal_friction), in units="Pa (m-a)-(n_basal_friction)
 
real n_basal_friction
 Exponent in sliding law tau_b = C u^(m_slide)
 
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).
 
real thresh_float_col_depth
 The water column depth over which the shelf if considered to be floating.
 
logical moving_shelf_front
 Specify whether to advance shelf front (and calve).
 
logical calve_to_mask
 If true, calve off the ice shelf when it passes the edge of a mask.
 
real min_thickness_simple_calve
 min. ice shelf thickness criteria for calving [Z ~> m].
 
real cg_tolerance
 The tolerance in the CG solver, relative to initial residual, that deterimnes when to stop the conguage gradient iterations.
 
real nonlinear_tolerance
 The fractional nonlinear tolerance, relative to the initial error, that sets when to stop the iterative velocity solver.
 
integer cg_max_iterations
 The maximum number of iterations that can be used in the CG solver.
 
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
 
logical use_reproducing_sums
 Use reproducing global sums.
 
logical debug
 If true, write verbose checksums for debugging purposes and use reproducible sums.
 
logical module_is_initialized = .false.
 True if this module has been initialized.
 
integer id_u_shelf = -1
 Diagnostic handles.
 
integer id_v_shelf = -1
 Diagnostic handles.
 
integer id_t_shelf = -1
 Diagnostic handles.
 
integer id_float_frac = -1
 Diagnostic handles.
 
integer id_col_thick = -1
 Diagnostic handles.
 
integer id_od_av = -1
 Diagnostic handles.
 
integer id_u_mask = -1
 Diagnostic handles.
 
integer id_v_mask = -1
 Diagnostic handles.
 
integer id_t_mask = -1
 Diagnostic handles.
 
type(diag_ctrl), pointer diag => NULL()
 A structure that is used to control diagnostic output.
 

The documentation for this type was generated from the following file: