lin_interpnd_procedures Submodule

Contains module procedures associated with the nd linear interpolation class


Uses


Module Functions

pure module function getFirstDataIndicesForDim(this, dim) result(inds)

Getter for firstDataIndex of component 1D interpolation object with index dim

Arguments

Type IntentOptional Attributes Name
class(InterpolationND), intent(in) :: this
integer(kind=ik), intent(in) :: dim

Return Value integer(kind=ik), allocatable, dimension(:)

pure module function getInterpWeightsForDim(this, dim) result(weights)

Getter for interpWeights of component 1D interpolation object with index dim

Arguments

Type IntentOptional Attributes Name
class(InterpolationND), intent(in) :: this
integer(kind=ik), intent(in) :: dim

Return Value real(kind=rk), allocatable, dimension(:)

pure module function getInterpPointsForDim(this, dim) result(points)

Getter for interpolationPoints of component 1D interpolation object with index dim

Arguments

Type IntentOptional Attributes Name
class(InterpolationND), intent(in) :: this
integer(kind=ik), intent(in) :: dim

Return Value real(kind=rk), allocatable, dimension(:)

pure module function interpolate(this, targetArray) result(interpVals)

Interpolate FlatNDData onto interpolation points using weighted averages of vertices of the containing hypercube

Arguments

Type IntentOptional Attributes Name
class(InterpolationND), intent(in) :: this
type(FlatNDData), intent(in) :: targetArray

Return Value real(kind=rk), allocatable, dimension(:)


Module Subroutines

pure module subroutine initInterpolation(this, interpolationObjs)

Initialization routine for ND interpolation object

Arguments

Type IntentOptional Attributes Name
class(InterpolationND), intent(inout) :: this
type(Interpolation1D), intent(in), dimension(:) :: interpolationObjs

pure module subroutine updateInterpolationPoints(this, interpolationPoints)

Update the interpolation points and weights of all individual 1D interpolation objects and the weights/data indices used

Arguments

Type IntentOptional Attributes Name
class(InterpolationND), intent(inout) :: this
real(kind=rk), intent(in), dimension(:,:) :: interpolationPoints