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