mom_porous_barriers module reference¶
Module for calculating curve fit for porous topography.
Data Types¶
The control structure for the MOM_porous_barriers module. |
Functions/Subroutines¶
subroutine to assign porous barrier widths averaged over a layer |
|
subroutine to assign porous barrier widths at the layer interfaces |
|
subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013) |
|
subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013) |
|
Detailed Description¶
Module for calculating curve fit for porous topography.
Type Documentation¶
-
type
mom_porous_barriers/
porous_barrier_cs
¶ The control structure for the MOM_porous_barriers module.
- Type fields:
%
id_por_layer_widthu
[integer] :: Diagnostic IDs.%
id_por_layer_widthv
[integer] :: Diagnostic IDs.%
id_por_face_areau
[integer] :: Diagnostic IDs.%
id_por_face_areav
[integer] :: Diagnostic IDs.%
initialized
[logical] :: True if this control structure has been initialized.%
diag
[type( diag_ctrl ),pointer] :: A structure to regulate diagnostic output timing.%
debug
[logical] :: If true, write verbose checksums for debugging purposes.%
mask_depth
[real] :: The depth shallower than which porous barrier is not applied [Z ~> m].%
eta_interp
[integer] :: An integer indicating how the interface heights at the velocity points are calculated. Valid values are given by the parameters defined below: MAX, MIN, ARITHMETIC and HARMONIC.%
answer_date
[integer] :: The vintage of the porous barrier weight function calculations. Values below 20220806 recover the old answers in which the layer averaged weights are not strictly limited by an upper-bound of 1.0 .
Function/Subroutine Documentation¶
-
subroutine
mom_porous_barriers/
porous_widths_layer
(h, tv, G, GV, US, pbv, CS, eta_bt)¶ subroutine to assign porous barrier widths averaged over a layer
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
us :: [in] A dimensional unit scaling type
h :: [in] Layer thicknesses [H ~> m or kg m-2]
tv :: [in] A structure pointing to various thermodynamic variables.
eta_bt :: [in] optional barotropic variable used to dilate the layer thicknesses [H ~> m or kg m-2].
pbv :: [inout] porous barrier fractional cell metrics
cs :: [in] Control structure for porous barrier
- Call to:
calc_eta_at_uv
calc_por_layer
id_clock_porous_barrier
mom_error_handler::mom_error
-
subroutine
mom_porous_barriers/
porous_widths_interface
(h, tv, G, GV, US, pbv, CS, eta_bt)¶ subroutine to assign porous barrier widths at the layer interfaces
- Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
us :: [in] A dimensional unit scaling type
h :: [in] Layer thicknesses [H ~> m or kg m-2]
tv :: [in] A structure pointing to various thermodynamic variables.
eta_bt :: [in] optional barotropic variable used to dilate the layer thicknesses [H ~> m or kg m-2].
pbv :: [inout] porous barrier fractional cell metrics
cs :: [in] Control structure for porous barrier
- Call to:
calc_eta_at_uv
calc_por_interface
id_clock_porous_barrier
mom_error_handler::mom_error
-
subroutine
mom_porous_barriers/
calc_eta_at_uv
(eta_u, eta_v, interp, dmask, h, tv, G, GV, US, eta_bt)¶ - Parameters:
g :: [in] The ocean’s grid structure.
gv :: [in] The ocean’s vertical grid structure.
us :: [in] A dimensional unit scaling type
h :: [in] Layer thicknesses [H ~> m or kg m-2]
tv :: [in] A structure pointing to various thermodynamic variables.
eta_bt :: [in] optional barotropic variable used to dilate the layer thicknesses [H ~> m or kg m-2].
dmask :: [in] The depth shallower than which porous barrier is not applied [Z ~> m]
interp :: [in] eta interpolation method
eta_u :: [out] Layer interface heights at u points [Z ~> m]
eta_v :: [out] Layer interface heights at v points [Z ~> m]
- Call to:
eta_interp_arith
eta_interp_harm
eta_interp_max
eta_interp_min
mom_error_handler::mom_error
- Called from:
-
subroutine
mom_porous_barriers/
calc_por_layer
(D_min, D_max, D_avg, eta_layer, A_layer, do_next)¶ subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013)
- Parameters:
d_min :: [in] minimum topographic height (deepest) [Z ~> m]
d_max :: [in] maximum topographic height (shallowest) [Z ~> m]
d_avg :: [in] mean topographic height [Z ~> m]
eta_layer :: [in] height of interface [Z ~> m]
a_layer :: [out] frac. open face area of below eta_layer [Z ~> m]
do_next :: [out] False if eta_layer>D_max
- Called from:
-
subroutine
mom_porous_barriers/
calc_por_interface
(D_min, D_max, D_avg, eta_layer, w_layer, do_next)¶ subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013)
- Parameters:
d_min :: [in] minimum topographic height (deepest) [Z ~> m]
d_max :: [in] maximum topographic height (shallowest) [Z ~> m]
d_avg :: [in] mean topographic height [Z ~> m]
eta_layer :: [in] height of interface [Z ~> m]
w_layer :: [out] frac. open interface width at eta_layer [nondim]
do_next :: [out] False if eta_layer>D_max
- Called from:
-
subroutine
mom_porous_barriers/
porous_barriers_init
(Time, GV, US, param_file, diag, CS)¶ - Parameters:
time :: [in] Current model time
gv :: [in] The ocean’s vertical grid structure.
us :: [in] A dimensional unit scaling type
param_file :: [in] structure indicating parameter file to parse
diag :: [inout] Diagnostics control structure
cs :: [inout] Module control structure
- Call to:
eta_interp_arith
eta_interp_arith_string
eta_interp_harm
eta_interp_harm_string
eta_interp_max
eta_interp_max_string
eta_interp_min
eta_interp_min_string
id_clock_porous_barrier
mom_error_handler::mom_error
mom_diag_mediator::register_diag_field