anchor.diff:  !
       SH = SHAPE(M)
       IF (ABS(M(ROW,ROW)).LE.TOL) THEN
  -    DO 110 J = ROW+1, SH(1)
  -    110 IF (ABS(M(J,ROW)).GE.TOL) EXIT
  -    DO 120 K = ROW,SH(2)
  -    TMP = M(ROW,K)
  -    M(ROW,K) = M(J,K)
  -    120 M(J,K) = TMP
  +    DO J = ROW+1, SH(1)
  +      IF (ABS(M(J,ROW)).GE.TOL) EXIT
  +    ENDDO
  +    DO K = ROW,SH(2)
  +      TMP = M(ROW,K)
  +      M(ROW,K) = M(J,K)
  +      M(J,K) = TMP
  +    ENDDO
       END IF
  -    999 RETURN
     END SUBROUTINE MPPVT
   !------------------------------------------------------------------------------+
   ! MGJECOL: Matrix Gauss-Jordan Eliminate COLumn
  
positive.code:     INTEGER(KIND=4),INTENT(IN) :: COL
      INTEGER(KIND=4)            :: SH(2),J
  !
        SH = SHAPE(M)
        DO 110 J = COL+1, SH(1)
    110 CALL MGEROW(M,J,COL,COL+1)
    999 RETURN
    END SUBROUTINE MGECOL
  !------------------------------------------------------------------------------+
  ! MGJEROW: Matrix Gauss-Jordan Eliminate ROW
  
negative.code:       STOP
      END IF
  !
      DO I = 1, SH(1)
      CALL MPPVT(M,I)
      CALL MGECOL(M,I)
      ENDDO
  !
      910 FORMAT('*** FATAL ERRROR: MGAUS: MATRIX ROWS LARGER THAN'  &
               ' COLUMNS',/,18X,I8, '   .GT.   ',I8)
    END SUBROUTINE
  !------------------------------------------------------------------------------+
  ! MPPVT: Matrix Partial PiVoT
  