FUNCTION IRDBLK( LIST ,WORD ,DEBUG ) C+ C FUNCTION IRDBLK WILL RETURN THE BLOCK NUMBER TO READ GIVEN THE C LETTER INDEX READ FROM THE DISK FILE. C C ONLY 102 LISTINGS ARE POSSIBLE (102*(5 LETTERS)) <512 C C LOCAL VARIABLES C BFRAG - THE FIRST 5 BYTES OF LIST ELEMENTS C CFRAG - THE CHARACTER EQUIVALENT OF BYTE ARRAYC C C SUBROUTINES REFERENCED C CLEAR - STORE NULLS IN THE ARRAY C C- BYTE LIST(5,102) CHARACTER*25 WORD CHARACTER*5 CFRAG BYTE BFRAG(5) LOGICAL*1 DEBUG EQUIVALENCE (CFRAG,BFRAG(1)) C DO 30,I=2,102 !CHECK ALL THE POSITIONS IF(LIST(1,I).EQ.'0'O)GO TO 40 !NULL ENDS LIST CALL CLEAR(BFRAG,5) !CLEAR CHECK WORD DO 10,J=1,5 !FILL THE CHECK WORD IF(LIST(J,I).EQ.'0'O)GO TO 20 !NULLS AT END OF SHORT 10 BFRAG(J)=LIST(J,I) ! 20 CONTINUE ! IF(DEBUG)WRITE(3,1000)CFRAG IF(LLT(WORD(1:5),CFRAG))THEN !HAVE GONE TOO FAR? IRDBLK=I-1 !YES, USE LAST GO TO 50 !THAT IS WHAT WE WANT END IF 30 CONTINUE 40 IRDBLK=I-1 !GONE TOO FAR, LAST ONE 50 IF(DEBUG)WRITE(3,1010)IRDBLK RETURN 1000 FORMAT(' CFRAG=',A5) 1010 FORMAT(' IRDBLK=',I4) END