mom_porous_barriers module reference

Module for calculating curve fit for porous topography.

More…

Data Types

porous_barrier_cs

The control structure for the MOM_porous_barriers module.

Functions/Subroutines

porous_widths_layer()

subroutine to assign porous barrier widths averaged over a layer

porous_widths_interface()

subroutine to assign porous barrier widths at the layer interfaces

calc_eta_at_uv()

calc_por_layer()

subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013)

calc_por_interface()

subroutine to calculate the profile fit (the three parameter fit from Adcroft 2013)

porous_barriers_init()

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 .

[source]

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 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

[source]

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 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

[source]

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 method

  • eta_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_arith eta_interp_harm eta_interp_max eta_interp_min mom_error_handler::mom_error

Called from:

porous_widths_interface porous_widths_layer

[source]

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:

porous_widths_layer

[source]

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:

porous_widths_interface

[source]

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 parse

  • diag :: 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

[source]

[source]