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) |
pure subroutine db1val_alt(xval,idx,tx,nx,n,kx,bcoef,f,iflag,inbvx,w0,extrap) implicit none real(wp),intent(in) :: xval !! \(x\) coordinate of evaluation point. integer(ip),intent(in) :: idx !! \(x\) derivative of piecewise polynomial to evaluate. integer(ip),intent(in) :: nx !! the number of interpolation points in \(x\). integer(ip),intent(in) :: n !! length of `bcoef`: `nx+2` integer(ip),intent(in) :: kx !! order of polynomial pieces in \(x\). !! (same as in last call to [[db1ink]]) real(wp),dimension(n+kx),intent(in) :: tx !! sequence of knots defining the piecewise polynomial !! in the \(x\) direction. real(wp),dimension(n),intent(in) :: bcoef !! the b-spline coefficients computed by [[db1ink]]. real(wp),intent(out) :: f !! interpolated value integer(ip),intent(out) :: iflag !! status flag: !! !! * \( = 0 \) : no errors !! * \( \ne 0 \) : error integer(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(wp),dimension(3_ip*kx),intent(inout) :: w0 !! work array logical,intent(in),optional :: extrap !! if extrapolation is allowed !! (if not present, default is False) f = 0.0_wp iflag = check_value(xval,tx,1_ip,extrap); if (iflag/=0_ip) return call dbvalu(tx,bcoef,n,kx,idx,xval,inbvx,w0,iflag,f,extrap) end subroutine db1val_alt