uom_converter Derived Type

type, public, abstract :: uom_converter

A generic user-supplied uom_symbol converter.

Inherited By

type~~uom_converter~~InheritedByGraph type~uom_converter uom_converter type~uom_symbol~3 uom_symbol type~uom_converter->type~uom_symbol~3 convert_ type~uom_symbol uom_symbol type~uom_converter->type~uom_symbol convert_ type~uom_symbol~2 uom_symbol type~uom_converter->type~uom_symbol~2 convert_ type~dbm_to_mw dBm_to_mW type~uom_converter->type~dbm_to_mw type~uom_reference~3 uom_reference type~uom_symbol~3->type~uom_reference~3 aliases, dimensions type~uom_reference uom_reference type~uom_symbol->type~uom_reference aliases, dimensions type~uom_reference~2 uom_reference type~uom_symbol~2->type~uom_reference~2 aliases, dimensions type~uom~3 uom type~uom_reference~3->type~uom~3 alias, references type~system_si~3 system_si type~uom_reference~3->type~system_si~3 prefixes type~system_abstract~3 system_abstract type~uom_reference~3->type~system_abstract~3 prefixes type~uom~3->type~system_si~3 units type~uom~3->type~system_abstract~3 units type~qreal~3 qreal type~uom~3->type~qreal~3 unit type~system_abstract~3->type~system_si~3 type~qreal~3->type~system_si~3 constants type~qreal~3->type~system_abstract~3 constants type~system_si system_si type~uom_reference->type~system_si prefixes type~uom uom type~uom_reference->type~uom alias, references type~system_abstract system_abstract type~uom_reference->type~system_abstract prefixes type~uom->type~system_si units type~uom->type~system_abstract units type~qreal qreal type~uom->type~qreal unit type~system_abstract->type~system_si type~qreal->type~system_si constants type~qreal->type~system_abstract constants type~system_si~2 system_si type~uom_reference~2->type~system_si~2 prefixes type~uom~2 uom type~uom_reference~2->type~uom~2 alias, references type~system_abstract~2 system_abstract type~uom_reference~2->type~system_abstract~2 prefixes type~uom~2->type~system_si~2 units type~uom~2->type~system_abstract~2 units type~qreal~2 qreal type~uom~2->type~qreal~2 unit type~system_abstract~2->type~system_si~2 type~qreal~2->type~system_si~2 constants type~qreal~2->type~system_abstract~2 constants
Help

Source Code


Type-Bound Procedures

procedure(conversion_float64), public, deferred, nopass :: convert_float64

The conversion formulas for float64 magnitudes.

  • pure function conversion_float64(magnitude, inverse) result(converted) Prototype

    Generic conversion alias formula that must be user-supplied, float64.

    Arguments

    Type IntentOptional AttributesName
    real(kind=R8P), intent(in) :: magnitude

    Magnitude (of the quantity) to be converted.

    logical, intent(in), optional :: inverse

    Activate inverse conversion.

    Return Value real(kind=R8P)

    Converted magnitude.

procedure(conversion_float32), public, deferred, nopass :: convert_float32

The conversion formulas for float32 magnitudes.

  • pure function conversion_float32(magnitude, inverse) result(converted) Prototype

    Generic conversion alias formula that must be user-supplied, float32.

    Arguments

    Type IntentOptional AttributesName
    real(kind=R4P), intent(in) :: magnitude

    Magnitude (of the quantity) to be converted.

    logical, intent(in), optional :: inverse

    Activate inverse conversion.

    Return Value real(kind=R4P)

    Converted magnitude.

procedure(assignment_converter), public, deferred, pass(lhs) :: assign_converter

converter = converter assignment.

  • pure subroutine assignment_converter(lhs, rhs) Prototype

    converter = converter assignment.

    Arguments

    Type IntentOptional AttributesName
    class(uom_converter), intent(inout) :: lhs

    Left hand side.

    class(uom_converter), intent(in) :: rhs

    Right hand side.

generic, public :: convert => convert_float64, convert_float32

The conversion formulas.

  • private pure function convert_float64(magnitude, inverse) result(converted)

    User-supplied conversion formulas from dBm to mW (and viceversa), float64.

    Arguments

    Type IntentOptional AttributesName
    real(kind=R8P), intent(in) :: magnitude

    Magnitude (of the quantity) to be converted.

    logical, intent(in), optional :: inverse

    Activate inverse conversion.

    Return Value real(kind=R8P)

    Converted magnitude.

  • private pure function convert_float32(magnitude, inverse) result(converted)

    User-supplied conversion formulas from dBm to mW (and viceversa), float32.

    Arguments

    Type IntentOptional AttributesName
    real(kind=R4P), intent(in) :: magnitude

    Magnitude (of the quantity) to be converted.

    logical, intent(in), optional :: inverse

    Activate inverse conversion.

    Return Value real(kind=R4P)

    Converted magnitude.

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

Overloading = assignment.

  • private pure subroutine assign_converter(lhs, rhs)

    converter = converter assignment.

    Arguments

    Type IntentOptional AttributesName
    class(dBm_to_mW), intent(inout) :: lhs

    Left hand side.

    class(uom_converter), intent(in) :: rhs

    Right hand side.

Source Code

type, abstract :: uom_converter
  !< A generic user-supplied [[uom_symbol]] converter.
  contains
    ! deferred methods
#ifdef r16p
    procedure(conversion_float128),  deferred, nopass    :: convert_float128 !< The conversion formulas for float128 magnitudes.
#endif
    procedure(conversion_float64),   deferred, nopass    :: convert_float64  !< The conversion formulas for float64 magnitudes.
    procedure(conversion_float32),   deferred, nopass    :: convert_float32  !< The conversion formulas for float32 magnitudes.
    procedure(assignment_converter), deferred, pass(lhs) :: assign_converter !< `converter = converter` assignment.
    ! generic methods
    generic :: convert =>        &
#ifdef r16p
               convert_float128, &
#endif
               convert_float64, convert_float32 !< The conversion formulas.
    ! operators
    generic :: assignment(=) => assign_converter !< Overloading `=` assignment.
endtype uom_converter