f_scaling_derivation_procedures Submodule

Contains module procedures associated with the distribution scaling extrapolation derivation class


Uses


Module Functions

module function calculateFScaling(this, inputArray, indices) result(output)

Arguments

Type IntentOptional Attributes Name
class(FScalingDerivation), intent(inout) :: this
type(RealArray), intent(in), dimension(:) :: inputArray
integer(kind=ik), intent(in), dimension(:) :: indices

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

pure module function getScalingFactors(this, inputArray, indices) result(output)

Arguments

Type IntentOptional Attributes Name
class(FScalingDerivation), intent(in) :: this
type(RealArray), intent(in), dimension(:) :: inputArray
integer(kind=ik), intent(in), dimension(:) :: indices

Return Value real(kind=rk), dimension(2)


Module Subroutines

module subroutine initFScaling(this, partitionObj, procRank, numV, leftBoundary, staggeredVars, extrapolateToBoundary)

Initialize distribution scaling extrapolation derivation object

Arguments

Type IntentOptional Attributes Name
class(FScalingDerivation), intent(inout) :: this
type(Partition), intent(in) :: partitionObj

Partition object used to determine local processor grid chunk

integer(kind=ik), intent(in) :: procRank

Current processor rank

integer(kind=ik), intent(in) :: numV

Number of expected velocity grid points

logical, intent(in), optional :: leftBoundary

True if extrapolating to left boundary. Defaults to false.

logical, intent(in), optional :: staggeredVars

True if the distribution has staggered harmonics. Defaults to false.

logical, intent(in), optional :: extrapolateToBoundary

True if the extrapolation should be performed to the cell boundary and not the last cell centre before the boundary.