C TEST OF DQAGI C COMPUTE INTEGRAL OF EXP(-X)*COS(X*X)**2 ON [0,INFINITY) C RESULT IS 0.70260... C INTEGER LIMIT,LENW PARAMETER(LIMIT=100,LENW=LIMIT*4) DOUBLE PRECISION BOUND,EPSABS,EPSREL,RESULT,ABSERR,WORK(LENW) INTEGER INF,NEVAL,IER,LAST,IWORK(LIMIT) EXTERNAL F C C REMEMBER TO SET UNDERFLOWS TO ZERO--COMPILER DEPENDENT--- CCCCCCCCCCCCCCCC(FOR LAHEY F77L COMPILER) CALL UNDER0(.TRUE.) BOUND = 0.0D0 INF = 1 EPSABS = 0.0D0 EPSREL = 1.D-5 CALL DQAGI(F,BOUND,INF,EPSABS,EPSREL,RESULT,ABSERR,NEVAL, * IER,LIMIT,LENW,LAST,IWORK,WORK) WRITE(*,*)'DQAGI RESULT, ABSERR, NEVAL, IER: ' WRITE(*,'(2X,2D20.10,I6,I5)') RESULT, ABSERR, NEVAL, IER C WRITE(*,*) WRITE(*,*)'REFERENCE RESULTS FROM IBM PC/AT' WRITE(*,*)' BE SURE THAT UNDERFLOWS ARE SET TO ZERO...' WRITE(*,*) 'DQAGI RESULT, ABSERR, NEVAL, IER: ' WRITE(*,*)' 0.7026028726E+00 0.6401518223E-05 1005 0' C STOP END C DOUBLE PRECISION FUNCTION F(X) DOUBLE PRECISION X,EXP,COS F = EXP(-X)*COS(X*X)**2 RETURN END