Computes the integral on (x1,x2)
of a kx
th order bspline.
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 
bspline coefficient array 

integer(kind=ip),  intent(in)  ::  nx 
length of coefficient array 

integer(kind=ip),  intent(in)  ::  kx 
order of bspline, 

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 bspline over ( 

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


real(kind=wp),  intent(inout),  dimension(3*kx)  ::  w0 
work array for dbsqad 
pure subroutine db1sqad(tx,bcoef,nx,kx,x1,x2,f,iflag,w0) implicit none integer(ip),intent(in) :: nx !! length of coefficient array integer(ip),intent(in) :: kx !! order of bspline, `1 <= k <= 20` real(wp),dimension(nx+kx),intent(in) :: tx !! knot array real(wp),dimension(nx),intent(in) :: bcoef !! bspline coefficient array real(wp),intent(in) :: x1 !! left point of quadrature interval in `t(kx) <= x <= t(nx+1)` real(wp),intent(in) :: x2 !! right point of quadrature interval in `t(kx) <= x <= t(nx+1)` real(wp),intent(out) :: f !! integral of the bspline over (`x1`,`x2`) integer(ip),intent(out) :: iflag !! status flag: !! !! * \( = 0 \) : no errors !! * \( \ne 0 \) : error real(wp),dimension(3*kx),intent(inout) :: w0 !! work array for [[dbsqad]] call dbsqad(tx,bcoef,nx,kx,x1,x2,f,w0,iflag) end subroutine db1sqad