Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-02 - decus/20-0034/retest.for
There are 2 other files named retest.for in the archive. Click here to see a list.
C     THIS SET OF ROUTINES IS TEST  DATA  FOR  THE  FORTRAN
C     RENUMBERING  PROGRAM.   THE NUMBER 48 IS USED WHERE A
C     NUMBER IS NOT TO BE REPLACED AND THE NUMBER NINETY IS
C     USED  WHERE SYNTAX SHOWS IT TO BE A STATEMENT NUMBER.
C     IF RENUMBERED WITH INITIAL  STATEMENT  NUMBER  1  AND
C     INCREMENT  ALSO  1,  THEN THE STATEMENT NUMBER NINETY
C     WILL BE CONVERTED TO STATEMENT NUMBER 2 AND THE DIGIT
C     NINE SHOULD APPEAR ONLY IN THE STATEMENT NUMBER FIELD
C     IN COLUMNS 1 THROUGHT 5.  IF  ANY  OF  THE  48'S  ARE
C     ERRONEOUSLY  ASSUMED  TO  BE  STATEMENT NUMBERS, THEN
C     THESE WILL BE CONVERTED TO NINES.  SOME OF  THE  TEST
C     CASES  ARE  MEANT  TO  TEST SPACINGS AND WILL REQUIRE
C     EXAMINATION OF THE LISTING OR RENUMBERED OUTPUT.
      SUBROUTINE G O T O
C
C     STANDARD GO TO STATEMENTS
      GO TO 90
      GO TO IVALUE
      GO TO IVALUE,(90,90,90,90,90)
      GO TO (90,90,90,90,90),IVALUE
      GO TO IVALUE(90,90,90,90,90)
      GO TO (90,90,90,90,90)IVALUE
      GOTO90
      GOTOIVALUE
      GOTOIVALUE,(90,90,90,90,90)
      GOTO(90,90,90,90,90),IVALUE
      GOTOIVALUE(90,90,90,90,90)
      GOTO(90,90,90,90,90)IVALUE
C
C     GO TO STATMENTS WITH INDEX AN ARRAY ENTRY
      GO TO (90,90,90,90,90),IVALUE(48,48)
      GO TO (90,90,90,90,90)IVALUE(48,48)
      GOTO(90,90,90,90,90),IVALUE(48,48)
      GOTO(90,90,90,90,90)IVALUE(48,48)
C
C     GO TO STATEMENTS WITH INSERTED BLANKS
      G O T O IVALUE , ( 9 0 , 9 0 , 9 0 , 9 0 , 9 0 )
      G O T O ( 9 0 , 9 0 , 9 0 , 9 0 , 9 0 , 9 0 ) IVALUE
C
C     SIMILAR ARITHMETIC EXPRESSION
      GOTO48=48
      GOTO48=IVALUE
      GOTO48=IVALUE(48,48)
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      SUBROUTINE DO
C
C     DO LOOP WITH AND WITHOUT EXPRESSIONS AS LIMITS
      DO 90 IVALUE=48,48
      DO 90 IVALUE=48,48,48
      DO 90 IVALUE=IVALUE(48,48),IVALUE(48,48)
      DO 90 IVALUE=IVALUE(48,48),IVALUE(48,48),IVALUE(48,48)
      DO 90 IVALUE=IVALUE(48)+48,IVALUE(48)+48
      DO 90 IVALUE=IVALUE(48)+48,IVALUE(48)+48,IVALUE(48)+48
      DO 90,IVALUE=48,48
      DO 90,IVALUE=48,48,48
      DO 90,IVALUE=IVALUE(48,48),IVALUE(48,48)
      DO 90,IVALUE=IVALUE(48,48),IVALUE(48,48),IVALUE(48,48)
      DO 90,IVALUE=IVALUE(48)+48,IVALUE(48)+48
      DO 90,IVALUE=IVALUE(48)+48,IVALUE(48)+48,IVALUE(48)+48
C
C     DO LOOP WITH INDEX AN ARRAY ELEMENT
      DO 90 IVALUE(48,48)=48,48
      DO 90 IVALUE(48,48)=48,48,48
      DO 90 IVALUE(48,48)=IVALUE(48,48),IVALUE(48,48)
      DO 90 IVALUE(48,48)=IVALUE(48,48),IVALUE(48,48),IVALUE(48,48)
      DO 90 IVALUE(48,48)=IVALUE(48)+48,IVALUE(48)+48
      DO 90 IVALUE(48,48)=IVALUE(48)+48,IVALUE(48)+48,IVALUE(48)+48
      DO 90,IVALUE(48,48)=48,48
      DO 90,IVALUE(48,48)=48,48,48
      DO 90,IVALUE(48,48)=IVALUE(48,48),IVALUE(48,48)
      DO 90,IVALUE(48,48)=IVALUE(48,48),IVALUE(48,48),IVALUE(48,48)
      DO 90,IVALUE(48,48)=IVALUE(48)+48,IVALUE(48)+48
      DO 90,IVALUE(48,48)=IVALUE(48)+48,IVALUE(48)+48,IVALUE(48)+48
C
C     SAME DO LOOPS WITHOUT INTERNAL BLANKS
      DO90IVALUE=48,48
      DO90IVALUE=48,48,48
      DO90IVALUE=IVALUE(48,48),IVALUE(48,48)
      DO90IVALUE=IVALUE(48,48),IVALUE(48,48),IVALUE(48,48)
      DO90IVALUE=IVALUE(48)+48,IVALUE(48)+48
      DO90IVALUE=IVALUE(48)+48,IVALUE(48)+48,IVALUE(48)+48
      DO90IVALUE(48,48)=48,48
      DO90IVALUE(48,48)=48,48,48
      DO90IVALUE(48,48)=IVALUE(48,48),IVALUE(48,48)
      DO90IVALUE(48,48)=IVALUE(48,48),IVALUE(48,48),IVALUE(48,48)
      DO90IVALUE(48,48)=IVALUE(48)+48,IVALUE(48)+48
      DO90IVALUE(48,48)=IVALUE(48)+48,IVALUE(48)+48,IVALUE(48)+48

C
C     SIMILAR ARITHMETIC EXPRESSIONS
      DO48IV=48
      DO48IV=IVALUE(48,48)
      DO48IV=IVALUE(48,48)+48
      DO48IV(48,48)=48
      DO48IV(48,48)=IVALUE(48,48)
      DO48IV(48,48)=IVALUE(48,48)+48
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      FUNCTION READ (IVALUE)
C
C     READ STATEMENTS WITHOUT VARIABLE LISTS
      READ 90
      READ(48)
      READ(48,90)
      READ(IVALUE,90)
      READ(48,IVALUE)
      READ(IVALUE,IVALUE)
      READ(48,90,END=90)
      READ(IVALUE,90,END=90)
      READ(48,IVALUE,END=90)
      READ(IVALUE,IVALUE,END=90)
      READ(48,90,ERR=90)
      READ(IVALUE,90,ERR=90)
      READ(48,IVALUE,ERR=90)
      READ(IVALUE,IVALUE,ERR=90)
      READ(48,90,END=90,ERR=90)
      READ(IVALUE,90,END=90,ERR=90)
      READ(48,IVALUE,END=90,ERR=90)
      READ(IVALUE,IVALUE,END=90,ERR=90)
      READ INPUT TAPE 48,90
      READ INPUT TAPE IVALUE,90
      READ INPUT TAPE 48,IVALUE
      READ INPUT TAPE IVALUE,IVALUE
C
C     READ STATEMENTS WITH VARIABLE LISTS
      READ 90(IVALUE(IVALUE),IVALUE=48,48)
      READ(48)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,IVALUE)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,IVALUE)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,90,END=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,90,END=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,IVALUE,END=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,IVALUE,END=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,90,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,90,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,IVALUE,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,IVALUE,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,90,END=90,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,90,END=90,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,IVALUE,END=90,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE,IVALUE,END=90,ERR=90)(IVALUE(IVALUE),IVALUE=48,48)
      READ INPUT TAPE 48,90,(IVALUE(IVALUE),IVALUE=48,48)
      READ INPUT TAPE IVALUE,90,(IVALUE(IVALUE),IVALUE=48,48)
      READ INPUT TAPE 48,IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      READ INPUT TAPE IVALUE,IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
C
C     READ STATEMENTS WITH TAPE OR FORMAT VARIABLES
C     SPECIFIED AS AN ARRAY ELEMENT
      READ(IVALUE(48,48),90)(IVALUE(IVALUE),IVALUE=48,48)
      READ(48,IVALUE(48,48))(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE(48,48),IVALUE(48,48))(IVALUE(IVALUE),IVALUE=48,48)
      READ(IVALUE(48,48),90,END=90,ERR=90)IVALUE(48,48)
      READ(48,IVALUE(48,48),END=90,ERR=90)IVALUE(48,48)
      READ(IVALUE(48,48),IVALUE(48,48),END=90,ERR=90)IVALUE(48,48)
