db1ink Interface

public interface db1ink

1D initialization routines.

Calls

interface~~db1ink~~CallsGraph interface~db1ink db1ink proc~db1ink_alt db1ink_alt interface~db1ink->proc~db1ink_alt proc~db1ink_alt_2 db1ink_alt_2 interface~db1ink->proc~db1ink_alt_2 proc~db1ink_default db1ink_default interface~db1ink->proc~db1ink_default proc~db1ink_multi db1ink_multi interface~db1ink->proc~db1ink_multi proc~check_inputs check_inputs proc~db1ink_alt->proc~check_inputs proc~dbint4 dbint4 proc~db1ink_alt->proc~dbint4 proc~db1ink_alt_2->proc~check_inputs proc~db1ink_alt_2->proc~dbint4 proc~db1ink_default->proc~check_inputs proc~dbknot dbknot proc~db1ink_default->proc~dbknot proc~dbtpcf dbtpcf proc~db1ink_default->proc~dbtpcf proc~db1ink_multi->proc~db1ink_default proc~dbspvd dbspvd proc~dbint4->proc~dbspvd proc~dgbfa dgbfa proc~dbint4->proc~dgbfa proc~dgbsl dgbsl proc~dbint4->proc~dgbsl proc~dintrv dintrv proc~dbint4->proc~dintrv proc~dbintk dbintk proc~dbtpcf->proc~dbintk proc~dbnslv dbnslv proc~dbtpcf->proc~dbnslv proc~dbintk->proc~dbnslv proc~dbnfac dbnfac proc~dbintk->proc~dbnfac proc~dbspvn dbspvn proc~dbintk->proc~dbspvn proc~dbspvd->proc~dbspvn proc~get_temp_x_for_extrap get_temp_x_for_extrap proc~dintrv->proc~get_temp_x_for_extrap

Called by

interface~~db1ink~~CalledByGraph interface~db1ink db1ink proc~initialize_1d_auto_knots bspline_1d%initialize_1d_auto_knots proc~initialize_1d_auto_knots->interface~db1ink proc~initialize_1d_auto_knots_multi bspline_1d%initialize_1d_auto_knots_multi proc~initialize_1d_auto_knots_multi->interface~db1ink proc~initialize_1d_specify_knots bspline_1d%initialize_1d_specify_knots proc~initialize_1d_specify_knots->interface~db1ink proc~initialize_1d_specify_knots_multi bspline_1d%initialize_1d_specify_knots_multi proc~initialize_1d_specify_knots_multi->interface~db1ink proc~bspline_1d_constructor_auto_knots bspline_1d_constructor_auto_knots proc~bspline_1d_constructor_auto_knots->proc~initialize_1d_auto_knots proc~bspline_1d_constructor_specify_knots bspline_1d_constructor_specify_knots proc~bspline_1d_constructor_specify_knots->proc~initialize_1d_specify_knots interface~bspline_1d bspline_1d interface~bspline_1d->proc~bspline_1d_constructor_auto_knots interface~bspline_1d->proc~bspline_1d_constructor_specify_knots

Module Procedures

private pure subroutine db1ink_default(x, nx, fcn, kx, iknot, tx, bcoef, iflag)

Determines the parameters of a function that interpolates the one-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db1val.

Read more…

Arguments

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

(nx) array of abcissae. Must be strictly increasing.

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

Number of abcissae

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

(nx) array of function values to interpolate. fcn(i) should contain the function value at the point x(i)

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

The order of spline pieces in ( ) (order = polynomial degree + 1)

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

knot sequence flag:

Read more…
real(kind=wp), intent(inout), dimension(:) :: tx

The (nx+kx) knots in the direction for the spline interpolant:

Read more…
real(kind=wp), intent(out), dimension(:) :: bcoef

(nx) array of coefficients of the b-spline interpolant.

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

status flag:

Read more…

private pure subroutine db1ink_alt(x, nx, fcn, kx, ibcl, ibcr, fbcl, fbcr, kntopt, tx, bcoef, iflag)

Alternate version of db1ink_default, where the boundary conditions can be specified.

Read more…

Arguments

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

vector of abscissae of length nx, distinct and in increasing order

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

number of data points,

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

vector of ordinates of length nx

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

spline order (kx >= 3)

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

selection parameter for left boundary condition: constrain the ibcl-th derivative at x(1) to fbcl (1 <= ibcl <= kx-1, e.g. ibcl = 2 for a natural spline)

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

selection parameter for right boundary condition: constrain the ibcr-th derivative at x(nx) to fbcr (1 <= ibcr <= kx-1, e.g. ibcr = 2 for a natural spline)

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

left boundary values governed by ibcl

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

right boundary values governed by ibcr

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

knot selection parameter:

Read more…
real(kind=wp), intent(out), dimension(:) :: tx

knot array of length nx+kx+2

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

b spline coefficient array of length nx+2

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

status flag (see dbint4)

private pure subroutine db1ink_alt_2(x, nx, fcn, kx, ibcl, ibcr, fbcl, fbcr, tleft, tright, tx, bcoef, iflag)

Alternate version of db1ink_alt, where the first and last kx-1 knots are specified by the user.

Read more…

Arguments

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

vector of abscissae of length nx, distinct and in increasing order

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

number of data points,

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

vector of ordinates of length nx

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

spline order (kx >= 3)

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

selection parameter for left boundary condition: constrain the ibcl-th derivative at x(1) to fbcl (1 <= ibcl <= kx-1, e.g. ibcl = 2 for a natural spline)

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

selection parameter for right boundary condition: constrain the ibcr-th derivative at x(nx) to fbcr (1 <= ibcr <= kx-1, e.g. ibcr = 2 for a natural spline)

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

left boundary values governed by ibcl

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

right boundary values governed by ibcr

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

t(1:kx-1) in increasing order supplied by the user.

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

t(nx+4:nx+kx+2) in increasing order supplied by the user.

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

knot array of length nx+kx+2

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

b spline coefficient array of length nx+2

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

status flag (see dbint4)

private pure subroutine db1ink_multi(x, nx, fcn, kx, iknot, tx, bcoef, iflag)

Multiple-output version of db1ink: interpolates nf functions on the same grid, with the same knots. The last dimension of fcn and bcoef is the output index. Evaluate them with db1val (multiple-output version).

Arguments

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

(nx) array of abcissae. Must be strictly increasing.

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

Number of abcissae

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

(nx,nf) array of function values to interpolate: fcn(i1,j) is output j at grid point (x(i1))

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

The order of spline pieces in

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

knot sequence flag (see db1ink_default)

real(kind=wp), intent(inout), dimension(:) :: tx

The (nx+kx) knots in the direction

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

(nx,nf) array of b-spline coefficients

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

status flag (see db1ink_default), or 6001 if fcn and bcoef do not have the same number of outputs (or it is zero)