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 ::
integerDiagnostic IDs.% id_por_layer_widthv ::
integerDiagnostic IDs.% id_por_face_areau ::
integerDiagnostic IDs.% id_por_face_areav ::
integerDiagnostic IDs.% initialized ::
logicalTrue if this control structure has been initialized.% diag ::
type(diag_ctrl), pointerA structure to regulate diagnostic output timing.% debug ::
logicalIf true, write verbose checksums for debugging purposes.% mask_depth ::
realThe depth shallower than which porous barrier is not applied [Z ~> m].% eta_interp ::
integerAn 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 ::
integerThe 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 ::
h[in] Layer thicknesses [H ~> m or kg m-2]tv ::
tv[in] A structure pointing to various thermodynamic variables.eta_bt ::
eta_bt[in] optional barotropic variable used to dilate the layer thicknesses [H ~> m or kg m-2].pbv ::
pbv[inout] porous barrier fractional cell metricscs :: [in] Control structure for porous barrier
- Call to:
calc_eta_at_uvcalc_por_layerid_clock_porous_barriermom_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 ::
h[in] Layer thicknesses [H ~> m or kg m-2]tv ::
tv[in] A structure pointing to various thermodynamic variables.eta_bt ::
eta_bt[in] optional barotropic variable used to dilate the layer thicknesses [H ~> m or kg m-2].pbv ::
pbv[inout] porous barrier fractional cell metricscs :: [in] Control structure for porous barrier
- Call to:
calc_eta_at_uvcalc_por_interfaceid_clock_porous_barriermom_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 ::
h[in] Layer thicknesses [H ~> m or kg m-2]tv ::
tv[in] A structure pointing to various thermodynamic variables.eta_bt ::
eta_bt[in] optional barotropic variable used to dilate the layer thicknesses [H ~> m or kg m-2].dmask ::
dmask[in] The depth shallower than which porous barrier is not applied [Z ~> m]interp ::
interp[in] eta interpolation methodeta_u ::
eta_u[out] Layer interface heights at u points [Z ~> m]eta_v ::
eta_v[out] Layer interface heights at v points [Z ~> m]
- Call to:
eta_interp_aritheta_interp_harmeta_interp_maxeta_interp_minmom_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 ::
eta_layer[in] height of interface [Z ~> m]a_layer :: [out] frac. open face area of below eta_layer [Z ~> m]
do_next ::
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 ::
eta_layer[in] height of interface [Z ~> m]w_layer ::
w_layer[out] frac. open interface width at eta_layer [nondim]do_next ::
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 ::
param_file[in] structure indicating parameter file to parsediag ::
diag[inout] Diagnostics control structurecs :: [inout] Module control structure
- Call to:
eta_interp_aritheta_interp_arith_stringeta_interp_harmeta_interp_harm_stringeta_interp_maxeta_interp_max_stringeta_interp_mineta_interp_min_stringid_clock_porous_barriermom_error_handler::mom_errormom_diag_mediator::register_diag_field