      PARAMETER (MM = 5, NN = 3)
      REAL      A(MM,NN), B(MM), X(NN), QRAUX(NN), WORK(NN), TOL
      INTEGER   JPVT(NN)
      DATA      B / 1.0, 2.3, 4.6, 3.1, 1.2/
C
C SET UP LEAST-SQUARES PROBLEM
C     QUADRATIC MODEL, EQUALLY-SPACED POINTS
C
      M = 5
      N = 3
      DO 10 I = 1,M
         A(I,1) = 1.0
         DO 10 J = 2,N
            A(I,J) = A(I,J-1)*I
10    CONTINUE
      TOL = 1.E-6
      WRITE (*,*)   ' COEFFICIENT MATRIX'
      WRITE (*,800) ((A(I,J), J = 1,N), I = 1,M)
      WRITE (*,*)   ' RIGHT-HAND SIDE'
      WRITE (*,810) (B(I), I = 1,M)
C
C SOLVE LEAST-SQUARES PROBLEM
C
      ITASK = 1
      CALL SQRLS (A, MM, M, N, TOL, KR, B, X, B, JPVT, QRAUX, WORK,
     *             ITASK, IND)
C
C PRINT RESULTS
C
      WRITE (*,*)
      WRITE (*,*) 'SQRLS RESULTS'
      IF (IND .NE. 0) WRITE (*,*) ' ERROR CODE =', IND
      WRITE (*,*)   ' RANK OF MATRIX =', KR
      WRITE (*,*)   ' PARAMETERS'
      WRITE (*,800) (X(J), J = 1,N)
      WRITE (*,*)   ' RESIDUALS'
      WRITE (*,810) (B(I), I = 1,M)
C
      WRITE (*,*)
      WRITE (*,*) 'REFERENCE RESULTS FROM IBM PC/AT'
      WRITE (*,*) ' RANK OF MATRIX =           3'
      WRITE (*,*) ' PARAMETERS'
      WRITE (*,*) '  -3.020005    4.491431   -0.728572'
      WRITE (*,*) ' RESIDUALS'
      WRITE (*,*) 
     *   '   0.257143   -0.748571    0.702857   -0.188572   -0.022857'
C
      STOP
800   FORMAT (3F12.6)
810   FORMAT (5F12.6)
      END
