C* READ STATEMENT - UNDRC C SUBROUTINE RC(IEND) BYTE STRING,ISTR,VAR COMMON STRING(660),ISTR(660),VAR(6) C WRITE(6,6010) IEND 6010 FORMAT('0', 'SUB RC: IEND =', I4) C WRITE(6,6020) (ISTR(II), II = 1,IEND) 6020 FORMAT('0','SUB RC: ISTR =', 50I1) C WRITE(6,6030) (STRING(II), II = 1,IEND) 6030 FORMAT('0','SUB RC: STRING =', 50A1) I=1 I3=1 ! 3 IN ISTR REPRESENTS LEFT PARENTHESES I4=0 ! 4 IN ISTR REPRESENTS RIGHT PARENTHESES 10 I=I+1 IF (I.GT.IEND) RETURN IF (ISTR(I).EQ.3) I3=I3+1 IF (ISTR(I).EQ.4) I4=I4+1 IF (I3.NE.I4) GO TO 10 ! L AND R PARENS SHOULD BE C ! EQUAL AFTER (READ,...) C C (READ,...) HAS BEEN SCANNED, START ON VARIABLE LIST J=0 20 I=I+1 IF (I.GT.IEND) RETURN IF (ISTR(I).NE.0) GO TO 30 ! ISTR(I) = 0 AT VARIABLE NAME J=J+1 ! J = NUMBER OF LETTERS OF NAME VAR(J)=STRING(I) GO TO 20 30 IF (J.GT.0) CALL CHECK(J) C WRITE(6,6040) (VAR(II), II = 1,J) C6040 FORMAT('SUB RC: VAR =',6A1) IF (J.LT.0) RETURN IF (ISTR(I).EQ.5) GO TO 40 IF (ISTR(I).NE.3) GO TO 20 IF (ISTR(I-1).NE. 0) GO TO 20 C C IF A LEFT PARENS IS FOUND, AND PRECEDING CHARACTER WAS PART C OF A VARIABLE NAME, THEN WE HAVE AN ARRAY ELEMENT. SKIP C OVER CONTENTS OF ELEMENT, I.E, G(II) - IGNORE (II) 40 I=I+1 IF (I.GT.IEND) RETURN IF (ISTR(I).NE.4) GO TO 40 GO TO 20 END