]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/zebra/mq/mzneed.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / MINICERN / packlib / zebra / mq / mzneed.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.2  1996/04/18 16:11:55  mclareni
6 * Incorporate changes from J.Zoll for version 3.77
7 *
8 * Revision 1.1.1.1  1996/03/06 10:47:20  mclareni
9 * Zebra
10 *
11 *
12 #include "zebra/pilot.h"
13       SUBROUTINE MZNEED (IXDIV,NEEDP,CHOPT)
14
15 C-    Check that NEEDP words are available in the specified division,
16 C-    without garbage collection, unless option G is given;
17 C-    return in IQUEST(11) the space available beyond this,
18 C-    i.e. IQUEST(11) negative if not enough space;
19 C-    return IQUEST(12/13) = current/maximum size of division;
20 C-    user called
21
22 #include "zebra/zunit.inc"
23 #include "zebra/zvfaut.inc"
24 #include "zebra/mqsys.inc"
25 #include "zebra/mzct.inc"
26 C--------------    End CDE                             --------------
27       DIMENSION    IXDIV(9),NEEDP(9)
28       CHARACTER    *(*) CHOPT
29 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
30       DIMENSION    NAMESR(2)
31       DATA  NAMESR / 4HMZNE, 4HED   /
32 #endif
33 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
34       DATA  NAMESR / 6HMZNEED /
35 #endif
36 #if !defined(CERNLIB_QTRHOLL)
37       CHARACTER    NAMESR*8
38       PARAMETER   (NAMESR = 'MZNEED  ')
39 #endif
40
41 #include "zebra/q_jbyt.inc"
42
43
44 #include "zebra/qtrace.inc"
45 #if defined(CERNLIB_QDEBUG)
46       IF (IQVSTA.NE.0)       CALL ZVAUTX
47 #endif
48
49       JDV  = IXDIV(1)
50       NEED = NEEDP(1)
51       IF (JBYT(JDV,27,6).NE.JQSTOR)  GO TO 22
52       JQDIVI = JBYT (JDV,1,26)
53       IF (JQDIVI.EQ.0)               GO TO 22
54       IF (JQDIVI.LT.21)              GO TO 23
55    22 CALL MZSDIV (JDV,4)
56    23 CONTINUE
57
58 C--            Allocate space
59
60       CALL MZRESV
61       NQRESV = NQRESV - NEED
62       IF (NQRESV.LT.0)             GO TO 41
63
64    28 IQUEST(11) = NQRESV
65       IQUEST(12) = LQEND(KQT+JQDIVI) - LQSTA(KQT+JQDIVI)
66       IQUEST(13) = NQDMAX(KQT+JQDIVI)
67 #if defined(CERNLIB_QDEBPRI)
68       IF (NQLOGL.GE.2)
69      + WRITE (IQLOG,9029) JQSTOR,JQDIVI,NEED,NQRESV,CHOPT
70  9029 FORMAT (' MZNEED-  Store/Div',2I3,' NEED/Excess=',2I8
71      F,' Opt=',A)
72 #endif
73 #include "zebra/qtrace99.inc"
74       RETURN
75
76 C----              Garbage collection
77
78    41 CALL UOPTC (CHOPT,'G',IQUEST)
79       IF (IQUEST(1).EQ.0)          GO TO 28
80       NQPERM = 1
81       CALL MZGAR1
82       NQPERM = 0
83       GO TO 28
84       END
85 *      ==================================================
86 #include "zebra/qcardl.inc"