Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0026/mxout.sss
There are 2 other files named mxout.sss in the archive. Click here to see a list.
C MXOU 10
C ..................................................................MXOU 20
C MXOU 30
C SUBROUTINE MXOUT MXOU 40
C MXOU 50
C PURPOSE MXOU 60
C PRODUCES AN OUTPUT LISTING OF ANY SIZED ARRAY ON MXOU 70
C LOGICAL UNIT 6 MXOU 80
C MXOU 90
C USAGE MXOU 100
C CALL MXOUT(ICODE,A,N,M,MS,LINS,IPOS,ISP) MXOU 110
C MXOU 120
C DESCRIPTION OF PARAMETERS MXOU 130
C ICODE- INPUT CODE NUMBER TO BE PRINTED ON EACH OUTPUT PAGE MXOU 140
C A-NAME OF OUTPUT MATRIX MXOU 150
C N-NUMBER OF ROWS IN A MXOU 160
C M-NUMBER OF COLUMNS IN A MXOU 170
C MS-STORAGE MODE OF A WHERE MS= MXOU 180
C 0-GENERAL MXOU 190
C 1-SYMMETRIC MXOU 200
C 2-DIAGONAL MXOU 210
C LINS-NUMBER OF PRINT LINES ON THE PAGE (USUALLY 60) MXOU 220
C IPOS-NUMBER OF PRINT POSITIONS ACROSS THE PAGE (USUALLY 132)MXOU 230
C ISP-LINE SPACING CODE, 1 FOR SINGLE SPACE, 2 FOR DOUBLE MXOU 240
C SPACE MXOU 250
C MXOU 260
C REMARKS MXOU 270
C NONE MXOU 280
C MXOU 290
C SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED MXOU 300
C LOC MXOU 310
C MXOU 320
C METHOD MXOU 330
C THIS SUBROUTINE CREATES A STANDARD OUTPUT LISTING OF ANY MXOU 340
C SIZED ARRAY WITH ANY STORAGE MODE. EACH PAGE IS HEADED WITH MXOU 350
C THE CODE NUMBER,DIMENSIONS AND STORAGE MODE OF THE ARRAY. MXOU 360
C EACH COLUMN AND ROW IS ALSO HEADED WITH ITS RESPECTIVE MXOU 370
C NUMBER. MXOU 380
C MXOU 390
C ..................................................................MXOU 400
C MXOU 410
SUBROUTINE MXOUT (ICODE,A,N,M,MS,LINS,IPOS,ISP) MXOU 420
DIMENSION A(1),B(8) MXOU 430
1 FORMAT(1H1,5X, 7HMATRIX ,I5,6X,I3,5H ROWS,6X,I3,8H COLUMNS, MXOU 440
18X,13HSTORAGE MODE ,I1,8X,5HPAGE ,I2,/) MXOU 450
2 FORMAT(12X,8HCOLUMN ,7(3X,I3,10X)) MXOU 460
3 FORMAT(1H ) MXOU 470
4 FORMAT(1H ,7X,4HROW ,I3,7(E16.6)) MXOU 480
5 FORMAT(1H0,7X,4HROW ,I3,7(E16.6)) MXOU 490
C MXOU 500
J=1 MXOU 510
C MXOU 520
C WRITE HEADING MXOU 530
C MXOU 540
NEND=IPOS/16-1 MXOU 550
LEND=(LINS/ISP)-2 MXOU 560
IPAGE=1 MXOU 570
10 LSTRT=1 MXOU 580
20 WRITE(6,1)ICODE,N,M,MS,IPAGE MXOU 590
JNT=J+NEND-1 MXOU 600
IPAGE=IPAGE+1 MXOU 610
31 IF(JNT-M)33,33,32 MXOU 620
32 JNT=M MXOU 630
33 CONTINUE MXOU 640
WRITE(6,2)(JCUR,JCUR=J,JNT) MXOU 650
IF(ISP-1) 35,35,40 MXOU 660
35 WRITE(6,3) MXOU 670
40 LTEND=LSTRT+LEND-1 MXOU 680
DO 80 L=LSTRT,LTEND MXOU 690
C MXOU 700
C FORM OUTPUT ROW LINE MXOU 710
C MXOU 720
DO 55 K=1,NEND MXOU 730
KK=K MXOU 740
JT = J+K-1 MXOU 750
CALL LOC(L,JT,IJNT,N,M,MS) MXOU 760
B(K)=0.0 MXOU 770
IF(IJNT)50,50,45 MXOU 780
45 B(K)=A(IJNT) MXOU 790
50 CONTINUE MXOU 800
C MXOU 810
C CHECK IF LAST COLUMN. IF YES GO TO 60 MXOU 820
C MXOU 830
IF(JT-M) 55,60,60 MXOU 840
55 CONTINUE MXOU 850
C MXOU 860
C END OF LINE, NOW WRITE MXOU 870
C MXOU 880
60 IF(ISP-1)65,65,70 MXOU 890
65 WRITE(6,4)L,(B(JW),JW=1,KK) MXOU 900
GO TO 75 MXOU 910
70 WRITE(6,5)L,(B(JW),JW=1,KK) MXOU 920
C MXOU 930
C IF END OF ROWS,GO CHECK COLUMNS MXOU 940
C MXOU 950
75 IF(N-L)85,85,80 MXOU 960
80 CONTINUE MXOU 970
C MXOU 980
C END OF PAGE, NOW CHECK FOR MORE OUTPUT MXOU 990
C MXOU1000
LSTRT=LSTRT+LEND MXOU1010
GO TO 20 MXOU1020
C MXOU1030
C END OF COLUMNS, THEN RETURN MXOU1040
C MXOU1050
85 IF(JT-M)90,95,95 MXOU1060
90 J=JT+1 MXOU1070
GO TO 10 MXOU1080
95 RETURN MXOU1090
END MXOU1100