C=-------- CS 13 VARIANTS OF THE GRAM-SCHMIDT METHOD, MGS -----------
C MGS, THE MODIFIED GRAM-SCHMIDT METHOD.
      TEST (M=4,N=3)
      DIMENSION (A(M,N), Q(M,N))
      INPUT (A)
      FOR I = 1 TO M BY 1
          FOR J = 1 TO N BY 1
              Q(I,J) = A(I,J)
              END (J)
          END (I)
C
      FOR K = 1 TO N BY 1
C     FIRST NORMALIZE COLUMN K.
          SIZE = SQRT (SUMMATION(Q(I,K)*Q(I,K), I = 1 TO M))
          FOR I = 1 TO M BY 1
              Q(I,K) = Q(I,K)/SIZE
              END (I)
          IF K.LT.N THEN
C         SUBTRACT FROM EACH REMAINING COLUMN ITS PROJECTION
C         ON THE CURRENT COLUMN.
              FOR J = K+1 TO N BY 1
                  PRODUCT = SUMMATION (Q(I,K)*Q(I,J), I = 1 TO M)
                  FOR I = 1 TO M BY 1
                      Q(I,J) = Q(I,J) - PRODUCT*Q(I,K)
                      END (I)
                  END (J)
              END
          END (K)
      OUTPUT (Q)
      *STOP
