*DECK DAVINT SUBROUTINE DAVINT (X, Y, N, XLO, XUP, ANS, IERR) C***BEGIN PROLOGUE DAVINT C***PURPOSE Integrate a function tabulated at arbitrarily spaced C abscissas using overlapping parabolas. C***LIBRARY SLATEC C***CATEGORY H2A1B2 C***TYPE DOUBLE PRECISION (AVINT-S, DAVINT-D) C***KEYWORDS INTEGRATION, QUADRATURE, TABULATED DATA C***AUTHOR Jones, R. E., (SNLA) C***DESCRIPTION C C Abstract C DAVINT integrates a function tabulated at arbitrarily spaced C abscissas. The limits of integration need not coincide C with the tabulated abscissas. C C A method of overlapping parabolas fitted to the data is used C provided that there are at least 3 abscissas between the C limits of integration. DAVINT also handles two special cases. C If the limits of integration are equal, DAVINT returns a C result of zero regardless of the number of tabulated values. C If there are only two function values, DAVINT uses the C trapezoid rule. C C Description of Parameters C The user must dimension all arrays appearing in the call list C X(N), Y(N) C C Input-- C X - DOUBLE PRECISION array of abscissas, which must be in C increasing order. C Y - DOUBLE PRECISION array of function values. i.e., C Y(I)=FUNC(X(I)) C N - The integer number of function values supplied. C N .GE. 2 unless XLO = XUP. C XLO - DOUBLE PRECISION lower limit of integration C XUP - DOUBLE PRECISION upper limit of integration. Must have C XLO.LE.XUP C C Output-- C ANS - Double Precision computed approximate value of integral C IERR - A status code C --Normal Code C =1 Means the requested integration was performed. C --Abnormal Codes C =2 Means XUP was less than XLO. C =3 Means the number of X(I) between XLO and XUP C (inclusive) was less than 3 and neither of the two C special cases described in the abstract occurred. C No integration was performed. C =4 Means the restriction X(I+1).GT.X(I) was violated. C =5 Means the number N of function values was .lt. 2. C ANS is set to zero if IERR=2,3,4,or 5. C C DAVINT is documented completely in SC-M-69-335 C Original program from *Numerical Integration* by Davis & Rabinowitz C Adaptation and modifications by Rondall E Jones. C C***REFERENCES R. E. Jones, Approximate integrator of functions C tabulated at arbitrarily spaced abscissas, C Report SC-M-69-335, Sandia Laboratories, 1969. C***ROUTINES CALLED XERMSG C***REVISION HISTORY (YYMMDD) C 690901 DATE WRITTEN C 890831 Modified array declarations. (WRB) C 890831 REVISION DATE from Version 3.2 C 891214 Prologue converted to Version 4.0 format. (BAB) C 900315 CALLs to XERROR changed to CALLs to XERMSG. (THJ) C 920501 Reformatted the REFERENCES section. (WRB) C***END PROLOGUE DAVINT