PROGRAM LPOUT C C WRITTEN BY C C G. PRECKSHOT C C. YAHN C UNIVERSITY OF ARIZONA C OCT 30, 1980 C LOGICAL*1 MODE,NAME(16),LINE(132),FLAG,PFLAG,ANSWER LOGICAL*1 HEAD(132),DAY(10),CLOCK(10),NFLAG LOGICAL*1 Y,II,SP INTEGER*2 I,UNIT REAL*4 PSTR,PCHK,BLANK EQUIVALENCE (LINE(1),PCHK) DATA Y,II,SP,BLANK/'Y','I',' ',' '/ WRITE(7,1) 1 FORMAT(' WELCOME TO LPOUT') WRITE(7,2) 2 FORMAT(//'$DIRECT OR INDIRECT (D-I)--') READ(5,3) MODE 3 FORMAT(A1) CALL ASSIGN(6,'LP:') FLAG=.FALSE. IF (MODE .EQ. II) FLAG=.TRUE. IF (.NOT. FLAG) GOTO 150 C INDIRECT INITIALIZATION UNIT=4 WRITE (7,4) 4 FORMAT('$NAME OF INDIRECT FILE--') READ (5,5) NAME 5 FORMAT(16A1) CALL ASSIGN (4,NAME) GOTO 151 C C DIRECT INITIALIZATION C 150 UNIT=5 151 WRITE (7,7) 7 FORMAT('$NAME OF FILE----------------------') 8 FORMAT('+',16A1) READ (UNIT,6,END=1000) NAME IF (NAME(1) .EQ. SP)STOP 6 FORMAT(16A1) IF (FLAG) WRITE(7,8) NAME CALL ASSIGN (3,NAME) WRITE (7,9) 9 FORMAT('$PAGE ON---------------------------') READ (UNIT,10) PSTR 10 FORMAT (A4) IF (FLAG) WRITE (7,11) PSTR 11 FORMAT('+',A4) PFLAG=.FALSE. IF (PSTR .EQ. BLANK) PFLAG=.TRUE. WRITE(7,100) 100 FORMAT('$DO YOU WANT ONLY PART OF A FILE---') READ(UNIT,12)ANSWER 12 FORMAT(A1) IF(FLAG)WRITE(7,13)ANSWER 13 FORMAT('+',A1) NSTART=1 NEND=999 IF(ANSWER .NE. Y)GO TO 15 WRITE(7,120) 120 FORMAT('$STARTING PAGE---------------------') READ(UNIT,130)NSTART IF(NSTART.EQ.0)NSTART=1 IF(FLAG)WRITE(7,131)NSTART 131 FORMAT('+',I3) 130 FORMAT(I3) WRITE(7,140) 140 FORMAT('$ENDING PAGE-----------------------') READ(UNIT,130)NEND IF(NEND.EQ.0)NEND=999 IF(FLAG)WRITE(7,131)NEND 15 WRITE(7,160) 160 FORMAT(' TYPE IN ONE LINE OF HEADING') READ(UNIT,170)HEAD IF(FLAG)WRITE(7,173)(HEAD(J),J=1,72) 173 FORMAT(' ',8X,72A1) WRITE(7,172) 172 FORMAT(///) 170 FORMAT(132A1) CALL TIME(CLOCK) CALL DATE(DAY) NFLAG=.FALSE. NPAGE=1 200 IF(NPAGE.GE.NSTART)NFLAG=.TRUE. IF(NPAGE.GT.NEND)GO TO 210 LINENO=8 IF(NFLAG)WRITE(6,180)NPAGE,NAME,DAY,(CLOCK(J),J=1,8), 1 (HEAD(J),J=1,125) 180 FORMAT(1H1,/,' ','PAGE ',I3,5X,'FILE: ',16A1,5X, 1 'DATE: ',10A1,5X,'TIME: ',8A1,//,9X,125A1,//) NPAGE=NPAGE+1 220 READ(3,170,END=210)LINE IF((PCHK.EQ.PSTR) .AND. .NOT. PFLAG)GO TO 200 CALL STRIP(LINE,J) IF (J .GT. 125) J=125 IF(NFLAG) WRITE(6,171)(LINE(JJ),JJ=1,J) 171 FORMAT(' ',125A1) LINENO=LINENO+1 IF(LINENO.GT.61)GO TO 200 GO TO 220 210 CLOSE(UNIT=3) GO TO 151 1000 STOP END