qreal Derived Type

type, public :: qreal

type~~qreal~~InheritsGraph type~qreal qreal type~uom uom type~uom->type~qreal unit type~uom_reference uom_reference type~uom_reference->type~uom alias, references type~uom_symbol uom_symbol type~uom_symbol->type~uom_reference aliases, dimensions type~uom_converter uom_converter type~uom_converter->type~uom_symbol convert_ type~string string type~string->type~uom_symbol symbol_
Help


Real quantity with associated unit of measure.

Inherited By

type~~qreal~~InheritedByGraph type~qreal qreal type~system_si system_si type~qreal->type~system_si constants type~system_abstract system_abstract type~qreal->type~system_abstract constants type~system_abstract->type~system_si
Help

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

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.


Type-Bound Procedures

procedure, public, pass(self) :: allocate_unit

Allocate unit.

  • private elemental subroutine allocate_unit(self)

    allocate_unit.

    Arguments

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

    The quantity.

procedure, public, pass(self) :: has_name

Check if the quantity has defined name.

  • 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.

procedure, public, pass(self) :: is_unit_defined

Check if the unit has been defined.

  • 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.

procedure, public, pass(self) :: set

Set 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.

procedure, public, pass(self) :: stringify

Return a string representation of the quantity with unit symbol.

  • 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.

procedure, public, pass(self) :: to

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

  • 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.

procedure, public, pass(self) :: unset

Unset quantity.

  • private elemental subroutine unset(self)

    Unset quantity.

    Arguments

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

    The quantity.

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

Overloading = assignment.

  • 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.

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

Overloading + operator.

  • 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.

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

Overloading / operator.

  • 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_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.

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.

  • 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_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 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.

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

Overloading - operator.

  • 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.

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

Overloading ** operator.

  • 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.

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

Overloading == operator.

  • 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.

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

Overloading /= operator.

  • 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.

procedure, private, pass(self) :: is_equal

Check if qreal is equal with another one.

  • 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.

procedure, private, pass(self) :: is_not_equal

Check if qreal is not equal with another one.

  • 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.

procedure, private, pass(lhs) :: assign_qreal

qreal = qreal assignment.

  • 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.

procedure, private, pass(lhs) :: add

qreal + qreal operator.

  • 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.

procedure, private, pass(self) :: positive

+ qreal unary operator.

  • 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.

procedure, private, pass(lhs) :: div

qreal / qreal operator.

  • 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.

procedure, private, pass(lhs) :: div_R16P

qreal / real(R16P) operator.

  • 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.

procedure, private, pass(lhs) :: div_R8P

qreal / real(R8P) operator.

  • 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.

procedure, private, pass(lhs) :: div_R4P

qreal / real(R4P) operator.

  • 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.

procedure, private, pass(lhs) :: div_I8P

qreal / integer(I8P) operator.

  • 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.

procedure, private, pass(lhs) :: div_I4P

qreal / integer(I4P) operator.

  • 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.

procedure, private, pass(lhs) :: div_I2P

qreal / integer(I2P) operator.

  • 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.

procedure, private, pass(lhs) :: div_I1P

qreal / integer(I1P) operator.

  • 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.

procedure, private, pass(lhs) :: mul

qreal * qreal operator.

  • 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.

procedure, private, pass(lhs) :: mul_R16P

qreal * real(R16P) operator.

  • 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.

procedure, private, pass(lhs) :: mul_R8P

qreal * real(R8P) operator.

  • 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.

procedure, private, pass(lhs) :: mul_R4P

qreal * real(R4P) operator.

  • 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.

procedure, private, pass(lhs) :: mul_I8P

qreal * integer(I8P) operator.

  • 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.

procedure, private, pass(lhs) :: mul_I4P

qreal * integer(I4P) operator.

  • 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.

procedure, private, pass(lhs) :: mul_I2P

qreal * integer(I2P) operator.

  • 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.

procedure, private, pass(lhs) :: mul_I1P

qreal * integer(I1P) operator.

  • 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.

procedure, private, pass(rhs) :: R16P_mul

real(R16P) * qreal operator.

  • 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.

procedure, private, pass(rhs) :: R8P_mul

real(R8P) * qreal operator.

  • 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.

procedure, private, pass(rhs) :: R4P_mul

real(R4P) * qreal operator.

  • 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.

procedure, private, pass(rhs) :: I8P_mul

integer(I8P) * qreal operator.

  • 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.

procedure, private, pass(rhs) :: I4P_mul

integer(I4P) * qreal operator.

  • 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.

procedure, private, pass(rhs) :: I2P_mul

integer(I2P) * qreal operator.

  • 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.

procedure, private, pass(rhs) :: I1P_mul

integer(I1P) * qreal operator.

  • 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.

procedure, private, pass(lhs) :: sub

qreal - qreal operator.

  • 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.

procedure, private, pass(self) :: negative

- qreal unary operator.

  • 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.

procedure, private, pass(lhs) :: pow_R16P

qreal ** real(R16P) operator.

  • 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.

procedure, private, pass(lhs) :: pow_R8P

qreal ** real(R8P) operator.

  • 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.

procedure, private, pass(lhs) :: pow_R4P

qreal ** real(R4P) operator.

  • 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.

procedure, private, pass(lhs) :: pow_I8P

qreal ** integer(I8P) operator.

  • 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.

procedure, private, pass(lhs) :: pow_I4P

qreal ** integer(I4P) operator.

  • 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.

procedure, private, pass(lhs) :: pow_I2P

qreal ** integer(I2P) operator.

  • 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.

procedure, private, pass(lhs) :: pow_I1P

qreal ** integer(I1P) operator.

  • 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.