C Double integral by two one dimensional subroutines C DOUBLE PRECISION G,ERMAX,XX,EPS,EPS1,A1,B1,ERR,ERR1,RES1 EXTERNAL G COMMON ERMAX, XX INTEGER KF1,IFLAG1 C ERMAX = 0.0D0 EPS = 1.0D-4 EPS1 = 9.0D0/10.0D0 * EPS A1 = 0.0D0 B1 = 1.0D0 CALL DQ1 (G,A1,B1,EPS1,RES1,ERR1,KF1,IFLAG1) C ERR = ERR1+(B1-A1)*ERMAX WRITE (*,'(2X,D25.12,2X,D15.8,4X,2I5)') RES1, ERR, KF1, IFLAG1 STOP END C C DOUBLE PRECISION FUNCTION G(X) DOUBLE PRECISION F,X,ERMAX,XX,EPS2,A2,B2,RES2,ERR2 EXTERNAL F COMMON ERMAX, XX C XX = X EPS2 = 0.1D0 * 1.D-4 A2 = 0.0D0 B2 = 2.0D0 CALL DQ2 (F,A2,B2,EPS2,RES2,ERR2,KF2,IFLAG2) C C Test IFLAG2 IF (IFLAG2.NE.0) * WRITE (*,*) 'ERROR IN Q2, IFLAG, KF2 = ', IFLAG2, KF2 C ERMAX = MAX (ERMAX,ERR2) G = RES2 RETURN END C C DOUBLE PRECISION FUNCTION F(Y) DOUBLE PRECISION ERMAX,X,Y COMMON ERMAX, X C F = EXP (-X*X*Y*Y) RETURN END