derived_entry_t Derived Type

type, public :: 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).


Components

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 DIAG_MISSING_VALUE at land T-cells, so the NetCDF variable advertises _FillValue on BOTH registration paths, independent of requires and mask_vanished_layers.

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 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.

character(len=64), public :: standard_name = ""
character(len=32), public :: units = ""

Source Code

   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