&ocean_coriolis_nml: Coriolis-advection scheme selector.
form enum mirrors parse_pv_variant in rdb_coriolis_adv
(canonical names; short aliases hk/energy are not advertised).
| 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 | |||
| character(len=:), | private, | pointer | :: | ps |
subroutine register_ocean_coriolis(cfg, schema) !! `&ocean_coriolis_nml`: Coriolis-advection scheme selector. !! `form` enum mirrors `parse_pv_variant` in rdb_coriolis_adv !! (canonical names; short aliases hk/energy are not advertised). type(config_t), target, intent(in) :: cfg type(nml_schema_t), intent(inout) :: schema type(nml_group_t) :: g character(len=:), pointer :: ps logical, pointer :: pl g%name = "ocean_coriolis" g%doc = "Coriolis-advection scheme selector." ps => cfg%ocean%coriolis%form call g%add(nml_enum("form", ps, "Coriolis-advection variant", & allowed=[character(len=15) :: "sadourny", "sadourny_hk", & "sadourny_energy"])) ps => cfg%ocean%coriolis%pv_adv_scheme call g%add(nml_enum("pv_adv_scheme", ps, & "PV face interpolation (Sadourny path): centered (default) "// & "or weno3/weno5/weno7 (WENO-Z); weno5/weno7 need nghost>=4/5", & allowed=[character(len=8) :: "centered", "weno3", & "weno5", "weno7"])) pl => cfg%ocean%coriolis%use_state_fluxes call g%add(nml_logical("use_state_fluxes", pl, & "mom6-corrector CorAdv consumes continuity's renormalised "// & "mass fluxes (MOM6 mass-consistent uh/vh)")) pl => cfg%ocean%coriolis%bound_coriolis call g%add(nml_logical("bound_coriolis", pl, & "clamp the energy-scheme Coriolis accel to the (f+zeta)*v "// & "velocity-form range (MOM6 BOUND_CORIOLIS; sadourny_energy only)")) ps => cfg%ocean%coriolis%corner_h call g%add(nml_enum("corner_h", ps, "PV corner-thickness construction (energy scheme)", & allowed=[character(len=9) :: "cell_mean", "mom6_area"])) call schema%add_group(g) end subroutine register_ocean_coriolis