output_operators_interp Module


Uses

  • module~~output_operators_interp~~UsesGraph module~output_operators_interp output_operators_interp yaml_settings yaml_settings module~output_operators_interp->yaml_settings module~field_manager field_manager module~output_operators_interp->module~field_manager module~output_operators_base output_operators_base module~output_operators_interp->module~output_operators_base module~output_manager_core output_manager_core module~output_operators_interp->module~output_manager_core iso_fortran_env iso_fortran_env module~field_manager->iso_fortran_env module~output_operators_base->module~field_manager module~output_operators_base->module~output_manager_core yaml_types yaml_types module~output_operators_base->yaml_types module~output_manager_core->yaml_settings module~output_manager_core->module~field_manager module~output_manager_core->iso_fortran_env

Used by

  • module~~output_operators_interp~~UsedByGraph module~output_operators_interp output_operators_interp module~output_operators_library output_operators_library module~output_operators_library->module~output_operators_interp module~output_manager output_manager module~output_manager->module~output_operators_library

Contents


Derived Types

type, public, extends(type_base_operator) :: type_interp_operator

Components

TypeVisibility AttributesNameInitial
class(type_base_operator), public, pointer:: previous=> null()
character(len=string_length), public :: dimension
character(len=string_length), public :: target_dimension_name
character(len=string_length), public :: target_long_name
character(len=string_length), public :: target_standard_name
real(kind=rk), public, allocatable:: target_coordinates(:)
type(type_field), public, pointer:: source_field=> null()
type(type_field), public, pointer:: offset_field=> null()
integer, public :: out_of_bounds_treatment =1
real(kind=rk), public :: offset_scale =1._rk
type(type_dimension), public, pointer:: target_dimension=> null()

Type-Bound Procedures

procedure, public :: apply_all => operator_apply_all
procedure, public :: configure
procedure, public :: apply

type, private, extends(type_operator_result) :: type_result

Components

TypeVisibility AttributesNameInitial
class(type_output_variable_settings), public, pointer:: settings=> null()
character(len=string_length), public :: output_name =''
logical, public :: is_coordinate =.false.
type(type_nd_data_pointer), public :: data
type(type_output_field_pointer), public, allocatable:: coordinates(:)
class(type_base_output_field), public, pointer:: next=> null()
class(type_base_operator), public, pointer:: operator=> null()
class(type_base_output_field), public, pointer:: source=> null()
real(kind=rk), public :: result_0d
real(kind=rk), public, allocatable:: result_1d(:)
real(kind=rk), public, allocatable:: result_2d(:,:)
real(kind=rk), public, allocatable:: result_3d(:,:,:)
type(type_dimension_pointer), public, allocatable:: dimensions(:)
integer, public :: idim =-1
integer, public :: idatadim =-1
class(type_base_output_field), public, pointer:: source_coordinate=> null()
class(type_base_output_field), public, pointer:: offset=> null()
integer, public :: out_of_bounds_treatment =1
real(kind=rk), public :: out_of_bounds_value
real(kind=rk), public, allocatable:: target_coordinates(:)
real(kind=rk), public :: offset_scale =1._rk

Type-Bound Procedures

procedure, public :: new_data
procedure, public :: get_metadata
procedure, public :: fill
procedure, public :: flag_as_required
procedure, public :: before_save
procedure, public :: get_field

type, private, extends(type_list_populator) :: type_coordinate_list_populator

Components

TypeVisibility AttributesNameInitial
class(type_interp_operator), public, pointer:: operator=> null()

Type-Bound Procedures

procedure, public :: set_length => coordinate_list_set_length
procedure, public :: create => coordinate_list_create_element

Functions

private function apply(self, source) result(output_field)

Arguments

Type IntentOptional AttributesName
class(type_interp_operator), intent(inout), target:: self
class(type_base_output_field), target:: source

Return Value class(type_base_output_field), pointer

private recursive function get_field(self, field) result(output_field)

Arguments

Type IntentOptional AttributesName
class(type_result), intent(in) :: self
type(type_field), target:: field

Return Value class(type_base_output_field), pointer


Subroutines

private subroutine configure(self, settings, field_manager)

Verify target dimension has been registered with field manager

Arguments

Type IntentOptional AttributesName
class(type_interp_operator), intent(inout), target:: self
class(type_settings), intent(inout) :: settings
type(type_field_manager), intent(inout) :: field_manager

private recursive subroutine coordinate_list_set_length(self, n)

Arguments

Type IntentOptional AttributesName
class(type_coordinate_list_populator), intent(inout) :: self
integer, intent(in) :: n

private recursive subroutine coordinate_list_create_element(self, index, item)

Arguments

Type IntentOptional AttributesName
class(type_coordinate_list_populator), intent(inout) :: self
integer, intent(in) :: index
type(type_list_item), intent(inout) :: item

private recursive subroutine flag_as_required(self, required)

Arguments

Type IntentOptional AttributesName
class(type_result), intent(inout) :: self
logical, intent(in) :: required

private recursive subroutine before_save(self)

Arguments

Type IntentOptional AttributesName
class(type_result), intent(inout) :: self

private subroutine interp(x, xp, fp, f, out_of_bounds_treatment, out_of_bounds_value)

Arguments

Type IntentOptional AttributesName
real(kind=rk), intent(in) :: x(:)
real(kind=rk), intent(in) :: xp(:)
real(kind=rk), intent(in) :: fp(:)
real(kind=rk), intent(out) :: f(:)
integer, intent(in) :: out_of_bounds_treatment
real(kind=rk), intent(in) :: out_of_bounds_value