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.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | enable | = | .false. |
Master switch. Requires |
|
| character(len=32), | public | :: | eta_interp | = | "max" |
Interface-height-at-velocity-point rule (MOM6
|
|
| 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 |
|
| character(len=32), | public | :: | source | = | "resolved" |
Where the along-face min/max/mean topographic heights come
from. |
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