1 C -+-+-+-+-+
\ e H A E S A M . F T
\ e -+-+-+-+-+
3 C FETCH THE INDEX'ED DATA-WORD FROM "CHANEL" OUT OF THE SAMPLE ON "UNIT"
4 C THE FIRST ELEMENT OF THE SAMPLE BUFFER IS REFERENCED WITH INDEX=0
7 C * UP 18-OCT-83 TWO INPUT BUFFERS
9 REAL FUNCTION ESAM(INDEX)
20 INTEGER RECNUM,WORD,R,J
21 * , BUFCNT @ HOLDS NUMBER OF INPUT BUFFERS FOR UNIT 7
24 IF (.NOT.HSHDON) CALL MKHASH
27 WORD=INT(INDEX/PCKMAX)*HSHSIG+HASH(CHANEL+1,R)
28 RECNUM=(WORD-1)/255+OFFSET @ GET THE RECORD NUMBER
30 IF (RECNUM.EQ.INPREC(J)) GOTO 10 @ JUMP IF RECORD ALREADY IN BUFFER
32 IF (RECNUM.GT.LASREC) GOTO 20 @ END OF FILE REACHED
35 J=BUFCNT-RECACT+1 @ COMPUTE NEXT INPUT BUFFER
37 111 IF (WFLAG(J).AND.INPREC(J).GE.1) WRITE (UNIT'INPREC(J)) BUFFER
38 READ (UNIT'RECNUM) BUFFER
40 112 IF (WFLAG(J).AND.INPREC(J).GE.1) WRITE (UNIT'INPREC(J)) BUFER2
41 READ (UNIT'RECNUM) BUFER2
47 IF (WORD.EQ.0) WORD=255
48 RECACT=J @ BUFFER SWICTH
50 121 ESAM=WGET(BUFFER,WORD) @ EXTRACT THE WORD WANTED AND CONVERT TO REAL
52 122 ESAM=WGET(BUFER2,WORD)
54 20 CONTINUE @ END OF FILE ERROR MESSAGE
55 WRITE (TTO,1) UNIT,INDEX,RECNUM,LASREC
56 ESAM=4711 @ MOTHERFUCKER --- GO HOME
58 1 FORMAT (' EINHEIT',I2,' INDEX',I7,' SATZ',I7,
59 * ' SATZENDE',I7,' UEBERLESEN.')