      subroutine UNPPRO(RECNUM)
      include 'SIZE.INC'
      include 'GLOBAL.INC'
      include 'LOCAL.INC'
      include 'UNITS.INC'
      real IO(2*NTRAN), BUFFER(VARREC)
      integer IOI(4*NTRAN),RECNUM,OFFSET,IBUFF(VARIEC)
      integer RRECS,IRECS,CRECS,TRECS,NREALS,NINTS,NCHARS
      integer RECDAT(FILDAT),HRECS,I,M,L,ISET,J,NUSED
      character*1 CBUFF(VARCEC), IOC(62)
      do 100 I = 1, VARCEC
         CBUFF(I) = ' '
100   continue
      do 110 I = 1, VARIEC
         IBUFF(I) = 0
110   continue
      do 120 I = 1, VARREC
         BUFFER(I) = 0.0
120   continue
      HRECS = FILDAT/VARIEC
      if (FILDAT-VARIEC*HRECS.ne.0) HRECS = HRECS+1
      M = 0
      do 140 I = 1, HRECS
         read (RANUNT(MACHNO),rec=I) IBUFF
         do 130 L = 1, VARIEC
            M = M+1
            if (M.gt.FILDAT) go to 150
            RECDAT(M) = IBUFF(L)
130      continue
140   continue
150   continue
      RRECS = RECDAT(39)
      IRECS = RECDAT(40)
      CRECS = RECDAT(57)
      TRECS = RRECS+IRECS+CRECS
      NREALS = RECDAT(43)
      NINTS = RECDAT(44)
      NCHARS = RECDAT(53)
      ISET = RECDAT(47)-1
      OFFSET = (RECNUM-1)*TRECS+ISET
      M = 0
      do 180 I = 1, RRECS
         J = OFFSET+I
         read (RANUNT(MACHNO),rec=J) BUFFER
         do 160 L = 1, VARREC
            M = M+1
            if (M.gt.NREALS) go to 170
            IO(M) = BUFFER(L)
160      continue
170      continue
180   continue
      OFFSET = OFFSET+RRECS
      M = 0
      do 210 I = 1, IRECS
         J = OFFSET+I
         read (RANUNT(MACHNO),rec=J) IBUFF
         do 190 L = 1, VARIEC
            M = M+1
            if (M.gt.NINTS) go to 200
            IOI(M) = IBUFF(L)
190      continue
200      continue
210   continue
      OFFSET = OFFSET+IRECS
      M = 0
      do 240 I = 1, CRECS
         J = OFFSET+I
         read (RANUNT(MACHNO),rec=J) CBUFF
         do 220 L = 1, VARCEC
            M = M+1
            if (M.gt.NCHARS) go to 230
            IOC(M) = CBUFF(L)
220      continue
230      continue
240   continue
      NUSED = 0
      do 250 I = 1, NTRAN
         YIELDG(I) = IO(NUSED+1)
         EAYLDG(I) = IO(NUSED+2)
         NUSED = NUSED+2
250   continue
      NUSED = 0
      do 260 I = 1, NTRAN
         CHPARG(I) = IOI(NUSED+1)
         TPRODG(I) = IOI(NUSED+2)
         NPROCG(I) = IOI(NUSED+3)
         RFORMG(I) = IOI(NUSED+4)
         NUSED = NUSED+4
260   continue
      do 270 I = 1, 50
         PRODNM(I) = IOC(I)
270   continue
      NUSED = 50
      do 280 I = 1, 6
         RPASS(4)(I:I) = IOC(NUSED+1)
         WPASS(4)(I:I) = IOC(NUSED+2)
         NUSED = NUSED+2
280   continue
      return
      end
