
Houses derivation that interpolates one quantity from the original to the dual grid or vice versa.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(InterpolationDerivation), | intent(inout) | :: | this | |||
| type(RealArray), | intent(in), | dimension(:) | :: | inputArray | ||
| integer(kind=ik), | intent(in), | dimension(:) | :: | indices |
Initialize interpolation derivation object
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(InterpolationDerivation), | intent(inout) | :: | this | |||
| type(Geometry), | intent(in) | :: | geometryObj | |||
| type(Grid), | intent(in) | :: | gridObj | |||
| integer(kind=ik), | intent(in) | :: | minX | |||
| integer(kind=ik), | intent(in) | :: | maxX | |||
| logical, | intent(in), | optional | :: | inverseInterp | ||
| logical, | intent(in), | optional | :: | distInterp |
Derivation that interpolates a variable from the original to the dual grid, or vise versa. Distributions are interpolated by assuming that even l harmonics live on the original grid and odd harmonics on the dual grid.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
| real(kind=rk), | private, | allocatable, dimension(:) | :: | linInterp |
Linear interpolation coefficients for inner points |
||
| real(kind=rk), | private, | allocatable, dimension(:) | :: | linInterpDual |
Linear interpolation coefficients for inner points on dual grid |
||
| real(kind=rk), | private | :: | linExterp |
Linear extrapolation coefficients for the right boundary point |
|||
| real(kind=rk), | private | :: | linExterpRDual |
Linear extrapolation coefficient for the right boundary point during inverse interpolation on non-periodic grid |
|||
| real(kind=rk), | private | :: | linExterpLDual |
Linear extrapolation coefficient for the left boundary point during inverse interpolation on non-periodic grid |
|||
| logical, | private | :: | periodicGrid | ||||
| logical, | private | :: | inverseInterp |
True if interpolating from dual to original grid. Defaults to false |
|||
| logical, | private | :: | distInterp |
True if interpolating a distribution function |
|||
| logical, | private | :: | containsLeftBoundary |
True if the local x-grid contains the left boundary |
|||
| logical, | private | :: | containsRightBoundary |
True if the local x-grid contains the right boundary |
|||
| integer(kind=ik), | private | :: | locNumX |
Size of local grid chunk (without any halos) |
|||
| integer(kind=ik), | private | :: | numV | ||||
| integer(kind=ik), | private | :: | numH | ||||
| logical(kind=ik), | public, | allocatable, dimension(:) | :: | oddHarmonic |
True for odd l harmonics |
| procedure, public :: isDefined => isDefinedObject | |
| procedure, public :: makeDefined => makeDefinedObject | |
| procedure, public :: makeUndefined => makeUndefinedObject | |
| procedure, public :: init => initInterpDeriv | |
| procedure, public :: calculate => calculateInterp |