&ocean_porous (Adcroft 2013 porous barriers: subgrid
sill/strait narrowing of the C-grid transport face widths).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(config_t), | intent(in), | target | :: | cfg | ||
| type(nml_schema_t), | intent(inout) | :: | schema |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(nml_group_t), | private | :: | g | ||||
| logical, | private, | pointer | :: | pl | |||
| real(kind=wp), | private, | pointer | :: | pr | |||
| character(len=:), | private, | pointer | :: | ps |
subroutine register_porous(cfg, schema) !! `&ocean_porous` (Adcroft 2013 porous barriers: subgrid !! sill/strait narrowing of the C-grid transport face widths). type(config_t), target, intent(in) :: cfg type(nml_schema_t), intent(inout) :: schema type(nml_group_t) :: g logical, pointer :: pl real(wp), pointer :: pr character(len=:), pointer :: ps g%name = "ocean_porous" g%doc = "Porous barriers: subgrid sill/strait blocking of the C-grid face widths." pl => cfg%ocean%porous%enable call g%add(nml_logical("enable", pl, & "Master switch (ocean multilayer path only; "// & "fails loud with bt_halo > 0 or wetdry enable)")) ps => cfg%ocean%porous%source call g%add(nml_enum("source", ps, & "Along-face bathymetry-statistics source "// & "('resolved' is a wet-gated proxy; 'file' is deferred)", & allowed=[character(len=15) :: "resolved", "file"])) ps => cfg%ocean%porous%eta_interp call g%add(nml_enum("eta_interp", ps, & "Interface height at the velocity point "// & "(PORBAR_ETA_INTERP); 'max' is the LEAST blocking, "// & "'min' the most", & allowed=[character(len=15) :: "max", "min", & "arithmetic", "harmonic"])) pr => cfg%ocean%porous%masking_depth call g%add(nml_real("masking_depth", pr, & "Faces shallower than this stay fully open "// & "(PORBAR_MASKING_DEPTH, positive below the surface)", & units="m")) call schema%add_group(g) end subroutine register_porous