1 SUBROUTINE dqelg(N,EPSTAB,RESULT,ABSERR,RES3LA,NRES)
51 DOUBLE PRECISION ABSERR,DABS,DELTA1,DELTA2,DELTA3,DMAX1,D1MACH,
52 * EPMACH,EPSINF,EPSTAB,ERROR,ERR1,ERR2,ERR3,E0,E1,E1ABS,E2,E3,
53 * OFLOW,RES,RESULT,RES3LA,SS,TOL1,TOL2,TOL3
54 INTEGER I,IB,IB2,IE,INDX,K1,K2,K3,LIMEXP,N,NEWELM,NRES,NUM
55 dimension epstab(52),res3la(3)
89 epstab(n+2) = epstab(n)
104 tol2 = dmax1(dabs(e2),e1abs)*epmach
107 tol3 = dmax1(e1abs,dabs(e0))*epmach
108 IF(err2.GT.tol2.OR.err3.GT.tol3)
GO TO 10
123 tol1 = dmax1(e1abs,dabs(e3))*epmach
128 IF(err1.LE.tol1.OR.err2.LE.tol2.OR.err3.LE.tol3)
GO TO 20
129 ss = 0.1d+01/delta1+0.1d+01/delta2-0.1d+01/delta3
136 IF(epsinf.GT.0.1d-03)
GO TO 30
144 30 res = e1+0.1d+01/ss
147 error = err2+dabs(res-e2)+err3
148 IF(error.GT.abserr)
GO TO 40
155 50
IF(n.EQ.limexp) n = 2*(limexp/2)-1
157 IF((num/2)*2.EQ.num) ib = 2
161 epstab(ib) = epstab(ib2)
164 IF(num.EQ.n)
GO TO 80
167 epstab(i)= epstab(indx)
170 80
IF(nres.GE.4)
GO TO 90
171 res3la(nres) = result
177 90 abserr = dabs(result-res3la(3))+dabs(result-res3la(2))
178 * +dabs(result-res3la(1))
179 res3la(1) = res3la(2)
180 res3la(2) = res3la(3)
182 100 abserr = dmax1(abserr,0.5d+01*epmach*dabs(result))
subroutine dqelg(N, EPSTAB, RESULT, ABSERR, RES3LA, NRES)