Houses derivation class with an attached calculation tree object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CalculationTreeDerivation), | intent(inout) | :: | this | |||
type(RealArray), | intent(in), | dimension(:) | :: | inputArray | ||
integer(kind=ik), | intent(in), | dimension(:) | :: | indices |
Initialize calculation tree derivation using flattened tree
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(CalculationTreeDerivation), | intent(inout) | :: | this | |||
type(FlatTree), | intent(in) | :: | flattenedTree |
Derivation object that has a calculation tree component, used to evaluate the derivation result independently of the passed indices. The derivation is constructed using a FlatTree, which needs to be unpacked before the derivation can be used. Note: This derivation should only be used if the passed object is the global VariableContainers variable array.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
type(CalculationTree), | private, | allocatable | :: | tree | |||
type(FlatTree), | private | :: | flattenedTree | ||||
integer(kind=ik), | private, | pointer | :: | testPointer | => | null() |
Used to check whether the tree needs to be reconstructed. Should become unassociated if this derivation object goes through a copy/allocation which is pointer unsafe. |
procedure, public :: isDefined => isDefinedObject | |
procedure, public :: makeDefined => makeDefinedObject | |
procedure, public :: makeUndefined => makeUndefinedObject | |
procedure, public :: init => initCalculationTreeDeriv | |
procedure, public :: calculate => calculateTree |