      subroutine READSP
      include 'SIZE.INC'
      include 'MODNAM.INC'
      include 'UNITS.INC'
      integer HRECS,IBUFF(VARIEC),RECDAT(FILDAT),M,I,L,IN,NMODS
      character BUFFER(VARCEC)*1, TEMP*4
      HRECS = FILDAT/VARIEC
      if (FILDAT-VARIEC*HRECS.ne.0) HRECS = HRECS+1
      M = 0
      do 110 I = 1, HRECS
         read (RANUNT(MACHNO),rec=I) IBUFF
         do 100 L = 1, VARIEC
            M = M+1
            if (M.gt.FILDAT) go to 120
            RECDAT(M) = IBUFF(L)
100      continue
110   continue
120   continue
      IN = RECDAT(5)-1
      call UNPREC (IN,MODLEN,NOMOD,PARCNT)
      call UNPREC (IN,MODMIN,NOMOD,PARCNT)
      call UNPREC (IN,TS,NOMOD,PARCNT)
      call UNPREC (IN,TD,NOMOD,PARCNT)
      call UNPREC (IN,TCL1,NOMOD,PARCNT)
      call UNPREC (IN,TCL2,NOMOD,PARCNT)
      call UNPREC (IN,TCL3,NOMOD,PARCNT)
      call UNPREC (IN,COMVAR,NOCOM,COMCNT)
      IN = IN+1
      read (RANUNT(MACHNO),rec=IN) BUFFER
      do 130 I = 1, 4
         TEMP(I:I) = BUFFER(I)
130   continue
      read (TEMP,5000) NMODS
5000  format (I4)
      L = 4
      M = 0
      do 140 I = 1, NMODS
         L = L+1
         if (L.gt.VARCEC) then
            IN = IN+1
            read (RANUNT(MACHNO),rec=IN) BUFFER
            L = 1
         endif
         M = M+1
         MODS(M) = BUFFER(L)
140   continue
      return
      end
