ocean_data_input_t Derived Type

type, public :: ocean_data_input_t


Inherits

type~~ocean_data_input_t~~InheritsGraph type~ocean_data_input_t ocean_data_input_t type~data_input_field_t data_input_field_t type~ocean_data_input_t->type~data_input_field_t fields

Inherited by

type~~ocean_data_input_t~~InheritedByGraph type~ocean_data_input_t ocean_data_input_t type~ocean_state_t ocean_state_t type~ocean_state_t->type~ocean_data_input_t data_input type~ocean_engine_t ocean_engine_t type~ocean_engine_t->type~ocean_state_t state type~ocean_handle_t ocean_handle_t type~ocean_handle_t->type~ocean_state_t state type~ocean_handle_t->type~ocean_engine_t engine

Components

Type Visibility Attributes Name Initial
type(data_input_field_t), public, allocatable :: fields(:)
logical, public :: is_init = .false.
integer, public :: nfields = 0
integer, public :: nfields_max = 0
logical, public :: verbose = .false.

Type-Bound Procedures

procedure, public, non_overridable :: bytes => ocean_data_input_bytes

  • private pure function ocean_data_input_bytes(this) result(nbytes)

    Counted allocatable footprint (0 when unallocated). Summed over every registered field’s f0/f1 — the t_axis is small (nt reals) and intentionally excluded, matching the house convention of counting device-resident footprint only.

    Arguments

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

    Return Value integer(kind=int64)

procedure, public, non_overridable :: destroy => ocean_data_input_destroy

procedure, public, non_overridable :: enter_data => ocean_data_input_enter_data

  • private subroutine ocean_data_input_enter_data(this)

    Type-bound wrapper — delegates to the non-polymorphic impl (the AMD libomptarget cross-slot-overlap fix; see rdb_ocean_surface_stress.F90).

    Arguments

    Type IntentOptional Attributes Name
    class(ocean_data_input_t), intent(inout) :: this

procedure, public, non_overridable :: exit_data => ocean_data_input_exit_data

procedure, public, non_overridable :: init => ocean_data_input_init

  • private subroutine ocean_data_input_init(this, cfg)

    Allocate the field registry. cfg optional so ocean_state_init (which many tests call directly with no config_t in hand) can construct a default-sized (16 slots, quiet) reader identically to the scaffold it replaces; ocean_state_init_from_config re-calls this with the real cfg%ocean%data once cfg is available — safe because nothing is registered between the two calls.

    Arguments

    Type IntentOptional Attributes Name
    class(ocean_data_input_t), intent(inout) :: this
    type(ocean_data_config_t), intent(in), optional :: cfg

Source Code

   type :: ocean_data_input_t
      logical :: is_init = .false.
      logical :: verbose = .false.
      integer :: nfields = 0
      integer :: nfields_max = 0
      type(data_input_field_t), allocatable :: fields(:)
   contains
      procedure, non_overridable :: init => ocean_data_input_init
      procedure, non_overridable :: destroy => ocean_data_input_destroy
      procedure, non_overridable :: enter_data => ocean_data_input_enter_data
      procedure, non_overridable :: exit_data => ocean_data_input_exit_data
      procedure, non_overridable :: bytes => ocean_data_input_bytes
   end type ocean_data_input_t