type_settings Derived Type

type, public, extends(type_value) :: type_settings


Inherits

type~~type_settings~~InheritsGraph type~type_settings type_settings type_yaml_dictionary type_yaml_dictionary type~type_settings->type_yaml_dictionary backing_store type~type_dictionary_populator type_dictionary_populator type~type_settings->type~type_dictionary_populator populator type~type_key_value_pair~2 type_key_value_pair type~type_settings->type~type_key_value_pair~2 first type~type_value type_value type~type_settings->type~type_value type~type_key_value_pair~2->type~type_key_value_pair~2 next type~type_settings_node type_settings_node type~type_key_value_pair~2->type~type_settings_node type~type_value->type~type_value parent type_yaml_node type_yaml_node type~type_value->type_yaml_node backing_store_node type~type_settings_node->type~type_value value

Contents


Components

TypeVisibility AttributesNameInitial
character(len=:), public, allocatable:: long_name
character(len=:), public, allocatable:: description
class(type_yaml_node), public, pointer:: backing_store_node=> null()
character(len=:), public, allocatable:: path
class(type_value), public, pointer:: parent=> null()
class(type_yaml_dictionary), public, pointer:: backing_store=> null()
class(type_dictionary_populator), public, pointer:: populator=> null()
type(type_key_value_pair), public, pointer:: first=> null()

Type-Bound Procedures

procedure, public :: create_child

  • private recursive function create_child(self) result(child)

    Arguments

    Type IntentOptional AttributesName
    class(type_value), intent(in) :: self

    Return Value class(type_settings), pointer

procedure, public :: write_schema => settings_write_schema

  • private recursive subroutine settings_write_schema(self, unit, name, indent)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(in) :: self
    integer, intent(in) :: unit
    character(len=*), intent(in) :: name
    integer, intent(in) :: indent

procedure, public :: write_yaml => settings_write_yaml

  • private recursive subroutine settings_write_yaml(self, unit, indent, comment_depth, header)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(in) :: self
    integer, intent(in) :: unit
    integer, intent(in) :: indent
    integer, intent(in) :: comment_depth
    logical, intent(in) :: header

procedure, public :: get_maximum_depth => settings_get_maximum_depth

  • private recursive function settings_get_maximum_depth(self, name) result(maxdepth)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(in) :: self
    character(len=*), intent(in) :: name

    Return Value integer

procedure, public :: get_yaml_style => settings_get_yaml_style

procedure, public :: load

  • private subroutine load(self, path, unit)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    character(len=*), intent(in) :: path
    integer, intent(in) :: unit

procedure, public :: save

  • private subroutine save(self, path, unit)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(in) :: self
    character(len=*), intent(in) :: path
    integer, intent(in) :: unit

procedure, public :: write_schema_file

  • private subroutine write_schema_file(self, path, unit, version)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(in) :: self
    character(len=*), intent(in) :: path
    integer, intent(in) :: unit
    character(len=*), intent(in) :: version

procedure, public :: get_real2

  • private subroutine get_real2(self, target, name, long_name, units, default, minimum, maximum, description)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    real(kind=rk), target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in) :: units
    real(kind=rk), intent(in), optional :: default
    real(kind=rk), intent(in), optional :: minimum
    real(kind=rk), intent(in), optional :: maximum
    character(len=*), intent(in), optional :: description

procedure, public :: get_integer2

  • private subroutine get_integer2(self, target, name, long_name, units, default, minimum, maximum, options, description, value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    integer, target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in), optional :: units
    integer, intent(in), optional :: default
    integer, intent(in), optional :: minimum
    integer, intent(in), optional :: maximum
    type(type_option), intent(in), optional :: options(:)
    character(len=*), intent(in), optional :: description
    integer, intent(out), optional :: value

