fury_qreal32 Module

module~~fury_qreal32~~UsesGraph module~fury_qreal32 fury_qreal32 module~fury_uom32 fury_uom32 module~fury_uom32->module~fury_qreal32 iso_fortran_env iso_fortran_env iso_fortran_env->module~fury_qreal32 iso_fortran_env->module~fury_uom32 module~fury_uom_symbol32 fury_uom_symbol32 iso_fortran_env->module~fury_uom_symbol32 module~fury_uom_reference32 fury_uom_reference32 iso_fortran_env->module~fury_uom_reference32 module~penf_stringify~3 penf_stringify iso_fortran_env->module~penf_stringify~3 module~stringifor stringifor module~stringifor->module~fury_qreal32 module~stringifor->module~fury_uom32 module~stringifor->module~fury_uom_symbol32 module~stringifor->module~fury_uom_reference32 module~penf~3 penf module~penf~3->module~fury_qreal32 module~penf~3->module~fury_uom32 module~penf~3->module~stringifor module~penf~3->module~fury_uom_symbol32 module~penf~3->module~fury_uom_reference32 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_uom_symbol32->module~fury_uom32 module~fury_uom_symbol32->module~fury_uom_reference32 module~fury_uom_reference32->module~fury_uom32 module~fury_uom_converter->module~fury_uom32 module~fury_uom_converter->module~fury_uom_symbol32 module~fury_uom_converter->module~fury_uom_reference32 module~stringifor_string_t->module~stringifor module~befor64->module~stringifor_string_t module~befor64_pack_data_m~2->module~befor64 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
Help

FURY class definition of real (with float32 kind) quantity with associated unit of measure.

FURY class implementation of real quantity of generic kind with associated unit of measure.

Used By

module~~fury_qreal32~~UsedByGraph module~fury_qreal32 fury_qreal32 module~fury_mixed_kinds fury_mixed_kinds module~fury_qreal32->module~fury_mixed_kinds module~fury_system_abstract32 fury_system_abstract32 module~fury_qreal32->module~fury_system_abstract32 module~fury_system_si32 fury_system_si32 module~fury_qreal32->module~fury_system_si32 module~fury fury module~fury_qreal32->module~fury module~fury_mixed_kinds->module~fury module~fury_system_abstract32->module~fury_system_si32 module~fury_system_abstract32->module~fury module~fury_system_si32->module~fury 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~dbm_to_mw_converter->program~fury_test_qreal_conversions_complex
Help


Interfaces

public interface qreal

Ovearloading qreal name with a creator function.

  • private function creator(magnitude, unit, name) result(quantity)

    Create an instance of qreal quantity.

    Arguments

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

    Magnitude of the quantity.

    class(uom), intent(in), optional :: unit

    Unit of measure of the quantity.

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

    Quantity name.

    Return Value type(qreal)

    The quantity.

public interface operator(*)

Ovearloading operator *: number * uom generates qreal.

  • private function R8P_mul_uom(lhs, rhs) result(opr)

    real(R8P) * uom operator.

    Arguments

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

    Left hand side.

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

    Right hand side.

    Return Value type(qreal)

    Operator result.

  • private function R4P_mul_uom(lhs, rhs) result(opr)

    real(R4P) * uom operator.

    Arguments

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

    Left hand side.

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

    Right hand side.

    Return Value type(qreal)

    Operator result.

  • private function I8P_mul_uom(lhs, rhs) result(opr)

    integer(I8P) * uom operator.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=I8P), intent(in) :: lhs

    Left hand side.

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

    Right hand side.

    Return Value type(qreal)

    Operator result.

  • private function I4P_mul_uom(lhs, rhs) result(opr)

    integer(I4P) * uom operator.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=I4P), intent(in) :: lhs

    Left hand side.

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

    Right hand side.

    Return Value type(qreal)

    Operator result.

  • private function I2P_mul_uom(lhs, rhs) result(opr)

    integer(I2P) * uom operator.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=I2P), intent(in) :: lhs

    Left hand side.

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

    Right hand side.

    Return Value type(qreal)

    Operator result.

  • private function I1P_mul_uom(lhs, rhs) result(opr)

    integer(I1P) * uom operator.

    Arguments

    Type IntentOptional AttributesName
    integer(kind=I1P), intent(in) :: lhs

    Left hand side.

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

    Right hand side.

    Return Value type(qreal)

    Operator result.


