FTN4 PROGRAM QY16(5,90),92069-16060 REV.1912 790326 C C C************************************************************* C (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * C RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, RE- * C PRODUCED, OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITH- * C OUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * C************************************************************* C C C SOURCE: 92069-18079 C RELOC: 92069-16060 C C C************************************************************ C C C EXIT SERVICE MODULE C CLOSE DATA-BASE AND RETURN TO SYSTEM C INTEGER ISTAT(10) INTEGER ERROR(9) C$$$$$$$$$$$$$$$$$$$ NOVEMBER 3,1978 $$$$$$$$$$$$$$$$$$$$$ INTEGER INLU,ITTY,ILP,IDCB,JDCB,XEQ INTEGER DBNAM,DBLEV,DSNAM,DINAM,SELECT,SNAM INTEGER DSNUM,DINUM,PARM,LPARM,ECHO,QSERR INTEGER IMA,IB,IBSZ,SECNO,IEND,ISCAN LOGICAL BREAK INTEGER IPFLAG,IOFLAG,RMOTE LOGICAL BATCH,XQBCH INTEGER PAGCNT,LNCNT INTEGER PAGLEN,COLLIM REAL RRCNT REAL SELT,RSEC INTEGER IPTR REAL RCOUNT INTEGER S,R3,TRKNM,IDILU INTEGER R6 REAL ATOTAL INTEGER LIST,L,T,U INTEGER LEVSTR,LEVLEN INTEGER IBUFF INTEGER SS(7,100) C COMMON INLU(145),ITTY(145),ILP(145),IDCB(145),JDCB(144),XEQ(145) COMMON DBNAM(10),DBLEV(3),DSNAM(3),DINAM(3),SELECT(6),SNAM(3) COMMON DSNUM,DINUM,PARM(40),LPARM,ECHO,QSERR COMMON IMA(37),IB(896),IBSZ,SECNO,IEND,ISCAN COMMON BREAK COMMON IPFLAG,IOFLAG,RMOTE COMMON BATCH,XQBCH COMMON PAGCNT,LNCNT COMMON PAGLEN,COLLIM COMMON RRCNT COMMON SELT(64),RSEC COMMON IPTR COMMON RCOUNT COMMON S(15,50),R3,TRKNM,IDILU COMMON R6 COMMON ATOTAL(6,5) COMMON LIST(101,6),L(7),T(5),U(7,5) COMMON LEVSTR(66,5),LEVLEN(5) COMMON IBUFF(2048) C EQUIVALENCE (S,SS) C$$$$$$$$$$$$$$$$$$$ NOVEMBER 3,1978 $$$$$$$$$$$$$$$$$$$$$ C C C C C C DATA ERROR/2H ,2HER,2HRO,2HR ,2HNO,2H. ,2HXX,2HXX,2HXX/ C C C C C C C C C BEGIN C C C IF(DBNAM(2) .EQ. 2H ) GOTO 100 CALL DBCLS(DBNAM,IDUM,1,ISTAT) IF(ISTAT .EQ. 0) GOTO 100 CALL CITA(ISTAT,ERROR(7)) CALL QRIO(2,ITTY,ERROR,9) C C RELEASE 'QSKIB' TRACK C 100 CONTINUE CALL EXEC(5,-1) C C CLOSE THE SELECT FILE C CALL ECLOS(JDCB) C C CLOSE THE PROCEDURE FILE C CALL CLEOF(RMOTE,IDCB) C C CLOSE THE INPUT FILE OR DEVICE C CALL CLEOF(RMOTE,INLU) C C CLOSE THE LIST FILE OR DEVICE C CALL CLEOF(RMOTE,ILP) C C CLOSE THE LOG DEVICE OR FILE C CALL CLEOF(RMOTE,ITTY) C C CLOSE THE XEQ FILE C CALL CLEOF(RMOTE,XEQ) STOP END C C C C SUBROUTINE CLEOF(NODE,LU),92069-16060 REV.1912 790220 INTEGER NODE,LU(145) C C C C ABSTRACT: C C THIS ROUTINE CLOSES FILES, OR WRITES AN EOF TO THE DEVICE THEN UNLOCKS C THE DEVICE. THE DEVICES MAY BE LOCAL OR REMOTE. WHEN NODE IS EQUAL C TO -1, THE DEVICE IS LOCAL TO QUERY, OTHERWISE THE DEVICE IS REMOTE. C THE FIRST WORD OF THE LU DATA STRUCTURE INDICATES WHETHER THIS IS A C FILE OR A DEVICE. WHEN THE FIRST WORD IS -1, THIS IS A FILE. OTHER- C WISE, THIS IS A DEVICE LU. C C C CALLING SEQUENCE: C C CALL CLEOF(NODE,LU) C C WHERE: C C NODE C IS THE NODE NUMBER. -1 INDICATES LOCAL NODE. C C LU C IS THE LU DATA STRUCTURE. C WORD 1 INDICATES FILE OR LU C -1 IMPLIES FILE C OTHERWISE IT IS AN LU C WORD 2-145 IS THE FMP DCB FOR THE FILE C C C C C C BEGIN C LU2 = IAND(LU,77B) + 100B C C IF THIS IS A FILE, GO CLOSE IT C IF(LU .LT. 0) GOTO 20 C C IF THIS IS A LOCAL LU, GO WRITE A LOCAL EOF C IF(NODE .LT. 0) GOTO 10 C C WRITE A REMOTE EOF TO THE LU C CALL DEXEC(NODE,100003B,LU2) GOTO 30 777 GOTO 15 C C WRITE A LOCAL EOF C 10 CONTINUE CALL EXEC(100003B,LU2) GOTO 30 C C RELEASE THE LU LOCK C 15 CONTINUE CALL LUREQ(NODE,0,LU,IERR) GOTO 30 C C CLOSE THE FILE C 20 CONTINUE CALL ECLOS(LU(2)) C C EXIT C 30 CONTINUE RETURN END