db4val Interface

public interface db4val

4D evaluation routines.

Calls

interface~~db4val~~CallsGraph interface~db4val db4val proc~db4val_default db4val_default interface~db4val->proc~db4val_default proc~db4val_multi db4val_multi interface~db4val->proc~db4val_multi proc~check_value check_value proc~db4val_default->proc~check_value proc~dbvalu_weights dbvalu_weights proc~db4val_default->proc~dbvalu_weights proc~db4val_multi->proc~check_value proc~db4val_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~~db4val~~CalledByGraph interface~db4val db4val proc~evaluate_4d bspline_4d%evaluate_4d proc~evaluate_4d->interface~db4val proc~evaluate_4d_multi bspline_4d%evaluate_4d_multi proc~evaluate_4d_multi->interface~db4val

Module Procedures

private pure subroutine db4val_default(xval, yval, zval, qval, idx, idy, idz, idq, tx, ty, tz, tq, nx, ny, nz, nq, kx, ky, kz, kq, bcoef, f, iflag, inbvx, inbvy, inbvz, inbvq, iloy, iloz, iloq, w3, w2, w1, w0, extrap)

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

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.

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

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.

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

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 db4ink)

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 db4ink)

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 db4ink)

real(kind=wp), intent(in), dimension(nq+kq) :: tq

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

the b-spline coefficients computed by db4ink.

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) :: inbvq

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.

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

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,kq) :: w3

work array

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

work array

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

work array

real(kind=wp), intent(inout), dimension(3_ip*max(kx,ky,kz,kq)) :: 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 db4val_multi(xval, yval, zval, qval, idx, idy, idz, idq, tx, ty, tz, tq, nx, ny, nz, nq, kx, ky, kz, kq, bcoef, f, iflag, inbvx, iloy, iloz, iloq, w3, w2, w1, extrap)

Multiple-output version of db4val: evaluates all nf outputs of a spline from db4ink (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.

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

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.

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

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.

real(kind=wp), intent(in), dimension(nq+kq) :: tq

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) :: nq

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 .

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

order of polynomial pieces in .

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

(nx,ny,nz,nq,nf) b-spline coefficients from db4ink (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.

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

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,kq) :: w3

work array of dimension (ky,kz,kq)

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

work array of dimension (kz,kq)

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

work array of dimension (kq)

logical, intent(in), optional :: extrap

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