PROGRAM POET C C PROGRAM TO CREATE FREE FORM VERSE IN A POETIC MANNER. C INTEGER VERSIZ(3),NOUSIZ(4),ADJSIZ(4),ADVSIZ(1),PRESIZ(1) INTEGER SIZE(5),VERFIL,NOUFIL,ADJFIL,ADVFIL,PREFIL BYTE VERB(3,10),NOUN(4,10),ADJ(4,10),ADV(10),PREP(10) DATA SIZE/20,20,20,20,10/ DATA VERFIL/1/NOUFIL/2/ADJFIL/3/ADVFIL/4/PREFIL/5/ DATA NUMVER/3/NUMNOU/4/NUMADJ/4/NUMADV/1/NUMPRE/1/ TYPE *,'ENTER POET SEQUENCE NUMBERS(2)' ACCEPT *,J,K TYPE *,'ENTER NUMBER OF STANZAS' ACCEPT *,LIMIT OPEN(UNIT=2,FILE='POET.OUT',STATUS='NEW') WRITE(2,203) DO 300,LL=1,LIMIT OPEN(UNIT=1,NAME='VERBS.POE',TYPE='OLD' 1,CARRIAGECONTROL='LIST',READONLY) DO 20,I=1,NUMVER LINNUM=SIZE(VERFIL)*RAN(J,K)+1 DO 10,L=1,LINNUM 10 READ(1,100)VERSIZ(I),(VERB(I,II),II=1,VERSIZ(I)) 20 REWIND 1 CLOSE(UNIT=1) OPEN(UNIT=1,NAME='NOUNS.POE',TYPE='OLD' 1,CARRIAGECONTROL='LIST',READONLY) DO 40,I=1,NUMNOU LINNUM=SIZE(NOUFIL)*RAN(J,K)+1 DO 30,L=1,LINNUM 30 READ(1,100)NOUSIZ(I),(NOUN(I,II),II=1,NOUSIZ(I)) 40 REWIND 1 CLOSE(UNIT=1) OPEN(UNIT=1,NAME='ADJECTIVS.POE',TYPE='OLD' 1,CARRIAGECONTROL='LIST',READONLY) DO 60,I=1,NUMADJ LINNUM=SIZE(ADJFIL)*RAN(J,K)+1 DO 50,L=1,LINNUM 50 READ(1,100)ADJSIZ(I),(ADJ(I,II),II=1,ADJSIZ(I)) 60 REWIND 1 CLOSE(UNIT=1) OPEN(UNIT=1,NAME='ADVERBS.POE',TYPE='OLD' 1,CARRIAGECONTROL='LIST',READONLY) DO 80,I=1,NUMADV LINNUM=SIZE(ADVFIL)*RAN(J,K)+1 DO 70,L=1,LINNUM 70 READ(1,100)ADVSIZ(I),(ADV(II),II=1,ADVSIZ(I)) 80 REWIND 1 CLOSE(UNIT=1) OPEN(UNIT=1,NAME='PRPOSTINS.POE',TYPE='OLD' 1,CARRIAGECONTROL='LIST',READONLY) DO 99,I=1,NUMPRE LINNUM=SIZE(PREFIL)*RAN(J,K)+1 DO 90,L=1,LINNUM 90 READ(1,100)PRESIZ(I),(PREP(II),II=1,PRESIZ(I)) 99 REWIND 1 CLOSE(UNIT=1) WRITE(2,200),(ADJ(1,I),I=1,ADJSIZ(1)) 1,(ADJ(2,I),I=1,ADJSIZ(2)) 2,(NOUN(1,I),I=1,NOUSIZ(1)) 3,(VERB(1,I),I=1,VERSIZ(1)) 4,(PREP(I),I=1,PRESIZ(1)) 5,(ADJ(3,I),I=1,ADJSIZ(3)) 6,(NOUN(2,I),I=1,NOUSIZ(2)) WRITE(2,201),(NOUN(3,I),I=1,NOUSIZ(3)) 1,(VERB(2,I),I=1,VERSIZ(2)) 2,(ADV(I),I=1,ADVSIZ(1)) WRITE(2,202),(ADJ(4,I),I=1,ADJSIZ(4)) 1,(NOUN(4,I),I=1,NOUSIZ(4)) 2,(VERB(3,I),I=1,VERSIZ(3)) 300 CONTINUE WRITE(5,*)' POET.OUT READY FOR PRINTING (DEL)' CALL EXIT 100 FORMAT(Q,20A1) 200 FORMAT(1X,A1,1X,A1,1X 1,A1,1X,A1,1X,A1 2,1X,A1,1X,A1,'.') 201 FORMAT(1X,A1,1X,A1,1X 1,A1,'.') 202 FORMAT(1X,A1,1X,A1,1X 1,A1,'.',//) 203 FORMAT(1H1) END