
Houses composite derivation class where a derivations result is zeroed out wherever a set of passed variables is not within their defined ranges
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(RangeFilterDerivation), | intent(inout) | :: | this | |||
| type(RealArray), | intent(in), | dimension(:) | :: | inputArray | ||
| integer(kind=ik), | intent(in), | dimension(:) | :: | indices |
Initialize range filter derivation object
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(RangeFilterDerivation), | intent(inout) | :: | this | |||
| class(Derivation), | intent(in) | :: | derivObj | |||
| integer(kind=ik), | intent(in), | dimension(:) | :: | controlIndices | ||
| type(RealArray), | intent(in), | dimension(:) | :: | controlRanges | ||
| integer(kind=ik), | intent(in), | optional, | dimension(:) | :: | derivIndices |
Composite derivation class containing a single calculation rule, which is overriden with zeros wherever any one in a set of control variables is outside their defined range. If derivIndices isn't passed will pass all indices to the derivation.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
| class(Derivation), | private, | allocatable | :: | derivObj |
Derivation providing default values |
||
| integer(kind=ik), | private, | allocatable, dimension(:) | :: | derivIndices |
Subset of index vector passed to derivation |
||
| integer(kind=ik), | private, | allocatable, dimension(:) | :: | controlIndices |
Subset of index vector used to determine which elements should be zeroed out |
||
| type(RealArray), | private, | allocatable, dimension(:) | :: | controlRanges |
Array of size 2 vectors representing the lower and upper bound for each control value |
| procedure, public :: isDefined => isDefinedObject | |
| procedure, public :: makeDefined => makeDefinedObject | |
| procedure, public :: makeUndefined => makeUndefinedObject | |
| procedure, public :: init => initRangeFilterDeriv | |
| procedure, public :: calculate => calculateRangeFilter |