C MAIN PROGRAM TO SOLVE A SYSTEM OF NONLINEAR EQUATIONS
C
      PARAMETER   (N = 2, LW = 19)
      DOUBLE PRECISION   X(N), FVEC(N), W(LW), TOL
      EXTERNAL    F
C
C SET UP PARAMETERS FOR DNSQE
C
      TOL  = 1.0D-6
      X(1) = 2.0D0
      X(2) = 3.0D0
      WRITE (*,800) X(1), X(2)
      IOPT = 2
      NPRINT = 0
C
C SOLVE NONLINEAR EQUATIONS
C
      CALL DNSQE (F, F, IOPT, N, X, FVEC, TOL, NPRINT, INFO, W, LW)
C
C PRINT RESULTS
C
      WRITE (*,*)
      WRITE (*,*) 'DNSQE RESULTS'
      IF (INFO .NE. 1) WRITE (*,810) INFO
      WRITE (*,820) X(1), X(2)
      WRITE (*,830) FVEC(1), FVEC(2)
C
      WRITE (*,*)
      WRITE (*,*) 'REFERENCE RESULTS FROM IBM PC/AT'
      WRITE (*,*) ' ESTIMATE OF SOLUTION '
      WRITE (*,*) '     0.199999999997E+01  0.100000000001E+01'
      WRITE (*,*) ' VALUES OF NONLINEAR FUNCTIONS'
      WRITE (*,*) '    -0.415920631269E-10 -0.940900690694E-10'
C
      STOP
800   FORMAT (' INITIAL GUESS', /, 4X,2D20.12)
810   FORMAT (' INFO =', I3)
820   FORMAT (' ESTIMATE OF SOLUTION ', /, 4X,2D20.12)
830   FORMAT (' VALUES OF NONLINEAR FUNCTIONS', /, 4X,2D20.12)
      END
C
C
      SUBROUTINE F (N, X, FVEC, IFLAG)
      DOUBLE PRECISION   X(N), FVEC(N)
C
C COMPUTE NONLINEAR FUNCTIONS
C
      FVEC(1) = X(1)*X(2) - X(2)**3 - 1.0D0
      FVEC(2) = X(1)**2*X(2) + X(2) - 5.0D0
C
      RETURN
      END
