

      subroutine fcn(n,x,f)
      integer n
      double precision x(n),f,t(4),b(4)
      common /bodat/ t,b,m

      f=0.0
      do 10 j=1,m
10        f=f+(b(j)-x(1)*exp(x(2)*t(j)))**2
      return
      end

C MAIN()
      parameter(n=2,lw=n*(n+10),md=4)
      double precision x0(n),x(n),f,w(lw),t(md),b(md)
      common /bodat/ t,b,m
      external fcn

      t(1)=0.
      t(2)=1.
      t(3)=2.
      t(4)=3.
      b(1)=20.
      b(2)=9.
      b(3)=3.
      b(4)=1.

      m=4
      x0(1)=20
      x0(2)=-.75

      call uncmnd(n,x0,fcn,x,f,ierror,w,lw)

      if(ierror.ne.0) print*, 'ierror = ',ierror
      print*, 'f(x*)=',f
      print*, 'x*=', (x(i),i=1,n)

      stop
      end
