|
|
1.1 root 1: SUBROUTINE MKCOM(PP, K)
2: INTEGER PLAT, PDSA, FINDCM, DSA, SYMLEN, PP, PCOM, COM
3: LOGICAL SYSERR, ERR, ABORT
4: COMMON /GRAPH/ LLAT, PLAT, LAT(6000)
5: COMMON /COMS/ LCOM, PCOM, COM(300)
6: COMMON /CTABL/ LDSA, PDSA, DSA(5000)
7: COMMON /DETECT/ ERR, SYSERR, ABORT
8: COMMON /PARAMS/ INUT, I1, NOCHAR, SYMLEN, I2, I3, I4
9: C
10: C WANT TO MARK COMMONLIST ENTRY SET FOR SUBPGM PP; MAY HAVE TO
11: C CREATE ENTRY
12: C
13: N = FINDCM(DSA(K+4))
14: L = SYMLEN + 2 + PP
15: KK = -K
16: IF (N.NE.0) KK = N
17: C
18: C LOOK FOR DSA ENTRY ON LIST
19: C
20: I = MATCH(LAT(L),2,KK)
21: IF (I) 30, 30, 10
22: 10 LAT(I+1) = 1
23: 20 RETURN
24: C
25: C CREATE NEW ENTRY
26: C
27: 30 IF (PLAT+3.GT.LLAT) GO TO 40
28: LAT(PLAT+1) = 1
29: LAT(PLAT+2) = LAT(L)
30: LAT(L) = PLAT
31: LAT(PLAT) = KK
32: PLAT = PLAT + 3
33: GO TO 20
34: 40 SYSERR = .TRUE.
35: CALL ERROR1(32H IN MKCOM, TABLE OVERFLOW OF LAT, 32)
36: GO TO 20
37: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.