SUBROUTINE DBINT4(X,Y,NDATA,IBCL,IBCR,FBCL,FBCR,KNTOPT,T,BCOEF,N, 1 K,W) C***BEGIN PROLOGUE DBINT4 C***DATE WRITTEN 800901 (YYMMDD) C***REVISION DATE 820801 (YYMMDD) C***CATEGORY NO. E1A C***KEYWORDS B-SPLINE,DATA FITTING,DOUBLE PRECISION,INTERPOLATION, C SPLINE C***AUTHOR AMOS, D. E., (SNLA) C***PURPOSE Computes the B-representation of a cubic spline C which interpolates data (X(I),Y(I)),I=1,NDATA. C***DESCRIPTION C C Written by D. E. Amos, August, 1979. C C References C SAND-78-1968 C C A Practical Guide to Splines by C. de Boor, Applied C Mathematics Series 27, Springer, 1979. C C SIAM J. Numerical Analysis, 14, No. 3, June, 1977, pp.441-472. C C Abstract **** a double precision routine **** C C DBINT4 computes the B representation (T,BCOEF,N,K) of a C cubic spline (K=4) which interpolates data (X(I),Y(I)), C I=1,NDATA. Parameters IBCL, IBCR, FBCL, FBCR allow the C specification of the spline first or second derivative at C both X(1) and X(NDATA). When this data is not specified C by the problem, it is common practice to use a natural C spline by setting second derivatives at X(1) and X(NDATA) C to zero (IBCL=IBCR=2,FBCL=FBCR=0.0). The spline is defined C on T(4) .LE. X .LE. T(N+1) with (ordered) interior knots at C X(I) values where N=NDATA+2. The knots T(1),T(2),T(3) lie to C the left of T(4)=X(1) and the knots T(N+2), T(N+3), T(N+4) C lie to the right of T(N+1)=X(NDATA) in increasing order. If C no extrapolation outside (X(1),X(NDATA)) is anticipated, the C knots T(1)=T(2)=T(3)=T(4)=X(1) and T(N+2)=T(N+3)=T(N+4)= C T(N+1)=X(NDATA) can be specified by KNTOPT=1. KNTOPT=2 C selects a knot placement for T(1), T(2), T(3) to make the C first 7 knots symmetric about T(4)=X(1) and similarly for C T(N+2), T(N+3), T(N+4) about T(N+1)=X(NDATA). KNTOPT=3 C allows the user to make his own selection, in increasing C order, for T(1), T(2), T(3) to the left of X(1) and T(N+2), C T(N+3), T(N+4) to the right of X(NDATA) in the work array C W(1) through W(6). In any case, the interpolation on C T(4) .LE. X .LE. T(N+1) by using function DBVALU is unique C for given boundary conditions. C C DBINT4 calls DBSPVD, DBNFAC, DBNSLV, D1MACH, XERROR C C Description of Arguments C C Input X,Y,FBCL,FBCR,W are double precision C X - X vector of abscissae of length NDATA, distinct C and in increasing order C Y - Y vector of ordinates of length NDATA C NDATA - number of data points, NDATA .GE. 2 C IBCL - selection parameter for left boundary condition C IBCL = 1 constrain the first derivative at C X(1) to FBCL C = 2 constrain the second derivative at C X(1) to FBCL C IBCR - selection parameter for right boundary condition C IBCR = 1 constrain first derivative at C X(NDATA) to FBCR C IBCR = 2 constrain second derivative at C X(NDATA) to FBCR C FBCL - left boundary values governed by IBCL C FBCR - right boundary values governed by IBCR C KNTOPT - knot selection parameter C KNTOPT = 1 sets knot multiplicity at T(4) and C T(N+1) to 4 C = 2 sets a symmetric placement of knots C about T(4) and T(N+1) C = 3 sets T(I)=W(I) and T(N+1+I)=W(3+I),I=1,3 C where W(I),I=1,6 is supplied by the user C W - work array of dimension at least 5*(NDATA+2) C If KNTOPT=3, then W(1),W(2),W(3) are knot values to C the left of X(1) and W(4),W(5),W(6) are knot C values to the right of X(NDATA) in increasing C order to be supplied by the user C C Output T,BCOEF are double precision C T - knot array of length N+4 C BCOEF - B spline coefficient array of length N C N - number of coefficients, N=NDATA+2 C K - order of spline, K=4 C C Error Conditions C Improper input is a fatal error C Singular system of equations is a fatal error C***REFERENCES D.E. AMOS, *COMPUTATION WITH SPLINES AND B-SPLINES*, C SAND78-1968, SANDIA LABORATORIES, MARCH 1979. C C. DE BOOR, *PACKAGE FOR CALCULATING WITH B-SPLINES*, C SIAM JOURNAL ON NUMERICAL ANALYSIS, VOLUME 14, NO. 3, C JUNE 1977, PP. 441-472. C C. DE BOOR, *A PRACTICAL GUIDE TO SPLINES*, APPLIED C MATHEMATICS SERIES 27, SPRINGER, 1979. C***ROUTINES CALLED D1MACH,DBNFAC,DBNSLV,DBSPVD,XERROR C***END PROLOGUE DBINT4