      PROGRAM KEYSAVE
C
C     THIS PROGRAM WILL REBUILD A DATA FILE FROM A TEMPORARY
C     FILE PRODUCED BY THE KEYPUNCH PROGRAM. IF KEYPUNCH
C     BOMBS, LOGICAL UNITS 1 AND 11 WILL STILL BE SET.
C     OPEN 11 AS OLD (WORK FILE) AND 1 AS NEW (OUTPUT FILE).
C     LOOP THRU THE WORK FILE AND REWRITE THE DATA FILE.
C
      CHARACTER*96 BUFFER
      CHARACTER*16 FILENAME
      CHARACTER*6  LUN
      DATA LUN/'FOR001'/
C
C     GET THE FILE NAME. PARSE OFF ANY VERSION NUMBER.
C
      ISTAT = SYS$TRNLOG(LUN,IFLEN,FILENAME,,,)
      JFLEN = INDEX(FILENAME,';') - 1
      IF(JFLEN.LE.0) JFLEN = IFLEN
C
      OPEN(UNIT=1,NAME=FILENAME(1:JFLEN),TYPE='NEW',
     1     CARRIAGECONTROL='LIST')
C
      OPEN(UNIT=11,TYPE='OLD',FORM='UNFORMATTED',
     1     ORGANIZATION='INDEXED',ACCESS='KEYED',
     2     RECORDSIZE=24,RECORDTYPE='FIXED',
     3     KEY=(83:88:CHARACTER))
C
C
      DO WHILE (.TRUE.)
         READ(11,END=50) BUFFER
         READ(BUFFER(81:82),100) ICOL
         WRITE(1,200) BUFFER(1:ICOL)
      END DO
C
C     CLOSE THE FILE. GET RID OF .SK1
C
   50 CLOSE(UNIT=11,DISPOSE='DELETE')
      CLOSE(UNIT=1)
      PRINT *,' DATA FILE ',FILENAME(1:JFLEN),' HAS BEEN RESTORED '
      CALL EXIT
  100 FORMAT(I2)
  200 FORMAT(A)
      END
