output_manager_core Module


Uses

  • module~~output_manager_core~~UsesGraph module~output_manager_core output_manager_core iso_fortran_env iso_fortran_env module~output_manager_core->iso_fortran_env yaml_settings yaml_settings module~output_manager_core->yaml_settings module~field_manager field_manager module~output_manager_core->module~field_manager module~field_manager->iso_fortran_env

Used by

  • module~~output_manager_core~~UsedByGraph module~output_manager_core output_manager_core module~text_output text_output module~text_output->module~output_manager_core module~netcdf_output netcdf_output module~netcdf_output->module~output_manager_core module~output_operators_slice output_operators_slice module~output_operators_slice->module~output_manager_core module~output_operators_base output_operators_base module~output_operators_slice->module~output_operators_base module~output_operators_base->module~output_manager_core module~output_operators_time_average output_operators_time_average module~output_operators_time_average->module~output_manager_core module~output_operators_time_average->module~output_operators_base module~output_operators_library output_operators_library module~output_operators_library->module~output_manager_core module~output_operators_library->module~output_operators_slice module~output_operators_library->module~output_operators_base module~output_operators_library->module~output_operators_time_average module~output_operators_interp output_operators_interp module~output_operators_library->module~output_operators_interp module~output_operators_interp->module~output_manager_core module~output_operators_interp->module~output_operators_base module~output_manager output_manager module~output_manager->module~output_manager_core module~output_manager->module~text_output module~output_manager->module~netcdf_output module~output_manager->module~output_operators_slice module~output_manager->module~output_operators_time_average module~output_manager->module~output_operators_library

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: max_path =256
integer, public, parameter:: time_method_none =0
integer, public, parameter:: time_method_instantaneous =1
integer, public, parameter:: time_method_mean =2
integer, public, parameter:: time_method_integrated =3
integer, public, parameter:: time_unit_none =0
integer, public, parameter:: time_unit_second =1
integer, public, parameter:: time_unit_hour =2
integer, public, parameter:: time_unit_day =3
integer, public, parameter:: time_unit_month =4
integer, public, parameter:: time_unit_year =5
integer, public, parameter:: time_unit_dt =6
integer, public, parameter:: time_from_list =7
integer, public, parameter:: rk =kind(_ONE_)
class(type_host), public, pointer, save:: host=> null()

Abstract Interfaces

abstract interface

  • private subroutine host_julian_day(self, yyyy, mm, dd, julian)

    Arguments

    Type IntentOptional AttributesName
    class(type_host), intent(in) :: self
    integer, intent(in) :: yyyy
    integer, intent(in) :: mm
    integer, intent(in) :: dd
    integer, intent(out) :: julian

abstract interface

  • private subroutine host_calendar_date(self, julian, yyyy, mm, dd)

    Arguments

    Type IntentOptional AttributesName
    class(type_host), intent(in) :: self
    integer, intent(in) :: julian
    integer, intent(out) :: yyyy
    integer, intent(out) :: mm
    integer, intent(out) :: dd

Derived Types

type, public, abstract :: type_host

Type-Bound Procedures

procedure(host_julian_day), public :: julian_day
procedure(host_calendar_date), public :: calendar_date
procedure, public :: fatal_error => host_fatal_error
procedure, public :: log_message => host_log_message

Components

TypeVisibility AttributesNameInitial
integer, public :: time_method =time_method_instantaneous
class(type_base_operator), public, pointer:: final_operator=> null()

Type-Bound Procedures

procedure, public :: initialize => output_variable_settings_initialize

type, public :: type_output_item

Components

TypeVisibility AttributesNameInitial
class(type_output_variable_settings), public, pointer:: settings=> null()
character(len=string_length), public :: name =''
character(len=string_length), public :: prefix =''
character(len=string_length), public :: postfix =''
integer, public :: output_level =output_level_default
class(type_category_node), public, pointer:: category=> null()
type(type_field), public, pointer:: field=> null()
type(type_output_item), public, pointer:: next=> null()

type, private :: type_output_field_pointer

Components

TypeVisibility AttributesNameInitial
class(type_base_output_field), public, pointer:: p=> null()

type, public :: type_base_output_field

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()

Type-Bound Procedures

procedure, public :: new_data => base_field_new_data
procedure, public :: before_save => base_field_before_save
procedure, public :: flag_as_required => base_field_flag_as_required
procedure, public :: get_metadata => base_field_get_metadata
procedure, public :: get_field => base_field_get_field

type, public, extends(type_base_output_field) :: type_output_field

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()
type(type_field), public, pointer:: source=> null()

Type-Bound Procedures

procedure, public :: new_data => base_field_new_data
procedure, public :: before_save => base_field_before_save
procedure, public :: get_field => base_field_get_field
procedure, public :: flag_as_required => field_flag_as_required
procedure, public :: get_metadata => field_get_metadata

type, public :: type_file

Components

