diff -Naur source-orig/src/bqpd.f source/src/bqpd.f --- source-orig/src/bqpd.f 2008-11-06 00:05:51.000000000 +0000 +++ source/src/bqpd.f 2008-11-06 00:06:13.000000000 +0000 @@ -437,6 +437,12 @@ enddo gtol=1.D1*gtol print *, 'gtol = ', gtol + aaaa = 1.D0 + bbbb = 0.D0 + if (gtol .eq. aaaa/bbbb) then + ifail = 8 + return + endif 16 continue c if(info(1).ge.117)iprint=3 c if(info(1).ge.90)stop diff -Naur source-orig/src/filter.f source/src/filter.f --- source-orig/src/filter.f 2008-11-06 00:05:51.000000000 +0000 +++ source/src/filter.f 2008-11-06 00:06:13.000000000 +0000 @@ -442,6 +442,9 @@ c ... ensure that the initial point is feasible wrt linear c/s call linear_feasible (n, m, x, c, blo, bup, cstype, lin_feas) if (.not. lin_feas) then + do i=1,n + d(i) = 0.d0 + enddo call objfun1(x,n,f,s,user,iuser,flag) hc = h_one (m, c, blo(n1), bup(n1)) phi = f + hc diff -Naur source-orig/src/sparseL.f source/src/sparseL.f --- source-orig/src/sparseL.f 2008-11-06 00:05:51.000000000 +0000 +++ source/src/sparseL.f 2008-11-06 00:06:13.000000000 +0000 @@ -1701,6 +1701,7 @@ common/epsc/eps,tol,emin common/noutc/nout parameter (thresh=1.D-1,growth=1.D1) + qr_ = 0 c write(nout,*)'update_L: p,q =',pp,qq nup=nup+1 if(qq.gt.n)then