342 double precision a,abserr,alist,area,
area1,area12,area2,a1,a2,b,
343 * blist,
b1,b2,dabs,defabs,defab1,defab2,
d1mach(4),elist,
344 * epmach,epsabs,epsrel,errbnd,errmax,error1,error2,erro12,errsum,f,
345 * resabs,result,rlist,uflow,phi,lambda1,zk0,pup,tup,rurd,xflow,kup
346 integer ier,iord,iroff1,iroff2,k,key,keyf,last,limit,maxerr,neval,
349 dimension alist(limit),blist(limit),elist(limit),iord(limit),
405 if(epsabs.le.0.0d+00.and.
406 * epsrel.lt.
max(0.5d+02*epmach,0.5d-28)) ier = 6
407 if(ier.eq.6)
go to 999
413 if(key.le.0) keyf = 1
414 if(key.ge.7) keyf = 6
416 if(keyf.eq.1)
call dqk15(f,a,b,result,abserr,defabs,resabs,
417 & phi,lambda1,zk0,pup,tup,rurd,xflow,kup)
418 if(keyf.eq.2)
call dqk21(f,a,b,result,abserr,defabs,resabs,
419 & phi,lambda1,zk0,pup,tup,rurd,xflow,kup)
420 if(keyf.eq.3)
call dqk31(f,a,b,result,abserr,defabs,resabs,
421 & phi,lambda1,zk0,pup,tup,rurd,xflow,kup)
422 if(keyf.eq.4)
call dqk41(f,a,b,result,abserr,defabs,resabs,
423 & phi,lambda1,zk0,pup,tup,rurd,xflow,kup)
424 if(keyf.eq.5)
call dqk51(f,a,b,result,abserr,defabs,resabs,
425 & phi,lambda1,zk0,pup,tup,rurd,xflow,kup)
426 if(keyf.eq.6)
call dqk61(f,a,b,result,abserr,defabs,resabs,
427 & phi,lambda1,zk0,pup,tup,rurd,xflow,kup)
435 errbnd =
max(epsabs,epsrel*dabs(result))
436 if(abserr.le.0.5d+02*epmach*defabs.and.abserr.gt.errbnd) ier = 2
437 if(limit.eq.1) ier = 1
438 if(ier.ne.0.or.(abserr.le.errbnd.and.abserr.ne.resabs)
439 * .or.abserr.eq.0.0d+00)
go to 60
461 b1 = 0.5d+00*(alist(maxerr)+blist(maxerr))
464 if(keyf.eq.1)
call dqk15(f,a1,
b1,
area1,error1,resabs,defab1,
465 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
466 if(keyf.eq.2)
call dqk21(f,a1,
b1,
area1,error1,resabs,defab1,
467 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
468 if(keyf.eq.3)
call dqk31(f,a1,
b1,
area1,error1,resabs,defab1,
469 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
470 if(keyf.eq.4)
call dqk41(f,a1,
b1,
area1,error1,resabs,defab1,
471 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
472 if(keyf.eq.5)
call dqk51(f,a1,
b1,
area1,error1,resabs,defab1,
473 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
474 if(keyf.eq.6)
call dqk61(f,a1,
b1,
area1,error1,resabs,defab1,
475 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
476 if(keyf.eq.1)
call dqk15(f,a2,b2,area2,error2,resabs,defab2,
477 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
478 if(keyf.eq.2)
call dqk21(f,a2,b2,area2,error2,resabs,defab2,
479 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
480 if(keyf.eq.3)
call dqk31(f,a2,b2,area2,error2,resabs,defab2,
481 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
482 if(keyf.eq.4)
call dqk41(f,a2,b2,area2,error2,resabs,defab2,
483 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
484 if(keyf.eq.5)
call dqk51(f,a2,b2,area2,error2,resabs,defab2,
485 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
486 if(keyf.eq.6)
call dqk61(f,a2,b2,area2,error2,resabs,defab2,
487 * phi,lambda1,zk0,pup,tup,rurd,xflow,kup )
494 erro12 = error1+error2
495 errsum = errsum+erro12-errmax
496 area = area+area12-rlist(maxerr)
497 if(defab1.eq.error1.or.defab2.eq.error2)
go to 5
498 if(dabs(rlist(maxerr)-area12).le.0.1d-04*dabs(area12)
499 * .and.erro12.ge.0.99d+00*errmax) iroff1 = iroff1+1
500 if(last.gt.10.and.erro12.gt.errmax) iroff2 = iroff2+1
501 5 rlist(maxerr) =
area1 503 errbnd =
max(epsabs,epsrel*dabs(area))
504 if(errsum.le.errbnd)
go to 8
508 if(iroff1.ge.6.or.iroff2.ge.20) ier = 2
513 if(last.eq.limit) ier = 1
518 if(
max(dabs(a1),dabs(b2)).le.(0.1d+01+0.1d+03*
519 * epmach)*(dabs(a2)+0.1d+04*uflow)) ier = 3
523 8
if(error2.gt.error1)
go to 10
527 elist(maxerr) = error1
530 10 alist(maxerr) = a2
533 rlist(maxerr) = area2
535 elist(maxerr) = error2
542 20
call dqpsrt(limit,last,maxerr,errmax,elist,iord,nrmax,phi,
543 * lambda1,zk0,pup,tup,rurd,xflow,kup)
545 if(ier.ne.0.or.errsum.le.errbnd)
go to 40
553 result = result+rlist(k)
556 60
if(keyf.ne.1) neval = (10*keyf+1)*(2*neval+1)
557 if(keyf.eq.1) neval = 30*neval+15
#define max(a, b)
Definition: cascade.c:32
subroutine dqk31(f, a, b, result, abserr, resabs, resasc, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:934
double precision function d1mach(I)
Definition: ddeabm.f:2012
subroutine dqk51(f, a, b, result, abserr, resabs, resasc, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:1345
subroutine dqk61(f, a, b, result, abserr, resabs, resasc, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:1571
subroutine dqk41(f, a, b, result, abserr, resabs, resasc, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:1132
static double * e21
Definition: radflowload.c:42
subroutine dqpsrt(limit, last, maxerr, ermax, elist, iord, nrmax, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:1808
static double * b1
Definition: mafillkmain.c:30
subroutine dqk21(f, a, b, result, abserr, resabs, resasc, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:745
static double * area1
Definition: mafillkmain.c:30
subroutine dqk15(f, a, b, result, abserr, resabs, resasc, phi, lambda1, zk0, Pup, Tup, rurd, xflow, kup)
Definition: dqag.f:562