avint.f
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