TypeVisibility AttributesNameInitial
type(type_field_manager), public, pointer:: field_manager=> null()
character(len=max_path), public :: path =''
character(len=max_path), public :: postfix =''
character(len=string_length), public :: title =''
integer, public :: time_unit =time_unit_none
integer, public :: time_step =0
integer, public :: first_index =0
integer, public :: next_julian =-1
integer, public :: next_seconds =-1
integer, public :: first_julian =-1
integer, public :: first_seconds =-1
integer, public :: last_julian =huge(1)
integer, public :: last_seconds =0
type(type_output_item), public, pointer:: first_item=> null()
class(type_base_output_field), public, pointer:: first_field=> null()
class(type_file), public, pointer:: next=> null()

Type-Bound Procedures

procedure, public :: configure
procedure, public :: initialize
procedure, public :: save
procedure, public :: finalize
procedure, public :: create_settings
procedure, public :: is_dimension_used
procedure, public :: append_item

type, public :: type_base_operator

Components

TypeVisibility AttributesNameInitial
class(type_base_operator), public, pointer:: previous=> null()

Type-Bound Procedures

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

Functions

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

Arguments

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

Return Value class(type_base_output_field), pointer

public function wrap_field(field, allow_unregistered) result(output_field)

Arguments

Type IntentOptional AttributesName
type(type_field), target:: field
logical, intent(in) :: allow_unregistered

Return Value class(type_output_field), pointer

private function create_settings(self) result(settings)

Arguments

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

Return Value class(type_output_variable_settings), pointer

private function is_dimension_used(self, dim)

Arguments

Type IntentOptional AttributesName
class(type_file), intent(inout) :: self
type(type_dimension), target:: dim

Return Value logical

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

Arguments

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

Return Value class(type_base_output_field), pointer

private recursive function operator_apply_all(self, source) result(output_field)

Arguments

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

Return Value class(type_base_output_field), pointer


Subroutines

private recursive subroutine base_field_flag_as_required(self, required)

Arguments

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

private recursive subroutine base_field_get_metadata(self, long_name, units, dimensions, minimum, maximum, fill_value, standard_name, path, attributes)

Arguments

Type IntentOptional AttributesName
class(type_base_output_field), intent(in) :: self
character(len=:), intent(out), optional allocatable:: long_name
character(len=:), intent(out), optional allocatable:: units
type(type_dimension_pointer), intent(out), optional allocatable:: dimensions(:)
real(kind=rk), intent(out), optional :: minimum
real(kind=rk), intent(out), optional :: maximum
real(kind=rk), intent(out), optional :: fill_value
character(len=:), intent(out), optional allocatable:: standard_name
character(len=:), intent(out), optional allocatable:: path
type(type_attributes), intent(out), optional :: attributes

private recursive subroutine base_field_new_data(self)

Arguments

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

private recursive subroutine base_field_before_save(self)

Arguments

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

private recursive subroutine field_flag_as_required(self, required)

Arguments

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

private recursive subroutine field_get_metadata(self, long_name, units, dimensions, minimum, maximum, fill_value, standard_name, path, attributes)

Arguments

Type IntentOptional AttributesName
class(type_output_field), intent(in) :: self
character(len=:), intent(out), optional allocatable:: long_name
character(len=:), intent(out), optional allocatable:: units
type(type_dimension_pointer), intent(out), optional allocatable:: dimensions(:)
real(kind=rk), intent(out), optional :: minimum
real(kind=rk), intent(out), optional :: maximum
real(kind=rk), intent(out), optional :: fill_value
character(len=:), intent(out), optional allocatable:: standard_name
character(len=:), intent(out), optional allocatable:: path
type(type_attributes), intent(out), optional :: attributes

private subroutine configure(self, settings)

Arguments

Type IntentOptional AttributesName
class(type_file), intent(inout) :: self
class(type_settings), intent(inout) :: settings

private subroutine initialize(self)

Arguments

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

private subroutine save(self, julianday, secondsofday, microseconds)

Arguments

Type IntentOptional AttributesName
class(type_file), intent(inout) :: self
integer, intent(in) :: julianday
integer, intent(in) :: secondsofday
integer, intent(in) :: microseconds

private subroutine finalize(self)

Arguments

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

public subroutine write_time_string(jul, secs, timestr)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: jul
integer, intent(in) :: secs
character(len=*), intent(out) :: timestr

public subroutine read_time_string(timestr, jul, secs, success)

Arguments

Type IntentOptional AttributesName
character(len=19) :: timestr
integer, intent(out) :: jul
integer, intent(out) :: secs
logical, intent(out) :: success

private subroutine host_fatal_error(self, location, error)

Arguments

Type IntentOptional AttributesName
class(type_host), intent(in) :: self
character(len=*), intent(in) :: location
character(len=*), intent(in) :: error

private subroutine host_log_message(self, message)

Arguments

Type IntentOptional AttributesName
class(type_host), intent(in) :: self
character(len=*), intent(in) :: message

private subroutine append_item(self, item)

Arguments

Type IntentOptional AttributesName
class(type_file), intent(inout) :: self
type(type_output_item), target:: item

private subroutine output_variable_settings_initialize(self, settings, parent)

Arguments

Type IntentOptional AttributesName
class(type_output_variable_settings), intent(inout) :: self
class(type_settings), intent(inout) :: settings
class(type_output_variable_settings), intent(in), optional :: parent

private subroutine operator_configure(self, settings, field_manager)

Arguments

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