1 C -+-+-+-+-+
\ e H A E R D B . F T
\ e -+-+-+-+-+
3 C OPENS THE INPUT UNIT 7, READS THE RECORD HEADER BLOCK OF EACH RECORD
4 C AND SWITCHES ESAM TO UNIT 7 AND THE CORRECT OFFSET.
16 EXTERNAL BETW,TOASCI,NCOND
18 INTEGER I,DTASET,MIN,SEK
21 REV=REVSON @ SAVE HAE REVISON NUMBER
22 HSHDON=.FALSE. @ DESTROY HASH CODE TABLE USED BY ESAM
23 C COMPUTE THE DATA SET TO BE READ NEXT AND STORE INTO NUM7
25 IF (OPTION.EQ.11) I=-1 @ RD- DECREMENT
26 NUM7=MAX0(NUM7+I,1) @ INCR. OR DECR. AND MAKE VALID VALUE
27 IF BETW(2,OPTION,11) NUM7=OPTION-1 @ RD1 ... RD9
28 IF (OPTION.NE.0) GOTO 12 @ RD0...RD9, RD*
29 WRITE (TTO,4) NUM7 @ IF CALLED BY RD THEN ASK FOR
30 READ (TTI,5) I @ THE NEXT DATA SET TO READ
31 NUM7=NCOND(I,I,NUM7) @ INSERT THE DEFAULT VALUE NUM7
33 DTASET=NUM7 @ DTASET IS DECREMENTED FOR EACH RECORD READ
35 IF (REC7.EQ.-1) DEFINE FILE 7(MAXREC,85,U,REC7) @ OPEN UNIT 7
36 UNIT=7 @ ESAM INPUT IS NOW FROM 7
37 REC7=1 @ AND READ THE FIRST RECORD, THE HEADER
39 15 REC7=LASREC+1 @ READ THE NEXT DATA SET
40 IF (REC7.LE.BLKCNT) GOTO 10 @ TEST IF WE REACHED THE END OF INFORMATION
41 C END OF FILE REACHED, RETURN
42 DTASET=NUM7-DTASET @ COMPUTE NUMBER OF DATA SET'S IN THIS FILE
43 WRITE (TTO,1) REC7,BLKCNT,DTASET @ WRITE AN ERROR MSG
44 SAMCNT=0 @ NOTHING READ!
45 SETNUM=0 @ NO DATA IN BUFFER
48 C READ THE HEADER BLOCK
50 10 READ (7'REC7) (RCRD0(I),I=1,85)
51 COMP=.FALSE. @ NEW DATA SET, NO COMPUTATIONS SO FAR
52 IF (REDVAL.EQ.6HDLWPD2) GOTO 20 @ TEST FOR EMPTY RECORD
53 SAMCNT=0 @ RECORD WAS EMPTY, MAKE IT REALLY EMPTY
54 DTASET=NUM7-DTASET @ COMPUTE NUMBER OF DATA RECORDS CONTAINED IN THIS FILE
55 WRITE (TTO,2) NUM7,DTASET @ RECORD EMPTY
57 20 CONTINUE @ RECORD WAS INSERTED
58 IF (INT(REV).NE.INT(REVSON)) GOTO 30 @ REVISON NUMBER INCOMPABILITY
59 DTASET=DTASET-1 @ DECREMENT THE DATA SET SEARCH COUNTER
60 IF (DTASET.GT.0) GOTO 15 @ IF THIS DATA SET IS NOT THAT ONE WANTED THEN WE READ THE NEXT ONE
61 DTASET=NUM7-DTASET @ COMPUTE THE SEQ. NUMBER OF THIS RECORD
62 SEK=SAMCNT/SAMRAT @ COMPUTE THE TIME OF THIS SAMPLE
63 MIN=SEK/60 @ TWO CHARACTER MINUTES
64 SEK=TOASCI(MOD(SEK,60)) @ TWO CHARACTERS SECONDS
65 WRITE (TTO,3) DTASET,MIN,SEK,(LABEL(I),I=1,LABCNT) @ WRITE THE ID OF THE RECORD WANTED
66 SETNUM=DTASET @ SAVE THE NUMBER OF THIS DATA SET
67 OFFSET=REC7 @ NUMBER OF THE BLOCK WHERE DATA WILL START ( OFFSET IN ESAM)
68 LAST7=LASREC @ LAST BLOCK OF THE DATA SET --> LAST7
72 WRITE (TTO,6) REVSON,REV
75 1 FORMAT (' MIT BLOCK',I5,' ENDE DER DATEI 7',
76 * ' MIT',I5,' BLOECKEN UND ',I3,' DATENSAETZEN ERREICHT.')
77 2 FORMAT (I5,' NUR',I3,' DATENSAETZE IN FILE 7.')
78 3 FORMAT (' SATZ:',I3,I5,1H:,A2,3X,13A6)
79 4 FORMAT (' SATZNUMMER? (',I3,')? ',$)
81 6 FORMAT (' **** EINGABE DATEI 7 REV.:',F4.1,' - HAE REV.:',F4.1)