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 |