FTN4
      SUBROUTINE EOTRE(LU1,TAPE,HDR,TDCB,TDSZ,P5,IERR)
     +,92069-16198 REV.2013 790416
C 
C 
C*****************************************************************
C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS RESERVED.
C NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, REPRODUCED, OR
C TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT THE PRIOR
C WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. 
C****************************************************************** 
C 
C 
C     SOURCE:    92069-18198
C     RELOC:     92069-16198
C 
C 
C****************************************************************:
C 
C 
C*******************************************************************
C EOTRE HANDLES AN EOT AFTER THE EVENT OCCURS.
C IF AN ERROR OCCURS DURING EXECUTION OF EOTRE, IT RETURNS LEAVING
C THE IERR UNTOUCHED. 
C IF EOTRE HANDLES THE EOT PROPERLY, IT SETS IERR=0 AND RETURNS.
C 
C IF YOU'RE READING A TYPE 0 FILE POINTING TO A MAG TAPE DEVICE, EOTRE: 
C 1) CHECKS P5 AND IF P5=AB IT RETURNS LEAVING THE NEGATIVE IERR. 
C 2) IF P5 .NE. AB, EOTRE REQUESTS THAT A NEW TAPE BE MOUNTED.
C 3) AFTER THE USER MOUNTS THE TAPE AND RESPONDS YES, EOTRE CHECKS
C    THE HEADER AT THE BEGINNING OF THE NEW TAPE. 
C 4) IF THE HEADER IS INCORRECT, EOTRE RETURNS LEAVING NEGATIVE IERR. 
C 5) IF THE HEADER IS CORRECT, EOTRE SETS IERR=0 AND RETURNS. 
C 
C NOTE THAT HDR(21) HOLDS THE NEXT REEL NUMBER ABOUT TO BE MOUNTED, 
C NOT THE REEL NUMBER THAT JUST FINISHED. 
C 
C***********************************************************************
C FORMAL PARAMETER DECLARATIONS.
C 
      INTEGER LU1,TAPE(1),HDR(1),TDCB(1),TDSZ,P5,IERR 
C****************************************************************** 
C LOCAL VARIABLES.
C 
      INTEGER TEMP(24)
      INTEGER RESPON
      DOUBLE PRECISION MESS1(3),MESS2(8)
C***********************************************************
C MESSAGES. 
C 
      DATA MESS1/6HEND OF,6H REEL ,6H000000/
      DATA MESS2/6HMOUNT ,6HTAPE  ,6H000000,6H000000, 
     +6H ON LO,6HGICAL ,6HDEVICE,6H000000/
C**************************************************************** 
C ABORT IF THE STORAGE DEVICE IS A TYPE 3 FILE. 
C 
      IF (TAPE(4) .NE. 1) CALL DBER2(LU1,7777,6HXXXXXX,6HEOTRE ,2HAB) 
C*****************************************************************
C SET UP THE MESSAGES WITH THE PROPER VALUES. 
C 
      CALL CNUMD(TAPE,MESS2(8)) 
      CALL CNUMD(HDR(21)-1,MESS1(3))
      CALL CNUMD(HDR(21),MESS2(4))
      MESS2(3)=ROOT 
C****************************************************************** 
C REQUEST NEW TAPE BE MOUNTED.
C 
4000  CALL REIO(2,LU1,2H _,1) 
      CALL REIO(2,LU1,MESS1,9)
C**************************************************************** 
4015  CALL REIO(2,LU1,2H _,1) 
      CALL REIO(2,LU1,MESS2,24) 
      CALL READY(LU1,RESPON,IERR) 
      IF (IERR .LT. 0) GO TO 8000 
C***************************************************************
C MAKE SURE TAPE IS READY AND ON-LINE.
C 
      CALL TLOCL(LU1,TAPE,IERR) 
      IF (IERR .EQ. 0) GO TO 4100 
      GO TO 4015
C***************************************************************
C READ THE NEW REELHEADER.
C 
4100  CONTINUE
      CALL EREAD(TDCB,IERR,TEMP,24,LEN) 
      CALL DBER2(LU1,IERR,TAPE,6HEOTRE ,2HXX) 
      IF (IERR .LT. 0) RETURN 
C*************************************************************
C CHECK THE NEW REELHEADER. 
C 
      CALL CKTHD(LU1,HDR,TEMP,IERR) 
      IF (IERR .LT. 0) GO TO 4015 
      RETURN
C***************************************************************
C USER RESPONSE SAYS TO ABORT.
C 
8000  CALL REIO(2,LU1,25H ABORTING AT END OF TAPE.,-25) 
      IERR=-236 
      CALL DBER2(LU1,IERR,6HXXXXXX,6HEOTRE ,2HXX) 
      RETURN
      END 
                                                                      