      program minos
      implicit real*8(a-h,o-z)
      double precision x(7),grad(7),cons(2),dcons(2,7),w(7,7),v(7,7)
      open(unit=10,file='Online03.dta')
      open(unit=11,file='Online03.out')
      read(10,9999) (x(i),i=1,7)
      call funobj(x,fobj,grad)
      write(11,9998) fobj,(grad(i),i=1,7)
      call funcon(x,cons,dcons)
      do 10 i=1,2
        write(11,9998) cons(i),(dcons(i,j),j=1,7)
   10 continue
C      call svdcmp(dcons,7,2,7,7,w,v)
C      do 20 i=1,2
C        write(11,9997) (dcons(i,j),j=1,7)
C   20 continue
 9997 format(x,10E15.8)
 9998 format(x,10f10.4)
 9999 format(10f10.4)
      end
      subroutine funobj(x,fobj,grad)
      implicit real*8(a-h,o-z)
      double precision x(7),grad(7)
      fobj = 10.0*dexp(x(1))+15.0*dexp(x(2))-1.50*x(3)-2.00*x(4)-
     1       1.25*x(5)-0.95*x(6)-0.50*x(7)
      grad(1) = 10.00*dexp(x(1))
      grad(2) = 15.00*dexp(x(2))
      grad(3) = -1.50
      grad(4) = -2.00
      grad(5) = -1.25
      grad(6) = -0.95
      grad(7) = -0.05
      end
      subroutine funcon(x,cons,dcons)
      implicit real*8(a-h,o-z)
      double precision x(7),cons(2),dcons(2,7)
      cons(1) = x(1) - 0.15*dlog(x(3))-0.25*dlog(x(4))-0.05*dlog(x(5))-
     1          0.10*dlog(x(6))-0.45*dlog(x(7))
      cons(2) = x(2) - 0.30*dlog(x(3))-0.15*dlog(x(4))-0.25*dlog(x(5))-
     1          0.25*dlog(x(6))-0.05*dlog(x(7))
      dcons(1,1) = 1.00
      dcons(1,2) = 0.00
      dcons(1,3) = -0.15/x(3)
      dcons(1,4) = -0.25/x(4)
      dcons(1,5) = -0.05/x(5)
      dcons(1,6) = -0.10/x(6)
      dcons(1,7) = -0.45/x(7)
      dcons(2,1) = 0.00
      dcons(2,2) = 1.00
      dcons(2,3) = -0.30/x(3)
      dcons(2,4) = -0.15/x(4)
      dcons(2,5) = -0.25/x(5)
      dcons(2,6) = -0.25/x(6)
      dcons(2,7) = -0.05/x(7)
      end
      