One entry in the static catalog. Buffer layout is implicit
in is_layered: layered → (nx, ny, nz_ml), 2D → (nx, ny, 1).
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| procedure(diag_fill_proc), | public, | pointer, nopass | :: | fill | => | null() | |
| logical, | public | :: | is_layered | = | .true. | ||
| character(len=128), | public | :: | long_name | = | "" | ||
| logical, | public | :: | masks_land | = | .false. |
The fill writes |
|
| character(len=64), | public | :: | name | = | "" | ||
| integer, | public | :: | requires | = | DERIVED_REQ_NONE |
Prerequisite knob, if any. Registering an entry whose
prerequisite is off FAILS LOUD at configure — the same
stance |
|
| character(len=64), | public | :: | standard_name | = | "" | ||
| character(len=32), | public | :: | units | = | "" |
type :: derived_entry_t !! One entry in the static catalog. Buffer layout is implicit !! in `is_layered`: layered → (nx, ny, nz_ml), 2D → (nx, ny, 1). character(len=64) :: name = "" character(len=128) :: long_name = "" character(len=32) :: units = "" character(len=64) :: standard_name = "" procedure(diag_fill_proc), pointer, nopass :: fill => null() logical :: is_layered = .true. integer :: requires = DERIVED_REQ_NONE !! Prerequisite knob, if any. Registering an entry whose !! prerequisite is off FAILS LOUD at configure — the same !! stance `register_derived` already takes on an unknown name, !! and for the same reason: a requested diagnostic that comes !! back as a plane of missing values, or worse as a plane of !! zeros, is indistinguishable from a physical answer. logical :: masks_land = .false. !! The fill writes `DIAG_MISSING_VALUE` at land T-cells, so the !! NetCDF variable advertises `_FillValue` on BOTH registration !! paths, independent of `requires` and `mask_vanished_layers`. end type derived_entry_t