|
|
1.1 root 1: SUBROUTINE INOPT(CARD)
2: INTEGER S(8), CARD(80), J(5)
3: LOGICAL OPT, P1ERR
4: COMMON /OPTNS/ OPT(5), P1ERR
5: DATA S(1), S(2), S(3), S(4), S(5), S(6), S(7) /1HS,1HR,1HP,1HL,
6: * 1HC,1H,,1HN/, S(8) /1H /
7: C
8: C OPT(1) IF TRUE, PRINT SYMBOL TABLE
9: C IF FALSE, NOSYMBOL TABLE PRINTED
10: C OPT(2) IF TRUE, PRINT CROSS REFERENCES
11: C IF FALSE, NO REFS PRINTED
12: C OPT(3) IF TRUE, DO PASS 2; ELSE DO NOT
13: C OPT(4) IF TRUE GET LISTING OF PGM; ELSE DO NOT
14: C OPT(5) IF TRUE, COMPILE PGM AFTER PROCESSING; ELSE DO NOT
15: C SET OPTIONS FROM CARD READ IN BY "IN"
16: C P2 IS TURNED OFF ONLY ONCE A RUN; IT CANNOT BE TURNED ON AGAIN
17: C OPTIONS CARD IS ONLY ACCEPTED IF SYNTAX ON CARD IS OK
18: C SYNTAX IS C* FOLLOWED BY AT LEAST ONE OPTION OF THEFORM
19: C OPT BLANKS, OPT N, AT LEAST ONE OF (S,R,P,L,C), OPT BLANKS
20: C WHERE OPTIONS ARE SEPARATEDBY COMMAS
21: C
22: DO 10 I=1,5
23: J(I) = 0
24: 10 CONTINUE
25: IP = 2
26: 20 IP = IP + 1
27: IF (IP.GE.73) GO TO 60
28: C DEBLANK LEADING BLANKS
29: IF (CARD(IP).EQ.S(8)) GO TO 20
30: L = 1
31: C
32: C CHECK FOR NEGATIVE
33: C
34: IF (CARD(IP).NE.S(7)) GO TO 30
35: L = -1
36: IP = IP + 1
37: IF (IP.GE.73) GO TO 60
38: 30 DO 40 I=1,5
39: IF (S(I).NE.CARD(IP)) GO TO 40
40: J(I) = J(I) + L
41: GO TO 50
42: 40 CONTINUE
43: GOTO 100
44: C
45: C FLUSH BLANKS TO NEXT COMMA
46: C
47: 50 IP = IP + 1
48: IF (IP.GE.73) GO TO 60
49: IF (CARD(IP).EQ.S(6)) GO TO 20
50: IF(CARD(IP).NE.S(8)) GOTO 100
51: GO TO 50
52: 60 DO 90 K=1,5
53: IF (J(K)) 70, 90, 80
54: 70 OPT(K) = .FALSE.
55: GO TO 90
56: C DO NOT LET USER TURN ON PASS2 AFTER WE TURN IT OFF
57: 80 IF (K.EQ.3 .AND. .NOT.OPT(3)) GO TO 90
58: OPT(K) = .TRUE.
59: 90 CONTINUE
60: 100 RETURN
61: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.