5 * Revision 1.2 1996/04/18 16:11:55 mclareni
6 * Incorporate changes from J.Zoll for version 3.77
8 * Revision 1.1.1.1 1996/03/06 10:47:20 mclareni
12 #include "zebra/pilot.h"
13 SUBROUTINE MZNEED (IXDIV,NEEDP,CHOPT)
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;
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)
29 #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M))
31 DATA NAMESR / 4HMZNE, 4HED /
33 #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M))
34 DATA NAMESR / 6HMZNEED /
36 #if !defined(CERNLIB_QTRHOLL)
38 PARAMETER (NAMESR = 'MZNEED ')
41 #include "zebra/q_jbyt.inc"
44 #include "zebra/qtrace.inc"
45 #if defined(CERNLIB_QDEBUG)
46 IF (IQVSTA.NE.0) CALL ZVAUTX
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)
61 NQRESV = NQRESV - NEED
62 IF (NQRESV.LT.0) GO TO 41
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)
69 + WRITE (IQLOG,9029) JQSTOR,JQDIVI,NEED,NQRESV,CHOPT
70 9029 FORMAT (' MZNEED- Store/Div',2I3,' NEED/Excess=',2I8
73 #include "zebra/qtrace99.inc"
76 C---- Garbage collection
78 41 CALL UOPTC (CHOPT,'G',IQUEST)
79 IF (IQUEST(1).EQ.0) GO TO 28
85 * ==================================================
86 #include "zebra/qcardl.inc"