mom_ale module reference¶
This module contains the main regridding routines.
Data Types¶
ALE control structure. |
Functions/Subroutines¶
This routine is typically called (from initialize_MOM in file |
|
Initialize diagnostics for the ALE module. |
|
Crudely adjust (initial) grid for integrity. |
|
End of regridding (memory deallocation). |
|
Save any diagnostics of the state before ALE remapping. |
|
Potentially do some preparatory work, such as convective adjustment, to clean up the model state before regridding. |
|
Takes care of building a new grid. |
|
Regrid/remap stored fields used for offline tracer integrations. |
|
For a state-based coordinate, accelerate the process of regridding by repeatedly applying the grid calculation algorithm. |
|
This routine takes care of remapping all tracer variables between the old and the new grids. |
|
This routine sets the thicknesses at velocity points used for vertical remapping. |
|
This routine sets the thicknesses at velocity points used for vertical remapping using a combination of the old grid and interface movements. |
|
Mask out the thicknesses at velocity points where they are below the minimum depth at adjacent tracer points. |
|
This routine remaps velocity components between the old and the new grids, with thicknesses at velocity points taken to be arithmetic averages of tracer thicknesses. |
|
Interpolate to find an updated array of values at interfaces after remapping. |
|
Interpolate to find an updated array of values at vertices of tracer cells after remapping. |
|
Mask out thicknesses to 0 when their running sum exceeds a specified value. |
|
Zero out velocities in a column in very thin layers near the seafloor. |
|
Remaps a single scalar between grids described by thicknesses h_src and h_dst. |
|
Calculate edge values (top and bottom of layer) for T and S consistent with a PLM reconstruction in the vertical direction. |
|
Calculate edge values (top and bottom of layer) 3d scalar array. |
|
Calculate edge values (top and bottom of layer) for T and S consistent with a PPM reconstruction in the vertical direction. |
|
Initializes regridding for the main ALE algorithm. |
|
Query the target coordinate interfaces positions. |
|
Query the target coordinate units. |
|
Returns true if initial conditions should be regridded and remapped. |
|
Updates the weights for time filtering the new grid generated in regridding. |
|
Update the vertical grid type with ALE information. |
|
Write the vertical coordinate information into a file. |
|
Set h to coordinate values for fixed coordinate systems. |
Detailed Description¶
Regridding comprises two steps: #. Interpolation and creation of a new grid based on target interface densities (or any other criterion).
Remapping of quantities between old grid and new grid.
Original module written by Laurent White, 2008.06.09
Type Documentation¶
-
type
mom_ale/
ale_cs
¶ ALE control structure.
- Type fields:
%
remap_uv_using_old_alg
[logical] :: If true, uses the old “remapping via a delta z” method. If False, uses the new method that remaps between grids described by h.%
partial_cell_vel_remap
[logical] :: If true, use partial cell thicknesses at velocity points that are masked out where they extend below the shallower of the neighboring bathymetry for remapping velocity.%
regrid_time_scale
[real] :: The time-scale used in blending between the current (old) grid and the target (new) grid [T ~> s].%
regridcs
[type( regridding_cs )] :: Regridding parameters and work arrays.%
remapcs
[type( remapping_cs )] :: Remapping parameters and work arrays.%
vel_remapcs
[type( remapping_cs )] :: Remapping parameters for velocities and work arrays.%
hybgen_unmixcs
[type( hybgen_unmix_cs ),pointer] :: Parameters for hybgen remapping.%
use_hybgen_unmix
[logical] :: If true, use the hybgen unmixing code before regridding.%
do_conv_adj
[logical] :: If true, do convective adjustment before regridding.%
nk
[integer] :: Used only for queries, not directly by this module.%
bbl_h_vel_mask
[real] :: The thickness of a bottom boundary layer within which velocities in thin layers are zeroed out after remapping, following practice with Hybgen remapping, or a negative value to avoid such filtering altogether, in [H ~> m or kg m-2].%
h_vel_mask
[real] :: A thickness at velocity points below which near-bottom layers are zeroed out after remapping, following the practice with Hybgen remapping, or a negative value to avoid such filtering altogether, in [H ~> m or kg m-2].%
remap_after_initialization
[logical] :: Indicates whether to regrid/remap after initializing the state.%
answer_date
[integer] :: The vintage of the expressions and order of arithmetic to use for remapping. Values below 20190101 result in the use of older, less accurate expressions that were in use at the end of 2018. Higher values result in the use of more robust and accurate forms of mathematically equivalent expressions.%
debug
[logical] :: If true, write verbose checksums for debugging purposes.%
show_call_tree
[logical] :: For debugging.%
diag
[type( diag_ctrl ),pointer] :: structure to regulate output%
id_tracer_remap_tendency
[integer(:),allocatable] :: diagnostic id%
id_htracer_remap_tendency
[integer(:),allocatable] :: diagnostic id%
id_htracer_remap_tendency_2d
[integer(:),allocatable] :: diagnostic id%
do_tendency_diag
[logical(:),allocatable] :: flag for doing diagnostics%
id_dzregrid
[integer] :: diagnostic id%
id_u_preale
[integer] :: diagnostic id for zonal velocity before ALE.%
id_v_preale
[integer] :: diagnostic id for meridional velocity before ALE.%
id_h_preale
[integer] :: diagnostic id for layer thicknesses before ALE.%
id_t_preale
[integer] :: diagnostic id for temperatures before ALE.%
id_s_preale
[integer] :: diagnostic id for salinities before ALE.%
id_e_preale
[integer] :: diagnostic id for interface heights before ALE.%
id_vert_remap_h
[integer] :: diagnostic id for layer thicknesses used for remapping%
id_vert_remap_h_tendency
[integer] :: diagnostic id for layer thickness tendency due to ALE
Function/Subroutine Documentation¶
-
subroutine
mom_ale/
ale_init
(param_file, GV, US, max_depth, CS)¶ This routine is typically called (from initialize_MOM in file
MOM.F90
) before the main time integration loop to initialize the regridding stuff. We read the MOM_input file to register the values of different regridding/remapping parameters.- Parameters:
param_file :: [in] Parameter file
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
max_depth :: [in] The maximum depth of the ocean [Z ~> m].
cs :: Module control structure
- Call to:
ale_initregridding
mom_error_handler::calltree_enter
mom_error_handler::calltree_leave
mom_hybgen_unmix::init_hybgen_unmix
- Called from:
-
subroutine
mom_ale/
ale_register_diags
(Time, G, GV, US, diag, CS)¶ Initialize diagnostics for the ALE module.
- Parameters:
time :: [in] Time structure
g :: [in] Grid structure
us :: [in] A dimensional unit scaling type
gv :: [in] Ocean vertical grid structure
diag :: [in] Diagnostics control structure
cs :: Module control structure
- Call to:
- Called from:
-
subroutine
mom_ale/
adjustgridforintegrity
(CS, G, GV, h)¶ Crudely adjust (initial) grid for integrity. This routine is typically called (from initialize_MOM in file
MOM.F90
) before the main time integration loop to initialize the regridding stuff. We read the MOM_input file to register the values of different regridding/remapping parameters.- Parameters:
cs :: [in] Regridding parameters and options
g :: [in] Ocean grid informations
gv :: [in] Ocean vertical grid structure
h :: [inout] Current 3D grid thickness that are to be adjusted [H ~> m or kg m-2]
-
subroutine
mom_ale/
ale_end
(CS)¶ End of regridding (memory deallocation). This routine is typically called (from MOM_end in file
MOM.F90
) after the main time integration loop to deallocate the regridding stuff.- Parameters:
cs :: module control structure
- Call to:
-
subroutine
mom_ale/
pre_ale_diagnostics
(G, GV, US, h, u, v, tv, CS)¶ Save any diagnostics of the state before ALE remapping. These diagnostics are mostly used for debugging.
- Parameters:
g :: [in] Ocean grid informations
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
h :: [inout] Current 3D grid obtained after the last time step [H ~> m or kg m-2]
u :: [inout] Zonal velocity field [L T-1 ~> m s-1]
v :: [inout] Meridional velocity field [L T-1 ~> m s-1]
tv :: [inout] Thermodynamic variable structure
cs :: Regridding parameters and options
- Called from:
-
subroutine
mom_ale/
pre_ale_adjustments
(G, GV, US, h, tv, Reg, CS, u, v)¶ Potentially do some preparatory work, such as convective adjustment, to clean up the model state before regridding.
- Parameters:
g :: [in] Ocean grid informations
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
h :: [inout] Current 3D grid obtained after the last time step [H ~> m or kg m-2]
tv :: [inout] Thermodynamic variable structure
reg :: Tracer registry structure
cs :: Regridding parameters and options
u :: [inout] Zonal velocity field [L T-1 ~> m s-1]
v :: [inout] Meridional velocity field [L T-1 ~> m s-1]
- Call to:
-
subroutine
mom_ale/
ale_regrid
(G, GV, US, h, h_new, dzRegrid, tv, CS, frac_shelf_h, PCM_cell)¶ Takes care of building a new grid. The creation of the new grid can be based on z coordinates, target interface densities, sigma coordinates or any arbitrary coordinate system.
- Parameters:
g :: [in] Ocean grid informations
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
h :: [in] Layer thicknesses in 3D grid before regridding [H ~> m or kg m-2]
h_new :: [out] Layer thicknesses in 3D grid after regridding [H ~> m or kg m-2]
dzregrid :: [out] The change in grid interface positions due to regridding, in the same units as thicknesses [H ~> m or kg m-2]
tv :: [inout] Thermodynamic variable structure
cs :: Regridding parameters and options
frac_shelf_h :: [in] Fractional ice shelf coverage [nondim]
pcm_cell :: [out] If true, use PCM remapping in a cell.
- Call to:
mom_error_handler::calltree_enter
mom_error_handler::calltree_leave
mom_diag_mediator::query_averaging_enabled
-
subroutine
mom_ale/
ale_offline_inputs
(CS, G, GV, US, h, tv, Reg, uhtr, vhtr, Kd, debug, OBC)¶ Regrid/remap stored fields used for offline tracer integrations. These input fields are assumed to have the same layer thicknesses at the end of the last offline interval (which should be a Zstar grid). This routine builds a grid on the runtime specified vertical coordinate.
- Parameters:
cs :: Regridding parameters and options
g :: [in] Ocean grid informations
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
h :: [inout] Layer thicknesses [H ~> m or kg m-2]
tv :: [inout] Thermodynamic variable structure
reg :: Tracer registry structure
uhtr :: [inout] Zonal mass fluxes [H L2 ~> m3 or kg]
vhtr :: [inout] Meridional mass fluxes [H L2 ~> m3 or kg]
kd :: [inout] Input diffusivities [H Z T-1 ~> m2 s-1 or kg m-1 s-1]
debug :: [in] If true, then turn checksums
obc :: Open boundary structure
- Call to:
ale_remap_scalar
ale_remap_tracers
mom_error_handler::calltree_leave
mom_error_handler::calltree_waypoint
mom_debugging::check_column_integrals
-
subroutine
mom_ale/
ale_regrid_accelerated
(CS, G, GV, US, h, tv, n_itt, u, v, OBC, Reg, dt, dzRegrid, initial)¶ For a state-based coordinate, accelerate the process of regridding by repeatedly applying the grid calculation algorithm.
- Parameters:
cs :: ALE control structure
g :: [inout] Ocean grid
gv :: [in] Vertical grid
us :: [in] A dimensional unit scaling type
h :: [inout] Original thicknesses [H ~> m or kg m-2]
tv :: [inout] Thermo vars (T/S/EOS)
n_itt :: [in] Number of times to regrid
u :: [inout] Zonal velocity [L T-1 ~> m s-1]
v :: [inout] Meridional velocity [L T-1 ~> m s-1]
obc :: Open boundary structure
reg :: Tracer registry to remap onto new grid
dt :: [in] Model timestep to provide a timescale for regridding [T ~> s]
dzregrid :: [inout] Final change in interface positions [H ~> m or kg m-2]
initial :: [in] Whether we’re being called from an initialization routine (and expect diagnostics to work)
- Call to:
ale_remap_set_h_vel
ale_remap_set_h_vel_via_dz
ale_remap_tracers
ale_remap_velocities
ale_update_regrid_weights
mom_interface_heights::calc_derived_thermo
- Called from:
-
subroutine
mom_ale/
ale_remap_tracers
(CS, G, GV, h_old, h_new, Reg, debug, dt, PCM_cell)¶ This routine takes care of remapping all tracer variables between the old and the new grids. This routine is called during initialization of the model at time=0, to remap initial conditions to the model grid. It is also called during a time step to update the state.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_old :: [in] Thickness of source grid [H ~> m or kg m-2]
h_new :: [in] Thickness of destination grid [H ~> m or kg m-2]
reg :: Tracer registry structure
debug :: [in] If true, show the call tree
dt :: [in] time step for diagnostics [T ~> s]
pcm_cell :: [in] Use PCM remapping in cells where true
- Call to:
mom_error_handler::calltree_enter
mom_error_handler::calltree_leave
mom_error_handler::calltree_waypoint
- Called from:
ale_offline_inputs
ale_regrid_accelerated
mom_offline_main::offline_advection_ale
-
subroutine
mom_ale/
ale_remap_set_h_vel
(CS, G, GV, h_new, h_u, h_v, OBC, debug)¶ This routine sets the thicknesses at velocity points used for vertical remapping.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_new :: [in] Thickness at tracer points of the grid being interpolated to velocity points [H ~> m or kg m-2]
h_u :: [inout] Grid thickness at zonal velocity
h_v :: [inout] Grid thickness at meridional velocity
obc :: Open boundary structure
debug :: [in] If true, show the call tree
- Call to:
ale_remap_set_h_vel_obc
ale_remap_set_h_vel_partial
mom_error_handler::calltree_enter
mom_error_handler::calltree_leave
- Called from:
-
subroutine
mom_ale/
ale_remap_set_h_vel_via_dz
(CS, G, GV, h_new, h_u, h_v, OBC, h_old, dzInterface, debug)¶ This routine sets the thicknesses at velocity points used for vertical remapping using a combination of the old grid and interface movements.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_new :: [in] Thickness at tracer points of the grid being interpolated to velocity points [H ~> m or kg m-2]
h_u :: [inout] Grid thickness at zonal velocity
h_v :: [inout] Grid thickness at meridional velocity
obc :: Open boundary structure
h_old :: [in] Thickness of source grid when generating
dzinterface :: [in] Change in interface position
debug :: [in] If true, show the call tree
- Call to:
ale_remap_set_h_vel_obc
ale_remap_set_h_vel_partial
mom_error_handler::calltree_enter
mom_error_handler::calltree_leave
- Called from:
-
subroutine
mom_ale/
ale_remap_set_h_vel_partial
(CS, G, GV, h_mask, h_u, h_v)¶ Mask out the thicknesses at velocity points where they are below the minimum depth at adjacent tracer points.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_mask :: [in] Thickness at tracer points used to apply the partial cell masking [H ~> m or kg m-2]
h_u :: [inout] Grid thickness at zonal velocity
h_v :: [inout] Grid thickness at meridional velocity
- Call to:
- Called from:
-
subroutine
mom_ale/
ale_remap_set_h_vel_obc
(G, GV, h_new, h_u, h_v, OBC)¶ - Parameters:
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_new :: [in] Thickness at tracer points of the grid being interpolated to velocity points [H ~> m or kg m-2]
h_u :: [inout] Grid thickness at zonal velocity
h_v :: [inout] Grid thickness at meridional velocity
obc :: Open boundary structure
- Call to:
mom_open_boundary::obc_direction_n
- Called from:
-
subroutine
mom_ale/
ale_remap_velocities
(CS, G, GV, h_old_u, h_old_v, h_new_u, h_new_v, u, v, debug)¶ This routine remaps velocity components between the old and the new grids, with thicknesses at velocity points taken to be arithmetic averages of tracer thicknesses. This routine may be called during initialization of the model at time=0, to remap initial conditions to the model grid. It is also called during a time step to update the state.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_old_u :: [in] Source grid thickness at zonal
h_old_v :: [in] Source grid thickness at meridional
h_new_u :: [in] Destination grid thickness at zonal
h_new_v :: [in] Destination grid thickness at meridional
u :: [inout] Zonal velocity [L T-1 ~> m s-1]
v :: [inout] Meridional velocity [L T-1 ~> m s-1]
debug :: [in] If true, show the call tree
- Call to:
mom_error_handler::calltree_enter
mom_error_handler::calltree_leave
mom_error_handler::calltree_waypoint
mask_near_bottom_vel
- Called from:
ale_regrid_accelerated
mom_dynamics_split_rk2::remap_dyn_split_rk2_aux_vars
-
subroutine
mom_ale/
ale_remap_interface_vals
(CS, G, GV, h_old, h_new, int_val)¶ Interpolate to find an updated array of values at interfaces after remapping.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_old :: [in] Thickness of source grid [H ~> m or kg m-2]
h_new :: [in] Thickness of destination grid [H ~> m or kg m-2]
int_val :: [inout] The interface values to interpolate [A]
- Called from:
-
subroutine
mom_ale/
ale_remap_vertex_vals
(CS, G, GV, h_old, h_new, vert_val)¶ Interpolate to find an updated array of values at vertices of tracer cells after remapping.
- Parameters:
cs :: [in] ALE control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
h_old :: [in] Thickness of source grid [H ~> m or kg m-2]
h_new :: [in] Thickness of destination grid [H ~> m or kg m-2]
vert_val :: [inout] The interface values to interpolate [A]
- Called from:
-
subroutine
mom_ale/
apply_partial_cell_mask
(h1, h_mask)¶ Mask out thicknesses to 0 when their running sum exceeds a specified value.
- Parameters:
h1 :: [inout] A column of thicknesses to be masked out after their running vertical sum exceeds h_mask [H ~> m or kg m-2]
h_mask :: [in] The depth after which the thicknesses in h1 are masked out [H ~> m or kg m-2]
- Called from:
-
subroutine
mom_ale/
mask_near_bottom_vel
(vel, h, h_BBL, h_thin, nk)¶ Zero out velocities in a column in very thin layers near the seafloor.
- Parameters:
nk :: [in] The number of layers in this column
vel :: [inout] The velocity component being zeroed out [L T-1 ~> m s-1]
h :: [in] The layer thicknesses at velocity points [H ~> m or kg m-2]
h_bbl :: [in] The thickness of the near-bottom region over which to apply the filtering [H ~> m or kg m-2]
h_thin :: [in] A layer thickness below which the filtering is applied [H ~> m or kg m-2]
- Called from:
-
subroutine
mom_ale/
ale_remap_scalar
(CS, G, GV, nk_src, h_src, s_src, h_dst, s_dst, all_cells, old_remap, answers_2018, answer_date, h_neglect, h_neglect_edge)¶ Remaps a single scalar between grids described by thicknesses h_src and h_dst. h_dst must be dimensioned as a model array with GVke layers while h_src can have an arbitrary number of layers specified by nk_src.
- Parameters:
cs :: [in] Remapping control structure
g :: [in] Ocean grid structure
gv :: [in] Ocean vertical grid structure
nk_src :: [in] Number of levels on source grid
h_src :: [in] Level thickness of source grid [H ~> m or kg m-2] or other units if H_neglect is provided
s_src :: [in] Scalar on source grid, in arbitrary units [A]
h_dst :: [in] Level thickness of destination grid in the same units as h_src, often [H ~> m or kg m-2]
s_dst :: [inout] Scalar on destination grid, in the same arbitrary units as s_src [A]
all_cells :: [in] If false, only reconstruct for non-vanished cells. Use all vanished layers otherwise (default).
old_remap :: [in] If true, use the old “remapping_core_w” method, otherwise use “remapping_core_h”.
answers_2018 :: [in] If true, use the order of arithmetic and expressions that recover the answers for remapping from the end of 2018. Otherwise, use more robust forms of the same expressions.
answer_date :: [in] The vintage of the expressions to use for remapping
h_neglect :: [in] A negligibly small thickness used in remapping cell reconstructions, in the same units as h_src, often [H ~> m or kg m-2]
h_neglect_edge :: [in] A negligibly small thickness used in remapping edge value calculations, in the same units as h_src, often [H ~> m or kg m-2]
- Call to:
- Called from:
ale_offline_inputs
mom_tracer_initialization_from_z::mom_initialize_tracer_from_z
-
subroutine
mom_ale/
ts_plm_edge_values
(CS, S_t, S_b, T_t, T_b, G, GV, tv, h, bdry_extrap)¶ Calculate edge values (top and bottom of layer) for T and S consistent with a PLM reconstruction in the vertical direction. Boundary reconstructions are PCM unless bdry_extrap is true.
- Parameters:
g :: [in] ocean grid structure
gv :: [in] Ocean vertical grid structure
cs :: [inout] module control structure
s_t :: [inout] Salinity at the top edge of each layer [S ~> ppt]
s_b :: [inout] Salinity at the bottom edge of each layer [S ~> ppt]
t_t :: [inout] Temperature at the top edge of each layer [C ~> degC]
t_b :: [inout] Temperature at the bottom edge of each layer [C ~> degC]
tv :: [in] thermodynamics structure
h :: [in] layer thickness [H ~> m or kg m-2]
bdry_extrap :: [in] If true, use high-order boundary extrapolation within boundary cells
- Call to:
- Called from:
mom_pressureforce_fv::pressureforce_fv_bouss
mom_pressureforce_fv::pressureforce_fv_nonbouss
mom_state_initialization::trim_for_ice
-
subroutine
mom_ale/
ale_plm_edge_values
(CS, G, GV, h, Q, bdry_extrap, Q_t, Q_b)¶ Calculate edge values (top and bottom of layer) 3d scalar array. Boundary reconstructions are PCM unless bdry_extrap is true.
- Parameters:
cs :: [in] module control structure
g :: [in] ocean grid structure
gv :: [in] Ocean vertical grid structure
h :: [in] layer thickness [H ~> m or kg m-2]
q :: [in] 3d scalar array, in arbitrary units [A]
bdry_extrap :: [in] If true, use high-order boundary extrapolation within boundary cells
q_t :: [inout] Scalar at the top edge of each layer [A]
q_b :: [inout] Scalar at the bottom edge of each layer [A]
- Call to:
plm_functions::plm_extrapolate_slope
plm_functions::plm_monotonized_slope
plm_functions::plm_slope_wa
- Called from:
-
subroutine
mom_ale/
ts_ppm_edge_values
(CS, S_t, S_b, T_t, T_b, G, GV, tv, h, bdry_extrap)¶ Calculate edge values (top and bottom of layer) for T and S consistent with a PPM reconstruction in the vertical direction. Boundary reconstructions are PCM unless bdry_extrap is true.
- Parameters:
g :: [in] ocean grid structure
gv :: [in] Ocean vertical grid structure
cs :: [inout] module control structure
s_t :: [inout] Salinity at the top edge of each layer [S ~> ppt]
s_b :: [inout] Salinity at the bottom edge of each layer [S ~> ppt]
t_t :: [inout] Temperature at the top edge of each layer [C ~> degC]
t_b :: [inout] Temperature at the bottom edge of each layer [C ~> degC]
tv :: [in] thermodynamics structure
h :: [in] layer thicknesses [H ~> m or kg m-2]
bdry_extrap :: [in] If true, use high-order boundary extrapolation within boundary cells
- Call to:
regrid_edge_values::edge_values_implicit_h4
ppm_functions::ppm_boundary_extrapolation
ppm_functions::ppm_reconstruction
- Called from:
mom_pressureforce_fv::pressureforce_fv_bouss
mom_pressureforce_fv::pressureforce_fv_nonbouss
-
subroutine
mom_ale/
ale_initregridding
(GV, US, max_depth, param_file, mdl, regridCS)¶ Initializes regridding for the main ALE algorithm.
- Parameters:
gv :: [in] Ocean vertical grid structure
us :: [in] A dimensional unit scaling type
max_depth :: [in] The maximum depth of the ocean [Z ~> m].
param_file :: [in] parameter file
mdl :: [in] Name of calling module
regridcs :: [out] Regridding parameters and work arrays
- Called from:
-
function
mom_ale/
ale_getcoordinate
(CS) [real]¶ Query the target coordinate interfaces positions.
- Parameters:
cs :: module control structure
- Return:
undefined :: The coordinate positions, in the appropriate units of the target coordinate, e.g. [Z ~> m] for z*, non-dimensional for sigma, etc.
-
function
mom_ale/
ale_getcoordinateunits
(CS) [character(len=20)]¶ Query the target coordinate units.
- Parameters:
cs :: module control structure
-
function
mom_ale/
ale_remap_init_conds
(CS) [logical]¶ Returns true if initial conditions should be regridded and remapped.
- Parameters:
cs :: module control structure
-
subroutine
mom_ale/
ale_update_regrid_weights
(dt, CS)¶ Updates the weights for time filtering the new grid generated in regridding.
- Parameters:
dt :: [in] Time-step used between ALE calls [T ~> s]
cs :: ALE control structure
- Called from:
-
subroutine
mom_ale/
ale_updateverticalgridtype
(CS, GV)¶ Update the vertical grid type with ALE information. This subroutine sets information in the verticalGrid_type to be consistent with the use of ALE mode.
- Parameters:
cs :: ALE control structure
gv :: vertical grid information
- Called from:
-
subroutine
mom_ale/
ale_writecoordinatefile
(CS, GV, directory)¶ Write the vertical coordinate information into a file. This subroutine writes out a file containing any available data related to the vertical grid used by the MOM ocean model when in ALE mode.
- Parameters:
cs :: module control structure
gv :: [in] ocean vertical grid structure
directory :: [in] directory for writing grid info
-
subroutine
mom_ale/
ale_initthicknesstocoord
(CS, G, GV, h, height_units)¶ Set h to coordinate values for fixed coordinate systems.
- Parameters:
cs :: [inout] module control structure
g :: [in] module grid structure
gv :: [in] Ocean vertical grid structure
h :: [out] layer thickness in thickness units [H ~> m or kg m-2] or height units [Z ~> m]
height_units :: [in] If present and true, the thicknesses are in height units
- Call to:
- Called from: