      SUBROUTINE MFEOUT (A,MDA,M,N,NAMES,MODE)
C     C.L.LAWSON AND R.J.HANSON, JET PROPULSION LABORATORY, 1973 JUN 12
C     TO APPEAR IN ^SOLVING LEAST SQUARES PROBLEMS^, PRENTICE-HALL, 1974
C
C          SUBROUTINE FOR MATRIX OUTPUT WITH LABELING.
C
C     A( )         MATRIX TO BE OUTPUT
C                  MDA     FIRST DIMENSION OF A ARRAY
C                  M         NO. OF ROWS IN A MATRIX
C                  N         NO. OF COLS IN A MATRIX
C     NAMES()      ARRAY OF NAMES.  IF NAMES(1) = 1H , THE REST
C                  OF THE NAMES() ARRAY WILL BE IGNORED.
C     MODE         =1   FOR   4P8F15.0  FORMAT  FOR V MATRIX.
C                  =2   FOR   8E15.8  FORMAT  FOR CANDIDATE SOLUTIONS.
C
      IMPLICIT REAL*8(A-H,O-Z)
      IMPLICIT INTEGER(I-N)
C
      DIMENSION    A(MDA,01)
      CHARACTER*6 NAMES(M),IBLANK,IHEAD(2),NAME
      LOGICAL   NOTBLK
      DATA  MAXCOL/8/, IBLANK/'      '/, IHEAD(1)/' COL  '/,
     1      IHEAD(2) /'SOLN  '/
C
      IF (M.LE.0.OR.N.LE.0) RETURN
      NOTBLK=NAMES(1).NE.IBLANK
C
      IF (MODE.EQ.2) GO TO 10
      WRITE (6,70)
      GO TO 20
   10 WRITE (6,80)
   20 CONTINUE
C
      NBLOCK=N/MAXCOL
      LAST=N-NBLOCK*MAXCOL
      NCOL=MAXCOL
      J1=1
C
C                            MAIN LOOP STARTS HERE
C
   30 IF (NBLOCK.GT.0) GO TO 40
      IF (LAST.LE.0) RETURN
      NCOL=LAST
      LAST=0
C
   40 J2=J1+NCOL-1
      WRITE (6,90) (IHEAD(MODE),J,J=J1,J2)
C
           DO 60 I=1,M
           NAME=IBLANK
           IF (NOTBLK) NAME=NAMES(I)
C
           IF (MODE.EQ.2) GO TO 50
           WRITE (6,100) I,NAME,(A(I,J),J=J1,J2)
           GO TO 60
   50      WRITE (6,110) I,NAME,(A(I,J),J=J1,J2)
   60      CONTINUE
C
      J1=J1+MAXCOL
      NBLOCK=NBLOCK-1
      GO TO 30
C
   70 FORMAT (45H0V-MATRIX OF THE SINGULAR VALUE DECOMPOSITION,
     * 8H OF A*D./47H (ELEMENTS OF V SCALED UP BY A FACTOR OF 10**4))
   80 FORMAT (35H0SEQUENCE OF CANDIDATE SOLUTIONS, X)
   90 FORMAT (1H0,11X,8(6X,A4,I4,1X)/1X)
  100 FORMAT (1X,I3,1X,A6,1X,4P8F15.0)
  110 FORMAT (1X,I3,1X,A6,1X,8E15.8)
      END
