Convervative object class.
Operator +.
Symmetric operator prim.op.prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Return serialized array of primitive.
Return serialized array of primitive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | self | Primitive. |
Serialized array of primitive.
Overload =.
Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(inout) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Return pretty-printed object description.
Return a pretty-formatted object description.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | self | Primitive. |
||
| character(len=*), | intent(in), | optional | :: | prefix | Prefixing string. |
Description.
Destroy primitive.
Destroy primitive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(inout) | :: | self | Primitive. |
Return energy value.
Return energy value.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | self | Primitive. |
||
| class(eos_object), | intent(in) | :: | eos | Equation of state. |
Energy value.
Initialize primitive.
Initialize primitive.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(inout) | :: | self | Primitive. |
||
| class(primitive_object), | intent(in), | optional | :: | initial_state | Initial state. |
Return momentum vector.
Return momentum vector.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | self | Primitive. |
Momentum vector.
Unary operator - prim.
Unary operator .op.prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | self | Primitive. |
Operator result.
Overload *.
Operator *.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator prim * real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator real * prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_compressible), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Overload +.
Operator +.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Unary operator + prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Operator result.
Overload -.
Operator +.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Unary operator - prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | self | Primitive. |
Operator result.
Overload /.
Operator prim / real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_compressible), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Unary operator + prim.
Unary operator .op.prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | self | Primitive. |
Operator result.
Operator =.
Operator =.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(inout) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator prim / real.
Operator prim.op.real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator *.
Symmetric operator prim.op.prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator prim * real.
Operator prim.op.real.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | lhs | Left hand side. |
||
| real(kind=R8P), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator real * prim.
Operator real * prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=R8P), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
Operator -.
Symmetric operator prim.op.prim.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(primitive_object), | intent(in) | :: | lhs | Left hand side. |
||
| class(primitive_object), | intent(in) | :: | rhs | Right hand side. |
Operator result.
type, abstract :: primitive_object
!< Convervative object class.
contains
! deferred methods
procedure(array_interface), pass(self), deferred :: array !< Return serialized array of primitive.
procedure(description_interface), pass(self), deferred :: description !< Return pretty-printed object description.
procedure(destroy_interface), pass(self), deferred :: destroy !< Destroy primitive.
procedure(energy_interface), pass(self), deferred :: energy !< Return energy value.
procedure(initialize_interface), pass(self), deferred :: initialize !< Initialize primitive.
procedure(momentum_interface), pass(self), deferred :: momentum !< Return momentum vector.
procedure(assignment_interface), pass(lhs), deferred :: prim_assign_prim !< Operator `=`.
procedure(prim_operator_real), pass(lhs), deferred :: prim_divide_real !< Operator `prim / real`.
procedure(prim_operator_real), pass(lhs), deferred :: prim_multiply_real !< Operator `prim * real`.
procedure(symmetric_operator), pass(lhs), deferred :: prim_multiply_prim !< Operator `*`.
procedure(real_operator_prim), pass(rhs), deferred :: real_multiply_prim !< Operator `real * prim`.
procedure(symmetric_operator), pass(lhs), deferred :: add !< Operator `+`.
procedure(unary_operator), pass(self), deferred :: positive !< Unary operator `+ prim`.
procedure(symmetric_operator), pass(lhs), deferred :: sub !< Operator `-`.
procedure(unary_operator), pass(self), deferred :: negative !< Unary operator `- prim`.
! operators
generic :: assignment(=) => prim_assign_prim !< Overload `=`.
generic :: operator(+) => add, positive !< Overload `+`.
generic :: operator(-) => sub, negative !< Overload `-`.
generic :: operator(*) => prim_multiply_prim, prim_multiply_real, real_multiply_prim !< Overload `*`.
generic :: operator(/) => prim_divide_real !< Overload `/`.
endtype primitive_object