*DECK DQNG SUBROUTINE DQNG (F, A, B, EPSABS, EPSREL, RESULT, ABSERR, NEVAL, + IER) C***BEGIN PROLOGUE DQNG 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 DOUBLE 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 DOUBLE PRECISION VERSION C C F - Double precision 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 - Double precision C Lower limit of integration C C B - Double precision C Upper limit of integration C C EPSABS - Double precision C Absolute accuracy requested C EPSREL - Double precision 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 - Double precision 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 - Double precision 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 D1MACH, 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 DQNG