FURY class definition of real (with float64 kind) quantity with associated unit of measure.
FURY class implementation of real quantity of generic kind with associated unit of measure.
Ovearloading qreal name with a creator function.
Create an instance of qreal quantity.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
The quantity.
real(R8P) * uom operator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in) | :: | lhs | Left hand side. |
||
| type(uom), | intent(in) | :: | rhs | Right hand side. |
Operator result.
real(R4P) * uom operator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R4P), | intent(in) | :: | lhs | Left hand side. |
||
| type(uom), | intent(in) | :: | rhs | Right hand side. |
Operator result.
integer(I8P) * uom operator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=I8P), | intent(in) | :: | lhs | Left hand side. |
||
| type(uom), | intent(in) | :: | rhs | Right hand side. |
Operator result.
integer(I4P) * uom operator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=I4P), | intent(in) | :: | lhs | Left hand side. |
||
| type(uom), | intent(in) | :: | rhs | Right hand side. |
Operator result.
integer(I2P) * uom operator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=I2P), | intent(in) | :: | lhs | Left hand side. |
||
| type(uom), | intent(in) | :: | rhs | Right hand side. |
Operator result.
integer(I1P) * uom operator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=I1P), | intent(in) | :: | lhs | Left hand side. |
||
| type(uom), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Real quantity with associated unit of measure.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| 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. |
Ovearloading qreal name with a creator function.
| private function creator(magnitude, unit, name) | Create an instance of qreal quantity. |
| 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 |
| generic, public :: operator(+) => add, positive | Overloading |
| generic, public :: operator(/) => div, div_R8P, div_R4P, div_I8P, div_I4P, div_I2P, div_I1P | Overloading |
| 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 |
| generic, public :: operator(-) => sub, negative | Overloading |
| generic, public :: operator(**) => pow_R8P, pow_R4P, pow_I8P, pow_I4P, pow_I2P, pow_I1P | Overloading |
| generic, public :: operator(==) => is_equal | Overloading |
| generic, public :: operator(/=) => is_not_equal | Overloading |
| 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 |
|
| procedure, private, pass(lhs) :: add |
|
| procedure, private, pass(self) :: positive |
|
| procedure, private, pass(lhs) :: div |
|
| procedure, private, pass(lhs) :: div_R16P |
|
| procedure, private, pass(lhs) :: div_R8P |
|
| procedure, private, pass(lhs) :: div_R4P |
|
| procedure, private, pass(lhs) :: div_I8P |
|
| procedure, private, pass(lhs) :: div_I4P |
|
| procedure, private, pass(lhs) :: div_I2P |
|
| procedure, private, pass(lhs) :: div_I1P |
|
| procedure, private, pass(lhs) :: mul |
|
| procedure, private, pass(lhs) :: mul_R16P |
|
| procedure, private, pass(lhs) :: mul_R8P |
|
| procedure, private, pass(lhs) :: mul_R4P |
|
| procedure, private, pass(lhs) :: mul_I8P |
|
| procedure, private, pass(lhs) :: mul_I4P |
|
| procedure, private, pass(lhs) :: mul_I2P |
|
| procedure, private, pass(lhs) :: mul_I1P |
|
| procedure, private, pass(rhs) :: R16P_mul |
|
| procedure, private, pass(rhs) :: R8P_mul |
|
| procedure, private, pass(rhs) :: R4P_mul |
|
| procedure, private, pass(rhs) :: I8P_mul |
|
| procedure, private, pass(rhs) :: I4P_mul |
|
| procedure, private, pass(rhs) :: I2P_mul |
|
| procedure, private, pass(rhs) :: I1P_mul |
|
| procedure, private, pass(lhs) :: sub |
|
| procedure, private, pass(self) :: negative |
|
| procedure, private, pass(lhs) :: pow_R16P |
|
| procedure, private, pass(lhs) :: pow_R8P |
|
| procedure, private, pass(lhs) :: pow_R4P |
|
| procedure, private, pass(lhs) :: pow_I8P |
|
| procedure, private, pass(lhs) :: pow_I4P |
|
| procedure, private, pass(lhs) :: pow_I2P |
|
| procedure, private, pass(lhs) :: pow_I1P |
|
Create an instance of qreal quantity.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
The quantity.
Check if the quantity has defined name.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qreal), | intent(in) | :: | self | The quantity. |
Check result.
Check if the unit has been defined.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qreal), | intent(in) | :: | self | The quantity. |
Unit definition status.
Return a string representation of the quantity with unit symbol.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Raw characters data.
allocate_unit.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qreal), | intent(inout) | :: | self | The quantity. |
Set quantity.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| 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. |
Unset quantity.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(qreal), | intent(inout) | :: | self | The quantity. |