|
|
1.1 root 1: SUBROUTINE IFS(LOG)
2: LOGICAL TOKLAB, ERR, SYSERR, ABORT, LOG
3: INTEGER STMT, PSTMT, EXPR
4: COMMON /INPUT/ NSTMT, PSTMT, STMT(1327)
5: COMMON /DETECT/ ERR, SYSERR, ABORT
6: C
7: C ROUTINE PROCESSES ARITHMETIC AND LOGICAL IF STMTS
8: C LOG RETURNED AS TRUE IF LOGICAL-IF IS ENCOUNTERED;PU CHECKS FOR
9: C ACCEPTIBLE EXECUTABLE STMT AFTER LOGICAL EXPRESSION
10: C
11: LOG = .FALSE.
12: L = MOD(EXPR(I),8)
13: IF (-1.EQ.L .OR. SYSERR) GO TO 30
14: LOG = L.EQ.4
15: IF (LOG) GO TO 30
16: C
17: C ARITHMETIC IF--SEARCH FOR <LAB>,<LAB>,<LAB>
18: C
19: IF (L.GT.2) GO TO 50
20: I = 0
21: IF (PSTMT.GE.NSTMT) GO TO 20
22: 10 IF (.NOT.TOKLAB(1,K2,L,.FALSE.)) GO TO 40
23: IF (SYSERR) GO TO 30
24: I = I + 1
25: IF (I.EQ.3) GO TO 60
26: IF (STMT(K2).NE.68) GO TO 20
27: PSTMT = K2 + 1
28: IF (PSTMT.LT.NSTMT) GO TO 10
29: 20 CALL ERROR1(15H ILLEGAL SYNTAX, 15)
30: 30 RETURN
31: 40 CALL ERROR1(14H MISSING LABEL, 14)
32: GO TO 30
33: 50 CALL ERROR1(39H COMPLEX EXPRESSION ILLEGAL IN ARITH-IF, 39)
34: GO TO 30
35: 60 IF (K2.EQ.NSTMT) GO TO 30
36: CALL ERROR1(34H EXTRANEOUS INFO AFTER END OF STMT, 34)
37: GO TO 30
38: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.