|
|
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.