procedure, public :: get_logical2

  • private subroutine get_logical2(self, target, name, long_name, default, description, value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    logical, target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    logical, intent(in), optional :: default
    character(len=*), intent(in), optional :: description
    logical, intent(inout), optional :: value

procedure, public :: get_string2

  • private subroutine get_string2(self, target, name, long_name, units, default, description, value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    character(len=*), target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in), optional :: units
    character(len=*), intent(in), optional :: default
    character(len=*), intent(in), optional :: description
    character(len=:), optional allocatable:: value

procedure, public :: get_integer

  • private function get_integer(self, name, long_name, units, default, minimum, maximum, options, description) result(value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in), optional :: units
    integer, intent(in), optional :: default
    integer, intent(in), optional :: minimum
    integer, intent(in), optional :: maximum
    type(type_option), intent(in), optional :: options(:)
    character(len=*), intent(in), optional :: description

    Return Value integer

procedure, public :: get_logical

  • private function get_logical(self, name, long_name, default, description) result(value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    logical, intent(in), optional :: default
    character(len=*), intent(in), optional :: description

    Return Value logical

procedure, public :: get_string

  • private function get_string(self, name, long_name, units, default, description) result(value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in), optional :: units
    character(len=*), intent(in), optional :: default
    character(len=*), intent(in), optional :: description

    Return Value character(len=:), allocatable

procedure, public :: get_child

  • private recursive function get_child(self, name, long_name, treat_as_path, populator) result(child)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout), target:: self
    character(len=*), intent(in) :: name
    character(len=*), intent(in), optional :: long_name
    logical, intent(in), optional :: treat_as_path
    class(type_dictionary_populator), optional target:: populator

    Return Value class(type_settings), pointer

procedure, public :: get_list

  • private recursive subroutine get_list(self, name, populator, long_name, treat_as_path)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout), target:: self
    character(len=*), intent(in) :: name
    class(type_list_populator), target:: populator
    character(len=*), intent(in), optional :: long_name
    logical, intent(in), optional :: treat_as_path

procedure, public :: get_node

  • private recursive function get_node(self, name, treat_as_path, istart) result(pair)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout), target:: self
    character(len=*), intent(in) :: name
    logical, intent(in), optional :: treat_as_path
    integer, intent(out), optional :: istart

    Return Value type(type_key_value_pair), pointer

procedure, public :: check_all_used

  • private function check_all_used(self)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(in) :: self

    Return Value logical

generic, public :: get => get_real2, get_integer2, get_logical2, get_string2

  • private subroutine get_real2(self, target, name, long_name, units, default, minimum, maximum, description)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    real(kind=rk), target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in) :: units
    real(kind=rk), intent(in), optional :: default
    real(kind=rk), intent(in), optional :: minimum
    real(kind=rk), intent(in), optional :: maximum
    character(len=*), intent(in), optional :: description
  • private subroutine get_integer2(self, target, name, long_name, units, default, minimum, maximum, options, description, value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    integer, target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in), optional :: units
    integer, intent(in), optional :: default
    integer, intent(in), optional :: minimum
    integer, intent(in), optional :: maximum
    type(type_option), intent(in), optional :: options(:)
    character(len=*), intent(in), optional :: description
    integer, intent(out), optional :: value
  • private subroutine get_logical2(self, target, name, long_name, default, description, value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    logical, target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    logical, intent(in), optional :: default
    character(len=*), intent(in), optional :: description
    logical, intent(inout), optional :: value
  • private subroutine get_string2(self, target, name, long_name, units, default, description, value)

    Arguments

    Type IntentOptional AttributesName
    class(type_settings), intent(inout) :: self
    character(len=*), target:: target
    character(len=*), intent(in) :: name
    character(len=*), intent(in) :: long_name
    character(len=*), intent(in), optional :: units
    character(len=*), intent(in), optional :: default
    character(len=*), intent(in), optional :: description
    character(len=:), optional allocatable:: value

procedure, public :: populate => settings_populate

procedure, public :: finalize

  • private subroutine finalize(self)

    Arguments

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