File: 80643.FT of Tape: Various/Decus/decus-3
(Source file text) 

wwRR
        DIMENSION ICELL(32,32),ISAVE(32,32),IROW(32)
        WRITE(1,2)
2       FORMAT('INPUT DEAD/LIVE DESIGNATION CHARS')
        READ(1,5) IDEAD,ILIVE
5       FORMAT(2A1)
99      DO 1 J=1,32
        DO 1 I=1,32
        ISAVE(I,J)=0
1       ICELL(I,J)=0
6       IPOP=0
        IGEN=0
        NGEN=0
        INERT=0
7       WRITE(1,10)
10      FORMAT('ENTER COORDINATES OF LIVE CELLS')
20      READ(1,30)I,J
30      FORMAT(2I2)
        IF(I) 50,40,40
40      IF(I-1) 44,44,41
41      IF(I-32)42,44,44
42      IF(J-1) 44,44,43
43      IF(J-32)49,44,44
44      WRITE(1,45)I,J
45      FORMAT(2I2,' OUT OF BOUNDS')
        GO TO 20
49      ICELL(I,J)=1
        IPOP=IPOP+1
        GO TO 20
50      WRITE(1,60) IGEN,IPOP
60      FORMAT(//'GENERATION 'I4,5X,'POPULATION &I4)
        DO 100 I=1,32
        NONE=0
        DO 90 J=1,32
        IF(ICELL(I,J)) 80,70,80
70      IROW(J)=IDEAD
        GO TO 90
80      IROW(J)=ILIVE
        NONE=1
90      CONTINUE
        IF(NONE) 107,108,107
107     WRITE(1,110) (IROW(J),J=1,32)
        GO TO 100
108     WRITE(1,109)
109     FORMAT(1X)
100     CONTINUE
        IF(INERT) 51,105,51
105     NGEN=IGEN+1
110     FORMAT(32A1)
S       CLA CLL
S       7604
S       AND (1
S       DCA \IND
        IF(IND) 51,59,51
51      WRITE(1,52)
52      FORMAT('NEXT GENERATION TO OUTPUT?')
        READ(1,53) NGEN
53      FORMAT(I4)
59      IF(NGEN-IGEN) 99,7,115
115     IPOP=0
        DO 120 J=2,31
        DO 120 I=2,31
        ISAVE(I,J)=ICELL(I,J)
120     ICELL(I,J)=0
        IER601=1
        INERT=1
        DO 330 J=2,31
        DO 330 I=2,31
        NBR=0
        IF(ISAVE(I-1,J-1)) 140,140,130
130     NBR=NBR+1
140     IF(ISAVE(I-1,J)) 160,160,150
150     NBR=NBR+1
160     IF(ISAVE(I-1,J+1)) 180,180,170
170     NBR=NBR+1
180     IF(ISAVE(I,J-1)) 200,200,190
190     NBR=NBR+1
200     IF(ISAVE(I,J+1)) 220,220,210
210     NBR=NBR+1
220     IF(ISAVE(I+1,J-1)) 240,240,230
230     NBR=NBR+1
240     IF(ISAVE(I+1,J)) 260,260,250
250     NBR=NBR+1
260     IF(ISAVE(I+1,J+1)) 280,280,270
270     NBR=NBR+1
280     IF(2-NBR) 300,300,290
290     ICELL(I,J)=0
        IF(ISAVE(I,J)) 295,330,295
295     INERT=0
        GO TO 330
300     IF(3-NBR) 310,320,310
310     IF(ISAVE(I,J)) 315,290,315
315     IF(5-NBR) 290,290,320
320     ICELL(I,J)=1
        IF(ISAVE(I,J)) 325,324,325
324     INERT=0
325     IPOP=IPOP+1
        IF(I-2) 321,328,321
321     IF(I-31) 322,328,322
322     IF(J-2) 323,328,323
323     IF(J-31) 330,328,330
328     IER601=0
330     CONTINUE
        IGEN=IGEN+1
        IF(INERT) 390,334,390
334     IF(IPOP) 335,340,335
335     IF(IER601) 380,360,380
340     WRITE(1,350) IGEN
350     FORMAT('THE UNIVERSE HAS DIED AFTER'I4,' GENERATIONS')
        GO TO 99
360     WRITE(1,370) IGEN
370     FORMAT('*** WARNING--BOUNDARY MAY BE EXCEEDED - GENERATION 'I4)
S       CLA CLL
S       7604
S       AND (1
S       DCA \IND
        IF(IND) 375,380,375
375     NGEN=IGEN
380     IF(NGEN-IGEN) 115,50,115
390     WRITE(1,400) IGEN
400     FORMAT('THE UNIVERSE HAS STABILIZED-GENERATION'I4)
        GO TO 50
        CALL EXIT
        STOP
        END