&time_nml: time-integration controls. t_end is interpreted
in time_unit and converted to seconds by the post-parse
cascade in read_config; dt_fixed/dt_max stay in seconds.
time_unit is a plain string (the cascade validates its set).
| 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 | ||||
| integer, | private, | pointer | :: | pi | |||
| real(kind=wp), | private, | pointer | :: | pr | |||
| character(len=:), | private, | pointer | :: | ps |
subroutine register_time(cfg, schema) !! `&time_nml`: time-integration controls. `t_end` is interpreted !! in `time_unit` and converted to seconds by the post-parse !! cascade in read_config; `dt_fixed`/`dt_max` stay in seconds. !! `time_unit` is a plain string (the cascade validates its set). type(config_t), target, intent(in) :: cfg type(nml_schema_t), intent(inout) :: schema type(nml_group_t) :: g integer, pointer :: pi real(wp), pointer :: pr character(len=:), pointer :: ps g%name = "time" g%doc = "Time-integration controls." pr => cfg%t_end call g%add(nml_real("t_end", pr, "Simulation end time (in time_unit)")) pr => cfg%cfl call g%add(nml_real("cfl", pr, "CFL number for adaptive timestep")) pr => cfg%dt_max call g%add(nml_real("dt_max", pr, "Maximum allowable timestep", units="s", & dead_on_ocean_path="accepted and type/range-validated but read "// & "nowhere in src/ -- the ocean path's adaptive-timestep ceiling "// & "comes from the barotropic gravity-wave CFL (auto_n_inner), not "// & "this knob (found by the P4 dead-knob sweep, 2026-09-10).")) pr => cfg%dt_fixed call g%add(nml_real("dt_fixed", pr, "Fixed timestep (0 = adaptive CFL)", units="s")) pi => cfg%cfl_interval call g%add(nml_int("cfl_interval", pi, "Recompute CFL timestep every N steps", min=1, & dead_on_ocean_path="accepted and range-validated but read nowhere "// & "in src/ -- there is no adaptive-CFL recompute cadence on the ocean "// & "path to interval-gate (found by the P4 dead-knob sweep, 2026-09-10).")) ps => cfg%time_unit call g%add(nml_string("time_unit", ps, & "Unit for the long-time fields: s/min/hr/day/year")) call schema%add_group(g) end subroutine register_time