      PROGRAM TESCAPE
      LOGICAL ESCAPE
C       TO TEST THE ESCAPE RECOVERY
      IF(.NOT.ESCAPE(1)) THEN
        PRINT *,' ESCAPE initialised'
      ELSE
        PRINT *,' Escape detected'
        CALL SUB1
        STOP 10
      ENDIF
      PRINT *,' enter big loop - use <esc> to exit'
      A=2.0
   10 A=A-1.E-6
      IF(A.GT.0.) GO TO 10
      STOP 999
      END
      SUBROUTINE SUB1
      LOGICAL ESCAPE,L
      IF(ESCAPE(1)) THEN
        PRINT *,' ESCAPE(0) works'
        L=ESCAPE(-1)
        PRINT *,' ESCAPE(-1) called to reset'
        PRINT *,' now entering big loop - use <esc> to kill'
        A=2.0
   10   A=A-1.E-6
        IF(A.GT.0.) GO TO 10
      ELSE
        PRINT *,' ESCAPE reinitialized in Subroutine'
        PRINT *,' call ESCAPE(0)'
        L=ESCAPE(0)
      ENDIF
      RETURN
      END
