next up previous contents index
Next: Conditions for use: Up: Reading Previous: Reading

Remarks:

  1. For reading the old EP format status word 27 must be set to zero by a

                 CALL EPSETW(LUN,27,0,IERR)
    
    and the previous call in the old ``EVENT'' package

                 CALL EVENT(IARRAY,ISTAT)
    
    has to be replaced by a call to EPREAD with j=2. In this case, as for EVENT, the complete record (including the header) will be transferred. Please note that the data now start in IREC(1), instead of IARRAY(2) as before and the data are unpacked as 16-bit bytes/word only.

    Old format ``special records'' are not specifically decoded by EPREAD but return IERR=7. The user is left to do the unpacking himself, e.g.:

        CALL EPREAD(LUN,2,NW,irec,IBUF, ierr)
        :
        :
        IF (IERR.NE.7) GO TO 10
        NW=IWD16(IBUF,1)
        CALL BLO16W(IBUF,1,IREC,1,NW)
       10 CONTINUE
    
  2. To read consecutive files of multifile tapes the user has only to make further calls to EPREAD after each end of file (signified by IERR=1). In the case of labelled tapes the labels will be treated as data and EPREAD will return a length error on reading (IERR=5). The user program should choose to continue reading in this case. A combination of these techniques with MODE=30 can provide the same facilities as EVENTIN in the old package. To prevent tapes running off the end of reel users should stop reading at end of information (IERR=3), signified by 2 consecutive EOF's, or by using the file or record count.

CALL EPFHDR (LUNIT,MLUSER,IHEAD*,*IBUF*,IERR*)

Fast logical record header reading routine.

Input parameters:
LUNIT
user unit number
MLUSER
no. of header words transferred to user
Input/Output buffer:
IBUF
user buffer
Output parameters:
IHEAD
MLUSER words of logical record header (regardless of actual length or of status word 26)
IERR
error number

Janne Saarela
Tue May 16 09:44:28 METDST 1995