qng.f
SUBROUTINE QNG (F, A, B, EPSABS, EPSREL, RESULT, ABSERR, NEVAL,
+ IER)
C***BEGIN PROLOGUE QNG
C***PURPOSE The routine calculates an approximation result to a
C given definite integral I = integral of F over (A,B),
C hopefully satisfying following claim for accuracy
C ABS(I-RESULT).LE.MAX(EPSABS,EPSREL*ABS(I)).
C***LIBRARY SLATEC (QUADPACK)
C***CATEGORY H2A1A1
C***TYPE SINGLE PRECISION (QNG-S, DQNG-D)
C***KEYWORDS AUTOMATIC INTEGRATOR, GAUSS-KRONROD(PATTERSON) RULES,
C NONADAPTIVE, QUADPACK, QUADRATURE, SMOOTH INTEGRAND
C***AUTHOR Piessens, Robert
C Applied Mathematics and Programming Division
C K. U. Leuven
C de Doncker, Elise
C Applied Mathematics and Programming Division
C K. U. Leuven
C***DESCRIPTION
C
C NON-ADAPTIVE INTEGRATION
C STANDARD FORTRAN SUBROUTINE
C REAL VERSION
C
C F - Real version
C Function subprogram defining the integrand function
C F(X). The actual name for F needs to be declared
C E X T E R N A L in the driver program.
C
C A - Real version
C Lower limit of integration
C
C B - Real version
C Upper limit of integration
C
C EPSABS - Real
C Absolute accuracy requested
C EPSREL - Real
C Relative accuracy requested
C If EPSABS.LE.0
C And EPSREL.LT.MAX(50*REL.MACH.ACC.,0.5D-28),
C The routine will end with IER = 6.
C
C ON RETURN
C RESULT - Real
C Approximation to the integral I
C Result is obtained by applying the 21-POINT
C GAUSS-KRONROD RULE (RES21) obtained by optimal
C addition of abscissae to the 10-POINT GAUSS RULE
C (RES10), or by applying the 43-POINT RULE (RES43)
C obtained by optimal addition of abscissae to the
C 21-POINT GAUSS-KRONROD RULE, or by applying the
C 87-POINT RULE (RES87) obtained by optimal addition
C of abscissae to the 43-POINT RULE.
C
C ABSERR - Real
C Estimate of the modulus of the absolute error,
C which should EQUAL or EXCEED ABS(I-RESULT)
C
C NEVAL - Integer
C Number of integrand evaluations
C
C IER - IER = 0 normal and reliable termination of the
C routine. It is assumed that the requested
C accuracy has been achieved.
C IER.GT.0 Abnormal termination of the routine. It is
C assumed that the requested accuracy has
C not been achieved.
C ERROR MESSAGES
C IER = 1 The maximum number of steps has been
C executed. The integral is probably too
C difficult to be calculated by DQNG.
C = 6 The input is invalid, because
C EPSABS.LE.0 AND
C EPSREL.LT.MAX(50*REL.MACH.ACC.,0.5D-28).
C RESULT, ABSERR and NEVAL are set to zero.
C
C***REFERENCES (NONE)
C***ROUTINES CALLED R1MACH, XERMSG
C***REVISION HISTORY (YYMMDD)
C 800101 DATE WRITTEN
C 890531 Changed all specific intrinsics to generic. (WRB)
C 890531 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***END PROLOGUE QNG