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. |
Getter for userDefined
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Object), | intent(in) | :: | this |
Set userDefined to .true.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Object), | intent(inout) | :: | this |
Set userDefined to .false.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(Object), | intent(inout) | :: | this |
Initialize calculation tree derivation using flattened tree
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(CalculationTreeDerivation), | intent(inout) | :: | this | |||
| type(FlatTree), | intent(in) | :: | flattenedTree |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(CalculationTreeDerivation), | intent(inout) | :: | this | |||
| type(RealArray), | intent(in), | dimension(:) | :: | inputArray | ||
| integer(kind=ik), | intent(in), | dimension(:) | :: | indices |