Z-level T/S initial-condition overlay (&ocean_zinit_nml,
capability A2). Reads pre-regridded T/S from a model-grid
NetCDF and interpolates linearly in depth onto the seeded
layer-centre depths, overwriting any analytical T/S. All
defaults preserve bit-identity: enable = .false. is a no-op.
Design + MOM6 divergences: local_archive/specs/a2_zinit_spec.md.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | enable | = | .false. |
Master switch. Default |
|
| character(len=256), | public | :: | file | = | "" |
Path to the model-grid T/S NetCDF (dims x/y/z; vars temp/salt/z_src with the documented name-fallbacks). |
|
| real(kind=wp), | public | :: | land_fill_s | = | 35.0_wp |
Fallback salinity (PSU) written to dry (wet_mask <= 0) columns.
|
|
| real(kind=wp), | public | :: | land_fill_t | = | 10.0_wp |
Fallback temperature (°C) written to dry (wet_mask <= 0) columns. |
|
| real(kind=wp), | public | :: | lin_ds_dz | = | 0.0_wp |
|
|
| real(kind=wp), | public | :: | lin_dt_dz | = | 0.0_wp |
|
|
| real(kind=wp), | public | :: | lin_s_ref | = | 35.0_wp |
|
|
| real(kind=wp), | public | :: | lin_t_ref | = | 0.0_wp |
|
|
| character(len=32), | public | :: | s_var | = | "" |
Salinity variable-name override; “” tries salt/S/salinity. |
|
| character(len=32), | public | :: | source | = | "file" |
Where the T(z)/S(z) profile comes from.
|
|
| character(len=32), | public | :: | t_var | = | "" |
Temperature variable-name override; “” tries temp/T/temperature. |
|
| character(len=32), | public | :: | z_var | = | "" |
Source-axis variable-name override; “” tries z_src/z/depth/lev. |
type :: ocean_zinit_config_t !! Z-level T/S initial-condition overlay (`&ocean_zinit_nml`, !! capability A2). Reads pre-regridded T/S from a model-grid !! NetCDF and interpolates linearly in depth onto the seeded !! layer-centre depths, overwriting any analytical T/S. All !! defaults preserve bit-identity: `enable = .false.` is a no-op. !! Design + MOM6 divergences: `local_archive/specs/a2_zinit_spec.md`. logical :: enable = .false. !! Master switch. Default `.false.` keeps the analytical IC. !! Requires `RDB_ENABLE_NETCDF=ON` at build time (the overlay !! lives in the NetCDF-gated `rdb_ocean_z_init`, including the !! `source = "linear"` path, which opens nothing). character(len=32) :: source = "file" !! Where the T(z)/S(z) profile comes from. !! !! `"file"` (default) reads the pre-regridded NetCDF named by !! `file` and interpolates linearly in depth. !! !! `"linear"` evaluates the ANALYTIC affine profiles !! `T(z) = lin_t_ref + lin_dt_dz*z`, `S(z) = lin_s_ref + !! lin_ds_dz*z` at every layer centre's true geopotential depth !! — no file, no interpolation, defined on ghosts and land too. !! This is the profile an idealised sloping-lid cavity (or any !! ISOMIP+-style case) needs: the `&tracer_nml T_init_surface` / !! `T_init_bottom` family is linear in LAYER INDEX, so under a !! terrain-following coordinate with a tilted lid it tilts the !! isopycnals with the coordinate and the column is NOT at rest. character(len=256) :: file = "" !! Path to the model-grid T/S NetCDF (dims x/y/z; vars !! temp/salt/z_src with the documented name-fallbacks). character(len=32) :: t_var = "" !! Temperature variable-name override; "" tries temp/T/temperature. character(len=32) :: s_var = "" !! Salinity variable-name override; "" tries salt/S/salinity. character(len=32) :: z_var = "" !! Source-axis variable-name override; "" tries z_src/z/depth/lev. real(wp) :: land_fill_t = 10.0_wp !! Fallback temperature (°C) written to dry (wet_mask <= 0) columns. real(wp) :: land_fill_s = 35.0_wp !! Fallback salinity (PSU) written to dry (wet_mask <= 0) columns. !! `source = "file"` only — the analytic path has a value !! everywhere and uses it. real(wp) :: lin_t_ref = 0.0_wp !! `source = "linear"`: temperature (degC) at the `z = 0` datum. real(wp) :: lin_dt_dz = 0.0_wp !! `source = "linear"`: `dT/dz` (degC/m) with **z positive UP** !! — the same convention as `&ocean_ic_nml eady_dT_dz`. A !! thermally STABLE column has `lin_dt_dz > 0` (warm on top). !! `0` (the default) is a uniform column. real(wp) :: lin_s_ref = 35.0_wp !! `source = "linear"`: salinity (PSU) at the `z = 0` datum. real(wp) :: lin_ds_dz = 0.0_wp !! `source = "linear"`: `dS/dz` (PSU/m) with **z positive UP**. !! Note the polarity is the INVERSE of temperature's: salty !! water belongs at the bed, so a halinely STABLE column has !! `lin_ds_dz < 0`. `0` (the default) is a uniform column. end type ocean_zinit_config_t