nml_real_key_t Derived Type

type, public, extends(nml_key_t) :: nml_real_key_t

Real-valued key with optional [min,max] range validation.


Inherits

type~~nml_real_key_t~~InheritsGraph type~nml_real_key_t nml_real_key_t type~nml_key_t nml_key_t type~nml_real_key_t->type~nml_key_t

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: dead_reason

Unallocated/empty = live. Non-empty = this knob is registered (accepted, type/range-validated) but does NOT reach any ocean-path behaviour – e.g. &vcoord_nml zstar_stretching is captured on cfg but never copied onto ocean_state%vcoord (rdb_ocean_vcoord.F90:179,182). Carried into the JSON emitter (render_json) so a generated caller-side layer can warn on assignment instead of presenting a dead knob as live.

real(kind=rk), public :: default = 0.0_rk
character(len=:), public, allocatable :: doc

Human-readable description (FORD-style synthesis doc).

logical, public :: found = .false.

Parse-state: set true when the key is seen in the file.

logical, public :: has_max = .false.
logical, public :: has_min = .false.
character(len=:), public, allocatable :: name

Key name (matched case-insensitively).

logical, public :: required = .false.

If true, the key must appear whenever its group appears.

real(kind=rk), public, pointer :: tgt => null()
character(len=:), public, allocatable :: units

Optional units string, default ‘’.

real(kind=rk), public :: vmax = 0.0_rk
real(kind=rk), public :: vmin = 0.0_rk

Type-Bound Procedures

procedure, public :: default_string => real_default_string

  • private function real_default_string(this) result(str)

    Arguments

    Type IntentOptional Attributes Name
    class(nml_real_key_t), intent(in) :: this

    Return Value character(len=:), allocatable

procedure, public :: is_default => real_is_default

  • private function real_is_default(this) result(yes)

    Arguments

    Type IntentOptional Attributes Name
    class(nml_real_key_t), intent(in) :: this

    Return Value logical

procedure, public :: parse_tokens => real_parse

  • private subroutine real_parse(this, values, err_msg)

    Arguments

    Type IntentOptional Attributes Name
    class(nml_real_key_t), intent(inout) :: this
    character(len=*), intent(in) :: values(:)
    character(len=:), intent(out), allocatable :: err_msg

procedure, public :: value_string => real_value_string

  • private function real_value_string(this) result(str)

    Arguments

    Type IntentOptional Attributes Name
    class(nml_real_key_t), intent(in) :: this

    Return Value character(len=:), allocatable

Source Code

   type, extends(nml_key_t) :: nml_real_key_t
      !! Real-valued key with optional [min,max] range validation.
      real(rk), pointer :: tgt => null()
      real(rk) :: default = 0.0_rk
      real(rk) :: vmin = 0.0_rk, vmax = 0.0_rk
      logical :: has_min = .false., has_max = .false.
   contains
      procedure :: parse_tokens => real_parse
      procedure :: value_string => real_value_string
      procedure :: default_string => real_default_string
      procedure :: is_default => real_is_default
   end type nml_real_key_t