ocean_porous_config_t Derived Type

type, public :: ocean_porous_config_t

Porous barriers (&ocean_porous_nml): subgrid sill/strait blocking of the C-grid face widths via the Adcroft (2013) three-parameter fit. The layer-averaged OPEN-AREA fraction multiplies dy_cu / dx_cv in the layer mass transport (continuity-PPM + Coriolis advection), so a deep sill blocks the bottom layers while the surface layers stay fully open. enable = .false. keeps the existing path bit-identical. Knob table: docs/generated_nml_knobs.md.


Inherited by

type~~ocean_porous_config_t~~InheritedByGraph type~ocean_porous_config_t ocean_porous_config_t type~ocean_config_t ocean_config_t type~ocean_config_t->type~ocean_porous_config_t porous type~config_t config_t type~config_t->type~ocean_config_t ocean type~ocean_handle_t ocean_handle_t type~ocean_handle_t->type~config_t cfg

Components

Type Visibility Attributes Name Initial
logical, public :: enable = .false.

Master switch. Requires sim_type='ocean' + a multilayer run (validated at configure).

character(len=32), public :: eta_interp = "max"

Interface-height-at-velocity-point rule (MOM6 PORBAR_ETA_INTERP): "max" (the higher, i.e. shallower, of the two adjacent interfaces — the default, and the LEAST blocking, since the open width increases with interface height), "min" (the most blocking), "arithmetic", "harmonic".

real(kind=wp), public :: masking_depth = 0.0_wp

Faces whose mean along-face depth is SHALLOWER than this (m, positive below the sea surface) are left fully open (MOM6 PORBAR_MASKING_DEPTH). 0 ⇒ apply everywhere the face is below sea level.

character(len=32), public :: source = "resolved"

Where the along-face min/max/mean topographic heights come from. "resolved": three samples of the RESOLVED bathymetry along the face (two corners + midpoint) — a documented PROXY, not true subgrid data. "file": an offline subgrid-bathymetry file (MOM6 topog_edge.nc), NOT implemented — fails loud pending the file-forcing backend.


Source Code

   type :: ocean_porous_config_t
      !! Porous barriers (`&ocean_porous_nml`): subgrid sill/strait
      !! blocking of the C-grid face widths via the Adcroft (2013)
      !! three-parameter fit.  The layer-averaged OPEN-AREA fraction
      !! multiplies `dy_cu` / `dx_cv` in the layer mass transport
      !! (continuity-PPM + Coriolis advection), so a deep sill blocks the
      !! bottom layers while the surface layers stay fully open.
      !! `enable = .false.` keeps the existing path bit-identical.
      !! Knob table: `docs/generated_nml_knobs.md`.
      logical :: enable = .false.
         !! Master switch.  Requires `sim_type='ocean'` + a multilayer
         !! run (validated at configure).
      character(len=32) :: source = "resolved"
         !! Where the along-face min/max/mean topographic heights come
         !! from.  `"resolved"`: three samples of the RESOLVED
         !! bathymetry along the face (two corners + midpoint) — a
         !! documented PROXY, not true subgrid data.  `"file"`: an
         !! offline subgrid-bathymetry file (MOM6 `topog_edge.nc`),
         !! NOT implemented — fails loud pending the file-forcing
         !! backend.
      character(len=32) :: eta_interp = "max"
         !! Interface-height-at-velocity-point rule (MOM6
         !! `PORBAR_ETA_INTERP`): `"max"` (the higher, i.e. shallower, of
         !! the two adjacent interfaces — the default, and the LEAST
         !! blocking, since the open width increases with interface
         !! height), `"min"` (the most blocking), `"arithmetic"`,
         !! `"harmonic"`.
      real(wp) :: masking_depth = 0.0_wp
         !! Faces whose mean along-face depth is SHALLOWER than this
         !! (m, positive below the sea surface) are left fully open
         !! (MOM6 `PORBAR_MASKING_DEPTH`).  0 ⇒ apply everywhere the
         !! face is below sea level.
   end type ocean_porous_config_t