Derived Types

type, public :: qreal

Real quantity with associated unit of measure.

Components

TypeVisibility AttributesNameInitial
real(kind=RKP), public :: magnitude =0._RKP

Magnitude of the quantity.

class(uom), public, allocatable:: unit

Unit of measure of the quantity.

character(len=:), public, allocatable:: name

Quantity name.

Constructor

Ovearloading qreal name with a creator function.

private function creator(magnitude, unit, name)

Create an instance of qreal quantity.

Type-Bound Procedures

procedure, public, pass(self) :: allocate_unit

Allocate unit.

procedure, public, pass(self) :: has_name

Check if the quantity has defined name.

procedure, public, pass(self) :: is_unit_defined

Check if the unit has been defined.

procedure, public, pass(self) :: set

Set quantity.

procedure, public, pass(self) :: stringify

Return a string representation of the quantity with unit symbol.

procedure, public, pass(self) :: to

Convert quantity with respect another unit if its unit has a conversion alias.

procedure, public, pass(self) :: unset

Unset quantity.

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

Overloading = assignment.

generic, public :: operator(+) => add, positive

Overloading + operator.

generic, public :: operator(/) => div, div_R8P, div_R4P, div_I8P, div_I4P, div_I2P, div_I1P

Overloading / operator.

generic, public :: operator(*) => mul, mul_R8P, mul_R4P, mul_I8P, mul_I4P, mul_I2P, mul_I1P, R8P_mul, R4P_mul, I8P_mul, I4P_mul, I2P_mul, I1P_mul

Overloading * operator.

generic, public :: operator(-) => sub, negative

Overloading - operator.

generic, public :: operator(**) => pow_R8P, pow_R4P, pow_I8P, pow_I4P, pow_I2P, pow_I1P

Overloading ** operator.

generic, public :: operator(==) => is_equal

Overloading == operator.

generic, public :: operator(/=) => is_not_equal

Overloading /= operator.

procedure, private, pass(self) :: is_equal

Check if qreal is equal with another one.

procedure, private, pass(self) :: is_not_equal

Check if qreal is not equal with another one.

procedure, private, pass(lhs) :: assign_qreal

qreal = qreal assignment.

procedure, private, pass(lhs) :: add

qreal + qreal operator.

procedure, private, pass(self) :: positive

+ qreal unary operator.

procedure, private, pass(lhs) :: div

qreal / qreal operator.

procedure, private, pass(lhs) :: div_R16P

qreal / real(R16P) operator.

procedure, private, pass(lhs) :: div_R8P

qreal / real(R8P) operator.

procedure, private, pass(lhs) :: div_R4P

qreal / real(R4P) operator.

procedure, private, pass(lhs) :: div_I8P

qreal / integer(I8P) operator.

procedure, private, pass(lhs) :: div_I4P

qreal / integer(I4P) operator.

procedure, private, pass(lhs) :: div_I2P

qreal / integer(I2P) operator.

procedure, private, pass(lhs) :: div_I1P

qreal / integer(I1P) operator.

procedure, private, pass(lhs) :: mul

qreal * qreal operator.

procedure, private, pass(lhs) :: mul_R16P

qreal * real(R16P) operator.

procedure, private, pass(lhs) :: mul_R8P

qreal * real(R8P) operator.

procedure, private, pass(lhs) :: mul_R4P

qreal * real(R4P) operator.

procedure, private, pass(lhs) :: mul_I8P

qreal * integer(I8P) operator.

procedure, private, pass(lhs) :: mul_I4P

qreal * integer(I4P) operator.

procedure, private, pass(lhs) :: mul_I2P

