home *** CD-ROM | disk | FTP | other *** search
- $DEBUG
- SUBROUTINE MFEOUT (A,MDA,M,N,NAMES,MODE) MFT00100
- C C.L.LAWSON AND R.J.HANSON, JET PROPULSION LABORATORY, 1973 JUN 12 MFT00200
- C TO APPEAR IN 'SOLVING LEAST SQUARES PROBLEMS', PRENTICE-HALL, 1974MFT00300
- C SUBROUTINE FOR MATRIX OUTPUT WITH LABELING. MFT00400
- C MFT00500
- C A( ) MATRIX TO BE OUTPUT MFT00600
- C MDA FIRST DIMENSION OF A ARRAY MFT00700
- C M NO. OF ROWS IN A MATRIX MFT00800
- C N NO. OF COLS IN A MATRIX MFT00900
- C NAMES() ARRAY OF NAMES. IF NAMES(1) = 1H , THE REST MFT01000
- C OF THE NAMES() ARRAY WILL BE IGNORED. MFT01100
- C MODE =1 FOR 4P8F15.0 FORMAT FOR V MATRIX. MFT01200
- C =2 FOR 8E15.8 FORMAT FOR CANDIDATE SOLUTIONS. MFT01300
- C MFT01400
- DIMENSION A(MDA,01) MFT01500
- CHARACTER*4 IHEAD(2), BLANK, NAME, NAMES(N)
- LOGICAL NOTBLK MFT01700
- DATA MAXCOL/8/, BLANK/' '/,IHEAD(1)/' COL'/,IHEAD(2)/'SOLN'/ MFT01800
- C MFT01900
- NOTBLK=NAMES(1).NE.BLANK MFT02100
- IF (M.LE.0.OR.N.LE.0) RETURN MFT02000
- C MFT02200
- IF (MODE.EQ.2) GO TO 10 MFT02300
- WRITE (6,70) MFT02400
- GO TO 20 MFT02500
- 10 WRITE (6,80) MFT02600
- 20 CONTINUE MFT02700
- C MFT02800
- NBLOCK=N/MAXCOL MFT02900
- LAST=N-NBLOCK*MAXCOL MFT03000
- NCOL=MAXCOL MFT03100
- J1=1 MFT03200
- C MFT03300
- C MAIN LOOP STARTS HERE MFT03400
- C MFT03500
- 30 IF (NBLOCK.GT.0) GO TO 40 MFT03600
- IF (LAST.LE.0) RETURN MFT03700
- NCOL=LAST MFT03800
- LAST=0 MFT03900
- C MFT04000
- 40 J2=J1+NCOL-1 MFT04100
- WRITE (6,90) (IHEAD(MODE),J,J=J1,J2) MFT04200
- C MFT04300
- DO 60 I=1,M MFT04400
- NAME=BLANK MFT04500
- IF (NOTBLK) NAME=NAMES(I) MFT04600
- C MFT04700
- IF (MODE.EQ.2) GO TO 50 MFT04800
- WRITE (6,100) I,NAME,(A(I,J),J=J1,J2) MFT04900
- GO TO 60 MFT05000
- 50 WRITE (6,110) I,NAME,(A(I,J),J=J1,J2) MFT05100
- 60 CONTINUE MFT05200
- C MFT05300
- J1=J1+MAXCOL MFT05400
- NBLOCK=NBLOCK-1 MFT05500
- GO TO 30 MFT05600
- C MFT05700
- 70 FORMAT ('0V-MATRIX OF THE SINGULAR VALUE DECOMPOSITION OF A*D.', MFT05800
- * ' (ELEMENTS OF V SCALED UP BY A FACTOR OF 10**4)' ) MFT05900
- 80 FORMAT ('0SEQUENCE OF CANDIDATE SOLUTIONS, X') MFT06000
- 90 FORMAT ('0',11X,8(6X,A4,I4,1X)/1X) MFT06100
- 100 FORMAT (1X,I3,2X,A4,2X,4P8F15.0) MFT06200
- 110 FORMAT (1X,I3,2X,A4,2X,8E15.8) MFT06300
- END MFT06400