V10/cmd/pfort/INSYM.f
LOGICAL FUNCTION INSYM(IDUM,II)
INTEGER OUTUT, OUTUT2, OUTUT3, SYMHD, PDSA, SYMLEN, DSA, BNEXT
COMMON /PARAMS/ INUT, OUTUT, NOCHAR, SYMLEN, OUTUT2, OUTUT3, I1
COMMON /TABL/ NEXT, LABHD, SYMHD, BNEXT
COMMON /FACTS/ NAME, NOST, ITYP, IASF
COMMON /CTABL/ LDSA, PDSA, DSA(5000)
C
C ROUTINE TO INPUT SYMBOL TABLE; RETURNS TRUE FOR SUCCESSFUL, ELSE
C FALSE. KCODE=1 FOR TABLE, 3 FOR DUMMY TABLE, 4 FOR EOF
C DUMMY TABLE CAUSES REFS FOR THIS PU TO BE FLUSHED IF
C IDUM NE 0
C
5 READ(OUTUT2) PDSA, KCODE, (DSA(I),I=1,PDSA)
IF (KCODE-3) 10, 40, 30
10 NAME = DSA(PDSA-2)
SYMHD = DSA(PDSA-1)
LABHD = DSA(PDSA)
PDSA = PDSA - 3
INSYM = .TRUE.
20 RETURN
30 INSYM = .FALSE.
GO TO 20
C FLUSH REFS FOR DUMMY TABLE IF IDUM NONZERO
40 IF(IDUM.EQ.0) GOTO 5
50 IF(INREF(IDUM)) 60, 60, 50
C WRITE END OF REFS FOR DUMMY REFS IF II NE 0; ELSE GOT TO
C NEXT SYMBOL TABLE
60 IF(II.EQ.0) GOTO 5
L = 1
K = 3
WRITE(II) L,K,L
GOTO 5
END