fury_system_abstract128 Module

module~~fury_system_abstract128~~UsesGraph module~fury_system_abstract128 fury_system_abstract128 module~fury_uom_reference128 fury_uom_reference128 module~fury_uom_reference128->module~fury_system_abstract128 module~fury_uom128 fury_uom128 module~fury_uom_reference128->module~fury_uom128 module~penf~3 penf module~penf~3->module~fury_system_abstract128 module~penf~3->module~fury_uom_reference128 module~fury_qreal128 fury_qreal128 module~penf~3->module~fury_qreal128 module~stringifor stringifor module~penf~3->module~stringifor module~penf~3->module~fury_uom128 module~fury_uom_symbol128 fury_uom_symbol128 module~penf~3->module~fury_uom_symbol128 module~fury_uom_converter fury_uom_converter module~penf~3->module~fury_uom_converter module~stringifor_string_t stringifor_string_t module~penf~3->module~stringifor_string_t module~befor64 befor64 module~penf~3->module~befor64 module~befor64_pack_data_m~2 befor64_pack_data_m module~penf~3->module~befor64_pack_data_m~2 module~fury_qreal128->module~fury_system_abstract128 module~stringifor->module~fury_system_abstract128 module~stringifor->module~fury_uom_reference128 module~stringifor->module~fury_qreal128 module~stringifor->module~fury_uom128 module~stringifor->module~fury_uom_symbol128 module~fury_uom128->module~fury_system_abstract128 module~fury_uom128->module~fury_qreal128 module~fury_uom_symbol128->module~fury_uom_reference128 module~fury_uom_symbol128->module~fury_uom128 iso_fortran_env iso_fortran_env iso_fortran_env->module~fury_uom_reference128 iso_fortran_env->module~fury_qreal128 iso_fortran_env->module~fury_uom128 iso_fortran_env->module~fury_uom_symbol128 module~penf_stringify~3 penf_stringify iso_fortran_env->module~penf_stringify~3 module~fury_uom_converter->module~fury_uom_reference128 module~fury_uom_converter->module~fury_uom128 module~fury_uom_converter->module~fury_uom_symbol128 module~penf_global_parameters_variables penf_global_parameters_variables module~penf_global_parameters_variables->module~penf~3 module~penf_b_size~4 penf_b_size module~penf_global_parameters_variables->module~penf_b_size~4 module~penf_global_parameters_variables->module~penf_stringify~3 module~penf_b_size~4->module~penf~3 module~penf_b_size~4->module~penf_stringify~3 module~penf_stringify~3->module~penf~3 module~stringifor_string_t->module~stringifor module~befor64->module~stringifor_string_t module~befor64_pack_data_m~2->module~befor64
Help

FURY definition of abstract units system with float128 kind.

FURY implementation of abstract units system with generic kind.

Used By

