finer_option_t Module

Option class definition.


Uses

  • module~~finer_option_t~~UsesGraph module~finer_option_t finer_option_t module~finer_backend finer_backend module~finer_option_t->module~finer_backend penf penf module~finer_option_t->penf stringifor stringifor module~finer_option_t->stringifor module~finer_backend->penf

Used by

  • module~~finer_option_t~~UsedByGraph module~finer_option_t finer_option_t module~finer_section_t finer_section_t module~finer_section_t->module~finer_option_t module~finer_file_ini_t finer_file_ini_t module~finer_file_ini_t->module~finer_option_t module~finer_file_ini_t->module~finer_section_t module~finer finer module~finer->module~finer_file_ini_t program~finer_test_load finer_test_load program~finer_test_load->module~finer program~finer_test_update_option finer_test_update_option program~finer_test_update_option->module~finer program~finer_test_get finer_test_get program~finer_test_get->module~finer program~autotest autotest program~autotest->module~finer program~finer_test_parse finer_test_parse program~finer_test_parse->module~finer

Contents


Interfaces

public interface option

Overload option name with a function returning a new (initiliazed) option instance.

  • private elemental function new_option(option_name, option_values, option_comment)

    Return a new (initiliazed) option instance.

    Arguments

    TypeIntentOptionalAttributesName
    character, intent(in), optional :: option_name

    Option name.

    character, intent(in), optional :: option_values

    Option values.

    character, intent(in), optional :: option_comment

    Option comment.

    Return Value type(option)

    New (initiliazed) option instance.


Derived Types

type, public :: option

Option data of sections.

Components

TypeVisibilityAttributesNameInitial
type(string), private :: ocomm

Eventual option inline comment.

type(string), private :: oname

Option name.

type(string), private :: ovals

Option values.

Constructor

Overload option name with a function returning a new (initiliazed) option instance.

private elemental function new_option(option_name, option_values, option_comment)

Return a new (initiliazed) option instance.

Type-Bound Procedures

procedure, private, pass(lhs) :: assign_option

Assignment overloading.

generic, public :: assignment(=) => assign_option

Assignment overloading.

procedure, public, pass(self) :: count_values

Counting option value(s).

procedure, public, pass(self) :: free

Free dynamic memory.

generic, public :: get => get_option, get_a_option

Get option value (scalar). Get option value (array).

procedure, private, pass(self) :: get_a_option

Get option value (array).

procedure, private, pass(self) :: get_option

Get option value (scalar).

procedure, public, pass(self) :: get_pairs

Return option name/values pairs.

procedure, public, pass(self) :: name_len

Return option name length.

generic, public :: operator(==) => option_eq_string, option_eq_character

Equal operator overloading.

procedure, private, pass(lhs) :: option_eq_character

Equal to character logical operator.

procedure, private, pass(lhs) :: option_eq_string

Equal to string logical operator.

procedure, public, pass(self) :: parse

Parse option data.

procedure, private, pass(self) :: parse_comment

Parse option inline comment.

procedure, private, pass(self) :: parse_name

Parse option name.

procedure, private, pass(self) :: parse_value

Parse option values.

procedure, public, pass(self) :: print => print_option

Pretty print data.

procedure, public, pass(self) :: save => save_option

Save data.

generic, public :: set => set_option, set_a_option

Set option value (scalar). Set option value (array).

procedure, private, pass(self) :: set_a_option

Set option value (array).

procedure, private, pass(self) :: set_option

Set option value (scalar).

procedure, public, pass(self) :: values_len

Return option values length.


Functions

private elemental function count_values(self, delimiter) result(Nv)

Get the number of values of option data.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

character, intent(in), optional :: delimiter

Delimiter used for separating values.

Return Value integer(kind=I4P)

Number of values.

private elemental function name_len(self) result(length)

Return option name length.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

Return Value integer

Option name length.

private elemental function new_option(option_name, option_values, option_comment)

Return a new (initiliazed) option instance.

Arguments

TypeIntentOptionalAttributesName
character, intent(in), optional :: option_name

Option name.

character, intent(in), optional :: option_values

Option values.

character, intent(in), optional :: option_comment

Option comment.

Return Value type(option)

New (initiliazed) option instance.

private elemental function option_eq_character(lhs, rhs) result(is_it)

Equal to character logical operator.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: lhs

Left hand side.

character(kind=CK,len=*), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function option_eq_string(lhs, rhs) result(is_it)

Equal to string logical operator.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: lhs

Left hand side.

type(string), intent(in) :: rhs

Right hand side.

Return Value logical

Opreator test result.

private elemental function values_len(self) result(length)

Return option values length.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

Return Value integer

Option values length.


Subroutines

private elemental subroutine assign_option(lhs, rhs)

Assignment between two options.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: lhs

Left hand side.

type(option), intent(in) :: rhs

Rigth hand side.

private elemental subroutine free(self)

Free dynamic memory.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

private subroutine get_a_option(self, val, delimiter, error)

Get option data values (array).

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

class(*), intent(inout) :: val(1:)

Value.

character, intent(in), optional :: delimiter

Delimiter used for separating values.

integer(kind=I4P), intent(out), optional :: error

Error code.

private subroutine get_option(self, val, error)

for getting option data value (scalar).

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

class(*), intent(inout) :: val

Value.

integer(kind=I4P), intent(out), optional :: error

Error code.

private pure subroutine get_pairs(self, pairs)

Return option name/values pairs.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

character(len=:), intent(out), allocatable:: pairs(:)

Option name/values pairs.

private elemental subroutine parse(self, sep, source, error)

Parse option data from a source string.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

character, intent(in) :: sep

Separator of option name/value.

type(string), intent(inout) :: source

String containing option data.

integer(kind=I4P), intent(out) :: error

Error code.

private elemental subroutine parse_comment(self)

Parse option inline comment trimming it out from pure value string.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

private elemental subroutine parse_name(self, sep, source, error)

Parse option name from a source string.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

character, intent(in) :: sep

Separator of option name/value.

type(string), intent(in) :: source

String containing option data.

integer(kind=I4P), intent(out) :: error

Error code.

private elemental subroutine parse_value(self, sep, source, error)

Parse option value from a source string.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

character, intent(in) :: sep

Separator of option name/value.

type(string), intent(in) :: source

String containing option data.

integer(kind=I4P), intent(out) :: error

Error code.

private subroutine print_option(self, unit, retain_comments, pref, iostat, iomsg)

Print data with a pretty format.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

integer(kind=I4P), intent(in) :: unit

Logic unit.

logical, intent(in) :: retain_comments

Flag for retaining eventual comments.

character, intent(in), optional :: pref

Prefixing string.

integer(kind=I4P), intent(out), optional :: iostat

IO error.

character, intent(out), optional :: iomsg

IO error message.

private subroutine save_option(self, unit, retain_comments, iostat, iomsg)

Save data.

Arguments

TypeIntentOptionalAttributesName
class(option), intent(in) :: self

Option data.

integer(kind=I4P), intent(in) :: unit

Logic unit.

logical, intent(in) :: retain_comments

Flag for retaining eventual comments.

integer(kind=I4P), intent(out), optional :: iostat

IO error.

character, intent(out), optional :: iomsg

IO error message.

private pure subroutine set_a_option(self, val, delimiter)

Set option data value (array).

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

class(*), intent(in) :: val(1:)

Value.

character, intent(in), optional :: delimiter

Delimiter used for separating values.

private pure subroutine set_option(self, val)

Set option data value (scalar).

Arguments

TypeIntentOptionalAttributesName
class(option), intent(inout) :: self

Option data.

class(*), intent(in) :: val

Value.