*DECK AVINT SUBROUTINE AVINT (X, Y, N, XLO, XUP, ANS, IERR) C***BEGIN PROLOGUE AVINT C***PURPOSE Integrate a function tabulated at arbitrarily spaced C abscissas using overlapping parabolas. C***LIBRARY SLATEC C***CATEGORY H2A1B2 C***TYPE SINGLE PRECISION (AVINT-S, DAVINT-D) C***KEYWORDS INTEGRATION, QUADRATURE, TABULATED DATA C***AUTHOR Jones, R. E., (SNLA) C***DESCRIPTION C C Abstract C AVINT 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. AVINT also handles two special cases. C If the limits of integration are equal, AVINT returns a result C of zero regardless of the number of tabulated values. C If there are only two function values, AVINT 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 - real array of abscissas, which must be in increasing C order. C Y - real array of functional values. i.e., Y(I)=FUNC(X(I)). C N - the integer number of function values supplied. C N .GE. 2 unless XLO = XUP. C XLO - real lower limit of integration. C XUP - real upper limit of integration. C Must have XLO .LE. XUP. C C Output-- C ANS - 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 AVINT is documented completely in SC-M-69-335 C Original program from "Numerical Integration" by Davis & C Rabinowitz. C Adaptation and modifications for Sandia Mathematical Program C Library 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 900326 Removed duplicate information from DESCRIPTION section. C (WRB) C 920501 Reformatted the REFERENCES section. (WRB) C***END PROLOGUE AVINT