module~~fury_system_abstract128~~UsedByGraph module~fury_system_abstract128 fury_system_abstract128 module~fury fury module~fury_system_abstract128->module~fury module~fury_system_si128 fury_system_si128 module~fury_system_abstract128->module~fury_system_si128 program~fury_test_qreal_div_mixed fury_test_qreal_div_mixed module~fury->program~fury_test_qreal_div_mixed program~fury_test_qreal_eq fury_test_qreal_eq module~fury->program~fury_test_qreal_eq program~fury_test_uom_div fury_test_uom_div module~fury->program~fury_test_uom_div program~fury_test_qreal_eq_mixed fury_test_qreal_eq_mixed module~fury->program~fury_test_qreal_eq_mixed program~fury_test_uom_mul fury_test_uom_mul module~fury->program~fury_test_uom_mul program~fury_test_qreal_mul fury_test_qreal_mul module~fury->program~fury_test_qreal_mul program~fury_test_bolt32 fury_test_bolt32 module~fury->program~fury_test_bolt32 program~fury_test_uom_sub_failure fury_test_uom_sub_failure module~fury->program~fury_test_uom_sub_failure program~fury_test_qreal_mul_mixed fury_test_qreal_mul_mixed module~fury->program~fury_test_qreal_mul_mixed program~fury_test_bolt64 fury_test_bolt64 module~fury->program~fury_test_bolt64 program~fury_test_qreal_not_eq fury_test_qreal_not_eq module~fury->program~fury_test_qreal_not_eq program~fury_test_system_si fury_test_system_si module~fury->program~fury_test_system_si program~fury_test_uom_sub fury_test_uom_sub module~fury->program~fury_test_uom_sub program~fury_test_qreal_not_eq_mixed fury_test_qreal_not_eq_mixed module~fury->program~fury_test_qreal_not_eq_mixed program~fury_test_qreal_sub_failure fury_test_qreal_sub_failure module~fury->program~fury_test_qreal_sub_failure program~fury_test_qreal_pow fury_test_qreal_pow module~fury->program~fury_test_qreal_pow program~fury_test_uom_aliases fury_test_uom_aliases module~fury->program~fury_test_uom_aliases program~fury_test_qreal_sub fury_test_qreal_sub module~fury->program~fury_test_qreal_sub program~fury_test_uom_parse_failure fury_test_uom_parse_failure module~fury->program~fury_test_uom_parse_failure program~fury_test_qreal_add_aliases_failure fury_test_qreal_add_aliases_failure module~fury->program~fury_test_qreal_add_aliases_failure program~fury_test_qreal_add_failure fury_test_qreal_add_failure module~fury->program~fury_test_qreal_add_failure module~dbm_to_mw_converter dBm_to_mW_converter module~fury->module~dbm_to_mw_converter program~fury_test_qreal_sub_mixed fury_test_qreal_sub_mixed module~fury->program~fury_test_qreal_sub_mixed program~fury_test_qreal_add_mixed fury_test_qreal_add_mixed module~fury->program~fury_test_qreal_add_mixed program~fury_test_qreal_add fury_test_qreal_add module~fury->program~fury_test_qreal_add program~fury_test_qreal_sub_mixed_failure fury_test_qreal_sub_mixed_failure module~fury->program~fury_test_qreal_sub_mixed_failure program~fury_test_qreal_add_mixed_failure fury_test_qreal_add_mixed_failure module~fury->program~fury_test_qreal_add_mixed_failure program~fury_test_qreal_aliases fury_test_qreal_aliases module~fury->program~fury_test_qreal_aliases program~fury_test_uom_add fury_test_uom_add module~fury->program~fury_test_uom_add program~fury_test_qreal_assign fury_test_qreal_assign module~fury->program~fury_test_qreal_assign program~fury_test_uom_add_failure fury_test_uom_add_failure module~fury->program~fury_test_uom_add_failure program~fury_test_uom_assign fury_test_uom_assign module~fury->program~fury_test_uom_assign program~fury_test_qreal_conversions_complex fury_test_qreal_conversions_complex module~fury->program~fury_test_qreal_conversions_complex program~fury_test_qreal_conversions_si fury_test_qreal_conversions_si module~fury->program~fury_test_qreal_conversions_si program~fury_test_uom_pow fury_test_uom_pow module~fury->program~fury_test_uom_pow program~fury_test_qreal_conversions_simple fury_test_qreal_conversions_simple module~fury->program~fury_test_qreal_conversions_simple program~fury_test_uom_assign_failure fury_test_uom_assign_failure module~fury->program~fury_test_uom_assign_failure program~fury_test_qreal_div fury_test_qreal_div module~fury->program~fury_test_qreal_div module~fury_system_si128->module~fury module~dbm_to_mw_converter->program~fury_test_qreal_conversions_complex
Help


Abstract Interfaces

abstract interface

Initialize the units system.

  • private subroutine initialize_interface(self, acronym)

    Initialize the units system.

    Arguments

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

    The units system.

    character(len=*), intent(in), optional :: acronym

    Units system acronym, e.g. "SI" for the International System.


Derived Types

type, public, abstract :: system_abstract

Abstract units system class.

Components

TypeVisibility AttributesNameInitial
character(len=:), public, allocatable:: acronym

Units system acronym, e.g. "SI" for the International System.

type(qreal), public, allocatable:: constants(:)

Defined constants.

integer(kind=I_P), public :: constants_number =0_I_P

Number of constants.

type(uom), public, allocatable:: units(:)

Defined units.

integer(kind=I_P), public :: units_number =0_I_P

Number of units.

type(uom_reference), public, allocatable:: prefixes(:)

Prefixes.

integer(kind=I_P), public :: prefixes_number =0_I_P

Number of prefixes.

Type-Bound Procedures

procedure(initialize_interface), public, pass(self) :: initialize

Initialize the units system.

generic, public :: add_constant => add_constant_qreal

Add a new constant.

generic, public :: add_prefix => add_prefix_string, add_prefix_uom_reference

Add a new prefix.

generic, public :: add_unit => add_unit_string, add_unit_uom

Add a new unit.

procedure, public, pass(self) :: const

Return an instance of the queried constant (if defined).

procedure, public, pass(self) :: free

Free the units system.

procedure, public, pass(self) :: list_constants

Return the list of defined constants.

procedure, public, pass(self) :: list_prefixes

Return the list of defined prefixes.

procedure, public, pass(self) :: list_units

Return the list of defined units.

procedure, public, pass(self) :: unit

Return an instance of the queried unit (if defined).

generic, public :: qunit => qunit_qreal

Return an instance of quantity with the queried unit.