qreal * integer(I2P) operator.

procedure, private, pass(lhs) :: mul_I1P

qreal * integer(I1P) operator.

procedure, private, pass(rhs) :: R16P_mul

real(R16P) * qreal operator.

procedure, private, pass(rhs) :: R8P_mul

real(R8P) * qreal operator.

procedure, private, pass(rhs) :: R4P_mul

real(R4P) * qreal operator.

procedure, private, pass(rhs) :: I8P_mul

integer(I8P) * qreal operator.

procedure, private, pass(rhs) :: I4P_mul

integer(I4P) * qreal operator.

procedure, private, pass(rhs) :: I2P_mul

integer(I2P) * qreal operator.

procedure, private, pass(rhs) :: I1P_mul

integer(I1P) * qreal operator.

procedure, private, pass(lhs) :: sub

qreal - qreal operator.

procedure, private, pass(self) :: negative

- qreal unary operator.

procedure, private, pass(lhs) :: pow_R16P

qreal ** real(R16P) operator.

procedure, private, pass(lhs) :: pow_R8P

qreal ** real(R8P) operator.

procedure, private, pass(lhs) :: pow_R4P

qreal ** real(R4P) operator.

procedure, private, pass(lhs) :: pow_I8P

qreal ** integer(I8P) operator.

procedure, private, pass(lhs) :: pow_I4P

qreal ** integer(I4P) operator.

procedure, private, pass(lhs) :: pow_I2P

qreal ** integer(I2P) operator.

procedure, private, pass(lhs) :: pow_I1P

qreal ** integer(I1P) operator.


Functions

private function creator(magnitude, unit, name) result(quantity)

Create an instance of qreal quantity.

Arguments

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

Magnitude of the quantity.

class(uom), intent(in), optional :: unit

Unit of measure of the quantity.

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

Quantity name.

Return Value type(qreal)

The quantity.

private function R16P_mul_uom(lhs, rhs) result(opr)

real(R16P) * uom operator.

Arguments

