db6val Interface

public interface db6val

6D evaluation routines.

Calls

interface~~db6val~~CallsGraph interface~db6val db6val proc~db6val_default db6val_default interface~db6val->proc~db6val_default proc~db6val_multi db6val_multi interface~db6val->proc~db6val_multi proc~check_value check_value proc~db6val_default->proc~check_value proc~dbvalu_weights dbvalu_weights proc~db6val_default->proc~dbvalu_weights proc~db6val_multi->proc~check_value proc~db6val_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~~db6val~~CalledByGraph interface~db6val db6val proc~evaluate_6d bspline_6d%evaluate_6d proc~evaluate_6d->interface~db6val proc~evaluate_6d_multi bspline_6d%evaluate_6d_multi proc~evaluate_6d_multi->interface~db6val

Module Procedures

private pure subroutine db6val_default(xval, yval, zval, qval, rval, sval, idx, idy, idz, idq, idr, ids, tx, ty, tz, tq, tr, ts, nx, ny, nz, nq, nr, ns, kx, ky, kz, kq, kr, ks, bcoef, f, iflag, inbvx, inbvy, inbvz, inbvq, inbvr, inbvs, iloy, iloz, iloq, ilor, ilos, w5, w4, w3, w2, w1, w0, extrap)

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

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.

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

coordinate of evaluation point.

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

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.

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

derivative of piecewise polynomial to evaluate.

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

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

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

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

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

real(kind=wp), intent(in), dimension(nr+kr) :: tr

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

real(kind=wp), intent(in), dimension(ns+ks) :: ts

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

the b-spline coefficients computed by db6ink.

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

not used (kept for backward compatibility)

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

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.

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

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

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,kr,ks) :: w5

work array

real(kind=wp), intent(inout), dimension(kz,kq,kr,ks) :: w4

work array

real(kind=wp), intent(inout), dimension(kq,kr,ks) :: w3

work array

real(kind=wp), intent(inout), dimension(kr,ks) :: w2

work array

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

work array

real(kind=wp), intent(inout), dimension(3_ip*max(kx,ky,kz,kq,kr,ks)) :: 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 db6val_multi(xval, yval, zval, qval, rval, sval, idx, idy, idz, idq, idr, ids, tx, ty, tz, tq, tr, ts, nx, ny, nz, nq, nr, ns, kx, ky, kz, kq, kr, ks, bcoef, f, iflag, inbvx, iloy, iloz, iloq, ilor, ilos, w5, w4, w3, w2, w1, extrap)

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

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

coordinate of evaluation point.

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

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.

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

derivative of piecewise polynomial to evaluate.

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

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.

real(kind=wp), intent(in), dimension(nr+kr) :: tr

knots in the direction.

real(kind=wp), intent(in), dimension(ns+ks) :: ts

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

the number of interpolation points in .

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

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 .

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

order of polynomial pieces in .

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

order of polynomial pieces in .

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

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

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

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

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,kr,ks) :: w5

work array of dimension (ky,kz,kq,kr,ks)

real(kind=wp), intent(inout), dimension(kz,kq,kr,ks) :: w4

work array of dimension (kz,kq,kr,ks)

real(kind=wp), intent(inout), dimension(kq,kr,ks) :: w3

work array of dimension (kq,kr,ks)

real(kind=wp), intent(inout), dimension(kr,ks) :: w2

work array of dimension (kr,ks)

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

work array of dimension (ks)

logical, intent(in), optional :: extrap

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