procedure, private, pass(self) :: add_constant_qreal

Add a new constant from qreal input.

procedure, private, pass(self) :: add_prefix_string

Add a new prefix from string input.

procedure, private, pass(self) :: add_prefix_uom_reference

Add a new prefix from uom_reference input.

procedure, private, pass(self) :: add_unit_string

Add a new unit from string input.

procedure, private, pass(self) :: add_unit_uom

Add a new unit from uom input.

procedure, private, pass(self) :: has_constant

Check if a constant is present into the system.

procedure, private, pass(self) :: has_prefix

Check if a prefix is present into the system.

procedure, private, pass(self) :: has_unit

Check if a unit is present into the system.

procedure, private, pass(self) :: qunit_qreal

Return an instance of quantity with the queried unit.


Functions

private function const(self, c) result(const_)

Return an instance of the queried constant (if defined).

Arguments

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

The system.

character(len=*), intent(in) :: c

Constant name.

Return Value type(qreal)

The queried constant.

private function list_constants(self, with_dimensions, with_aliases, with_name, compact_reals, prefix_string) result(raw)

Return the list defined constants.

Arguments

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

The system.

logical, intent(in), optional :: with_dimensions

Flag to activate dimensions printing.

logical, intent(in), optional :: with_aliases

Flag to activate aliases printing.

logical, intent(in), optional :: with_name

Flag to activate name printing.

logical, intent(in), optional :: compact_reals

Flag to activate real numbers compacting.

character(len=*), intent(in), optional :: prefix_string

Prefix string.

Return Value character(len=:), allocatable

Raw characters data.

private function list_prefixes(self, with_aliases, compact_reals, prefix_string) result(raw)

Return the list defined prefixes.

Arguments

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

The system.

logical, intent(in), optional :: with_aliases

Flag to activate alias printing.

logical, intent(in), optional :: compact_reals

Flag to activate real numbers compacting.

character(len=*), intent(in), optional :: prefix_string

Prefix string.

Return Value character(len=:), allocatable

Raw characters data.

private function list_units(self, with_dimensions, with_aliases, protect_aliases, with_name, compact_reals, prefix_string) result(raw)

Return the list defined units.

Arguments

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

The system.

logical, intent(in), optional :: with_dimensions

Flag to activate dimensions printing.

logical, intent(in), optional :: with_aliases

Flag to activate aliases printing.

logical, intent(in), optional :: protect_aliases

Flag to activate aliases printing in protected mode.

logical, intent(in), optional :: with_name

Flag to activate name printing.

logical, intent(in), optional :: compact_reals

Flag to activate real numbers compacting.

character(len=*), intent(in), optional :: prefix_string

Prefix string.

Return Value character(len=:), allocatable

Raw characters data.

private function unit(self, u) result(unit_)

Return an instance of the queried unit (if defined).

Arguments

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

The system.

character(len=*), intent(in) :: u

Unit name or main symbol alias.

Return Value type(uom)

The queried unit.

private function has_constant(self, const) result(is_found)

Return an instance of the queried unit (if defined).

Arguments

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

The system.

type(qreal), intent(in) :: const

Constant queried.

Return Value logical

Flag to check if queried constant has been found.

private function has_prefix(self, prefix) result(is_found)

Check if a prefix is present into the system.

Arguments

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

The system.

type(uom_reference), intent(in) :: prefix

prefix queried.

Return Value logical

Flag to check if queried prefix has been found.

private function has_unit(self, unit) result(is_found)

Check if a unit is present into the system.

Arguments

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

The system.

type(uom), intent(in) :: unit

Unit queried.

Return Value logical

Flag to check if queried unit has been found.

private function qunit_qreal(self, u) result(qunit_)

Return an instance of quantity (qreal) with the queried unit (if defined).

Arguments

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

The system.

character(len=*), intent(in) :: u

Unit name or main symbol alias.

Return Value type(qreal)

The queried quantity.


Subroutines

private elemental subroutine free(self)

Free the units system.

Arguments

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

The system.

private subroutine add_constant_qreal(self, source)

Add a new constant from qreal input.

Arguments

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

The system.

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

Constant source.

private subroutine add_prefix_string(self, source)

Add a new prefix from string input.

Arguments

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

The system.

character(len=*), intent(in) :: source

Prefix source.

private subroutine add_prefix_uom_reference(self, source)

Add a new prefix from uom_reference input.

Arguments

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

The system.

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

Prefix source.

private subroutine add_unit_string(self, source)

Add a new unit from string input.

Arguments

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

The system.

character(len=*), intent(in) :: source

Unit source.

private subroutine add_unit_uom(self, source)

Add a new unit from uom input.

Arguments

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

The system.

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

Unit source.