&ocean_dataovr_nml: file-backed surface forcing (PR-15, the A3
keystone consumer). Binds time-varying NetCDF fields, through
the shared PR-14 reader (&ocean_data_nml), onto the surface
stress and surface-flux slots. enable = .false. registers
nothing ⇒ ocean_data_input_update_all stays a no-op ⇒
bit-identical.
The heat/freshwater tags write the surface-flux COMPONENT
fields, not Q_heat/Q_salt directly, because
ocean_surface_flux_assemble fully overwrites those two from
the components every thermo step — a direct write would be
silently clobbered. They therefore require
&ocean_forcing_nml enable_components = .true. (fail-loud
otherwise). Sign conventions are inherited from the component
slots: evap <= 0, lprec >= 0, both kg/m^2/s.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=wp), | public | :: | cycle_period | = | 0.0_wp |
Climatology period (s). Required > 0 when
|
|
| logical, | public | :: | enable | = | .false. |
Master switch. Default off ⇒ no registration, bit-identical.
Requires |
|
| type(dataovr_entry_config_t), | public | :: | evap |
Evaporative mass flux (kg/m^2/s, <= 0) -> |
|||
| type(dataovr_entry_config_t), | public | :: | heat |
Net surface heat flux (W/m^2, positive down) ->
|
|||
| type(dataovr_entry_config_t), | public | :: | lprec |
Liquid precipitation (kg/m^2/s, >= 0) -> |
|||
| logical, | public | :: | oor_clamp | = | .false. |
|
|
| type(dataovr_entry_config_t), | public | :: | salt |
Surface salt flux (kg salt/m^2/s, positive salinifies) ->
|
|||
| real(kind=wp), | public | :: | t_offset | = | 0.0_wp |
Added to the model time before the file-axis lookup (s) — shifts the model epoch onto the file’s epoch. |
|
| type(dataovr_entry_config_t), | public | :: | tau_x |
Zonal wind stress (Pa) -> |
|||
| type(dataovr_entry_config_t), | public | :: | tau_y |
Meridional wind stress (Pa) -> |
|||
| character(len=16), | public | :: | time_mode | = | "linear" |
Shared time-axis mode for every active tag: |
type :: ocean_dataovr_config_t !! `&ocean_dataovr_nml`: file-backed surface forcing (PR-15, the A3 !! keystone consumer). Binds time-varying NetCDF fields, through !! the shared PR-14 reader (`&ocean_data_nml`), onto the surface !! stress and surface-flux slots. `enable = .false.` registers !! nothing ⇒ `ocean_data_input_update_all` stays a no-op ⇒ !! bit-identical. !! !! The heat/freshwater tags write the surface-flux COMPONENT !! fields, not `Q_heat`/`Q_salt` directly, because !! `ocean_surface_flux_assemble` fully overwrites those two from !! the components every thermo step — a direct write would be !! silently clobbered. They therefore require !! `&ocean_forcing_nml enable_components = .true.` (fail-loud !! otherwise). Sign conventions are inherited from the component !! slots: `evap <= 0`, `lprec >= 0`, both kg/m^2/s. logical :: enable = .false. !! Master switch. Default off ⇒ no registration, bit-identical. !! Requires `RDB_ENABLE_NETCDF=ON` at build time. character(len=16) :: time_mode = "linear" !! Shared time-axis mode for every active tag: `linear` !! (interannual; out-of-range is an abort unless `oor_clamp`), !! `cyclic` (climatology wrapped through `cycle_period`), or !! `static` (record 1, read once). Per-tag overrides are a !! documented v2 gap, not an oversight. real(wp) :: cycle_period = 0.0_wp !! Climatology period (s). Required > 0 when !! `time_mode = "cyclic"`; ignored otherwise. real(wp) :: t_offset = 0.0_wp !! Added to the model time before the file-axis lookup (s) — !! shifts the model epoch onto the file's epoch. logical :: oor_clamp = .false. !! `.true.` clamps a query outside the file time axis to the !! end record (one warning); default `.false.` aborts. type(dataovr_entry_config_t) :: tau_x !! Zonal wind stress (Pa) -> `surface_stress%tau_x` (east faces). type(dataovr_entry_config_t) :: tau_y !! Meridional wind stress (Pa) -> `surface_stress%tau_y` (north faces). type(dataovr_entry_config_t) :: heat !! Net surface heat flux (W/m^2, positive down) -> !! `surface_flux%heat_added`. type(dataovr_entry_config_t) :: evap !! Evaporative mass flux (kg/m^2/s, <= 0) -> `surface_flux%evap`. type(dataovr_entry_config_t) :: lprec !! Liquid precipitation (kg/m^2/s, >= 0) -> `surface_flux%lprec`. type(dataovr_entry_config_t) :: salt !! Surface salt flux (kg salt/m^2/s, positive salinifies) -> !! `surface_flux%salt_flux`. end type ocean_dataovr_config_t