]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | * |
2 | * $Id$ | |
3 | * | |
4 | * $Log$ | |
5 | * Revision 1.2 1996/04/18 16:12:46 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 MZTABH | |
14 | ||
15 | C- Help : the standard table working space is too small; | |
16 | C- shift tables to free gaps of reserve areas in dynamic stores | |
17 | ||
18 | #include "zebra/zstate.inc" | |
19 | #include "zebra/zunit.inc" | |
20 | #include "zebra/mqsys.inc" | |
21 | #include "zebra/mzct.inc" | |
22 | C-------------- End CDE -------------- | |
23 | #if (defined(CERNLIB_QTRHOLL))&&(!defined(CERNLIB_A6M)) | |
24 | DIMENSION NAMESR(2) | |
25 | DATA NAMESR / 4HMZTA, 4HBH / | |
26 | #endif | |
27 | #if (defined(CERNLIB_QTRHOLL))&&(defined(CERNLIB_A6M)) | |
28 | DATA NAMESR / 6HMZTABH / | |
29 | #endif | |
30 | #if !defined(CERNLIB_QTRHOLL) | |
31 | CHARACTER NAMESR*8 | |
32 | PARAMETER (NAMESR = 'MZTABH ') | |
33 | #endif | |
34 | ||
35 | ||
36 | #include "zebra/qtrace.inc" | |
37 | ||
38 | IF (JQGAPM.NE.0) GO TO 41 | |
39 | ||
40 | C---- On first entry : move Memory Occupation table | |
41 | ||
42 | CALL MZFGAP | |
43 | NW = LQMTE+1 - LQMTA | |
44 | JQGAPM = NQGAPN | |
45 | IF (JQGAPM.LT.2) GO TO 26 | |
46 | 23 LNEW = IQGAP(2,JQGAPM) | |
47 | NSH = LNEW - LQMTA | |
48 | CALL UCOPY (LQ(LQMTA),LQ(LNEW),NW) | |
49 | ||
50 | LQMTA = LNEW | |
51 | LQMTB = LQMTB + NSH | |
52 | LQMTE = LQMTE + NSH | |
53 | ||
54 | LQTC2 = LQTC2 + 161 | |
55 | LQRTE = LQRTE + 161 | |
56 | IQGAP(1,JQGAPM) = IQGAP(1,JQGAPM) - NW | |
57 | IQGAP(2,JQGAPM) = IQGAP(2,JQGAPM) + NW | |
58 | ||
59 | #if defined(CERNLIB_QDEVZE) | |
60 | IF (NQDEVZ.GE.11) THEN | |
61 | JDIV = IQGAP(3,JQGAPM) | |
62 | JSTO = IQGAP(4,JQGAPM) | |
63 | WRITE (IQLOG,9824) JQGAPM,JDIV,JSTO,NQOFFS(JSTO+1) | |
64 | +, LQMTA,LQMTB,LQMTE,LQRTA,LQTC1,LQTC2,LQRTE | |
65 | ENDIF | |
66 | 9824 FORMAT (1X/' DEVZE MZTABH, Gap,Div,Store,Off-set =',3I4,I10 | |
67 | F/16X,'LQMTA,LQMTB,LQMTE = ',3I10 | |
68 | F/16X,'LQRTA,LQTC1,LQTC2,LQRTE=',5I10) | |
69 | #endif | |
70 | #include "zebra/qtrace99.inc" | |
71 | RETURN | |
72 | ||
73 | C-- Less than 2 gaps available | |
74 | ||
75 | 26 IF (IQTNMV.EQ.0) JQGAPM=NQGAP | |
76 | IF (JQGAPM.NE.0) GO TO 23 | |
77 | IF (IQTNMV.LT.0) GO TO 31 | |
78 | 29 IQPART = 7 | |
79 | #if defined(CERNLIB_QDEVZE) | |
80 | IF (NQDEVZ.GE.11) WRITE (IQLOG,9828) | |
81 | 9828 FORMAT (1X/' DEVZE MZTABH, no space.') | |
82 | #endif | |
83 | GO TO 999 | |
84 | ||
85 | C---- Move table to forbidden gap, if IQTNMV < 0 | |
86 | ||
87 | 31 JQGAPM = NQGAP | |
88 | IF (JQGAPM.EQ.0) GO TO 29 | |
89 | IQPART = -7 | |
90 | GO TO 23 | |
91 | ||
92 | 36 IF (IQTNMV.GE.0) GO TO 29 | |
93 | IF (JQGAPR.GT.NQGAPN) GO TO 29 | |
94 | JQGAPR = NQGAP | |
95 | IF (JQGAPR.EQ.0) GO TO 29 | |
96 | IF (IQGAP(1,NQGAP-1).GT.IQGAP(1,NQGAP)) JQGAPR=NQGAP-1 | |
97 | NNEW = IQGAP(1,JQGAPR) - (LQRTE-LQRTA) - 10 | |
98 | IF (NNEW.LT.16) GO TO 29 | |
99 | IQPART = -7 | |
100 | GO TO 44 | |
101 | ||
102 | C---- Re-entry : move the Link Relocation table | |
103 | ||
104 | 41 IF (JQGAPR.NE.0) GO TO 36 | |
105 | IF (NQGAPN.EQ.0) GO TO 36 | |
106 | NNEW = IQGAP(1,1) - NQWKTB | |
107 | IF (NNEW.LT.16) GO TO 36 | |
108 | JQGAPR = 1 | |
109 | ||
110 | 44 LNEW = IQGAP(2,JQGAPR) | |
111 | NSH = LNEW - LQRTA | |
112 | NW = LQTE+4 - LQRTA | |
113 | CALL UCOPY (LQ(LQRTA),LQ(LNEW),NW) | |
114 | ||
115 | #if defined(CERNLIB_QDEVZE) | |
116 | IF (NQDEVZ.GE.11) WRITE (IQLOG,9842) LQRTA,LQTE,LQTC2,LQRTE | |
117 | 9842 FORMAT (1X/' DEVZE MZTABH, LQRTA,LQTE,LQTC2,LQRTE=',4I10) | |
118 | #endif | |
119 | LQTA = LQTA + NSH | |
120 | LQTE = LQTE + NSH | |
121 | LQTC1 = LQTC1 + NSH | |
122 | LQTC2 = LNEW + (LQTC2-LQRTA) + NNEW | |
123 | LQRTE = LNEW + (LQRTE-LQRTA) + NNEW | |
124 | LQRTA = LNEW | |
125 | ||
126 | #if defined(CERNLIB_QDEVZE) | |
127 | IF (NQDEVZ.GE.11) | |
128 | + WRITE (IQLOG,9844) LQRTA,LQTE,LQTC2,LQRTE,NNEW | |
129 | 9844 FORMAT (16X,'LQRTA,LQTE,LQTC2,LQRTE=',4I10,' NEW=',I10) | |
130 | #endif | |
131 | GO TO 999 | |
132 | END | |
133 | * ================================================== | |
134 | #include "zebra/qcardl.inc" |