Type IntentOptional AttributesName
real(kind=R16P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function R8P_mul_uom(lhs, rhs) result(opr)

real(R8P) * uom operator.

Arguments

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

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function R4P_mul_uom(lhs, rhs) result(opr)

real(R4P) * uom operator.

Arguments

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

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I8P_mul_uom(lhs, rhs) result(opr)

integer(I8P) * uom operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I8P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I4P_mul_uom(lhs, rhs) result(opr)

integer(I4P) * uom operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I4P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I2P_mul_uom(lhs, rhs) result(opr)

integer(I2P) * uom operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I2P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I1P_mul_uom(lhs, rhs) result(opr)

integer(I1P) * uom operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I1P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private elemental function has_name(self)

Check if the quantity has defined name.

Arguments

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

The quantity.

Return Value logical

Check result.

private elemental function is_unit_defined(self) result(is_defined)

Check if the unit has been defined.

Arguments

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

The quantity.

Return Value logical

Unit definition status.

private function stringify(self, format, with_dimensions, with_aliases, with_name, compact_reals) result(raw)

Return a string representation of the quantity with unit symbol.

Arguments

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

The quantity.

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

Format to string magnitude.

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.

Return Value character(len=:), allocatable

Raw characters data.

private function to(self, unit) result(converted)

Convert quantity with respect another unit if its unit has a conversion alias.

Arguments

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

The quantity.

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

Unit of conversion.

Return Value type(qreal)

Quantity converted.

private elemental function is_equal(self, other)

Check if qreal is equal with another one.

Arguments

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

The unit.

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

The other unit.

Return Value logical

Check result.

private elemental function is_not_equal(self, other)

Check if qreal is not equal with another one.

Arguments

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

The unit.

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

The other unit.

Return Value logical

Check result.

private function add(lhs, rhs) result(opr)

qreal + qreal operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function positive(self) result(opr)

+ qreal unary operator.

Arguments

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

The quantity.

Return Value type(qreal)

Operator result.

private function div(lhs, rhs) result(opr)

qreal / qreal operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function div_R16P(lhs, rhs) result(opr)

qreal / real(R16P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R16P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function div_R8P(lhs, rhs) result(opr)

qreal / real(R8P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R8P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function div_R4P(lhs, rhs) result(opr)

qreal / real(R4P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R4P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function div_I8P(lhs, rhs) result(opr)

qreal / integer(I8P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I8P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function div_I4P(lhs, rhs) result(opr)

qreal / integer(I4P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function div_I2P(lhs, rhs) result(opr)

qreal / integer(I2P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I2P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function div_I1P(lhs, rhs) result(opr)

qreal / integer(I1P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I1P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function mul(lhs, rhs) result(opr)

qreal * qreal operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_R16P(lhs, rhs) result(opr)

qreal * real(R16P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R16P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_R8P(lhs, rhs) result(opr)

qreal * real(R8P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R8P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_R4P(lhs, rhs) result(opr)

qreal * real(R4P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R4P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_I8P(lhs, rhs) result(opr)

qreal * integer(I8P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I8P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_I4P(lhs, rhs) result(opr)

qreal * integer(I4P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_I2P(lhs, rhs) result(opr)

qreal * integer(I2P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I2P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function mul_I1P(lhs, rhs) result(opr)

qreal * integer(I1P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I1P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function R16P_mul(lhs, rhs) result(opr)

real(R16P) * qreal operator.

Arguments

Type IntentOptional AttributesName
real(kind=R16P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function R8P_mul(lhs, rhs) result(opr)

real(R8P) * qreal operator.

Arguments

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

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function R4P_mul(lhs, rhs) result(opr)

real(R4P) * qreal operator.

Arguments

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

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I8P_mul(lhs, rhs) result(opr)

integer(I8P) * qreal operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I8P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I4P_mul(lhs, rhs) result(opr)

integer(I4P) * qreal operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I4P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I2P_mul(lhs, rhs) result(opr)

integer(I2P) * qreal operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I2P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function I1P_mul(lhs, rhs) result(opr)

integer(I1P) * qreal operator.

Arguments

Type IntentOptional AttributesName
integer(kind=I1P), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function sub(lhs, rhs) result(opr)

qreal - qreal operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function negative(self) result(opr)

- qreal unary operator.

Arguments

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

The quantity.

Return Value type(qreal)

Operator result.

private function pow_R16P(lhs, rhs) result(opr)

qreal ** real(R16P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R16P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function pow_R8P(lhs, rhs) result(opr)

qreal ** real(R8P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R8P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function pow_R4P(lhs, rhs) result(opr)

qreal ** real(R4P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

real(kind=R4P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function pow_I8P(lhs, rhs) result(opr)

qreal ** integer(I8P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I8P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function pow_I4P(lhs, rhs) result(opr)

qreal ** integer(I4P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

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

Right hand side.

Return Value type(qreal)

Operator result.

private function pow_I2P(lhs, rhs) result(opr)

qreal ** integer(I2P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I2P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.

private function pow_I1P(lhs, rhs) result(opr)

qreal ** integer(I1P) operator.

Arguments

Type IntentOptional AttributesName
class(qreal), intent(in) :: lhs

Left hand side.

integer(kind=I1P), intent(in) :: rhs

Right hand side.

Return Value type(qreal)

Operator result.


Subroutines

private elemental subroutine allocate_unit(self)

allocate_unit.

Arguments

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

The quantity.

private subroutine set(self, magnitude, unit, name)

Set quantity.

Arguments

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

The quantity.

real(kind=RKP), intent(in), optional :: magnitude

Magnitude of the quantity.

class(uom), intent(in), optional :: unit

Unit of measure of the quantity.

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

Quantity name.

private elemental subroutine unset(self)

Unset quantity.

Arguments

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

The quantity.

private subroutine assign_qreal(lhs, rhs)

qreal = qreal assignment.

Arguments

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

Left hand side.

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

Right hand side.