lag_intrp_grd3 Subroutine

public subroutine lag_intrp_grd3(nx, ny, nz, npx, npy, npz, matx, maty, matz, f, fintrp, rwrk)

Interpolates nodal function values to a grid using barycentric lagrange interpolation in three variables.

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nx

Number of nodes along x = nx+1, along y = ny+1, and along z = nz+1

integer, intent(in) :: ny

Number of nodes along x = nx+1, along y = ny+1, and along z = nz+1

integer, intent(in) :: nz

Number of nodes along x = nx+1, along y = ny+1, and along z = nz+1

integer, intent(in) :: npx

Number of interpolating points along x = npx+1, along y = npy+1, and along z = npz+1

integer, intent(in) :: npy

Number of interpolating points along x = npx+1, along y = npy+1, and along z = npz+1

integer, intent(in) :: npz

Number of interpolating points along x = npx+1, along y = npy+1, and along z = npz+1

real(kind=rp), intent(in), dimension(:,:) :: matx

(npx+1,nx+1). Interpolation matrix along x

real(kind=rp), intent(in), dimension(:,:) :: maty

(npy+1,ny+1). Interpolation matrix along y

real(kind=rp), intent(in), dimension(:,:) :: matz

(npz+1,nz+1). Interpolation matrix along z

real(kind=rp), intent(in), dimension(:) :: f

(nx+1)(ny+1)(nz+1), ). Value of the function at the nodes

real(kind=rp), intent(out), dimension(:) :: fintrp

(npx+1)(npy+1)(npz+1), ). Value of the function at the interpolation points.

real(kind=rp), intent(inout), dimension(:) :: rwrk

Workspace array, minimum size (npx+1)(npy+1)(nz+1)+(npx+1)*(ny+1)