--- /dev/null
+*
+* $Id$
+*
+* $Log$
+* Revision 1.1.1.1 1996/03/06 10:47:11 mclareni
+* Zebra
+*
+*
+#include "zebra/pilot.h"
+ SUBROUTINE FZENDI (LUNPAR,CHOPT)
+
+C- TERMINATION OF ZEBRA INPUT FILE
+
+#include "zebra/zunit.inc"
+#include "zebra/mqsys.inc"
+#include "zebra/eqlqf.inc"
+#include "zebra/fzstat.inc"
+#include "zebra/fzcf.inc"
+#include "zebra/fzci.inc"
+C-------------- End CDE --------------
+ DIMENSION LUNPAR(9)
+ CHARACTER CHOPT*(*)
+ DIMENSION IOPNUM(4)
+ EQUIVALENCE (IOPTT,IOPTVF(1)), (IOPTR,IOPTVF(6))
+ +, (IOPTN,IOPTVF(2)), (IOPTU,IOPTVF(7))
+ +, (IOPTC,IOPTVF(3)), (IOPTX,IOPTVF(8))
+ +, (IOPTI,IOPTVF(4)), (IOPTK,IOPTVF(9))
+ +, (IOPTO,IOPTVF(5)), (IOPTQ,IOPTVF(10))
+ +, (IOPNUM(1),IOPTVF(11))
+#if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
+ DIMENSION NAMESR(2)
+ DATA NAMESR / 4HFZEN, 4HDI /
+#endif
+#if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
+ DATA NAMESR / 6HFZENDI /
+#endif
+#if !defined(CERNLIB_QTRHOLL)
+ CHARACTER NAMESR*8
+ PARAMETER (NAMESR = 'FZENDI ')
+#endif
+
+#include "zebra/q_jbit.inc"
+
+#include "zebra/qtrace.inc"
+
+ LUNORG = LUNPAR(1)
+ LUN = LUNORG
+ CALL UOPTC (CHOPT,'TNCIORUXKQ0123',IOPTVF)
+ INFLUN = 0
+
+ NEOF = -1
+ IF (IOPNUM(4).NE.0) NEOF=3
+ IF (IOPNUM(3).NE.0) NEOF=2
+ IF (IOPNUM(2).NE.0) NEOF=1
+ IF (IOPNUM(1).NE.0) NEOF=0
+ IOPTK = 1
+
+C-- Terminate option selected
+
+ IF (IOPTT.NE.0) THEN
+ IOPTN = 0
+ IOPTC = 0
+ IOPTI = 0
+ IOPTO = 0
+ IOPTK = 0
+
+C-- New option selected
+
+ ELSEIF (IOPTN.NE.0) THEN
+ IOPTC = 0
+ IOPTI = 0
+ IOPTO = 0
+ ELSE
+ IOPTR = 0
+ IOPTU = 0
+ IOPTX = 0
+ ENDIF
+
+C-- Continue option selected
+
+ IF (IOPTC.NE.0) THEN
+ IOPTI = 0
+ IOPTO = 0
+ ENDIF
+
+C-- Input option selected
+
+ IF (IOPTI.NE.0) THEN
+ IOPTO = 0
+ IOPTR = 1
+ ENDIF
+
+C---- LOOP OVER ALL INPUT FILES IF LUNPAR=0
+
+ IF (LUN.NE.0) GO TO 24
+ LQFF = LQFS
+ GO TO 22
+
+ 21 LQFF = LQ(KQSP+LQFF)
+ 22 IF (LQFF.EQ.0) GO TO 999
+ LUN = IQ(KQSP+LQFF-5)
+
+ LUNI = 0
+ IQUEST(1) = -7
+ CALL FZLOC (LUN,-1)
+ IF (LUNI.EQ.LUN) GO TO 31
+ GO TO 21
+
+C-- FZENDI called for one particular input file
+
+ 24 LUNI = 0
+ IQUEST(1) = 0
+ CALL FZLOC (LUN,-1)
+ IF (LUNI.EQ.LUN) GO TO 31
+#if defined(CERNLIB_QPRINT)
+ IF (IOPTQ.EQ.0) THEN
+ WRITE (IQLOG,9024) LUN
+ IF (LUNF.EQ.LUN) WRITE (IQLOG,9025) IACTVF
+ ENDIF
+ 9024 FORMAT (1X/' FZENDI. LUN=',I3,' is not a valid input file')
+ 9025 FORMAT (10X,'last activity=',I2)
+#endif
+ GO TO 999
+
+C-------------------------------------------------
+C- Do input file
+C-------------------------------------------------
+
+ 31 IF (IOPTQ.NE.0) LOGLVF=-2
+#if defined(CERNLIB_QPRINT)
+ IF (LOGLVF.GE.0)
+ +WRITE (IQLOG,9031) LUN,IACTVF,CHOPT
+ 9031 FORMAT (1X/' FZENDI. For input file at LUN=',I3,
+ F', Last activity=',I2,', OPT= ',A)
+#endif
+ IF (IACTVF.GE.8) GO TO 61
+
+C---- Print file usage
+
+#if defined(CERNLIB_QPRINT)
+ IF (LOGLVF.LT.0) GO TO 39
+ IF (IQ(KQSP+LQFF+28).EQ.IQ(KQSP+LQFF+15)) GO TO 39
+ N = 21
+ IF (IFIFOF.NE.0) N=24
+ WRITE (IQLOG,9036) (IQ(KQSP+LQFF+J),J=11,N)
+ 9036 FORMAT (10X,'Number of objects read : '
+ F/10X,I9,' System EOF'
+ F/10X,I9,' Zebra EOF'
+ F/10X,I9,' End-of-Run'
+ F/10X,I9,' Start-of-Run'
+ F/10X,I9,' Pilot records'
+ F/10X,I9,' Non-empty d/s selected'
+ F/10X,I9,' Empty d/s selected'
+ F/10X,I9,' Read or Data errors'
+ F/7X,I12,' Mega-words +'
+ F/7X,I12,' words'
+ F/10X,I9,' Good logical records',:/
+ F 10X,I9,' Good physical records'
+ F/10X,I9,' Steering blocks'
+ F/10X,I9,' Words with conversion problems')
+
+ IQ(KQSP+LQFF+28) = IQ(KQSP+LQFF+15)
+#endif
+ 39 INFLUN = LUN
+ INFSTA = IQ(KQSP+LQFF)
+ CALL UCOPY (IQ(KQSP+LQFF+1), INFOFZ, 40)
+
+C---- New file to be connected by the user
+
+ IF (IOPTN.EQ.0) GO TO 44
+ IQ(KQSP+LQFF+2) = 8
+ CALL VZERO (IQ(KQSP+LQFF+30),7)
+ IF (IOPTR.NE.0) GO TO 57
+ GO TO 71
+
+C-- Continue to read next file on same
+
+ 44 IF (IOPTC.EQ.0) GO TO 51
+ IF (IACTVF.NE.5) GO TO 48
+ IF (IACMOF.NE.1) GO TO 79
+ IF (JBIT(MSTATF,13).EQ.0) GO TO 79
+
+#include "fzendicx.inc"
+* Ignoring t=pass
+ GO TO 79
+
+ 48 CONTINUE
+#if defined(CERNLIB_QPRINT)
+ IF (LOGLVF.GE.-2) WRITE (IQLOG,9048) LUNF
+ 9048 FORMAT (' FZENDI. LUN=',I3,' not positioned on system EoF;',
+ F' C-option is redundant.')
+#endif
+ GO TO 79
+
+C---- REWIND
+
+ 51 IF (IOPTR.EQ.0) GO TO 61
+
+ IQ(KQSP+LQFF+2) = 8
+ CALL VZERO (IQ(KQSP+LQFF+11),23)
+
+ 57 CALL FZMACH (0)
+
+C---- Switch to output
+
+ 61 IF (IOPTO.EQ.0) GO TO 71
+ IQ(KQSP+LQFF+2) = 10
+ IF (NEOF.GE.0) THEN
+ CALL SBYT (NEOF, IQ(KQSP+LQFF), 13,2)
+#if defined(CERNLIB_QPRINT)
+ IF (LOGLVF.GE.0) WRITE (IQLOG,9062) LUN,NEOF
+ 9062 FORMAT (10X,'LUN=',I4,' Set NEOF =',I2)
+#endif
+ ENDIF
+
+C---- Close the file, Drop the control bank
+
+ 71 IF (IOPTX.NE.0) THEN
+ CALL FZMACH (2)
+ IQ(KQSP+LQFF+1) = IADOPF
+ ENDIF
+
+ IF (IOPTK.EQ.0) CALL MZDROP (0,LQFF,'.')
+
+ 79 LUNI = 0
+ IF (LUNORG.EQ.0) GO TO 21
+
+#include "zebra/qtrace99.inc"
+ RETURN
+ END
+* ==================================================
+#include "zebra/qcardl.inc"