db3val Interface

public interface db3val

3D evaluation routines.

Calls

interface~~db3val~~CallsGraph interface~db3val db3val proc~db3val_default db3val_default interface~db3val->proc~db3val_default proc~db3val_multi db3val_multi interface~db3val->proc~db3val_multi proc~check_value check_value proc~db3val_default->proc~check_value proc~dbvalu_weights dbvalu_weights proc~db3val_default->proc~dbvalu_weights proc~db3val_multi->proc~check_value proc~db3val_multi->proc~dbvalu_weights proc~dintrv dintrv proc~dbvalu_weights->proc~dintrv proc~get_temp_x_for_extrap get_temp_x_for_extrap proc~dintrv->proc~get_temp_x_for_extrap

Called by

interface~~db3val~~CalledByGraph interface~db3val db3val proc~evaluate_3d bspline_3d%evaluate_3d proc~evaluate_3d->interface~db3val proc~evaluate_3d_multi bspline_3d%evaluate_3d_multi proc~evaluate_3d_multi->interface~db3val

Module Procedures

private pure subroutine db3val_default(xval, yval, zval, idx, idy, idz, tx, ty, tz, nx, ny, nz, kx, ky, kz, bcoef, f, iflag, inbvx, inbvy, inbvz, iloy, iloz, w2, w1, w0, extrap)

Evaluates the tensor product piecewise polynomial interpolant constructed by the routine db3ink or one of its derivatives at the point (xval,yval,zval).

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: xval

coordinate of evaluation point.

real(kind=wp), intent(in) :: yval

coordinate of evaluation point.

real(kind=wp), intent(in) :: zval

coordinate of evaluation point.

integer(kind=ip), intent(in) :: idx

derivative of piecewise polynomial to evaluate.

integer(kind=ip), intent(in) :: idy

derivative of piecewise polynomial to evaluate.

integer(kind=ip), intent(in) :: idz

derivative of piecewise polynomial to evaluate.

real(kind=wp), intent(in), dimension(nx+kx) :: tx

sequence of knots defining the piecewise polynomial in the direction. (same as in last call to db3ink)

real(kind=wp), intent(in), dimension(ny+ky) :: ty

sequence of knots defining the piecewise polynomial in the direction. (same as in last call to db3ink)

real(kind=wp), intent(in), dimension(nz+kz) :: tz

sequence of knots defining the piecewise polynomial in the direction. (same as in last call to db3ink)

integer(kind=ip), intent(in) :: nx

the number of interpolation points in . (same as in last call to db3ink)

integer(kind=ip), intent(in) :: ny

the number of interpolation points in . (same as in last call to db3ink)

integer(kind=ip), intent(in) :: nz

the number of interpolation points in . (same as in last call to db3ink)

integer(kind=ip), intent(in) :: kx

order of polynomial pieces in . (same as in last call to db3ink)

integer(kind=ip), intent(in) :: ky

order of polynomial pieces in . (same as in last call to db3ink)

integer(kind=ip), intent(in) :: kz

order of polynomial pieces in . (same as in last call to db3ink)

real(kind=wp), intent(in), dimension(nx,ny,nz) :: bcoef

the b-spline coefficients computed by db3ink.

real(kind=wp), intent(out) :: f

interpolated value

integer(kind=ip), intent(out) :: iflag

status flag:

Read more…
integer(kind=ip), intent(inout) :: inbvx

initialization parameter which must be set to 1 the first time this routine is called, and must not be changed by the user.

integer(kind=ip), intent(inout) :: inbvy

not used (kept for backward compatibility)

integer(kind=ip), intent(inout) :: inbvz

not used (kept for backward compatibility)

integer(kind=ip), intent(inout) :: iloy

initialization parameter which must be set to 1 the first time this routine is called, and must not be changed by the user.

integer(kind=ip), intent(inout) :: iloz

initialization parameter which must be set to 1 the first time this routine is called, and must not be changed by the user.

real(kind=wp), intent(inout), dimension(ky,kz) :: w2

work array

real(kind=wp), intent(inout), dimension(kz) :: w1

work array

real(kind=wp), intent(inout), dimension(3_ip*max(kx,ky,kz)) :: w0

not used (kept for backward compatibility)

logical, intent(in), optional :: extrap

if extrapolation is allowed (if not present, default is False)

private pure subroutine db3val_multi(xval, yval, zval, idx, idy, idz, tx, ty, tz, nx, ny, nz, kx, ky, kz, bcoef, f, iflag, inbvx, iloy, iloz, w2, w1, extrap)

Multiple-output version of db3val: evaluates all nf outputs of a spline from db3ink (multiple-output version) at one point. The interval search and the basis functions in each direction are only computed once, for all of the outputs.

Arguments

Type IntentOptional Attributes Name
real(kind=wp), intent(in) :: xval

coordinate of evaluation point.

real(kind=wp), intent(in) :: yval

coordinate of evaluation point.

real(kind=wp), intent(in) :: zval

coordinate of evaluation point.

integer(kind=ip), intent(in) :: idx

derivative of piecewise polynomial to evaluate.

integer(kind=ip), intent(in) :: idy

derivative of piecewise polynomial to evaluate.

integer(kind=ip), intent(in) :: idz

derivative of piecewise polynomial to evaluate.

real(kind=wp), intent(in), dimension(nx+kx) :: tx

knots in the direction.

real(kind=wp), intent(in), dimension(ny+ky) :: ty

knots in the direction.

real(kind=wp), intent(in), dimension(nz+kz) :: tz

knots in the direction.

integer(kind=ip), intent(in) :: nx

the number of interpolation points in .

integer(kind=ip), intent(in) :: ny

the number of interpolation points in .

integer(kind=ip), intent(in) :: nz

the number of interpolation points in .

integer(kind=ip), intent(in) :: kx

order of polynomial pieces in .

integer(kind=ip), intent(in) :: ky

order of polynomial pieces in .

integer(kind=ip), intent(in) :: kz

order of polynomial pieces in .

real(kind=wp), intent(in), dimension(:,:,:,:) :: bcoef

(nx,ny,nz,nf) b-spline coefficients from db3ink (multiple-output version).

real(kind=wp), intent(out), dimension(:) :: f

(nf) interpolated values of the outputs

integer(kind=ip), intent(out) :: iflag

status flag:

Read more…
integer(kind=ip), intent(inout) :: inbvx

initialization parameter which must be set to 1 the first time this routine is called, and must not be changed by the user.

integer(kind=ip), intent(inout) :: iloy

initialization parameter which must be set to 1 the first time this routine is called, and must not be changed by the user.

integer(kind=ip), intent(inout) :: iloz

initialization parameter which must be set to 1 the first time this routine is called, and must not be changed by the user.

real(kind=wp), intent(inout), dimension(ky,kz) :: w2

work array of dimension (ky,kz)

real(kind=wp), intent(inout), dimension(kz) :: w1

work array of dimension (kz)

logical, intent(in), optional :: extrap

if extrapolation is allowed (if not present, default is False)