      subroutine info(ip,icon,xst)
      implicit none
      integer ip, icon, n, ntot, ngloba, numrun
      double precision xst(80)
      common /eq/ n, ntot
      common /nacc/ ngloba 
      common /numrun/ numrun
      data n, ntot, numrun, ngloba / 2, 2, 0, 0 /
      ip = 0
      icon = 0
      write(6,9999) n, ntot
 9999 format(' Vapaita muuttujia ',i3,/, ' Muuttujia ',i3)
      return
      end
c                Kohdefunktio
      subroutine foptim(x,f)
      implicit none
      double precision x(80), f
      f = - 3*(1-x(1))**2*exp(-(x(1)**2) - (x(2)+1)**2)
     %     + 10*(x(1)/5 - x(1)**3 - x(2)**5)*exp(-x(1)**2-x(2)**2) 
     %     + 1/3*exp(-(x(1)+1)**2 - x(2)**2)
      return
      end
c                Epayhtalorajoitteet
      subroutine constr(x,n,kfail)
      implicit none
      integer n, kfail
      double precision x(80), xlow(80), xupp(80)
      common /range/ xlow, xupp
      kfail = 0
      xlow(1) = -100d0
      xupp(1) = 100d0
      xlow(2) = -100d0
      xupp(2) = 100d0
      return
      end
c                Yhtalorajoitteet
      subroutine equal(x,kfail)
      implicit none
      double precision x(80)
      integer kfail
      kfail = 0
      return
      end
