|
|
1.1 ! root 1: SUBROUTINE GETLIN ! 2: C GET A NEW LINE ! 3: INTEGER ALFA(52),ALFB(52),ALFL,CASE ! 4: INTEGER DDT,ERR,FMT,LCT(4),LIN(1024),LPT(6),RIO,WIO,RTE,WTE,HIO ! 5: INTEGER SYM,SYN(4),BUF(256),CHAR,FLP(2),FIN,FUN,LHS,RHS,RAN(2) ! 6: COMMON /ALFS/ ALFA,ALFB,ALFL,CASE ! 7: COMMON /IOP/ DDT,ERR,FMT,LCT,LIN,LPT,RIO,WIO,RTE,WTE,HIO ! 8: COMMON /COM/ SYM,SYN,BUF,CHAR,FLP,FIN,FUN,LHS,RHS,RAN ! 9: INTEGER LRECL,EOL,SLASH,BSLASH,DOT,BLANK,RETU(4) ! 10: DATA EOL/99/,DOT/47/,BLANK/36/,RETU/27,14,29,30/ ! 11: DATA SLASH/44/,BSLASH/45/,LRECL/80/ ! 12: C ! 13: 10 L = LPT(1) ! 14: 11 DO 12 J = 1, LRECL ! 15: BUF(J) = ALFA(BLANK+1) ! 16: 12 CONTINUE ! 17: READ(RIO,101,END=50,ERR=10) (BUF(J),J=1,LRECL) ! 18: 101 FORMAT(80A1) ! 19: N = LRECL+1 ! 20: 15 N = N-1 ! 21: IF (BUF(N) .EQ. ALFA(BLANK+1)) GO TO 15 ! 22: IF (MOD(LCT(4),2) .EQ. 1) WRITE(WTE,102) (BUF(J),J=1,N) ! 23: IF (WIO .NE. 0) WRITE(WIO,102) (BUF(J),J=1,N) ! 24: 102 FORMAT(0X,80A1) ! 25: C ! 26: DO 40 J = 1, N ! 27: DO 20 K = 1, ALFL ! 28: IF (BUF(J).EQ.ALFA(K) .OR. BUF(J).EQ.ALFB(K)) GO TO 30 ! 29: 20 CONTINUE ! 30: K = EOL+1 ! 31: CALL XCHAR(BUF(J),K) ! 32: IF (K .GT. EOL) GO TO 10 ! 33: IF (K .EQ. EOL) GO TO 45 ! 34: IF (K .EQ. -1) L = L-1 ! 35: IF (K .LE. 0) GO TO 40 ! 36: C ! 37: 30 K = K-1 ! 38: IF (K.EQ.SLASH .AND. BUF(J+1).EQ.BUF(J)) GO TO 45 ! 39: IF (K.EQ.DOT .AND. BUF(J+1).EQ.BUF(J)) GO TO 11 ! 40: IF (K.EQ.BSLASH .AND. N.EQ.1) GO TO 60 ! 41: LIN(L) = K ! 42: IF (L.LT.1024) L = L+1 ! 43: IF (L.EQ.1024) WRITE(WTE,33) L ! 44: 33 FORMAT(0X,'INPUT BUFFER LIMIT IS ',I4,' CHARACTERS.') ! 45: 40 CONTINUE ! 46: 45 LIN(L) = EOL ! 47: LPT(6) = L ! 48: LPT(4) = LPT(1) ! 49: LPT(3) = 0 ! 50: LPT(2) = 0 ! 51: LCT(1) = 0 ! 52: CALL GETCH ! 53: RETURN ! 54: C ! 55: 50 IF (RIO .EQ. RTE) GO TO 52 ! 56: CALL PUTID(LIN(L),RETU) ! 57: L = L + 4 ! 58: GO TO 45 ! 59: 52 CALL FILES(-RTE,BUF,BUF) ! 60: LIN(L) = EOL ! 61: RETURN ! 62: C ! 63: 60 N = LPT(6) - LPT(1) ! 64: DO 61 I = 1, N ! 65: J = L+I-1 ! 66: K = LIN(J) ! 67: BUF(I) = ALFA(K+1) ! 68: IF (CASE.EQ.1 .AND. K.LT.36) BUF(I) = ALFB(K+1) ! 69: 61 CONTINUE ! 70: CALL EDIT(BUF,N) ! 71: N = N + 1 ! 72: GO TO 15 ! 73: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.