function [lun,kprint,ipass]=cdqng(lun,kprint,ipass);
persistent a abserr b epmach epsabs epsrel error exact1 exact2 firstCall ier ierv ip neval result uflow ; if isempty(firstCall),firstCall=1;end;
if isempty(a), a=0; end;
if isempty(abserr), abserr=0; end;
if isempty(b), b=0; end;
if isempty(epmach), epmach=0; end;
if isempty(epsabs), epsabs=0; end;
if isempty(epsrel), epsrel=0; end;
if isempty(exact1), exact1=0; end;
if isempty(error), error=0; end;
if isempty(exact2), exact2=0; end;
if isempty(result), result=0; end;
if isempty(uflow), uflow=0; end;
if isempty(ier), ier=0; end;
if isempty(ierv), ierv=zeros(1,1); end;
if isempty(ip), ip=0; end;
if isempty(neval), neval=0; end;
if firstCall, exact1=[0.7281029132255818d+00]; end;
if firstCall, exact2=[0.1d+02]; end;
firstCall=0;
if( kprint>=2 )
writef(lun,['1DQNG QUICK CHECK' '\n ' ]);
end;
ipass = 1;
epsabs = 0.0d+00;
[epmach ]=d1mach(4);
[uflow ]=d1mach(1);
epsrel = max(sqrt(epmach),0.1d-07);
a = 0.0d+00;
b = 0.1d+01;
[dumvar1,a,b,epsabs,epsrel,result,abserr,neval,ier]=dqng(@df1n,a,b,epsabs,epsrel,result,abserr,neval,ier);
[dumvar1,a,b,epsabs,epsrel,result,abserr,neval,ier]=dqng(@df1n,a,b,epsabs,epsrel,result,abserr,neval,ier);
ierv(1) = fix(ier);
ip = 0;
error = abs(exact1-result);
if( ier==0 && error<=abserr && abserr<=epsrel.*abs(exact1) )
ip = 1;
end;
if( ip==0 )
ipass = 0;
end;
if( kprint~=0 )
[lun,dumvar2,kprint,ip,exact1,result,abserr,neval,ierv]=dprin(lun,0,kprint,ip,exact1,result,abserr,neval,ierv,1);
end;
[dumvar1,a,b,uflow,dumvar5,result,abserr,neval,ier]=dqng(@df2n,a,b,uflow,0.0d+00,result,abserr,neval,ier);
ierv(1) = fix(ier);
ip = 0;
if( ier==1 )
ip = 1;
end;
if( ip==0 )
ipass = 0;
end;
if( kprint~=0 )
[lun,dumvar2,kprint,ip,exact2,result,abserr,neval,ierv]=dprin(lun,1,kprint,ip,exact2,result,abserr,neval,ierv,1);
end;
epsabs = 0.0d+00;
epsrel = 0.0d+00;
[dumvar1,a,b,epsabs,dumvar5,result,abserr,neval,ier]=dqng(@df1n,a,b,epsabs,0.0d+00,result,abserr,neval,ier);
ierv(1) = fix(ier);
ip = 0;
if( ier==6 && result==0.0d+00 && abserr==0.0d+00 &&neval==0 )
ip = 1;
end;
if( ip==0 )
ipass = 0;
end;
if( kprint~=0 )
[lun,dumvar2,kprint,ip,exact1,result,abserr,neval,ierv]=dprin(lun,6,kprint,ip,exact1,result,abserr,neval,ierv,1);
end;
if( kprint>=1 )
if( ipass==0 )
writef(lun,[ '\n ' ' SOME TEST(S) IN CDQNG FAILED' '\n ' ]);
elseif( kprint>=2 ) ;
writef(lun,[ '\n ' ' ALL TEST(S) IN CDQNG PASSED' '\n ' ]);
end;
end;
end %subroutine cdqng