]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MINICERN/packlib/zebra/fq/fzendi.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / fq / fzendi.F
diff --git a/MINICERN/packlib/zebra/fq/fzendi.F b/MINICERN/packlib/zebra/fq/fzendi.F
new file mode 100644 (file)
index 0000000..be06d55
--- /dev/null
@@ -0,0 +1,232 @@
+*
+* $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"