Multidimensional (1D-6D) B-spline interpolation of data on a regular grid. Basic pure subroutine interface.
This module is based on the B-spline and spline routines from [1]. The original Fortran 77 routines were converted to free-form source. Some of them are relatively unchanged from the originals, but some have been extensively refactored. In addition, new routines for 1d, 4d, 5d, and 6d interpolation were also created (these are simply extensions of the same algorithm into higher dimensions).
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=ip), | public, | parameter | :: | bspline_order_linear | = | 2_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_quadratic | = | 3_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_cubic | = | 4_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_quartic | = | 5_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_quintic | = | 6_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_hexic | = | 7_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_heptic | = | 8_ip |
spline order |
| integer(kind=ip), | public, | parameter | :: | bspline_order_octic | = | 9_ip |
spline order |
| real(kind=wp), | private, | parameter | :: | root_ftol | = | 100.0_wp*epsilon(1.0_wp) |
relative tolerance on in db1root (scaled by the largest of and the coefficient magnitudes): a value below it is treated as zero |
| real(kind=wp), | private, | parameter | :: | root_xtol | = | 64.0_wp*epsilon(1.0_wp) |
relative tolerance for duplicate roots in db1root (scaled by the width of the domain, see root_dup_tol) |
| real(kind=wp), | private, | parameter | :: | gl8_x1 | = | 0.1834346424956498049394761423601839806667578129129737823171884736992044742215421141160682237111233537452676587642867666089196012523876865683788569995160663568104475551617138501966385810764205532370882654749492812314961247764619363562770645716456613159405134052985058171969174306064445289638150514997832_wp |
8-point Gauss-Legendre abscissa 1 |
| real(kind=wp), | private, | parameter | :: | gl8_x2 | = | 0.5255324099163289858177390491892463490419642431203928577508570992724548207685612725239614001936319820619096829248252608507108793766638779939805395303668253631119018273032402360060717470006127901479587576756241288895336619643528330825624263470540184224603688817537938539658502113876953598879150514997832_wp |
8-point Gauss-Legendre abscissa 2 |
| real(kind=wp), | private, | parameter | :: | gl8_x3 | = | 0.7966664774136267395915539364758304368371717316159648320701702950392173056764730921471519272957259390191974534530973092653656494917010859602772562074621689676153935016290342325645582634205301545856060095727342603557415761265140428851957341933710803722783136113628137267630651413319993338002150514997832_wp |
8-point Gauss-Legendre abscissa 3 |
| real(kind=wp), | private, | parameter | :: | gl8_x4 | = | 0.960289856497536231683560868569472990428235234301452038271639777372424897743419284439438959263312268310424392817294176210238958155217128547937364220490969970043398261832663734680878126355334692786735966348087059754254760392931853386656813286884261347489628923208763998895240977248938732425615051499783203_wp |
8-point Gauss-Legendre abscissa 4 |
| real(kind=wp), | private, | parameter | :: | gl8_w1 | = | 0.3626837833783619829651504492771956121941460398943305405248230675666867347239066773243660420848285095502587699262967065529258215569895173844995576007862076842778350382862546305771007553373269714714894268328780431822779077846722965535548199601402487767505928976560993309027632737537826127502150514997832_wp |
8-point Gauss-Legendre weight 1 |
| real(kind=wp), | private, | parameter | :: | gl8_w2 | = | 0.3137066458778872873379622019866013132603289990027349376902639450749562719421734969616980762339285560494275746410778086162472468322655616056890624276469758994622503118776562559463287222021520431626467794721603822601295276898652509723185157998353156062419751736972560423953923732838789657919150514997832_wp |
8-point Gauss-Legendre weight 2 |
| real(kind=wp), | private, | parameter | :: | gl8_w3 | = | 0.2223810344533744705443559944262408844301308700512495647259092892936168145704490408536531423771979278421592661012122181231114375798525722419381826674532090577908613289536840402789398648876004385697202157482063253247195590228631570651319965589733545440605952819880671616779621183704306688233150514997832_wp |
8-point Gauss-Legendre weight 3 |
| real(kind=wp), | private, | parameter | :: | gl8_w4 | = | 0.1012285362903762591525313543099621901153940910516849570590036980647401787634707848602827393040450065581543893314132667077154940308923487678731973041136073584690533208824050731976306575729205467961435779467552492328730055025992954089946676810510810729468366466585774650346143712142008566866150514997832_wp |
8-point Gauss-Legendre weight 4 |
1D initialization routines.
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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | fcn |
|
|
| 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: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
Alternate version of db1ink_default, where the boundary conditions can be specified.
Note
The spline order kx must be at least 3.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
vector of abscissae of length |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of data points, |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | fcn |
vector of ordinates of length |
|
| integer(kind=ip), | intent(in) | :: | kx |
spline order ( |
||
| integer(kind=ip), | intent(in) | :: | ibcl |
selection parameter for left boundary condition:
constrain the |
||
| integer(kind=ip), | intent(in) | :: | ibcr |
selection parameter for right boundary condition:
constrain the |
||
| real(kind=wp), | intent(in) | :: | fbcl |
left boundary values governed by |
||
| real(kind=wp), | intent(in) | :: | fbcr |
right boundary values governed by |
||
| integer(kind=ip), | intent(in) | :: | kntopt |
knot selection parameter: |
||
| real(kind=wp), | intent(out), | dimension(:) | :: | tx |
knot array of length |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
b spline coefficient array of length |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see dbint4) |
Alternate version of db1ink_alt, where the first and
last kx-1 knots are specified by the user.
Note
The spline order kx must be at least 3.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
vector of abscissae of length |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of data points, |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | fcn |
vector of ordinates of length |
|
| integer(kind=ip), | intent(in) | :: | kx |
spline order ( |
||
| integer(kind=ip), | intent(in) | :: | ibcl |
selection parameter for left boundary condition:
constrain the |
||
| integer(kind=ip), | intent(in) | :: | ibcr |
selection parameter for right boundary condition:
constrain the |
||
| real(kind=wp), | intent(in) | :: | fbcl |
left boundary values governed by |
||
| real(kind=wp), | intent(in) | :: | fbcr |
right boundary values governed by |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | tleft |
|
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tright |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | tx |
knot array of length |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
b spline coefficient array of length |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see dbint4) |
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).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | fcn |
|
|
| 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 |
|
| real(kind=wp), | intent(out), | dimension(:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db1ink_default),
or 6001 if |
1D evaluation routines.
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db1ink or one of its
derivatives at the point xval.
To evaluate the interpolant itself, set idx=0,
to evaluate the first partial with respect to x, set idx=1, and so on.
db1val returns 0.0 if (xval,yval) is out of range. that is, if
xval < tx(1) .or. xval > tx(nx+kx)
if the knots tx were chosen by db1ink, then this is equivalent to:
xval < x(1) .or. xval > x(nx)+epsx
where
epsx = 0.1*(x(nx)-x(nx-1))
The input quantities tx, nx, kx, and bcoef should be
unchanged since the last call of db1ink.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| integer(kind=ip), | intent(in) | :: | idx |
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 db1ink) |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . (same as in last call to db1ink) |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db1ink) |
||
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
the b-spline coefficients computed by db1ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(3_ip*kx) | :: | w0 |
work array |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Alternate version of db1val_default for use with db1ink_alt and db1ink_alt_2.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| integer(kind=ip), | intent(in) | :: | idx |
derivative of piecewise polynomial to evaluate. |
||
| real(kind=wp), | intent(in), | dimension(n+kx) | :: | tx |
sequence of knots defining the piecewise polynomial in the direction. |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . |
||
| integer(kind=ip), | intent(in) | :: | n |
length of |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db1ink) |
||
| real(kind=wp), | intent(in), | dimension(n) | :: | bcoef |
the b-spline coefficients computed by db1ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(3_ip*kx) | :: | w0 |
work array |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db1val: evaluates all nf outputs
of a spline from db1ink (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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| integer(kind=ip), | intent(in) | :: | idx |
derivative of piecewise polynomial to evaluate. |
||
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knots in the direction. |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . |
||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | bcoef |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
2D initialization routines.
Determines the parameters of a function that interpolates the two-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db2val.
The interpolating function is a piecewise polynomial function represented as a tensor product of one-dimensional b-splines. the form of this function is
where the functions and are one-dimensional b-spline basis functions. the coefficients are chosen so that
Note that for each fixed value of , is a piecewise polynomial function of alone, and for each fixed value of , is a piecewise polynomial function of alone. in one dimension a piecewise polynomial may be created by partitioning a given interval into subintervals and defining a distinct polynomial piece on each one. the points where adjacent subintervals meet are called knots. each of the functions and above is a piecewise polynomial.
Users of db2ink choose the order (degree+1) of the polynomial
pieces used to define the piecewise polynomial in each of the and
directions (kx and ky). users also may define their own knot
sequence in and separately (tx and ty). if iflag=0, however,
db2ink will choose sequences of knots that result in a piecewise
polynomial interpolant with kx-2 continuous partial derivatives in
and ky-2 continuous partial derivatives in . (kx knots are taken
near each endpoint in the direction, not-a-knot end conditions
are used, and the remaining knots are placed at data points if kx
is even or at midpoints between data points if kx is odd. the
direction is treated similarly.)
After a call to db2ink, all information necessary to define the
interpolating function are contained in the parameters nx, ny, kx,
ky, tx, ty, and bcoef. These quantities should not be altered until
after the last call of the evaluation routine db2val.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Multiple-output version of db2ink: 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 db2val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db2ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db2ink_default),
or 6001 if |
2D evaluation routines.
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db2ink or one of its
derivatives at the point (xval,yval).
To evaluate the interpolant
itself, set idx=idy=0, to evaluate the first partial with respect
to x, set idx=1,idy=0, and so on.
db2val returns 0.0 if (xval,yval) is out of range. that is, if
xval < tx(1) .or. xval > tx(nx+kx) .or.
yval < ty(1) .or. yval > ty(ny+ky)
if the knots tx and ty were chosen by db2ink, then this is equivalent to:
xval < x(1) .or. xval > x(nx)+epsx .or.
yval < y(1) .or. yval > y(ny)+epsy
where
epsx = 0.1*(x(nx)-x(nx-1))
epsy = 0.1*(y(ny)-y(ny-1))
The input quantities tx, ty, nx, ny, kx, ky, and bcoef should be
unchanged since the last call of db2ink.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| real(kind=wp), | intent(in) | :: | yval |
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. |
||
| 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 db2ink) |
|
| 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 db2ink) |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . (same as in last call to db2ink) |
||
| integer(kind=ip), | intent(in) | :: | ny |
the number of interpolation points in . (same as in last call to db2ink) |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db2ink) |
||
| integer(kind=ip), | intent(in) | :: | ky |
order of polynomial pieces in . (same as in last call to db2ink) |
||
| real(kind=wp), | intent(in), | dimension(nx,ny) | :: | bcoef |
the b-spline coefficients computed by db2ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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) | :: | iloy |
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) | :: | w1 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(3_ip*max(kx,ky)) | :: | w0 |
not used (kept for backward compatibility) |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db2val: evaluates all nf outputs
of a spline from db2ink (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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| real(kind=wp), | intent(in) | :: | yval |
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. |
||
| 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. |
|
| 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) | :: | kx |
order of polynomial pieces in . |
||
| integer(kind=ip), | intent(in) | :: | ky |
order of polynomial pieces in . |
||
| real(kind=wp), | intent(in), | dimension(:,:,:) | :: | bcoef |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(ky) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
3D initialization routines.
Determines the parameters of a function that interpolates the three-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db3val.
The interpolating function is a piecewise polynomial function represented as a tensor product of one-dimensional b-splines. the form of this function is
where the functions , , and are one-dimensional b- spline basis functions. the coefficients are chosen so that:
Note that for fixed values of and is a piecewise polynomial function of alone, for fixed values of and is a piecewise polynomial function of alone, and for fixed values of and is a function of alone. in one dimension a piecewise polynomial may be created by partitioning a given interval into subintervals and defining a distinct polynomial piece on each one. the points where adjacent subintervals meet are called knots. each of the functions , , and above is a piecewise polynomial.
Users of db3ink choose the order (degree+1) of the polynomial
pieces used to define the piecewise polynomial in each of the , ,
and directions (kx, ky, and kz). users also may define their own
knot sequence in , , separately (tx, ty, and tz). if iflag=0,
however, db3ink will choose sequences of knots that result in a
piecewise polynomial interpolant with kx-2 continuous partial
derivatives in , ky-2 continuous partial derivatives in , and kz-2
continuous partial derivatives in . (kx knots are taken near
each endpoint in , not-a-knot end conditions are used, and the
remaining knots are placed at data points if kx is even or at
midpoints between data points if kx is odd. the and directions
are treated similarly.)
After a call to db3ink, all information necessary to define the
interpolating function are contained in the parameters nx, ny, nz,
kx, ky, kz, tx, ty, tz, and bcoef. these quantities should not be
altered until after the last call of the evaluation routine db3val.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Multiple-output version of db3ink: 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 db3val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db3ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db3ink_default),
or 6001 if |
3D evaluation routines.
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db3ink or one of its
derivatives at the point (xval,yval,zval).
To evaluate the
interpolant itself, set idx=idy=idz=0, to evaluate the first
partial with respect to x, set idx=1,idy=idz=0, and so on.
db3val returns 0.0 if (xval,yval,zval) is out of range. that is,
xval<tx(1) .or. xval>tx(nx+kx) .or.
yval<ty(1) .or. yval>ty(ny+ky) .or.
zval<tz(1) .or. zval>tz(nz+kz)
if the knots tx, ty, and tz were chosen by db3ink, then this is
equivalent to
xval<x(1) .or. xval>x(nx)+epsx .or.
yval<y(1) .or. yval>y(ny)+epsy .or.
zval<z(1) .or. zval>z(nz)+epsz
where
epsx = 0.1*(x(nx)-x(nx-1))
epsy = 0.1*(y(ny)-y(ny-1))
epsz = 0.1*(z(nz)-z(nz-1))
The input quantities tx, ty, tz, nx, ny, nz, kx, ky, kz, and bcoef
should remain unchanged since the last call of db3ink.
| Type | Intent | Optional | 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: |
||
| 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) |
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.
| Type | Intent | Optional | 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 |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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 |
|
| real(kind=wp), | intent(inout), | dimension(kz) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
4D initialization routines.
Determines the parameters of a function that interpolates the four-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db4val.
See db3ink header for more details.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kq |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Multiple-output version of db4ink: 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 db4val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db4ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db4ink_default),
or 6001 if |
4D evaluation routines.
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db4ink or one of its
derivatives at the point (xval,yval,zval,qval).
To evaluate the
interpolant itself, set idx=idy=idz=idq=0, to evaluate the first
partial with respect to x, set idx=1,idy=idz=idq=0, and so on.
See db3val header for more information.
| Type | Intent | Optional | 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: |
||
| 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) |
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.
| Type | Intent | Optional | 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 |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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 |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq) | :: | w2 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kq) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
5D initialization routines.
Determines the parameters of a function that interpolates the five-dimensional gridded data:
for:
The interpolating function and its derivatives may subsequently be evaluated by the function db5val.
See db3ink header for more details.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kq |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kr |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Multiple-output version of db5ink: 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 db5val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kr |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db5ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db5ink_default),
or 6001 if |
5D evaluation routines.
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db5ink or one of its
derivatives at the point (xval,yval,zval,qval,rval).
To evaluate the
interpolant itself, set idx=idy=idz=idq=idr=0, to evaluate the first
partial with respect to x, set idx=1,idy=idz=idq=idr=0, and so on.
See db3val header for more information.
| Type | Intent | Optional | 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. |
||
| 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. |
||
| 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 db5ink) |
|
| 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 db5ink) |
|
| 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 db5ink) |
|
| 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 db5ink) |
|
| 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 db5ink) |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | ny |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | nz |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | nq |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | nr |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | ky |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kz |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kq |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kr |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| real(kind=wp), | intent(in), | dimension(nx,ny,nz,nq,nr) | :: | bcoef |
the b-spline coefficients computed by db5ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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) | :: | 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. |
||
| real(kind=wp), | intent(inout), | dimension(ky,kz,kq,kr) | :: | w4 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq,kr) | :: | w3 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(kq,kr) | :: | w2 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(kr) | :: | w1 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(3_ip*max(kx,ky,kz,kq,kr)) | :: | w0 |
not used (kept for backward compatibility) |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db5val: evaluates all nf outputs
of a spline from db5ink (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.
| Type | Intent | Optional | 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. |
||
| 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. |
||
| 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. |
|
| 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) | :: | 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 . |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(ky,kz,kq,kr) | :: | w4 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq,kr) | :: | w3 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kq,kr) | :: | w2 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kr) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
6D initialization routines.
Determines the parameters of a function that interpolates the six-dimensional gridded data:
for:
the interpolating function and its derivatives may subsequently be evaluated by the function db6val.
See db3ink header for more details.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | s |
|
|
| integer(kind=ip), | intent(in) | :: | ns |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kq |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kr |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ks |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ts |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Multiple-output version of db6ink: 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 db6val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | s |
|
|
| integer(kind=ip), | intent(in) | :: | ns |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kr |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ks |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db6ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ts |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db6ink_default),
or 6001 if |
6D evaluation routines.
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).
To evaluate the
interpolant itself, set idx=idy=idz=idq=idr=ids=0, to evaluate the first
partial with respect to x, set idx=1,idy=idz=idq=idr=ids=0, and so on.
See db3val header for more information.
| Type | Intent | Optional | 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: |
||
| 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) |
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.
| Type | Intent | Optional | 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 |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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 |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq,kr,ks) | :: | w4 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kq,kr,ks) | :: | w3 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kr,ks) | :: | w2 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(ks) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
interface for the input function in dbfqad
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | x |
f(x)
Returns true if x is inside a region where the spline is equal
to a (to within ftol). The ends of such a region are not inside.
Used by db1root.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(n+k) | :: | t |
knot array |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | c |
b-spline coefficient array |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline |
||
| real(kind=wp), | intent(in) | :: | a |
the value to solve for |
||
| real(kind=wp), | intent(in) | :: | ftol |
tolerance on |
||
| real(kind=wp), | intent(in) | :: | x |
the point to check |
true if x is inside a region where
(to within ftol)
Tolerance for removing duplicate roots in db1root: two roots closer than this are the same root (found twice, e.g. at a knot).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | x1 |
left end of the domain: |
||
| real(kind=wp), | intent(in) | :: | x2 |
right end of the domain: |
the duplicate tolerance
Checks if the value is withing the range of the knot vectors.
This is called by the various db*val routines.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | x |
the value to check |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | t |
the knot vector |
|
| integer(kind=ip), | intent(in) | :: | i |
1=x, 2=y, 3=z, 4=q, 5=r, 6=s |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
returns 0 if value is OK, otherwise returns 600+i
Returns the value of x to use for computing the interval
in t, depending on if extrapolation is allowed or not.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | x |
variable value |
||
| real(kind=wp), | intent(in) | :: | tmin |
first knot vector element for b-splines |
||
| real(kind=wp), | intent(in) | :: | tmax |
last knot vector element for b-splines |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
The value returned (it will either
be tmin, x, or tmax)
Returns a message string associated with the status code.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=ip), | intent(in) | :: | iflag |
return code from one of the routines |
status message associated with the flag
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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | fcn |
|
|
| 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: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
Alternate version of db1ink_default, where the boundary conditions can be specified.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
vector of abscissae of length |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of data points, |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | fcn |
vector of ordinates of length |
|
| integer(kind=ip), | intent(in) | :: | kx |
spline order ( |
||
| integer(kind=ip), | intent(in) | :: | ibcl |
selection parameter for left boundary condition:
constrain the |
||
| integer(kind=ip), | intent(in) | :: | ibcr |
selection parameter for right boundary condition:
constrain the |
||
| real(kind=wp), | intent(in) | :: | fbcl |
left boundary values governed by |
||
| real(kind=wp), | intent(in) | :: | fbcr |
right boundary values governed by |
||
| integer(kind=ip), | intent(in) | :: | kntopt |
knot selection parameter: |
||
| real(kind=wp), | intent(out), | dimension(:) | :: | tx |
knot array of length |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
b spline coefficient array of length |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see dbint4) |
Alternate version of db1ink_alt, where the first and
last kx-1 knots are specified by the user.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
vector of abscissae of length |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of data points, |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | fcn |
vector of ordinates of length |
|
| integer(kind=ip), | intent(in) | :: | kx |
spline order ( |
||
| integer(kind=ip), | intent(in) | :: | ibcl |
selection parameter for left boundary condition:
constrain the |
||
| integer(kind=ip), | intent(in) | :: | ibcr |
selection parameter for right boundary condition:
constrain the |
||
| real(kind=wp), | intent(in) | :: | fbcl |
left boundary values governed by |
||
| real(kind=wp), | intent(in) | :: | fbcr |
right boundary values governed by |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | tleft |
|
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tright |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | tx |
knot array of length |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
b spline coefficient array of length |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see dbint4) |
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db1ink or one of its
derivatives at the point xval.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| integer(kind=ip), | intent(in) | :: | idx |
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 db1ink) |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . (same as in last call to db1ink) |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db1ink) |
||
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
the b-spline coefficients computed by db1ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(3_ip*kx) | :: | w0 |
work array |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Alternate version of db1val_default for use with db1ink_alt and db1ink_alt_2.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| integer(kind=ip), | intent(in) | :: | idx |
derivative of piecewise polynomial to evaluate. |
||
| real(kind=wp), | intent(in), | dimension(n+kx) | :: | tx |
sequence of knots defining the piecewise polynomial in the direction. |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . |
||
| integer(kind=ip), | intent(in) | :: | n |
length of |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db1ink) |
||
| real(kind=wp), | intent(in), | dimension(n) | :: | bcoef |
the b-spline coefficients computed by db1ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(3_ip*kx) | :: | w0 |
work array |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Computes the integral on (x1,x2) of a kx-th order b-spline.
Orders kx as high as 20 are permitted by applying a 2, 6, or 10
point gauss formula on subintervals of (x1,x2) which are
formed by included (distinct) knots.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
| integer(kind=ip), | intent(in) | :: | nx |
length of coefficient array |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of b-spline, |
||
| real(kind=wp), | intent(in) | :: | x1 |
left point of quadrature interval in |
||
| real(kind=wp), | intent(in) | :: | x2 |
right point of quadrature interval in |
||
| real(kind=wp), | intent(out) | :: | f |
integral of the b-spline over ( |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| real(kind=wp), | intent(inout), | dimension(3*kx) | :: | w0 |
work array for dbsqad |
Computes the integral on (x1,x2) of a product of a
function fun and the idx-th derivative of a kx-th order b-spline,
using the b-representation (tx,bcoef,nx,kx), with an adaptive
8-point Legendre-Gauss algorithm.
(x1,x2) must be a subinterval of t(kx) <= x <= t(nx+1).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| procedure(b1fqad_func) | :: | fun |
external function of one argument for the
integrand |
|||
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
| integer(kind=ip), | intent(in) | :: | nx |
length of coefficient array |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of b-spline, |
||
| integer(kind=ip), | intent(in) | :: | idx |
order of the spline derivative, |
||
| real(kind=wp), | intent(in) | :: | x1 |
left point of quadrature interval in |
||
| real(kind=wp), | intent(in) | :: | x2 |
right point of quadrature interval in |
||
| real(kind=wp), | intent(in) | :: | tol |
desired accuracy for the quadrature, suggest
|
||
| real(kind=wp), | intent(out) | :: | f |
integral of |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| real(kind=wp), | intent(inout), | dimension(3_ip*kx) | :: | w0 |
work array for dbfqad |
Finds all the real roots of on ,
where is a 1D b-spline of order kx (kx >= 2).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of the b-spline, |
||
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
| real(kind=wp), | intent(in) | :: | a |
the value to solve for |
||
| real(kind=wp), | intent(out), | dimension(:), allocatable | :: | roots |
the roots, in increasing order (size 0 if there are none) |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
Finds the global minimum of a 1D b-spline on .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of the b-spline, |
||
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
| real(kind=wp), | intent(in) | :: | xa |
left end of the interval, in |
||
| real(kind=wp), | intent(in) | :: | xb |
right end of the interval, in |
||
| real(kind=wp), | intent(out) | :: | xmin |
location of the minimum |
||
| real(kind=wp), | intent(out) | :: | fmin |
minimum value of the spline |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
Finds the global maximum of a 1D b-spline on . See db1min for the method, and for discontinuous splines.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of the b-spline, |
||
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
| real(kind=wp), | intent(in) | :: | xa |
left end of the interval, in |
||
| real(kind=wp), | intent(in) | :: | xb |
right end of the interval, in |
||
| real(kind=wp), | intent(out) | :: | xmax |
location of the maximum |
||
| real(kind=wp), | intent(out) | :: | fmax |
maximum value of the spline |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db1min) |
Global minimum or maximum of a 1D b-spline on . Used by db1min and db1max.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knot array |
|
| integer(kind=ip), | intent(in) | :: | nx |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of the b-spline, |
||
| real(kind=wp), | intent(in), | dimension(nx) | :: | bcoef |
b-spline coefficient array |
|
| real(kind=wp), | intent(in) | :: | xa |
one end of the interval |
||
| real(kind=wp), | intent(in) | :: | xb |
other end of the interval |
||
| logical, | intent(in) | :: | find_max |
find the maximum (otherwise the minimum) |
||
| real(kind=wp), | intent(out) | :: | xopt |
location of the extremum |
||
| real(kind=wp), | intent(out) | :: | fopt |
value of the spline at |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db1min) |
Greville abscissae of a b-spline: the average of the k-1 interior
knots of the support of each b-spline basis function,
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(n+k) | :: | t |
knot array |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline, |
||
| real(kind=wp), | intent(out), | dimension(n) | :: | xi |
the Greville abscissae |
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).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | fcn |
|
|
| 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 |
|
| real(kind=wp), | intent(out), | dimension(:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db1ink_default),
or 6001 if |
Multiple-output version of db1val: evaluates all nf outputs
of a spline from db1ink (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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| integer(kind=ip), | intent(in) | :: | idx |
derivative of piecewise polynomial to evaluate. |
||
| real(kind=wp), | intent(in), | dimension(nx+kx) | :: | tx |
knots in the direction. |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . |
||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | bcoef |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db2ink: 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 db2val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db2ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db2ink_default),
or 6001 if |
Multiple-output version of db2val: evaluates all nf outputs
of a spline from db2ink (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.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| real(kind=wp), | intent(in) | :: | yval |
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. |
||
| 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. |
|
| 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) | :: | kx |
order of polynomial pieces in . |
||
| integer(kind=ip), | intent(in) | :: | ky |
order of polynomial pieces in . |
||
| real(kind=wp), | intent(in), | dimension(:,:,:) | :: | bcoef |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(ky) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db3ink: 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 db3val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db3ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db3ink_default),
or 6001 if |
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.
| Type | Intent | Optional | 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 |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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 |
|
| real(kind=wp), | intent(inout), | dimension(kz) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db4ink: 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 db4val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db4ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db4ink_default),
or 6001 if |
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.
| Type | Intent | Optional | 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 |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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 |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq) | :: | w2 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kq) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db5ink: 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 db5val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kr |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db5ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db5ink_default),
or 6001 if |
Multiple-output version of db5val: evaluates all nf outputs
of a spline from db5ink (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.
| Type | Intent | Optional | 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. |
||
| 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. |
||
| 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. |
|
| 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) | :: | 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 . |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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. |
||
| real(kind=wp), | intent(inout), | dimension(ky,kz,kq,kr) | :: | w4 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq,kr) | :: | w3 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kq,kr) | :: | w2 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kr) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Multiple-output version of db6ink: 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 db6val
(multiple-output version).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | s |
|
|
| integer(kind=ip), | intent(in) | :: | ns |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kz |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kq |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | kr |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | ks |
The order of spline pieces in |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag (see db6ink_default) |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ts |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (see db6ink_default),
or 6001 if |
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.
| Type | Intent | Optional | 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 |
|
|
| real(kind=wp), | intent(out), | dimension(:) | :: | f |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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 |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq,kr,ks) | :: | w4 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kq,kr,ks) | :: | w3 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(kr,ks) | :: | w2 |
work array of dimension |
|
| real(kind=wp), | intent(inout), | dimension(ks) | :: | w1 |
work array of dimension |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
The derivative of a b-spline, as a b-spline of order k-1
with n-1 coefficients and knots t(2:n+k-1), times a positive
constant (so it has the same roots).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(n+k) | :: | t |
knot array |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | c |
b-spline coefficient array |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline, |
||
| real(kind=wp), | intent(out), | dimension(:), allocatable | :: | td |
knots of the derivative (size |
|
| real(kind=wp), | intent(out), | dimension(:), allocatable | :: | d |
coefficients of the derivative (size |
Roots of where the spline crosses a (or where a
root lies exactly on a knot). Roots of even multiplicity may be
missed. Used by db1root.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(n+k) | :: | t |
knot array |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | c |
b-spline coefficient array |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-spline coefficients |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline, |
||
| real(kind=wp), | intent(in) | :: | a |
the value to solve for |
||
| real(kind=wp), | intent(out), | dimension(:), allocatable | :: | roots |
the roots, in increasing order |
|
| integer(kind=ip), | intent(out) | :: | iflag |
0, or 4004 if on a whole interval |
Sort an array in increasing order, and remove values that
are within tol of the previous one.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout), | dimension(:), allocatable | :: | x |
the array |
|
| real(kind=wp), | intent(in) | :: | tol |
duplicate tolerance |
Determines the parameters of a function that interpolates the two-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db2val.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
Number of abcissae |
||
| real(kind=wp), | intent(in), | dimension(:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db2ink or one of its
derivatives at the point (xval,yval).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | xval |
coordinate of evaluation point. |
||
| real(kind=wp), | intent(in) | :: | yval |
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. |
||
| 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 db2ink) |
|
| 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 db2ink) |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . (same as in last call to db2ink) |
||
| integer(kind=ip), | intent(in) | :: | ny |
the number of interpolation points in . (same as in last call to db2ink) |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db2ink) |
||
| integer(kind=ip), | intent(in) | :: | ky |
order of polynomial pieces in . (same as in last call to db2ink) |
||
| real(kind=wp), | intent(in), | dimension(nx,ny) | :: | bcoef |
the b-spline coefficients computed by db2ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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) | :: | iloy |
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) | :: | w1 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(3_ip*max(kx,ky)) | :: | w0 |
not used (kept for backward compatibility) |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Determines the parameters of a function that interpolates the three-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db3val.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
The order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db3ink or one of its
derivatives at the point (xval,yval,zval).
| Type | Intent | Optional | 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: |
||
| 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) |
Determines the parameters of a function that interpolates the four-dimensional gridded data The interpolating function and its derivatives may subsequently be evaluated by the function db4val.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kq |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db4ink or one of its
derivatives at the point (xval,yval,zval,qval).
| Type | Intent | Optional | 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: |
||
| 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) |
Determines the parameters of a function that interpolates the five-dimensional gridded data:
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kq |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kr |
the order of spline pieces in ( ). (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Evaluates the tensor product piecewise polynomial
interpolant constructed by the routine db5ink or one of its
derivatives at the point (xval,yval,zval,qval,rval).
| Type | Intent | Optional | 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. |
||
| 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. |
||
| 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 db5ink) |
|
| 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 db5ink) |
|
| 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 db5ink) |
|
| 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 db5ink) |
|
| 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 db5ink) |
|
| integer(kind=ip), | intent(in) | :: | nx |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | ny |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | nz |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | nq |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | nr |
the number of interpolation points in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kx |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | ky |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kz |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kq |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| integer(kind=ip), | intent(in) | :: | kr |
order of polynomial pieces in . (same as in last call to db5ink) |
||
| real(kind=wp), | intent(in), | dimension(nx,ny,nz,nq,nr) | :: | bcoef |
the b-spline coefficients computed by db5ink. |
|
| real(kind=wp), | intent(out) | :: | f |
interpolated value |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| 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) | :: | 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. |
||
| real(kind=wp), | intent(inout), | dimension(ky,kz,kq,kr) | :: | w4 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(kz,kq,kr) | :: | w3 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(kq,kr) | :: | w2 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(kr) | :: | w1 |
work array |
|
| real(kind=wp), | intent(inout), | dimension(3_ip*max(kx,ky,kz,kq,kr)) | :: | w0 |
not used (kept for backward compatibility) |
|
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Determines the parameters of a function that interpolates the six-dimensional gridded data:
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
|
|
| integer(kind=ip), | intent(in) | :: | nx |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
|
|
| integer(kind=ip), | intent(in) | :: | ny |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | z |
|
|
| integer(kind=ip), | intent(in) | :: | nz |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | q |
|
|
| integer(kind=ip), | intent(in) | :: | nq |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | r |
|
|
| integer(kind=ip), | intent(in) | :: | nr |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | s |
|
|
| integer(kind=ip), | intent(in) | :: | ns |
number of abcissae ( ) |
||
| real(kind=wp), | intent(in), | dimension(:,:,:,:,:,:) | :: | fcn |
|
|
| integer(kind=ip), | intent(in) | :: | kx |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ky |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kz |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kq |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | kr |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | ks |
the order of spline pieces in ( ) (order = polynomial degree + 1) |
||
| integer(kind=ip), | intent(in) | :: | iknot |
knot sequence flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | tx |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ty |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tz |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tq |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | tr |
The |
|
| real(kind=wp), | intent(inout), | dimension(:) | :: | ts |
The |
|
| real(kind=wp), | intent(out), | dimension(:,:,:,:,:,:) | :: | bcoef |
|
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
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).
| Type | Intent | Optional | 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: |
||
| 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) |
Check the validity of the inputs to the db*ink routines.
Prints warning message if there is an error,
and also sets iflag and status_ok.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=ip), | intent(in) | :: | iknot |
= 0 if the |
||
| integer(kind=ip), | intent(out) | :: | iflag | |||
| integer(kind=ip), | intent(in), | optional | :: | nx | ||
| integer(kind=ip), | intent(in), | optional | :: | ny | ||
| integer(kind=ip), | intent(in), | optional | :: | nz | ||
| integer(kind=ip), | intent(in), | optional | :: | nq | ||
| integer(kind=ip), | intent(in), | optional | :: | nr | ||
| integer(kind=ip), | intent(in), | optional | :: | ns | ||
| integer(kind=ip), | intent(in), | optional | :: | kx | ||
| integer(kind=ip), | intent(in), | optional | :: | ky | ||
| integer(kind=ip), | intent(in), | optional | :: | kz | ||
| integer(kind=ip), | intent(in), | optional | :: | kq | ||
| integer(kind=ip), | intent(in), | optional | :: | kr | ||
| integer(kind=ip), | intent(in), | optional | :: | ks | ||
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | x | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | y | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | z | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | q | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | r | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | s | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | tx | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | ty | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | tz | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | tq | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | tr | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | ts | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | f1 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:) | :: | f2 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:) | :: | f3 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:,:) | :: | f4 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:,:,:) | :: | f5 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:,:,:,:) | :: | f6 | |
| real(kind=wp), | intent(in), | optional, | dimension(:) | :: | bcoef1 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:) | :: | bcoef2 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:) | :: | bcoef3 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:,:) | :: | bcoef4 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:,:,:) | :: | bcoef5 | |
| real(kind=wp), | intent(in), | optional, | dimension(:,:,:,:,:,:) | :: | bcoef6 | |
| logical, | intent(in), | optional | :: | alt |
using the alt routine where 1st or 2nd deriv is fixed at endpoints [default is False] |
|
| logical, | intent(out) | :: | status_ok |
dbknot chooses a knot sequence for interpolation of order k at the data points x(i), i=1,..,n. the n+k knots are placed in the array t. k knots are placed at each endpoint and not-a-knot end conditions are used. the remaining knots are placed at data points if n is even and between data points if n is odd. the rightmost knot is shifted slightly to the right to insure proper interpolation at x(n) (see page 350 of the reference).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x | ||
| integer(kind=ip), | intent(in) | :: | n |
dimension of |
||
| integer(kind=ip), | intent(in) | :: | k | |||
| real(kind=wp), | intent(out), | dimension(:) | :: | t |
dbtpcf computes b-spline interpolation coefficients for nf sets of data stored in the columns of the array fcn. the b-spline coefficients are stored in the rows of bcoef however. each interpolation is based on the n abcissa stored in the array x, and the n+k knots stored in the array t. the order of each interpolation is k.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x | ||
| integer(kind=ip), | intent(in) | :: | n |
dimension of |
||
| real(kind=wp), | intent(in), | dimension(ldf,nf) | :: | fcn | ||
| integer(kind=ip), | intent(in) | :: | ldf | |||
| integer(kind=ip), | intent(in) | :: | nf | |||
| real(kind=wp), | intent(in), | dimension(:) | :: | t | ||
| integer(kind=ip), | intent(in) | :: | k | |||
| real(kind=wp), | intent(out), | dimension(nf,n) | :: | bcoef | ||
| real(kind=wp), | intent(out), | dimension(*) | :: | work |
work array of size >= |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
dbintk produces the b-spline coefficients, bcoef, of the b-spline of order k with knots t(i), i=1,...,n+k, which takes on the value y(i) at x(i), i=1,...,n. the spline or any of its derivatives can be evaluated by calls to dbvalu.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(n) | :: | x |
vector of length n containing data point abscissa in strictly increasing order. |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | y |
corresponding vector of length n containing data point ordinates. |
|
| real(kind=wp), | intent(in), | dimension(*) | :: | t |
knot vector of length n+k since t(1),..,t(k) <= x(1) and t(n+1),..,t(n+k) |
|
| integer(kind=ip), | intent(in) | :: | n |
number of data points, n >= k |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the spline, k >= 1 |
||
| real(kind=wp), | intent(out), | dimension(n) | :: | bcoef |
a vector of length n containing the b-spline coefficients |
|
| real(kind=wp), | intent(out), | dimension(*) | :: | q |
a work vector of length (2k-1)n, containing the triangular factorization of the coefficient matrix of the linear system being solved. the coefficients for the interpolant of an additional data set (x(i),yy(i)), i=1,...,n with the same abscissa can be obtained by loading yy into bcoef and then executing call dbnslv(q,2k-1,n,k-1,k-1,bcoef) |
|
| real(kind=wp), | intent(out), | dimension(*) | :: | work |
work vector of length 2*k |
|
| integer(kind=ip), | intent(out) | :: | iflag |
|
Returns in w the LU-factorization (without pivoting) of the banded matrix a of order nrow with (nbandl + 1 + nbandu) bands or diagonals in the work array w .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout), | dimension(nroww,nrow) | :: | w |
work array. See header for details. |
|
| integer(kind=ip), | intent(in) | :: | nroww |
row dimension of the work array w. must be >= nbandl + 1 + nbandu. |
||
| integer(kind=ip), | intent(in) | :: | nrow |
matrix order |
||
| integer(kind=ip), | intent(in) | :: | nbandl |
number of bands of a below the main diagonal |
||
| integer(kind=ip), | intent(in) | :: | nbandu |
number of bands of a above the main diagonal |
||
| integer(kind=ip), | intent(out) | :: | iflag |
indicating success(=1) or failure (=2) |
Companion routine to dbnfac. it returns the solution x of the linear system a*x = b in place of b, given the lu-factorization for a in the work array w from dbnfac.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(nroww,nrow) | :: | w |
describes the lu-factorization of a banded matrix a of
order |
|
| integer(kind=ip), | intent(in) | :: | nroww |
describes the lu-factorization of a banded matrix a of order |
||
| integer(kind=ip), | intent(in) | :: | nrow |
describes the lu-factorization of a banded matrix a of order |
||
| integer(kind=ip), | intent(in) | :: | nbandl |
describes the lu-factorization of a banded matrix a of order |
||
| integer(kind=ip), | intent(in) | :: | nbandu |
describes the lu-factorization of a banded matrix a of order |
||
| real(kind=wp), | intent(inout), | dimension(nrow) | :: | b |
|
Calculates the value of all (possibly) nonzero basis functions at x of order max(jhigh,(j+1)*(index-1)), where t(k) <= x <= t(n+1) and j=iwork is set inside the routine on the first call when index=1. ileft is such that t(ileft) <= x < t(ileft+1). a call to dintrv(t,n+1,x,ilo,ileft,mflag) produces the proper ileft. dbspvn calculates using the basic algorithm needed in dbspvd. if only basis functions are desired, setting jhigh=k and index=1 can be faster than calling dbspvd, but extra coding is required for derivatives (index=2) and dbspvd is set up for this purpose.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(*) | :: | t |
knot vector of length |
|
| integer(kind=ip), | intent(in) | :: | jhigh |
order of b-spline, |
||
| integer(kind=ip), | intent(in) | :: | k |
highest possible order |
||
| integer(kind=ip), | intent(in) | :: | index |
index = 1 gives basis functions of order |
||
| real(kind=wp), | intent(in) | :: | x |
argument of basis functions, |
||
| integer(kind=ip), | intent(in) | :: | ileft |
largest integer such that |
||
| real(kind=wp), | intent(out), | dimension(k) | :: | vnikx |
vector of length |
|
| real(kind=wp), | intent(inout), | dimension(*) | :: | work |
a work vector of length |
|
| integer(kind=ip), | intent(inout) | :: | iwork |
a work parameter. both |
||
| integer(kind=ip), | intent(out) | :: | iflag |
|
Evaluates the b-representation (t,a,n,k) of a b-spline
at x for the function value on ideriv=0 or any of its
derivatives on ideriv=1,2,...,k-1. right limiting values
(right derivatives) are returned except at the right end
point x=t(n+1) where left limiting values are computed. the
spline is defined on t(k)
x
t(n+1).
dbvalu returns a fatal error message when x is outside of this
interval.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | t |
knot vector of length |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | a |
b-spline coefficient vector of length |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-spline coefficients.
(sum of knot multiplicities- |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline, |
||
| integer(kind=ip), | intent(in) | :: | ideriv |
order of the derivative, |
||
| real(kind=wp), | intent(in) | :: | x |
argument, |
||
| integer(kind=ip), | intent(inout) | :: | inbv |
an initialization parameter which must be set
to 1 the first time dbvalu is called.
|
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | work |
work vector of length at least |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| real(kind=wp), | intent(out) | :: | val |
the interpolated value |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Computes the interval index left and weights b such that the
ideriv-th derivative of the b-spline (t,a,n,k) at x is
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | t |
knot vector of length |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-spline coefficients. |
||
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline, |
||
| integer(kind=ip), | intent(in) | :: | ideriv |
order of the derivative, |
||
| real(kind=wp), | intent(in) | :: | x |
argument, |
||
| integer(kind=ip), | intent(inout) | :: | inbv |
an initialization parameter which must be set to 1 the first time this routine is called. (see dbvalu) |
||
| integer(kind=ip), | intent(out) | :: | left |
the interval index, |
||
| real(kind=wp), | intent(out), | dimension(k) | :: | b |
weights for coefficients |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag (same codes as dbvalu) |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
Computes the largest integer ileft in 1
ileft
lxt
such that xt(ileft)
x where xt(*) is a subdivision of
the x interval.
precisely,
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | xt |
a knot or break point vector of length |
|
| integer(kind=ip), | intent(in) | :: | lxt |
length of the |
||
| real(kind=wp), | intent(in) | :: | xx |
argument |
||
| integer(kind=ip), | intent(inout) | :: | ilo |
an initialization parameter which must be set
to 1 the first time the spline array |
||
| integer(kind=ip), | intent(out) | :: | ileft |
largest integer satisfying |
||
| integer(kind=ip), | intent(out) | :: | mflag |
signals when |
||
| logical, | intent(in), | optional | :: | extrap |
if extrapolation is allowed (if not present, default is False) |
DBINT4 computes the B representation (t,bcoef,n,k) of a
spline of order k which interpolates data (x(i),y(i)),i=1,ndata.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | x |
x vector of abscissae of length |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | y |
y vector of ordinates of length ndata |
|
| integer(kind=ip), | intent(in) | :: | ndata |
number of data points, |
||
| integer(kind=ip), | intent(in) | :: | ibcl |
selection parameter for left boundary condition:
constrain the |
||
| integer(kind=ip), | intent(in) | :: | ibcr |
selection parameter for right boundary condition:
constrain the |
||
| real(kind=wp), | intent(in) | :: | fbcl |
left boundary values governed by |
||
| real(kind=wp), | intent(in) | :: | fbcr |
right boundary values governed by |
||
| integer(kind=ip), | intent(in) | :: | kntopt |
knot selection parameter: |
||
| real(kind=wp), | intent(in), | dimension(:) | :: | tleft |
when |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | tright |
when |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | t |
knot array of length |
|
| real(kind=wp), | intent(out), | dimension(:) | :: | bcoef |
b spline coefficient array of length |
|
| integer(kind=ip), | intent(out) | :: | n |
number of coefficients, |
||
| integer(kind=ip), | intent(in) | :: | k |
order of spline, |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
Factors a banded matrix by Gaussian elimination with partial pivoting.
The matrix A is stored in abd with A(i,j) in abd(i-j+ml+mu+1,j).
Rows 1:ml of abd are used for the fill-in generated by pivoting.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(inout), | dimension(2_ip*ml+mu+1_ip,n) | :: | abd |
IN: the matrix in band storage. OUT: its LU factorization. |
|
| integer(kind=ip), | intent(in) | :: | n |
order of the matrix |
||
| integer(kind=ip), | intent(in) | :: | ml |
number of diagonals below the main diagonal |
||
| integer(kind=ip), | intent(in) | :: | mu |
number of diagonals above the main diagonal |
||
| integer(kind=ip), | intent(out), | dimension(n) | :: | ipvt |
pivot indices |
|
| real(kind=wp), | intent(in) | :: | tol |
a pivot with |
||
| integer(kind=ip), | intent(out) | :: | info |
0 if successful, otherwise |
Solves the banded system A*x = b using the factorization from dgbfa.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(2_ip*ml+mu+1_ip,n) | :: | abd |
the factorization from dgbfa |
|
| integer(kind=ip), | intent(in) | :: | n |
order of the matrix |
||
| integer(kind=ip), | intent(in) | :: | ml |
number of diagonals below the main diagonal |
||
| integer(kind=ip), | intent(in) | :: | mu |
number of diagonals above the main diagonal |
||
| integer(kind=ip), | intent(in), | dimension(n) | :: | ipvt |
the pivot indices from dgbfa |
|
| real(kind=wp), | intent(inout), | dimension(n) | :: | b |
IN: the right hand side. OUT: the solution. |
DBSPVD calculates the value and all derivatives of order
less than nderiv of all basis functions which do not
(possibly) vanish at x. ileft is input such that
t(ileft) <= x < t(ileft+1). A call to dintrv(t,n+1,x,
ilo,ileft,mflag) will produce the proper ileft. The output of
dbspvd is a matrix vnikx(i,j) of dimension at least (k,nderiv)
whose columns contain the k nonzero basis functions and
their nderiv-1 right derivatives at x, i=1,k, j=1,nderiv.
These basis functions have indices ileft-k+i, i=1,k,
k <= ileft <= n. The nonzero part of the i-th basis
function lies in (t(i),t(i+k)), i=1,n).
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | t |
knot vector of length |
|
| integer(kind=ip), | intent(in) | :: | k |
order of the b-spline, |
||
| integer(kind=ip), | intent(in) | :: | nderiv |
number of derivatives = |
||
| real(kind=wp), | intent(in) | :: | x |
argument of basis functions,
|
||
| integer(kind=ip), | intent(in) | :: | ileft |
largest integer such that
|
||
| integer(kind=ip), | intent(in) | :: | ldvnik |
leading dimension of matrix |
||
| real(kind=wp), | intent(out), | dimension(ldvnik,nderiv) | :: | vnikx |
matrix of dimension at least |
|
| real(kind=wp), | intent(out), | dimension(*) | :: | work |
a work vector of length |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
DBSQAD computes the integral on (x1,x2) of a k-th order
b-spline using the b-representation (t,bcoef,n,k). orders
k as high as 20 are permitted by applying a 2, 6, or 10
point gauss formula on subintervals of (x1,x2) which are
formed by included (distinct) knots.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in), | dimension(:) | :: | t |
knot array of length |
|
| real(kind=wp), | intent(in), | dimension(:) | :: | bcoef |
b-spline coefficient array of length |
|
| integer(kind=ip), | intent(in) | :: | n |
length of coefficient array |
||
| integer(kind=ip), | intent(in) | :: | k |
order of b-spline, |
||
| real(kind=wp), | intent(in) | :: | x1 |
end point of quadrature interval
in |
||
| real(kind=wp), | intent(in) | :: | x2 |
end point of quadrature interval
in |
||
| real(kind=wp), | intent(out) | :: | bquad |
integral of the b-spline over ( |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | work |
work vector of length |
|
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
dbfqad computes the integral on (x1,x2) of a product of a
function f and the id-th derivative of a k-th order b-spline,
using the b-representation (t,bcoef,n,k). (x1,x2) must be a
subinterval of t(k) <= x <= t(n+1). an integration routine,
dbsgq8 (a modification of gaus8), integrates the product
on subintervals of (x1,x2) formed by included (distinct) knots
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| procedure(b1fqad_func) | :: | f |
external function of one argument for the
integrand |
|||
| real(kind=wp), | intent(in), | dimension(n+k) | :: | t |
knot array |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | bcoef |
coefficient array |
|
| integer(kind=ip), | intent(in) | :: | n |
length of coefficient array |
||
| integer(kind=ip), | intent(in) | :: | k |
order of b-spline, |
||
| integer(kind=ip), | intent(in) | :: | id |
order of the spline derivative, |
||
| real(kind=wp), | intent(in) | :: | x1 |
left point of quadrature interval in |
||
| real(kind=wp), | intent(in) | :: | x2 |
right point of quadrature interval in |
||
| real(kind=wp), | intent(in) | :: | tol |
desired accuracy for the quadrature, suggest
|
||
| real(kind=wp), | intent(out) | :: | quad |
integral of |
||
| integer(kind=ip), | intent(out) | :: | iflag |
status flag: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | work |
work vector of length |
DBSGQ8, a modification of gaus8,
integrates the product of fun(x) by the id-th derivative of a spline
dbvalu between limits a and b using an adaptive 8-point Legendre-Gauss
algorithm.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| procedure(b1fqad_func) | :: | fun |
name of external function of one argument which multiplies dbvalu. |
|||
| real(kind=wp), | intent(in), | dimension(:) | :: | xt |
knot array for dbvalu |
|
| real(kind=wp), | intent(in), | dimension(n) | :: | bc |
b-coefficient array for dbvalu |
|
| integer(kind=ip), | intent(in) | :: | n |
number of b-coefficients for dbvalu |
||
| integer(kind=ip), | intent(in) | :: | kk |
order of the spline, |
||
| integer(kind=ip), | intent(in) | :: | id |
Order of the spline derivative, |
||
| real(kind=wp), | intent(in) | :: | a |
lower limit of integral |
||
| real(kind=wp), | intent(in) | :: | b |
upper limit of integral (may be less than |
||
| integer(kind=ip), | intent(inout) | :: | inbv |
initialization parameter for dbvalu |
||
| real(kind=wp), | intent(inout) | :: | err |
IN: is a requested pseudorelative error
tolerance. normally pick a value of
|
||
| real(kind=wp), | intent(out) | :: | ans |
computed value of integral |
||
| integer(kind=ip), | intent(out) | :: | iflag |
a status code: |
||
| real(kind=wp), | intent(inout), | dimension(:) | :: | work |
work vector of length |