C
C     READ VARIABLE OR ARRAY IN ARITHMETIC EXPRESSION
      READ 48=IVALUE(IVALUE)
      READ(48)=IVALUE(IVALUE)
      READ(48,48)=IVALUE(IVALUE)
      READ(IVALUE,48)=IVALUE(IVALUE)
      READ(48,IVALUE)=IVALUE(IVALUE)
      READ(IVALUE,IVALUE)=IVALUE(IVALUE)
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      DOUBLE PRECISION FUNCTION WRITE
C
C     WRITE STATEMENTS WITHOUT VARIABLE LISTS
      WRITE 90
      WRITE(48)
      WRITE(48,90)
      WRITE(IVALUE,90)
      WRITE(48,IVALUE)
      WRITE(IVALUE,IVALUE)
      WRITE OUTPUT TAPE 48,90
      WRITE OUTPUT TAPE IVALUE,90
      WRITE OUTPUT TAPE 48,IVALUE
      WRITE OUTPUT TAPE IVALUE,IVALUE
C
C     WRITE STATEMENTS WITH VARIABLE LISTS
      WRITE 90(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(48)(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(48,90)(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(IVALUE,90)(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(48,IVALUE)(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(IVALUE,IVALUE)(IVALUE(IVALUE),IVALUE=48,48)
      WRITE OUTPUT TAPE 48,90,(IVALUE(IVALUE),IVALUE=48,48)
      WRITE OUTPUT TAPE IVALUE,90,(IVALUE(IVALUE),IVALUE=48,48)
      WRITE OUTPUT TAPE 48,IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      WRITE OUTPUT TAPE IVALUE,IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
C
C     WRITE STATEMENTS WITH TAPE OR FORMAT VARIABLES
C     SPECIFIED AS AN ARRAY ELEMENT
      WRITE(IVALUE(48,48),90)(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(48,IVALUE(48,48))(IVALUE(IVALUE),IVALUE=48,48)
      WRITE(IVALUE(48,48),IVALUE(48,48))(IVALUE(IVALUE),IVALUE=48,48)
C
C     WRITE VARIABLE OR ARRAY IN ARITHMETIC EXPRESSION
      WRITE 48=IVALUE(IVALUE)
      WRITE(48)=IVALUE(IVALUE)
      WRITE(48,48)=IVALUE(IVALUE)
      WRITE(IVALUE,48)=IVALUE(IVALUE)
      WRITE(48,IVALUE)=IVALUE(IVALUE)
      WRITE(IVALUE,IVALUE)=IVALUE(IVALUE)
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      INTEGER FUNCTION BLANK
C
C     TEST ABILITY OF DICTIONARY PROGRAM TO HANDLE
C     WORDS CONTAINING BLANKS (WHICH SHOULD BE
C     IGNORED IF A STATEMENT NUMBER IS ENCOUNTERED
C     FURTHER ON IN THE STATEMENT
       READ INPUTTAPE48,90
        READ INPUTTAPE48,90
         READ INPUTTAPE48,90
      R EAD INPUTTAPE48,90
      R  EAD INPUTTAPE48,90
      R   EAD INPUTTAPE48,90
      RE AD INPUTTAPE48,90
      RE  AD INPUTTAPE48,90
      RE   AD INPUTTAPE48,90
      REA D INPUTTAPE48,90
      REA  D INPUTTAPE48,90
      REA   D INPUTTAPE48,90
      READ  INPUTTAPE48,90
      READ   INPUTTAPE48,90
      READ    INPUTTAPE48,90
      READ I NPUTTAPE48,90
      READ I  NPUTTAPE48,90
      READ I   NPUTTAPE48,90
      READ IN PUTTAPE48,90
      READ IN  PUTTAPE48,90
      READ IN   PUTTAPE48,90
      READ INP UTTAPE48,90
      READ INP  UTTAPE48,90
      READ INP   UTTAPE48,90
      READ INPU TTAPE48,90
      READ INPU  TTAPE48,90
      READ INPU   TTAPE48,90
      READ INPUT TAPE48,90
      READ INPUT  TAPE48,90
      READ INPUT   TAPE48,90
      READ INPUTT APE48,90
      READ INPUTT  APE48,90
      READ INPUTT   APE48,90
      READ INPUTTA PE48,90
      READ INPUTTA  PE48,90
      READ INPUTTA   PE48,90
      READ INPUTTAP E48,90
      READ INPUTTAP  E48,90
      READ INPUTTAP   E48,90
      READ INPUTTAPE 48,90
      READ INPUTTAPE  48,90
      READ INPUTTAPE   48,90
      READ INPUTTAPE4 8,90
      READ INPUTTAPE4  8,90
      READ INPUTTAPE4   8,90
      READ INPUTTAPE48 ,90
      READ INPUTTAPE48  ,90
      READ INPUTTAPE48   ,90
      READ INPUTTAPE48, 90
      READ INPUTTAPE48,  90
      READ INPUTTAPE48,   90
      READ INPUTTAPE48,9 0
      READ INPUTTAPE48,9  0
      READ INPUTTAPE48,9   0
C
C     TEST ABILITY TO HAVE BLANKS WITHIN STATEMENT NUMBERS
      GO TO  (  9  0  , 9  0  ,  9  0  ),IVALUE
      IF(IVALUE)  9  0  ,  9  0  ,  9  0 
C
C     NUMBERED STATEMENTS STATEMENTS
1 0 0 CONTINUE
9   0 CONTINUE
 8 1  CONTINUE
 7 3  CONTINUE
 6 6  CONTINUE
 6 0  CONTINUE
 5 5  CONTINUE
 5 1  CONTINUE
 4 8  CONTINUE
 4 6  CONTINUE
 4 5  CONTINUE
      END
      BLOCK DATA
C
C     STATEMENTS CONTAINING ALPHAMERIC DATA
      IVALUE='''BCDE'+'ABCD'''
      IVALUE='A''CDE'+'ABC''E'
      IVALUE='AB''DE'+'AB''DE'
      IVALUE='ABC''E'+'A''CDE'
      IVALUE='ABCD'''+'''BCDE'
      IVALUE=5H'BCDE+5HABCD'
      IVALUE=5HA'CDE+5HABC'E
      IVALUE=5HAB'DE+5HAB'DE
      IVALUE=5HABC'E+5HA'CDE
      IVALUE=5HABCD'+5H'BCDE
      IVALUE=15HABCDEFGHIJKLMNO+'ABCD'''
      IVALUE=15HABCDEFGHIJKLMNO+'ABC''E'
      IVALUE=15HABCDEFGHIJKLMNO+'AB''DE'
      IVALUE=15HABCDEFGHIJKLMNO+'A''CDE'
      IVALUE=15HABCDEFGHIJKLMNO+'''BCDE'
      IVALUE='''BCDE'+15HABCDEFGHIJKLMNO
      IVALUE='A''CDE'+15HABCDEFGHIJKLMNO
      IVALUE='AB''DE'+15HABCDEFGHIJKLMNO
      IVALUE='ABC''E'+15HABCDEFGHIJKLMNO
      IVALUE='ABCD'''+15HABCDEFGHIJKLMNO
      END
      LOGICAL FUNCTION IF
C
C     IF STATEMENTS IN STANDARD FORMS
      IF(48-IVALUE(48,48))90,90,90
      IF(48.EQ.IVALUE(48,48))GO TO 90
      IF(48.EQ.IVALUE(48,48))GO TO 48 = 48
      IF(48.EQ.IVALUE(48,48))READ(48,90,END=90,ERR=90)IVALUE(48,48)
      IF(48.EQ.IVALUE(48,48))IVALUE(48,48)=48
      IF(48.EQ.IVALUE(48,48))IF(48.EQ.IVALUE(48,48))GO TO 90
      IF(48.EQ.IVALUE(48,48))IF(48-IVALUE(48,48))90,90,90
C
C     ARITHMETIC EXPRESSIONS DEFINING IF ARRAY ELEMENTS
      IF(48,48)=48
      IF(48,48)=GO TO 48
      IF(48.EQ.IVALUE(48,48))IF(48,48)=48
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      COMPLEX FUNCTION   T  A  B  S(IVALUE)
C
C     TEST CONTINUATION LINE SENSING OF TABS WHICH HAVE
C     BEEN CONVERTED TO THE APPROPRIATE NUMBER OF BLANKS
        D
        1O
        19
        10
        1I
        1=
        148
        1,
        148
          G
          1O
           1
            1T
             1O
              1
               19
                10
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
C
C     ASSORTED STATEMENT TYPES WHICH REQUIRE RENUMBERING
      ACCEPT 90
      ACCEPT 90,(IVALUE(IVALUE),IVALUE=48,48)
      ACCEPT IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      ACCEPT IVALUE(48,48),(IVALUE(IVALUE),IVALUE=48,48)
      TYPE 90
      TYPE 90,(IVALUE(IVALUE),IVALUE=48,48)
      TYPE IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      TYPE IVALUE(48,48),(IVALUE(IVALUE),IVALUE=48,48)
      REREAD 90
      REREAD 90,(IVALUE(IVALUE),IVALUE=48,48)
      REREAD IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      REREAD IVALUE(48,48),(IVALUE(IVALUE),IVALUE=48,48)
      PRINT 90
      PRINT 90,(IVALUE(IVALUE),IVALUE=48,48)
      PRINT IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      PRINT IVALUE(48,48),(IVALUE(IVALUE),IVALUE=48,48)
      PUNCH 90
      PUNCH 90,(IVALUE(IVALUE),IVALUE=48,48)
      PUNCH IVALUE,(IVALUE(IVALUE),IVALUE=48,48)
      PUNCH IVALUE(48,48),(IVALUE(IVALUE),IVALUE=48,48)
      DECODE(48,90,IVALUE(48,48))IVALUE(48,48)
      DECODE(IVALUE(48,48),90,IVALUE(48,48))IVALUE(48,48)
      DECODE(48,IVALUE(48,48),IVALUE(48,48))IVALUE(48,48)
      DECODE(48,90,IVALUE(48,48),ERR=90)IVALUE(48,48)
      DECODE(IVALUE(48,48),90,IVALUE(48,48),ERR=90)IVALUE(48,48)
      DECODE(48,IVALUE(48,48),IVALUE(48,48),ERR=90)IVALUE(48,48)
      DECODE(IVALUE(48,48),IVALUE(48,48),IVALUE(48,48))IVALUE(48,48)
      ENCODE(48,90,IVALUE(48,48))IVALUE(48,48)
      ENCODE(IVALUE(48,48),90,IVALUE(48,48))IVALUE(48,48)
      ENCODE(48,IVALUE(48,48),IVALUE(48,48))IVALUE(48,48)
      ENCODE(48,90,IVALUE(48,48),ERR=90)IVALUE(48,48)
      ENCODE(IVALUE(48,48),90,IVALUE(48,48),ERR=90)IVALUE(48,48)
      ENCODE(48,IVALUE(48,48),IVALUE(48,48),ERR=90)IVALUE(48,48)
      ENCODE(IVALUE(48,48),IVALUE(48,48),IVALUE(48,48))IVALUE(48,48)
      ASSIGN 90 TO IVALUE
      ASSIGN 90 TO IVALUE(48,48)
      IF QUOTIENT OVERFLOW 90,90,90
      IF DIVIDE CHECK 90,90,90
      IF ACCUMULATOR OVERFLOW 90,90,90
C
C     STATEMENTS CONTAINING VARIABLE TYPE DESIGNATION IN
C     LEFT COLUMN
B     GO TO 90
D     IF(IVALUE)90,90,90
I     ASSIGN 90 TO IVALUE
C
C     CALL STATEMENT CONTAINING STATEMENT NUMBERS TO WHICH
C     CONTROL IS PASSED UPON RETURNING (INDICATED IN CALL
C     STATEMENT AS AN ARGUMENT CONSISTING OF STATEMENT
C     NUMBER FOLLOWING AN AND SIGN IN IBM 360 NOTATION
C     OR FOLLOWING A DOLLAR SIGN OR FOLLOWING AN
C     ASTERISK IN DEC NOTATION)
      CALL IVALUE(IVALUE,*90,IVALUE(48,48),*90)
      CALL IVALUE( * 90, 48, 48, 48, *90)
      CALL IVALUE( 48, 48, * 90, 48, 48)
      CALL IVALUE(IVALUE,$90,IVALUE(48,48),$90)
      CALL IVALUE( $ 90, 48, 48, 48, $90)
      CALL IVALUE( 48, 48, $ 90, 48, 48)
      CALL IVALUE(IVALUE,&90,IVALUE(48,48),&90)
      CALL IVALUE( & 90, 48, 48, 48, &90)
      CALL IVALUE( 48, 48, & 90, 48, 48)
C
C     NUMBERED STATEMENTS
B 100 CONTINUE
D  90 CONTINUE
I  81 CONTINUE
B  73 CONTINUE
D  66 CONTINUE
I  60 CONTINUE
B  55 CONTINUE
D  51 CONTINUE
I  48 CONTINUE
B  46 CONTINUE
D  45 CONTINUE
      END
      FUNCTION ALPHAMERIC DATA
C
C     SAMPLE STATEMENTS CONTAINING KEY SEPARATOR CHARACTER
C     GROUPINGS (TO TEST PARENTHESIS COUNTING, ETC. IN
C     FORTRAN RENUMBERING PROGRAM).
C
      IF(IVALUE.EQ.1H()GO TO 90
      IF(IVALUE.EQ.1H))GO TO 90
      IF(IVALUE.EQ.15H((((((((((((((()GO TO 90
      IF(IVALUE.EQ.'(((((((((((((((')GO TO 90
      IF ( IVALUE . E Q . ' ( ( ' ' ( ( ' ) GO TO 90
      CALL IVALUE(',*48,',5H,*48,,4H,*48,*90)
      CALL IVALUE(',&48,',5H,&48,,4H,&48,&90)
      CALL IVALUE(',$48,',5H,$48,,4H,$48,$90)
      CALL IVALUE ( ' , * 48, ' ' , * 48 , ' , * 90 )
      CALL IVALUE ( ' , & 48, ' ' , & 48 , ' , & 90 )
      CALL IVALUE ( ' , $ 48, ' ' , $ 48 , ' , $ 90 )
      DO48IV=5H48,48
      DO48IV='48,48'
C
C     TEST ENTRY OF ALPHAMERIC STRINGS CONTAINING TERMINAL
C     BLANKS INTO SYMBOL DICTIONARY
      IVALUE=10HABCDE
      IF(IVALUE.EQ.10HABCDE     )90,90,90
      IF(IVALUE.EQ.  10HABCDE     )90,90,90
      IF(IVALUE.EQ.  10HABCDE       )90,90,90
      IVALUE=5HABC
      IF(IVALUE.EQ.5HABC  )90,90,90
      IF(IVALUE.EQ.5HABC    )90,90,90
      IF(IVALUE.EQ.  5HABC    )90,90,90
      IVALUE='ABC'
      IF(IVALUE.EQ.'ABC')90,90,90
      IF(IVALUE.EQ.'ABC'  )90,90,90
      IF(IVALUE.EQ.  'ABC'  )90,90,90
      IVALUE='ABC''D'
      IF(IVALUE.EQ.'ABC''D')90,90,90
      IF(IVALUE.EQ.'ABC''D'  )90,90,90
      IF(IVALUE.EQ.  'ABC''D'  )90,90,90
      IVALUE='ABC''DEF'
      IF(IVALUE.EQ.'ABC''DEF')90,90,90
      IF(IVALUE.EQ.  'ABC''DEF')90,90,90
      IF(IVALUE.EQ.  'ABC''DEF'  )90,90,90
      IVALUE='ABC''DEF''GHI'
      IF(IVALUE.EQ.'ABC''DEF''GHI')90,90,90
      IF(IVALUE.EQ.  'ABC''DEF''GHI')90,90,90
      IF(IVALUE.EQ.  'ABC''DEF''GHI'  )90,90,90
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      SUBROUTINE TABS
C     FOLLOWING COMMENTS HAVE ASTERISK WHERE TABS APPEAR
C     IN INPUT, ALSO SLASHES HAVE REPLACED THE DIGIT NINE
CC
CC     MOVE TO LEFT IF START BEYOND COLUMN 7
CGO TO 48
C GO TO 48
C  GO TO 48
C   GO TO 48
C    GO TO 48
C      GO TO /0
C       GO TO /0
C        GO TO /0
C         GO TO /0
CC
CC     INITIAL TABS (NEW STATEMENT IF START WITH
CC     NON-DIGIT REGARDLESS OF PLACEMENT)
C*GO TO /0
C**GO TO /0
C***GO TO /0
C****GO TO /0
C*****GO TO /0
C******GO TO /0
C*******GO TO /0
C********GO TO /0
C*********GO TO /0
CC
CC     COMBINATION INITIAL TAB AND BLANKS
C *GO TO /0
C * *GO TO /0
C * * *GO TO /0
C * * * *GO TO /0
C* GO TO /0
C* * GO TO /0
C* * * GO TO /0
C* * * * GO TO /0
CC
CC     CONTINUATION LINES
C      GO
C     1TO /0
C      GO
C     ATO /0
C       GO
C      1TO /0
C       GO
C       1TO /0
C         GO
C        1TO /0
C*GO
C*1TO /0
C      GO
C*1TO /0
C*GO
C     1TO /0
C*GO
C       1TO /0
C*GO
C     ATO /0
CC
CC     ZERO IN CONTINUATION COLUMN
CC     INITIAL BLANKS
C     0GO TO /0
C      0GO TO /0
C       0GO TO /0
C        0GO TO /0
CC     INITIAL TABS
C*0GO TO /0
C**0GO TO /0
C***0GO TO /0
CC     INITIAL TABS AND BLANKS
C *0GO TO /0
C * *0GO TO /0
C * * *0GO TO /0
C * * * *0GO TO /0
CC
CC     NUMBERED STATEMENTS
CD 100 CONTINUE
C   /0*CONTINUE
C 8  10CONTINUE
C7   3**CONTINUE
CD66   CONTINUE
C   60 CONTINUE
CI  55*CONTINUE
C51*        0CONTINUE
C48              0CONTINUE
C   460CONTINUE
CD  450CONTINUE
C      END
C
C     MOVE TO LEFT IF START BEYOND COLUMN 7
GO TO 48
 GO TO 48
  GO TO 48
   GO TO 48
    GO TO 48
      GO TO 90
       GO TO 90
        GO TO 90
         GO TO 90
C
C     INITIAL TABS (NEW STATEMENT IF START WITH
C     NON-DIGIT REGARDLESS OF PLACEMENT)
	GO TO 90
		GO TO 90
			GO TO 90
				GO TO 90
					GO TO 90
						GO TO 90
							GO TO 90
								GO TO 90
									GO TO 90
C
C     COMBINATION INITIAL TAB AND BLANKS
 	GO TO 90
 	 	GO TO 90
 	 	 	GO TO 90
 	 	 	 	GO TO 90
	 GO TO 90
	 	 GO TO 90
	 	 	 GO TO 90
	 	 	 	 GO TO 90
C
C     CONTINUATION LINES
      GO
     1TO 90
      GO
     ATO 90
       GO
      1TO 90
       GO
       1TO 90
         GO
        1TO 90
	GO
	1TO 90
      GO
	1TO 90
	GO
     1TO 90
	GO
       1TO 90
	GO
     ATO 90
C
C     ZERO IN CONTINUATION COLUMN
C     INITIAL BLANKS
     0GO TO 90
      0GO TO 90
       0GO TO 90
        0GO TO 90
C     INITIAL TABS
	0GO TO 90
		0GO TO 90
			0GO TO 90
C     INITIAL TABS AND BLANKS
 	0GO TO 90
 	 	0GO TO 90
 	 	 	0GO TO 90
 	 	 	 	0GO TO 90
C
C     NUMBERED STATEMENTS
D 100 CONTINUE
   90	CONTINUE
 8  10CONTINUE
7   3		CONTINUE
D66   CONTINUE
   60 CONTINUE
I  55	CONTINUE
51	        0CONTINUE
48              0CONTINUE
   460CONTINUE
D  450CONTINUE
      END
      SUBROUTINE WRAPAROUND
C     ROUTINE TO TEST WRAP AROUND PREVENTION WHEN
C     NUMBER OF CHARACTERS CHANGES IN NUMBERS
C     THE CORRECT RESULTS ARE GIVEN BELOW
C     (NOTE THAT UNLIKE SAMPLE TAB INPUT GIVEN IN SOME
C     OF THESE TEST ROUTINES, THIS SAMPLE OUTPUT USES
C     ALL SEVENTYTWO CHARACTERS AND SO ADDED C IS IN COLUMN
C     1 RATHER THAN IN FRONT OF CONTENTS OF COLUMN 1)
C     SLASH REPLACES DIGIT NINE IN THESE EXAMPLES
C     GO TO(1,1,1,
C    111,11,11,
C    24,4,4),
C    3I
C     GO TO(1,1,1
C    1,11,11,11
C    2,4,4,4),
C    3I
C     GO TO(1,1,1
C    1  ,11,11,11,4
C    2  ,4,4),
C    3I
C     GO TO(1,1,1,
C    1  11,11,11,
C    2   4,4,4),
C    3    I
C     GO TO(1,1,1
C    1  ,11,11,11
C    2   ,4,4,4),
C    3    I
C     GO TO(1,1,1
C    1    ,11,11,11,4
C    2     ,4,4),
C    3    I
C
C     LONG STATEMENTS TO INSURE ADDITION AT PROPER BREAK
C     12345678/012345678/012345678/012345678/012345678/012345678/0123456
C     WRITE(5,1)IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,ABCD
C    1EF,GHIJKL
C     12345678/012345678/012345678/012345678/012345678/012345678/0123456
C     WRITE(5,11)IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,ABCDEF
C    1,GHIJKL,MNOPQR,STUVWX,YZABCD,EFGHIJ,KLMNOP,QRSTUV,WXYZAB,CDEFGH,IJ
C    2KLMN,OPQRST,UVWXYZ
C     12345678/012345678/012345678/012345678/012345678/012345678/0123456
C     WRITE(5,11)IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,ABCDEF
C    1,GHIJKL,MNOPQR,STUVWX,YZABCD,EFGHIJ,KLMNOP,QRSTUV,WXYZAB,CDEFGH,IJ
C    2K LMN,OPQRST,UVWXYZ
C
C     STATEMENTS STRUNG OUT OVER SEVERAL LINES
C     GO TO(10
C    1     ,
C    2     10
C    3     ),
C    4     I
      GO TO(9999,9999,9999,
     19,9,9,
     2999,999,999),
     3I
      GO TO(9999,9999,9999
     1,9,9,9
     2,999,999,999),
     3I
      GO TO(9999,9999,99
     199,9,9,9,9
     299,999,999),
     3I
       GO TO(9999,9999,9999,
     1  9,9,9,
     2   999,999,999),
     3    I
       GO TO(9999,9999,9999
     1  ,9,9,9
     2   ,999,999,999),
     3    I
       GO TO(9999,9999,99
     1  99,9,9,9,9
     2   99,999,999),
     3    I
C
C     LONG STATEMENTS TO INSURE ADDITION AT PROPER BREAK
C     12345678/012345678/012345678/012345678/012345678/012345678/0123456
      WRITE(5,9999)IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,ABCD
     1EF,GHIJKL
C     12345678/012345678/012345678/012345678/012345678/012345678/0123456
      WRITE(5,9)IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,ABCDEF,
     1GHIJKL,MNOPQR,STUVWX,YZABCD,EFGHIJ,KLMNOP,QRSTUV,WXYZAB,CDEFGH,IJ
     2KLMN,OPQRST,UVWXYZ
C     12345678/012345678/012345678/012345678/012345678/012345678/0123456
      WRITE(5,9)IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,IIIIII,ABCDEF,
     1GHIJKL,MNOPQR,STUVWX,YZABCD,EFGHIJ,KLMNOP,QRSTUV,WXYZAB,CDEFGH,IJK
     2 LMN,OPQRST,UVWXYZ
C
C     STATEMENTS STRUNG OUT OVER SEVERAL LINES
      GO TO(9
     A            9
     8     9
     *     9
     D        9
     ,     ,
     .     9     9
     .    
     *   9
     2    9
     A  9  ),
     E     I
C
C     NUMBERED STATEMENTS
 9999 CONTINUE
   99 CONTINUE
    3 CONTINUE
  999 CONTINUE
    4 CONTINUE
    5 CONTINUE
    6 CONTINUE
    7 CONTINUE
    8 CONTINUE
99999 CONTINUE
    9 CONTINUE
      END
      SUBROUTINE
C     ROUTINE TO TEST SEPARATE INDEXING OF UNIT
C     NUMBERS AND RECORD NUMBERS IN RANDOM ACCESS
C     I/O READ, WRITE AND FIND STATEMENTS.  THESE
C     ARE SEPARATED BY NUMBER SIGN OR APOSTROPHE.
C
C     AA AND BB SHOULD BE INDEXED SEPARATELY, CC AND
C     DD TOGETHER IN ALPHAMERIC TEXT STRING
C
C     READ STATEMENTS WITH RANDOM I/O
      READ(10'10,90)READ(10,10)
      READ(10#10,90)READ(10,10)
      READ(AA'BB,90)READ(10,10)
      READ(AA#BB,90)READ(10,10)
      READ(10'10,90,ERR=90,END=90)READ(10,10)
      READ(10#10,90,ERR=90,END=90)READ(10,10)
      READ(AA'BB,90,ERR=90,END=90)READ(10,10)
      READ(AA#BB,90,ERR=90,END=90)READ(10,10)
      READ( 10 ' 10 ,90)READ(10,10)
      READ( 10 # 10 ,90)READ(10,10)
      READ( AA ' BB ,90)READ(10,10)
      READ( AA # BB ,90)READ(10,10)
      READ( 10 ' 10 ,90,ERR=90,END=90)READ(10,10)
      READ( 10 # 10 ,90,ERR=90,END=90)READ(10,10)
      READ( AA ' BB ,90,ERR=90,END=90)READ(10,10)
      READ( AA # BB ,90,ERR=90,END=90)READ(10,10)
      READ(5HCC'DD,90)READ(10,10)
      READ('CC#DD',90)READ(10,10)
      READ(5HCC#DD,90)READ(10,10)
      READ(5HCC'DD,90,END=90,ERR=90)READ(10,10)
      READ('CC#DD',90,END=90,ERR=90)READ(10,10)
      READ(5HCC#DD,90,END=90,ERR=90)READ(10,10)
      READ(AA',90,END=90,ERR=90)READ(10,10)
      READ(#AA,90,END=90,ERR=90)READ(10,10)
      READ(AA#,90,END=90,ERR=90)READ(10,10)
      READ(#,90,END=90,ERR=90)READ(10,10)
C
C     WRITE STATEMENTS WITH RANDOM I/O
      WRITE(10'10,90)WRITE(10,10)
      WRITE(10#10,90)WRITE(10,10)
      WRITE(AA'BB,90)WRITE(10,10)
      WRITE(AA#BB,90)WRITE(10,10)
      WRITE( 10 ' 10 ,90)WRITE(10,10)
      WRITE( 10 # 10 ,90)WRITE(10,10)
      WRITE( AA ' BB ,90)WRITE(10,10)
      WRITE( AA # BB ,90)WRITE(10,10)
      WRITE(5HCC'DD,90)WRITE(10,10)
      WRITE('CC#DD',90)WRITE(10,10)
      WRITE(5HCC#DD,90)WRITE(10,10)
C
C     FIND STATEMENTS
      FIND(10'10)
      FIND(10#10)
      FIND(AA'BB)
      FIND(AA#BB)
      FIND(5HCC'DD)
      FIND(5HCC#DD)
      FIND('CC#DD')
      FIND(AA')
      FIND(#AA)
      FIND(AA#)
      FIND(#)
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
          E    N    D
	SU	BROUTINE T	ABS
C     ROUTINE TO TEST TABS WITHIN STATEMENTS
C     FOLLOWING COMMENTS HAVE ASTERISK WHERE TABS APPEAR
C     IN INPUT, ALSO SLASHES HAVE REPLACED THE DIGIT NINE
C
C*SU*BROUTINE T*ABS
C*GO*TO*/*0*
C*RE*AD*(*48,*/*0*)READ(48,48)
C*WRITE*(4*8,/*0*)*READ(48,48)
C*I*F(A.E*Q.B)*GO*TO*/0
C**D*O*/*0*I*=*48,48
C100*CONTINUE
C/ 0*CONTINUE
C8  1*CONTINUE
C7   3*CONTINUE
C6  6*CONTINUE
C6 0*CONTINUE
C55*CONTINUE
C5 1*CONTINUE
C4  8*CONTINUE
C4 6*CONTINUE
C45*CONTINUE
C*E*N*D**
C
	GO	TO	9	0	
	RE	AD	(	48,	9	0	)READ(48,48)
	WRITE	(4	8,9	0	)	READ(48,48)
	I	F(A.E	Q.B)	GO	TO	90
		D	O	9	0	I	=	48,48
C
C     NUMBERED STATEMENTS
100	CONTINUE
9 0	CONTINUE
8  1	CONTINUE
7   3	CONTINUE
6  6	CONTINUE
6 0	CONTINUE
55	CONTINUE
5 1	CONTINUE
4  8	CONTINUE
4 6	CONTINUE
45	CONTINUE
	E	N	D		

       IF( A.EQ. '48)GO TO 48')GO TO 90
       IF( A. EQ .11H48)GO TO 48)GO TO 90
      IF ( A. E Q.  1  1  H48)GO TO 48)GO TO 90
      IF(A.EQ. 1 1 H48)GO TO 48)GO TO 90
      IF(A.EQ.011H48)GO TO 48)GO TO 90
      IF(A.EQ. 0 1 1 H48)GO TO 48)GO TO 90
C
C     NUMBERED STATEMENTS
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      SUBROUTINE O                         N                           E00000000
C             THIS ROUTINE TEST REJECTION OF CARD IDENTIFICATION COLUMNS00000000
C2345678/012345678/012345678/012345678/012345678/012345678/012345678/012345678/0
C0000000011111111112222222222333333333344444444445555555555666666666677777777778
      G                                                                O00000000
     1T                                                                O00000000
     29                                                                000000000
       G                                                               O00000000
      1T                                                               O00000000
      29                                                               000000000
        G                                                              O00000000
       1T                                                              O00000000
       29                                                              000000000
         G                                                             O00000000
        1T                                                             O00000000
        29                                                             000000000
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      E                               N                                D00000000
	FUNCTION FOR-II
	ACCEPT 90,I 48,(I 48(I),I=1,48)
	ACCEPT TAPE 90,I 48,(I 48(I),I=1,48)
	ASSIGN 90 TO I 48
	DO 90 I=48,48,48
	FREQUENCY 90(48),90,90(48,48),90(48,48,48)
	GO TO 90
	GO TO I 48
	GO TO I 48,(90,90)
	GO TO(90,90),I 48
	IF(48)90,90,90
	IF ACCUMULATOR OVERFLOW 90,90
	IF DIVIDE CHECK 90,90
	IF QUOTIENT OVERFLOW 90,90
	PRINT 90,I 48,(I 48(I),I=1,48)
	PUNCH 90,I 48,(I 48(I),I=1,48)
	PUNCH TAPE 90,I 48,(I 48(I),I=1,48)
	READ 90,I 48,(I 48(I),I=1,48)
	READ INPUT TAPE 48,90,I 48,(I 48(I),I=1,48)
	TYPE 90,I 48,(I 48(I),I=1,48)
	WRITE OUTPUT TAPE 48,90,I 48,(I 48(I),I=1,48)
	READ DRUM 48,48,I 48,(I 48(I),I=1,48)
	READ TAPE 48,I 48,(I 48(I),I=1,48)
	WRITE DRUM 48,48,I 48,(I 48(I),I=1,48)
	WRITE TAPE 48,I 48,(I 48(I),I=1,48)
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
	END
	FUNCTION FOR-IV
	IF(I 48)GO TO 90
	READ(48,90)I 48,(I 48(I),I=1,48)
	READ(48,I 48)I 48,(I 48(I),I=1,48)
	READ(48,I 48,END=90,ERR=90)I 48,(I 48(I),I=1,48)
	READ(48,90,END=90,ERR=90)I 48,(I 48(I),I=1,48)
	WRITE(48,90)I 48,(I 48(I),I=1,48)
	WRITE(48,I 48)I 48,(I 48(I),I=1,48)
	WRITE(48)I 48,(I 48(I),I=1,48)
	READ(48)I 48,(I 48(I),I=1,48)
	READ 90,I 48,(I 48(I),I=1,48)
	READ 90
	READ(48#48,90)I 48,(I 48(I),I=1,48)
	READ(48#48)I 48,(I 48(I),I=1,48)
	WRITE 90,I 48,(I 48(I),I=1,48)
	WRITE 90
	WRITE(48#48,90)I 48,(I 48(I),I=1,48)
	WRITE(48#48,I 48)I 48,(I 48(I),I=1,48)
	READ(48#48,I 48)I 48,(I 48(I),I=1,48)
	REREAD 90,I 48,(I 48(I),I=1,48)
	FIND(48#48)
	ACCEPT 90,I 48,(I 48(I),I=1,48)
	ACCEPT 90
	PRINT 90,I 48,(I 48(I),I=1,48)
	PRINT 90
	PUNCH 90,I 48,(I 48(I),I=1,48)
	PUNCH 90
	TYPE 90,I 48,(I 48(I),I=1,48)
	TYPE 90
	OPEN(UNIT=48,ERR=90,DEVICE=48)
	CLOSE(UNIT=48,ERR=90,DEVICE=48)
	ENCODE(48,90,I 48)I 48,(I 48(I),I=1,48)
	DECODE(48,90,I 48)I 48,(I 48(I),I=1,48)
	ENCODE(48,90,I 48,ERR=90)I 48,(I 48(I),I=1,48)
	DECODE(48,90,I 48,ERR=90)I 48,(I 48(I),I=1,48)
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
	END
      FUNCTION STEPNUMBERING
C     THE ORIGINAL STEPS ARE 1-33, 34-67, 68-101, 102-135 ETC.
C     IF FIRST NUMBER IS 3 AND INCREMENT 5, THEN OUTPUT
C     NUMBERING WOULD BE 3 8 13 18 23 ... 53 58 63 68 73 ETC.
C     IF THE FIRST NUMBER IS 8, THEN THE OUTPUT
C     NUMBERING WOULD BE 8 13 18 23 ... 53 58 63 68 73 ETC.
CRENBRI5B3O34N50
C     FIRST STATEMENT SHOULD BE 3
10    GO TO 5
5     GO TO 250
15    GO TO 210
250   GO TO 350
20    GO TO 299
C     NEXT STATEMENT SHOULD BE 53
203   GO TO 52
C     NEXT STATEMENT SHOULD BE 103
210   CONTINUE
300   CONTINUE
350   CONTINUE
239   CONTINUE
215   CONTINUE
C     NEXT STATEMENT SHOULD BE 153
42    CONTINUE
299   CONTINUE
35    CONTINUE
52    CONTINUE
45    CONTINUE
      END
      SUBROUTINE MIDDLE
C     FIRST STATEMENT SHOULD BE 8
10    GO TO 5
5     GO TO 250
15    GO TO 210
250   GO TO 350
20    GO TO 299
C     NEXT STATEMENT SHOULD BE 53
203   GO TO 52
C     NEXT STATEMENT SHOULD BE 103
210   CONTINUE
300   CONTINUE
350   CONTINUE
239   CONTINUE
215   CONTINUE
C     NEXT STATEMENT SHOULD BE 153
C R E N B R / I : 5 B 8 O 34 N 50
42    CONTINUE
299   CONTINUE
35    CONTINUE
52    CONTINUE
45    CONTINUE
      END
      SUBROUTINE REVERSE
C     FIRST STATEMENT SHOULD BE 173
10    GO TO 5
5     GO TO 250
15    GO TO 203
250   GO TO 300
20    GO TO 350
C     ABOVE STATEMENT SHOULD BE 153 AND BELOW 103
203   GO TO 30
C     ABOVE STATEMENT SHOULD BE 103 AND BELOW 73
210   GO TO 45
300   CONTINUE
310   CONTINUE
350   CONTINUE
215   CONTINUE
C     ABOVE STATEMENT SHOULD BE 53 AND BELOW 23
35    CONTINUE
30    CONTINUE
50    CONTINUE
45    CONTINUE
C R E N B R / I : -5 B 8 O 34 N 50
      END
CFOLLOWING LINES TEST TAB CONVERSION IN LISTER OUTPUT
C2345678*0123456*8+01234*678+012*45678+0*2345678*0
C						*
C	*	*	*	*	*	*
CCC*	*CC*	*CC*	*CC*	*CC*	*CC*	*
CCCCC*	*CCCC*	*CCCC*	*CCCC*	*CCCC*	*CCCC*	*
C2345678*0123456*8+01234*678+012*45678+0*2345678*0
C R E N B R R / (COMENT/TABS AND NUMBERS IN COMMENTS)
C     STATEMENT NUMBER /90 SHOULD BE REPLACED BY 2
C     /90 48 / 90 48 /NOTHING 48 /   90 /
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
        E  N  D
CRENBR (TABZROTEST/TEST TABS AND ZEROES AT START OF LINE)
CFOLLOWING LINES HAVE ASTERISKS * WHEN TABS ARE USED
CAND THESE COMMENTS HAVE / IN PLACE OF DIGIT NINE
C*IF(TAB)GO TO /0
C**IF(TAB TAB)GO TO /0
C* *IF(TAB BLANK TAB)GO TO /0
CD*IF(D TAB)GO TO /0
CD**IF(D TAB TAB)GO TO /0
CD* *IF(D TAB BLANK TAB)GO TO /0
C      IF(6-BLANKS)GO TO /0
C            IF(12-BLANKS)GO TO /0
CD     IF(D 5-BLANKS)GO TO /0
CD           IF(D 11-BLANKS)GO TO /0
C100          IF(100 10-BLANKS)GO TO /0
C/0   0   CONTINUE
C81*0**IF(81 TAB 0 TAB TAB)GO TO /0
C 7 3 0     IF(BLANK 7 BLANK 3 BLANK 0 5-BLANKS)GO TO /0
C66          IF(66 10-BLANKS)GO TO /0
C60          0     IF(60 10-BLANKS 0 5-BLANKS)GO TO /0
C55**0IF(55 TAB TAB 0)GO TO /0
C51**0*IF(51 TAB TAB 0 TAB)GO TO /0
CD48**0     CONTINUE
CD46**0  *IF(D 46 TAB TAB 0 2-BLANKS TAB)GO TO /0
C45   0   IF(45 3-BLANKS 0 3-BLANKS)GO TO /0
C*END
	IF(TAB)GO TO 90
		IF(TAB TAB)GO TO 90
	 	IF(TAB BLANK TAB)GO TO 90
D	IF(D TAB)GO TO 90
D		IF(D TAB TAB)GO TO 90
D	 	IF(D TAB BLANK TAB)GO TO 90
      IF(6-BLANKS)GO TO 90
            IF(12-BLANKS)GO TO 90
D     IF(D 5-BLANKS)GO TO 90
D           IF(D 11-BLANKS)GO TO 90
100          IF(100 10-BLANKS)GO TO 90
90   0   CONTINUE
81	0		IF(81 TAB 0 TAB TAB)GO TO 90
 7 3 0     IF(BLANK 7 BLANK 3 BLANK 0 5-BLANKS)GO TO 90
66          IF(66 10-BLANKS)GO TO 90
60          0     IF(60 10-BLANKS 0 5-BLANKS)GO TO 90
55		0IF(55 TAB TAB 0)GO TO 90
51		0	IF(51 TAB TAB 0 TAB)GO TO 90
D48		0     CONTINUE
D46		0  	IF(D 46 TAB TAB 0 2-BLANKS TAB)GO TO 90
45   0   IF(45 3-BLANKS 0 3-BLANKS)GO TO 90
	END
CRENBR(CONTINUATION LINES/TEST CONTINUE AFTER COMMENT)
CFOLLOWING SPACINGS SHOULD BE OBTAINED IF REMOVE INITIAL C
C********5IF(TAB 5)GO TO 48
C****************5IF(TAB TAB 5)GO TO 48
C*****5IF(5-BLANKS 5)GO TO 48
C*****5*****IF(5-BLANKS 5 5-BLANKS)GO TO 48
C******IF(TAB TAB
C*****1**TAB TAB 1 TAB
C*****2**TAB 1 TAB ) GO TO 2
C*****0IF(5-BLANKS 0 5-BLANKS
C*****1*****5-BLANKS 1 5-BLANKS
C*****2**********5-BLANKS 1 10-BLANKS)GO TO 2
CD***1*IF(D 100 10-BLANKS
CD****1**********10-BLANKS 1 10-BLANKS)GO TO 2
C****2*CONTINUE
C****3*CONTINUE
C****4*IF(73 TAB TAB
C*****1**********TAB 1 TAB TAB)GO TO 2
C****5*CONTINUE
C****6*CONTINUE
C****7*CONTINUE
C****8*CONTINUE
C****/*CONTINUE
C***10*CONTINUE
C***11*CONTINUE
C******END
CCONTINUATION LINES AFTER COMMENTS SHOULD BE LEFT UNCHANGED
	5IF(TAB 5)GO TO 48
		5IF(TAB TAB 5)GO TO 48
     5IF(5-BLANKS 5)GO TO 48
     5     IF(5-BLANKS 5 5-BLANKS)GO TO 48
CTEST WRAPAROUND PREVENTION WHEN REMOVE INITIAL BLANKS
CFROM FIRST LINE OF STATEMENT
		IF(TAB TAB
		1	TAB TAB 1 TAB
	1	TAB 1 TAB ) GO TO 90
     0     IF(5-BLANKS 0 5-BLANKS
     1     5-BLANKS 1 5-BLANKS
     1          5-BLANKS 1 10-BLANKS)GO TO 90
D100          IF(D 100 10-BLANKS
          1          10-BLANKS 1 10-BLANKS)GO TO 90
90	CONTINUE
81	CONTINUE
73		IF(73 TAB TAB
	1		TAB 1 TAB TAB)GO TO 90
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
	END
      FUNCTION MULTPL;ACCEPT 90,I 48,(I 48(I),I=1,48);ACCEPT TAPE 90,I 4
     18,(I 48(I),I=1,48);ASSIGN 90 TO I 48;DO 90 I=48,48,48;FREQUENCY 90
     1(48),90,90(48,48),90(48,48,48);GO TO 90;GO TO I 48;GO TO I 48,(90,
     190);GO TO(90,90),I 48;IF(48)90,90,90;IF ACCUMULATOR OVERFLOW 90,90
     1;IF DIVIDE CHECK 90,90;IF QUOTIENT OVERFLOW 90,90;PRINT 90,I 48,(I
     1 48(I),I=1,48);PUNCH 90,I 48,(I 48(I),I=1,48);PUNCH TAPE 90,I 48,(
     1I 48(I),I=1,48);READ 90,I 48,(I 48(I),I=1,48);READ INPUT TAPE 48,9
     10,I 48,(I 48(I),I=1,48);TYPE 90,I 48,(I 48(I),I=1,48);WRITE OUTPUT
     1 TAPE 48,90,I 48,(I 48(I),I=1,48)
      READ DRUM 48,48,I 48,(I 48(I),I=1,48);READ TAPE 48,I 48,(I 48(I),I
     1=1,48);WRITE DRUM 48,48,I 48,(I 48(I),I=1,48);WRITE TAPE 48,I 48,(
     1I 48(I),I=1,48);IF(I 48)GO TO 90;READ(48,90)I 48,(I 48(I),I=1,48);
     1READ(48,I 48)I 48,(I 48(I),I=1,48);READ(48,I 48,END=90,ERR=90)I 48
     1,(I 48(I),I=1,48);READ(48,90,END=90,ERR=90)I 48,(I 48(I),I=1,48);W
     1RITE(48,90)I 48,(I 48(I),I=1,48);WRITE(48,I 48)I 48,(I 48(I),I=1,4
     18);WRITE(48)I 48,(I 48(I),I=1,48);READ(48)I 48,(I 48(I),I=1,48);RE
     1AD 90,I 48,(I 48(I),I=1,48);READ 90;READ(48#48,90)I 48,(I 48(I),I=
     11,48);READ(48#48)I 48,(I 48(I),I=1,48)
      WRITE 90,I 48,(I 48(I),I=1,48);WRITE 90;WRITE(48#48,90)I 48,(I 48(
     1I),I=1,48);WRITE(48#48,I 48)I 48,(I 48(I),I=1,48);READ(48#48,I 48)
     1I 48,(I 48(I),I=1,48);REREAD 90,I 48,(I 48(I),I=1,48);FIND(48#48);
     1ACCEPT 90,I 48,(I 48(I),I=1,48);ACCEPT 90;PRINT 90,I 48,(I 48(I),I
     1=1,48);PRINT 90;PUNCH 90,I 48,(I 48(I),I=1,48);PUNCH 90;TYPE 90,I 
     148,(I 48(I),I=1,48);TYPE 90;ENCODE(48,90,I 48)I 48,(I 48(I),I=1,48
     1);DECODE(48,90,I 48)I 48,(I 48(I),I=1,48)
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
      FUNCTION COMENT;ACCEPT 90,I 48,(I 48(I),!COMMENT ONE 012345678/012
     1I=1,48);ACCEPT TAPE 90,I 48,(I 48(I),I=1!COMMENT TWO 012345678/012
     1,48);ASSIGN 90 TO I 48;DO 90 I=48,48,48;!COMMENT THREE 2345678/012
     1FREQUENCY 90(48),90,90(48,48),90(48,48,4!COMMENT FOUR 12345678/012
     18);GO TO 90;GO TO I 48;GO TO I 48,(90,90!COMMENT FIVE 12345678/012
     1);GO TO(90,90),I 48;IF(48)90,90,90;IF AC!COMMENT SIX 012345678/012
     1CUMULATOR OVERFLOW 90,90;IF DIVIDE CHECK!COMMENT SEVEN 2345678/012
     1 90,90;IF QUOTIENT OVERFLOW 90,90;PRINT !COMMENT EIGHT 2345678/012
     190,I 48,(I 48(I),I=1,48)!COMMENT NINE 5678/012345678/012345678/012
      PUNCH 90,I 48,(I 48(I),I=1,48);PUNCH TAP!COMMENT ONE 012345678/012
     1E 90,I 48,(I 48(I),I=1,48);READ 90,I 48,!COMMENT TWO 012345678/012
     1(I 48(I),I=1,48);READ INPUT TAPE 48,90,I!COMMENT THREE 2345678/012
     1 48,(I 48(I),I=1,48);TYPE 90,I 48,(I 48(!COMMENT FOUR 12345678/012
     1I),I=1,48);WRITE OUTPUT TAPE 48,90,I 48,!COMMENT FIVE 12345678/012
     1(I 48(I),I=1,48);READ DRUM 48,48,I 48,(I!COMMENT SIX 012345678/012
     1 48(I),I=1,48);READ TAPE 48,I 48,(I 48(I!COMMENT SEVEN 2345678/012
     1),I=1,48);WRITE DRUM 48,48,I 48,(I 48(I)!COMMENT EIGHT 2345678/012
     1,I=1,48)!COMMENT NINE /012345678/012345678/012345678/012345678/012
      WRITE TAPE 48,I 48,(I 48(I),I=1,48);IF(I!COMMENT ONE 012345678/012
     1 48)GO TO 90;READ(48,90)I 48,(I 48(I),I=!COMMENT TWO 012345678/012
     11,48);READ(48,I 48)I 48,(I 48(I),I=1,48)!COMMENT THREE 2345678/012
     1;READ(48,I 48,END=90,ERR=90)I 48,(I 48(I!COMMENT FOUR 12345678/012
     1),I=1,48);READ(48,90,END=90,ERR=90)I 48,!COMMENT FIVE 12345678/012
     1(I 48(I),I=1,48);WRITE(48,90)I 48,(I 48(!COMMENT SIX 012345678/012
     1I),I=1,48);WRITE(48,I 48)I 48,(I 48(I),I!COMMENT SEVEN 2345678/012
     1=1,48);WRITE(48)I 48,(I 48(I),I=1,48);RE!COMMENT EIGHT 2345678/012
     1AD(48)I 48,(I 48(I),I=1,48)!COMMENT NINE 8/012345678/012345678/012
      READ 90,I 48,(I 48(I),I=1,48);READ 90;RE!COMMENT ONE 012345678/012
     1AD(48#48,90)I 48,(I 48(I),I=1,48);READ(4!COMMENT TWO 012345678/012
     18#48)I 48,(I 48(I),I=1,48);WRITE 90,I 48!COMMENT THREE 2345678/012
     1,(I 48(I),I=1,48); WRITE 90;WRITE(48#48,!COMMENT FOUR 12345678/012
     190)I48,(I 48(I),I=1,48);WRITE(48#48,I 48!COMMENT FIVE 12345678/012
     1)I 48,(I 48(I),I=1,48);READ(48#48,I 48)I!COMMENT SIX 012345678/012
     1 48,(I 48(I),I=1,48);REREAD 90,I 48,(I 4!COMMENT SEVEN 2345678/012
     18(I),I=1,48);FIND(48#48);ACCEPT 90,I 48,!COMMENT EIGHT 2345678/012
     1(I 48(I),I=1,48);ACCEPT 90!COMMENT NINE 78/012345678/012345678/012
      PRINT 90,I 48,(I 48(I),I=1,48);PRINT 90;!COMMENT ONE 012345678/012
     1PUNCH 90,I 48,(I 48(I),I=1,48);PUNCH 90;!COMMENT TWO 012345678/012
     1TYPE 90,I 48,(I 48(I),I=1,48);TYPE 90;EN!COMMENT THREE 2345678/012
     1CODE(48,90,I 48)I 48,(I 48(I),I=1,48);DE!COMMENT FOUR 12345678/012
     1CODE(48,90,I 48)I 48,(I 48(I),I=1,48)!COMMENT FIVE 8/012345678/012
  100 CONTINUE
   90 CONTINUE
   81 CONTINUE
   73 CONTINUE
   66 CONTINUE
   60 CONTINUE
   55 CONTINUE
   51 CONTINUE
   48 CONTINUE
   46 CONTINUE
   45 CONTINUE
      END
CRENBR(EXPAND/STATEMENTS WHICH EXPAND)B22I2200
      DO99A=1,2,3;DO99B=1,2,3;DO99C=1,2,3;DO99D=1,2,3;DO!COMMENT99999999
     199E=1,2,3;DO99F=1,2,3;DO99G=1,2,3;DO99H=1,2,3;DO99!MMENT9999999999
     1I=1,2,3;DO99J=1,2,3;DO99K=1,2,3;DO99L=1,2,3;DO99M=!COMMENT99999999
     11,2,3;DO99N=1,2,3;DO99O=1,2,3;DO99P=1,2,3;DO99Q=1,!COMMENT99999999
     12,3;DO99R=1,2,3;DO99S=1,2,3;DO99T=1,2,3;DO99U=1,2,!COMMENT99999999
     13;DO99V=1,2,3;DO99W=1,2,3;DO99X=1,2,3;DO99Y=1,2,3;!COMMENT99999999
     1DO99Z=1,2,3;DO99A=1,2,3;DO99B=1,2,3;DO99C=1,2,3;DO!COMMENT99999999
     199D=1,2,3;DO99E=1,2,3;DO99F=1,2,3;DO99G=1,2,3;DO99!MMENT9999999999
     1H=1,2,3;DO99I=1,2,3;DO99J=1,2,3;DO99K=1,2,3!         COMMENT999999
      DO99AA=1,2,3;DO99BB=1,2,3;DO99CC=1,2,3;DO99DD=1,2,!COMMENT99999999
     13;DO99EE=1,2,3;DO99FF=1,2,3;DO99GG=1,2,3;DO99HH=1,!COMMENT99999999
     12,3;DO99II=1,2,3;DO99JJ=1,2,3;DO99KK=1,2,3;DO99LL=!COMMENT99999999
     11,2,3;DO99MM=1,2,3;DO99NN=1,2,3;DO99OO=1,2,3;DO99P!COMMENT99999999
     1P=1,2,3;DO99QQ=1,2,3;DO99RR=1,2,3;DO99SS=1,2,3;DO9!COMMENT99999999
     19TT=1,2,3;DO99UU=1,2,3;DO99VV=1,2,3;DO99WW=1,2,3;D!  COMMENT999999
     1O99XX=1,2,3;DO99YY=1,2,3;DO99ZZ=1,2,3;DO99AA=1,2,3!COMMENT99999999
     1;DO99BB=1,2,3;DO99CC=1,2,3;DO99DD=1,2,3;DO99EE=1,2!COMMENT99999999
     1,3;DO99FF=1,2,3;DO99GG=1,2,3;DO99HH=1,2,3!           COMMENT999999
      IF(A)99,99,99;IF(B)99,99,99;IF(C)99,99,99;IF(D)99,!999999999999999
     199,99;IF(E)99,99,99;IF(F)99,99,99;IF(G)99,99,99;IF!999999999999999
     1(H)99,99,99;IF(I)99,99,99;IF(J)99,99,99;IF(K)99,99!999999999999999
     1,99;IF(L)99,99,99;IF(M)99,99,99;IF(N)99,99,99;IF(O!999999999999999
     1)99,99,99;IF(P)99,99,99;IF(Q)99,99,99;IF(R)99,99,9!999999999999999
     19;IF(S)99,99,99;IF(T)99,99,99;IF(U)99,99,99;IF(V)9!999999999999999
     19,99,99;IF(W)99,99,99;IF(X)99,99,99;IF(Y)99,99,99;!999999999999999
     1IF(Z)99,99,99;IF(A)99,99,99;IF(B)99,99,99;IF(C)99,!999999999999999
     199,99!       COMMENT9999999999999999999999999999999999999999999999
      IF(AA)99,99,99;IF(BB)99,99,99;IF(CC)99,99,99;IF(DD!999999999999999
     1)99,99,99;IF(EE)99,99,99;IF(FF)99,99,99;IF(GG)99,9!999999999999999
     19,99;IF(HH)99,99,99;IF(II)99,99,99;IF(JJ)99,99,99;!999999999999999
     1IF(KK)99,99,99;IF(LL)99,99,99;IF(MM)99,99,99;IF(NN!999999999999999
     1)99,99,99;IF(OO)99,99,99;IF(PP)99,99,99;IF(QQ)99,9!999999999999999
     19,99;IF(RR)99,99,99;IF(SS)99,99,99;IF(TT)99,99,99;!999999999999999
     1IF(UU)99,99,99;IF(VV)99,99,99;IF(WW)99,99,99;IF(XX!999999999999999
     1)99,99,99;IF(YY)99,99,99;IF(ZZ)99,99,99;IF(AA)99,9!999999999999999
     19,99;IF(BB)99,99,99!OMMENT9999999999999999999999999999999999999999
      GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;G!T99999999999999
     1OTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GO!T99999999999999
     1TO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOT!T99999999999999
     1O99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO!T99999999999999
     199;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO9!999999999999999
     19;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99!T99999999999999
     1;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;!T99999999999999
     1GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;G!T99999999999999
     1OTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99;GOTO99!MENT99999999999999
      GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GO!ENT999999999999
     1TO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO!ENT999999999999
     1 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 9!T99999999999999
     19;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;!ENT999999999999
     1GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GO!ENT999999999999
     1TO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO!ENT999999999999
     1 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 9!T99999999999999
     19;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;!ENT999999999999
     1GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99;GOTO 99!OMMENT999999999999
      DO9999A=1,2,3;DO9999B=1,2,3;DO9999C=1,2,3;DO9999D=1,2,3;DO!COMMENT
     19999E=1,2,3;DO9999F=1,2,3;DO9999G=1,2,3;DO9999H=1,2,3;DO9999!MMENT
     2I=1,2,3;DO9999J=1,2,3;DO9999K=1,2,3;DO9999L=1,2,3;DO9999M=!COMMENT
     31,2,3;DO9999N=1,2,3;DO9999O=1,2,3;DO9999P=1,2,3;DO9999Q=1,!COMMENT
     42,3;DO9999R=1,2,3;DO9999S=1,2,3;DO9999T=1,2,3;DO9999U=1,2,!COMMENT
     53;DO9999V=1,2,3;DO9999W=1,2,3;DO9999X=1,2,3;DO9999Y=1,2,3;!COMMENT
     6DO9999Z=1,2,3;DO9999A=1,2,3;DO9999B=1,2,3;DO9999C=1,2,3;DO!COMMENT
     79999D=1,2,3;DO9999E=1,2,3;DO9999F=1,2,3;DO9999G=1,2,3;DO9999!MMENT
     8H=1,2,3;DO9999I=1,2,3;DO9999J=1,2,3;DO9999K=1,2,3!         COMMENT
      DO9999AA=1,2,3;DO9999BB=1,2,3;DO9999CC=1,2,3;DO9999DD=1,2,!COMMENT
     13;DO9999EE=1,2,3;DO9999FF=1,2,3;DO9999GG=1,2,3;DO9999HH=1,!COMMENT
     22,3;DO9999II=1,2,3;DO9999JJ=1,2,3;DO9999KK=1,2,3;DO9999LL=!COMMENT
     31,2,3;DO9999MM=1,2,3;DO9999NN=1,2,3;DO9999OO=1,2,3;DO9999P!COMMENT
     4P=1,2,3;DO9999QQ=1,2,3;DO9999RR=1,2,3;DO9999SS=1,2,3;DO9999
     5 TT=1,2,3;DO9999UU=1,2,3;DO9999VV=1,2,3;DO9999WW=1,2,3;D!  COMMENT
     6O9999XX=1,2,3;DO9999YY=1,2,3;DO9999ZZ=1,2,3;DO9999AA=1,2,3!COMMENT
     7;DO9999BB=1,2,3;DO9999CC=1,2,3;DO9999DD=1,2,3;DO9999EE=1,2!COMMENT
     8,3;DO9999FF=1,2,3;DO9999GG=1,2,3;DO9999HH=1,2,3!           COMMENT
      IF(A)9999,9999,9999;IF(B)9999,9999,9999;IF(C)9999,9999,9999;IF(D)9
     1999,9999,9999;IF(E)9999,9999,9999;IF(F)9999,9999,9999;IF(G)9999,99
     299,9999;IF(H)9999,9999,9999;IF(I)9999,9999,9999;IF(J)9999,9999,999
     39;IF(K)9999,9999,9999;IF(L)9999,9999,9999;IF(M)9999,9999,9999;IF(N
     4)9999,9999,9999;IF(O)9999,9999,9999;IF(P)9999,9999,9999;IF(Q)9999,
     59999,9999;IF(R)9999,9999,9999;IF(S)9999,9999,9999;IF(T)9999,9999,9
     6999;IF(U)9999,9999,9999;IF(V)9999,9999,9999;IF(W)9999,9999,9999;IF
     7(X)9999,9999,9999;IF(Y)9999,9999,9999;IF(Z)9999,9999,9999;IF(A)999
     89,9999,9999;IF(B)9999,9999,9999;IF(C)9999,9999,9999!       COMMENT
      IF(AA)9999,9999,9999;IF(BB)9999,9999,9999;IF(CC)9999,9999,9999;IF(
     1DD)9999,9999,9999;IF(EE)9999,9999,9999;IF(FF)9999,9999,9999;IF(GG)
     29999,9999,9999;IF(HH)9999,9999,9999;IF(II)9999,9999,9999;IF(JJ)999
     39,9999,9999;IF(KK)9999,9999,9999;IF(LL)9999,9999,9999;IF(MM)9999,9
     4999,9999;IF(NN)9999,9999,9999;IF(OO)9999,9999,9999;IF(PP)9999,9999
     5,9999;IF(QQ)9999,9999,9999;IF(RR)9999,9999,9999;IF(SS)9999,9999,99
     699;IF(TT)9999,9999,9999;IF(UU)9999,9999,9999;IF(VV)9999,9999,9999;
     7IF(WW)9999,9999,9999;IF(XX)9999,9999,9999;IF(YY)9999,9999,9999;IF(
     8ZZ)9999,9999,9999;IF(AA)9999,9999,9999;IF(BB)9999,9999,9999!OMMENT
      GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;G!T
     1OTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GO!T
     2TO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOT!T
     3O9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO!T
     49999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO999
     59;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999!T
     6;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;!T
     7GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;G!T
     8OTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999;GOTO9999!MENT
      GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GO!ENT
     1TO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO!ENT
     2 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999
     3 ;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;!ENT
     4GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GO!ENT
     5TO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO!ENT
     6 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999
     7 ;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;!ENT
     8GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999;GOTO 9999!OMMENT
 9999 CONTINUE
   99 CONTINUE
      END