FTN 
      LOGICAL FUNCTION LUREQ(NODE,ICNTL,LU,IERR)
     &      ,92069-16061 REV.1912 790205
      INTEGER NODE,ICNTL,LU(145),IERR 
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 WITH OUT THE PRIOR 
C WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. 
C****************************************************************** 
C 
C 
C     SOURCE:    92069-18114
C     RELOC:     92069-16060
C 
C 
C****************************************************************:
C 
C 
C 
C 
C 
C ABSTRACT: 
C 
C LUREQ LOCKS AN LU WHEN THE LU IS A LOCAL DEVICE.
C LUREQ IS TRUE WHEN THE UNIT IS A NON-INTERACTIVE DEVICE OR IS A 
C LOCAL FILE. 
C 
C CALLING SEQUENCE: 
C 
C     CALL LUREQ(NODE,ICNTL,LU,IERR)
C 
C       WHERE:
C 
C           NODE
C           IS THE DISTRIBUTED NODE NUMBER. WHEN THE NODE IS THE
C           LOCAL NODE, THEN NODE SHOULD EQUAL -1.
C 
C           ICNTL 
C           IS THE CONTROL WORD 
C              0 INDICATES TO UNLOCK THE LU 
C              1 INDICATES TO LOCK IT 
C 
C           LU
C           IS THE LU/DCB STRUCTURE.
C 
C              WHEN THE FIRST WORD OF LU IS GREATER THAN 0, 
C              THE LIST UNIT IS CONSIDERED TO BE A DEVICE.
C 
C              WHEN THE FIRST WORD OF LU IS -1, THEN THE LIST 
C              UNIT IS CONSIDERED TO BE A FILE AND WORDS 2-145
C              MUST BE THE DCB. 
C 
C           IERR
C           IS THE ERROR INDICATOR
C              0 INDICATES NO ERROR 
C             -1 INDICATES ERROR
C 
C 
C 
C 
C 
C 
C 
C 
C 
C 
C 
C 
      LOGICAL IFTTY 
      INTEGER NUM(6),LOCKED(12) 
C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
C$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
      DATA LOCKED/2H Q,2HUE,2HRY,2H W,2HAI,2HTI,2HNG,2H O,
     &    2HN ,2HLU,2H  ,2HXX/
C NO COMMON IS NECESSARY
C 
C 
C 
C 
  
C 
C 
C 
C 
C BEGIN 
C 
      IERR = 0
      LUREQ = .FALSE. 
C 
C IS THE REQUEST DIRECTED AT A FILE?
C 
      IF(LU .EQ. -1) GOTO 10
C 
C IS THIS A REMOTE NODE 
C 
      IF(NODE .NE. -1) GOTO 20
C 
C IS THE LOCAL DEVICE INTERACTIVE?
C 
      IF(IFTTY(LU)) GOTO 20 
C 
C THIS IS A NON-INTERACTIVE LOCAL DEVICE, SO LOCK IT
C 
      IF(ICNTL .NE. 1) GOTO 5 
      CALL LURQ(140000B+ICNTL,LU,1) 
      GOTO 7010 
8000  CALL ABREG(IA,IB) 
      IF(IA .EQ. 0) GOTO 10 
      CALL CITA(IAND(LU,77B),NUM) 
      LOCKED(12) = NUM(3) 
      CALL QRIO(2,1,LOCKED,12)
C 
C WAIT ON LU
C 
3     CONTINUE
      CALL EXEC(12,0,2,0,-10) 
      CALL LURQ(140000B+ICNTL,LU,1) 
      GOTO 7010 
8010  CALL ABREG(IA,IB) 
      IF(IA .NE. 0)3,10 
C 
C UNLOCK LU 
C 
5     CALL LURQ(040000B+ICNTL,LU,1) 
      GOTO 7010 
10    LUREQ = .TRUE.
C 
C RETURN
C 
20    CONTINUE
      RETURN
C 
C 
C 
C 
C 
C 
C ERROR PROCESSOR 
C 
7010  CONTINUE
      IERR = -1 
      GOTO 20 
      END 
                                                                                                                                                                                                                            