V10/cmd/pfort/OUT2A.f
SUBROUTINE OUT2A( IT, JJ, N, ISW )
C
C IT CONTINAS TITLE FOR FIRST LINE OF OUTPUT
C JJ CONTAINS NUMBER OF CHARS IN TITLE, J<=25
C N CONTAINS NUMBER OF ELEMENTS TO BE PRINTED
C ISW TELLS IF THESE ARE COMMON NAMES OR PROC NAMES
C
INTEGER IT(25), II(25), BL, PLAT, PCOM, COM, STACK, OUTUT, S
INTEGER BUF(54)
COMMON /GRAPH/ LLAT, PLAT, LAT(6000)
COMMON /PARAMS/ II1, OUTUT, II2, II3, II4, II5, II6
COMMON /CEXPRS/ LSTACK, STACK(620)
COMMON /COMS/ LCOM, PCOM, COM(300)
DATA BL/1H /,S/1HS/
C
C UNPACK TITLE
C
NN = JJ
IF(JJ.GT.25) NN=25
CALL S5UNPK( IT(1), II(1), NN)
K1 = NN + 1
IF(K1.GT.25) GOTO 15
DO 10 K =K1, 25
II(K) = BL
10 CONTINUE
C
C SETUP FIRST LINE OF ELEMENTS
C
15 K = 6
IF (K.GT.N) K = N
IB = 1
DO 50 I = 1, K
IL = STACK(I)
GOTO (20, 30),ISW
C FOR PARE OR DESC LISTS
20 CALL S5UNPK( LAT(IL), BUF(IB), 6 )
BUF(IB + 7) = BL
GOTO 40
C FOR COMMON LISTS- INDEX TO ELEMENTS IS NEGATIVE
C IF COMMON IS SET BY PGM UNIT
30 BUF(IB + 7) = BL
IF(IL.LT.0) BUF(IB + 7) = S
IL = IABS(IL)
CALL S5UNPK( COM(IL), BUF(IB), 6 )
40 BUF(IB + 6) = BL
BUF(IB + 8) = BL
IB = IB + 9
50 CONTINUE
IB = IB - 1
WRITE(OUTUT,99999) (II(L),L=1,25), (BUF(I),I=1,IB)
99999 FORMAT(80A1)
IF(K.EQ.N) GOTO 110
C WRITE SUBSEQUENT LINES
60 IB = 1
K1 = K + 1
K = K + 6
IF (K.GT.N) K = N
DO 100 I = K1, K
IL = STACK(I)
GOTO (70, 80), ISW
C FOR PAR OR DESC LISTS
70 CALL S5UNPK( LAT(IL), BUF(IB), 6 )
BUF(IB + 7) = BL
GOTO 90
C FOR COMMON LISTS
80 BUF(IB + 7) = BL
IF(IL.LT.0) BUF(IB + 7) = S
IL = IABS(IL)
CALL S5UNPK( COM(IL), BUF(IB), 6 )
90 BUF(IB + 6) = BL
BUF(IB +8) = BL
IB = IB + 9
100 CONTINUE
IB = IB - 1
WRITE(OUTUT,99998) (BUF(I),I =1,IB)
99998 FORMAT(25X,55A1)
IF(K.LT.N) GOTO 60
110 RETURN
END