      subroutine fcn(n,x,f)
      integer n,m,j
      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()
      integer n,md,ibtype,m,iparam(7),i
      parameter(n=2,md=4,ibtype=1)
      double precision x0(n),x(n),f,t(md),b(md),xlb(n),xub(n)
      double precision xscale(n),rparam(7)
      common /bodat/ t,b,m
      external fcn

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

      do 10 i=1,n
	xlb(i) = 1.0
	xub(i) = 10.0
10	xscale(i) = 1.0


      m=md
      x0(1)=.05
      x0(2)=.75
      x(1)=x0(1)
      x(2)=x0(2)
      iparam(1) = 0

      call dbconf(fcn,n,x0,ibtype,xlb,xub,xscale,xscale,iparam,rparam,
     * x,f)

      print*, 'f(x*)=',f
      print*, 'x*=', (xub(i),i=1,n)
      print*, 'x*=', (x(i),i=1,n)
      print*, 'x*=', (xlb(i),i=1,n)

      stop
      end
