15 & LIPOOL, NE, DAD, ND, PROCNODE, SLAVEF, ABOVE_L0, SIZECB_UNDER_L0,
16 & SIZECB_UNDER_L0_IF_LRCB, MAXFR_UNDER_L0,
17 & MAX_FRONT_SURFACE_LOCAL_L0, MAX_SIZE_FACTOR_L0,
18 & ENTRIES_IN_FACTORS_UNDER_L0, ENTRIES_IN_FACTORS_MASTERS_LO,
19 & COST_SUBTREES_UNDER_LO, OPSA_UNDER_L0, PEAK_FR, PEAK_FR_OOC,
20 & NRLADU, NIRADU, NIRNEC, NRLNEC, NRLNEC_ACTIVE,
21 & NRLADU_if_LR_LU, NRLNEC_if_LR_LU, NRLNEC_if_LR_LUCB,
22 & NRLNECOOC_if_LR_LUCB, NRLNEC_if_LR_CB, NRLADULR_UD, NRLADULR_WC,
23 & NRLNECLR_CB_UD, NRLNECLR_LUCB_UD, NRLNECLR_LUCB_WC,
24 & PEAK_LRLU_UD,PEAK_OOC_LRLU_UD,PEAK_OOC_LRLU_WC, PEAK_LRLUCB_UD,
25 & PEAK_LRLUCB_WC,PEAK_OOC_LRLUCB_UD, PEAK_OOC_LRLUCB_WC,
26 & PEAK_LRCB_UD, PEAK_OOC_LRCB_UD, NIRADU_OOC, NIRNEC_OOC, MAXFR,
27 & OPSA, UU, KEEP,KEEP8, LOCAL_M, LOCAL_N, SBUF_RECOLD,
28 & SBUF_SEND_FR, SBUF_REC_FR, SBUF_SEND_LR, SBUF_REC_LR,
29 & OPS_SUBTREE, NSTEPS, I_AM_CAND,NMB_PAR2, ISTEP_TO_INIV2,
30 & CANDIDATES, IFLAG, IERROR, MAX_FRONT_SURFACE_LOCAL,
31 & MAX_SIZE_FACTOR, ENTRIES_IN_FACTORS_LOC,
32 & ENTRIES_IN_FACTORS_LOC_MASTERS, ROOT_yes, ROOT_NPROW, ROOT_NPCOL
36 LOGICAL,
intent(in) :: ROOT_yes
37 INTEGER,
intent(in) :: ROOT_NPROW, ROOT_NPCOL
38 INTEGER,
intent(in) :: MYID, N, LIPOOL
39 LOGICAL,
intent(in) :: ABOVE_L0
40 INTEGER,
intent(in) :: MAXFR_UNDER_L0
41 INTEGER(8),
intent(in) :: MAX_FRONT_SURFACE_LOCAL_L0,
43 & ENTRIES_IN_FACTORS_UNDER_L0,
44 & ENTRIES_IN_FACTORS_MASTERS_LO
45 DOUBLE PRECISION,
intent(in) :: COST_SUBTREES_UNDER_LO,
47 INTEGER(8),
intent(inout) :: SIZECB_UNDER_L0,
48 & SIZECB_UNDER_L0_IF_LRCB
49 INTEGER,
intent(inout) :: IFLAG, IERROR
50 INTEGER NIRADU, NIRNEC
51 INTEGER(8) NRLADU, NRLNEC, NRLNEC_ACTIVE
52 INTEGER(8),
intent(out) :: NRLADU_if_LR_LU,
53 & nrladulr_ud, nrladulr_wc,
54 & nrlnec_if_lr_lu, nrlnec_if_lr_lucb, nrlnec_if_lr_cb,
55 & nrlnecooc_if_lr_lucb, nrlneclr_cb_ud,
56 & nrlneclr_lucb_ud, nrlneclr_lucb_wc
57 INTEGER(8),
intent(out)::
58 & peak_fr, peak_fr_ooc,
60 & peak_ooc_lrlu_ud, peak_ooc_lrlu_wc,
61 & peak_lrlucb_ud, peak_lrlucb_wc,
62 & peak_ooc_lrlucb_ud, peak_ooc_lrlucb_wc,
63 & peak_lrcb_ud, peak_ooc_lrcb_ud
64 INTEGER(8) NRLADU_CURRENT, NRLADU_ROOT_3
65 INTEGER NIRADU_OOC, NIRNEC_OOC
67 INTEGER(8) MAX_FRONT_SURFACE_LOCAL
69 INTEGER FRERE(NSTEPS), FILS(N), IPOOL(max(LIPOOL,1)), NE(NSTEPS),
70 & nd(nsteps), procnode(nsteps), dad(nsteps)
72 INTEGER SLAVEF, KEEP(500), LOCAL_M, LOCAL_N
74 INTEGER(8) ENTRIES_IN_FACTORS_LOC,
75 & ENTRIES_IN_FACTORS_LOC_MASTERS
76 INTEGER SBUF_SEND_FR, SBUF_REC_FR
77 INTEGER SBUF_SEND_LR, SBUF_REC_LR
78 INTEGER(8) SBUF_RECOLD
80 INTEGER ISTEP_TO_INIV2( KEEP(71) )
81 LOGICAL I_AM_CAND(NMB_PAR2)
82 INTEGER CANDIDATES( SLAVEF+1, NMB_PAR2 )
84 DOUBLE PRECISION OPSA_LOC
85 INTEGER(8) MAX_SIZE_FACTOR
86 DOUBLE PRECISION OPS_SUBTREE
87 DOUBLE PRECISION OPS_SBTR_LOC
88 INTEGER,
ALLOCATABLE,
DIMENSION(:) :: TNSTK, LSTKI
89 INTEGER(8),
ALLOCATABLE,
DIMENSION(:) :: LSTKR
90 INTEGER(8),
ALLOCATABLE,
DIMENSION(:) :: LSTKR_if_LRCB,
93 LOGICAL OUTER_SENDS_FR
94 INTEGER(8) :: SAVE_SIZECB_UNDER_L0,
95 & save_sizecb_under_l0_if_lrcb
96 INTEGER SBUFR_FR, SBUFS_FR
97 INTEGER SBUFR_LR, SBUFS_LR
98 INTEGER(8) SBUFS_CB, SBUFR_CB
99 INTEGER ITOP,NELIM,NFR
100 INTEGER(8) ISTKR, LSTK
101 INTEGER(8) :: NRLADU_CURRENT_MISSING
102 INTEGER(8) :: NRLADU_CURRENT_K60_1
103 LOGICAL :: I_PROCESS_SCHUR_K60_1
104 INTEGER(8) :: ISTKR_if_LRCB, ISTKRLR_CB_UD, ISTKRLR_CB_WC,
106 INTEGER :: LRSTATUS, IDUMMY
107 INTEGER :: NBNODES_BLR
108 LOGICAL :: COMPRESS_PANEL, COMPRESS_CB
109 INTEGER ISTKI, STKI, ISTKI_OOC
110 INTEGER K,NSTK, IFATH
111 INTEGER INODE, LEAF, IN
112 INTEGER LEVEL, MAXITEMPCB
113 INTEGER(8) CURRENT_ACTIVE_MEM, MAXTEMPCB
114 LOGICAL UPDATE, UPDATEF, MASTER, MASTERF, INSSARBR
115 INTEGER LEVELF, NCB, SIZECBI
117 INTEGER(8) NFR8, NELIM8
118 INTEGER(8) :: SIZEFRNOCBLU
119 INTEGER :: IDUMMY_ARRAY(1)
120 INTEGER(8) SIZECB, SIZECBINFR, SIZECB_SLAVE
121 INTEGER(8) SIZECB_if_LRCB, SIZECB_SLAVE_if_LRCB
122 INTEGER(8) SIZECBLR_SLAVE_UD, SIZECBLR_SLAVE_WC
123 INTEGER(8) SIZECBLR_UD, SIZECBLR_WC
124 INTEGER(8) SIZECBSLR, NFRS8, NELIMS8, NCBS8,
125 & sizecbs, sizecbinfrs
126 INTEGER NFRS, NELIMS, NCBS, LEVELS, LRSTATUSS
128 INTEGER(8) :: PEAK_DYN_LRLU_UD, PEAK_DYN_LRCB_UD,
129 & peak_dyn_lrlucb_ud, peak_dyn_lrlu_wc,
131 INTEGER SIZEHEADER, SIZEHEADER_OOC, XSIZE_OOC
132 INTEGER EXTRA_PERM_INFO_OOC
133 INTEGER NBROWMAX, NSLAVES_LOC, NSLAVES_PASSED,
134 & nelimf, nfrf, ncbf,
135 & nbrowmaxf, lkjib_fr, lkjib_lr,
137 INTEGER(8) LEV3MAXREC, CBMAXR, CBMAXS
141 DOUBLE PRECISION OPS_NODE, OPS_NODE_MASTER, OPS_NODE_SLAVE
142 INTEGER(8) ENTRIES_NODE_UPPER_PART, ENTRIES_NODE_LOWER_PART
144 INTEGER :: FLAG_L0OMP
145 parameter(flag_l0omp=-2014)
146 include 'mumps_headers.h
'
150 INTRINSIC min, int, real
151 INTEGER ZMUMPS_OOC_GET_PANEL_SIZE
152 EXTERNAL ZMUMPS_OOC_GET_PANEL_SIZE
153 INTEGER MUMPS_PROCNODE, MUMPS_TYPENODE
154 LOGICAL MUMPS_IN_OR_ROOT_SSARBR
155 EXTERNAL MUMPS_MAX_SURFCB_NBROWS
156 EXTERNAL MUMPS_PROCNODE, MUMPS_TYPENODE,
157 & MUMPS_IN_OR_ROOT_SSARBR
158 logical :: FORCE_CAND, CONCERNED, UPDATES, STACKCB, MASTERSON
159 integer :: IFSON, LEVELSON
161.eq.
IF (KEEP(50)2) THEN
162 EXTRA_PERM_INFO_OOC = 1
163.eq.
ELSE IF (KEEP(50)0) THEN
164 EXTRA_PERM_INFO_OOC = 2
166 EXTRA_PERM_INFO_OOC = 0
168.EQ..AND..NE.
PACKED_CB=( KEEP(215)0 KEEP(50)0 )
169 MAX_FRONT_SURFACE_LOCAL=0_8
171 ALLOCATE( LSTKR(NSTEPS), TNSTK(NSTEPS),
173 & LSTKR_if_LRCB(NSTEPS), LSTKRLR_CB_UD(NSTEPS),
174 & LSTKRLR_CB_WC(NSTEPS),
176.GT.
if (ALLOCOK 0) THEN
181 LKJIB_FR = max(KEEP(5),KEEP(6))
182.NE..OR.
OUTER_SENDS_FR = (KEEP(263)0
183.EQ..LT..OR..EQ.
& KEEP(50)0. AND. (KEEP(468)3 UU0.0D0))
184 IF ( OUTER_SENDS_FR ) THEN
185 LKJIB_FR = max(LKJIB_FR, KEEP(420))
187 LKJIB_LR = max(LKJIB_FR,KEEP(142))
188.NE..AND..GT.
IF (KEEP(198)0SLAVEF1) THEN
189.EQ.
IF ( KEEP(50)0 ) THEN
190 NBouter_MIN = ceiling
192 & (dble(KEEP(59))*dble(KEEP(108))*dble(KEEP(35)))
194 & (dble(huge(I4)-10000000))
197 NBouter_MIN = ceiling
199 & ( max (dble(KEEP(108))*dble(KEEP(108)),
200 & dble(KEEP(59))*dble(KEEP(108)/2)
204 & (dble(huge(I4)-10000000))
207 NBouter_MIN = max (NBouter_MIN, 4)
208 LKJIB_FR = min(KEEP(108)/NBouter_MIN, 4321)
212#if defined(OLD_OOC_NOPANEL)
213 XSIZE_OOC=XSIZE_OOC_NOPANEL
215.EQ.
IF (KEEP(50)0) THEN
216 XSIZE_OOC=XSIZE_OOC_UNSYM
218 XSIZE_OOC=XSIZE_OOC_SYM
221 SIZEHEADER_OOC = XSIZE_OOC+6
222 SIZEHEADER = XSIZE_IC + 6
231 ENTRIES_IN_FACTORS_LOC = 0_8
232 ENTRIES_IN_FACTORS_LOC_MASTERS = 0_8
237 NRLADU_CURRENT_K60_1 = 0_8
238 I_PROCESS_SCHUR_K60_1 = .FALSE.
245 SAVE_SIZECB_UNDER_L0 = SIZECB_UNDER_L0
246 SAVE_SIZECB_UNDER_L0_IF_LRCB = SIZECB_UNDER_L0_IF_LRCB
248 SAVE_SIZECB_UNDER_L0 = 0_8
249 SAVE_SIZECB_UNDER_L0_IF_LRCB = 0_8
251 PEAK_DYN_LRLU_UD = SAVE_SIZECB_UNDER_L0
252 PEAK_DYN_LRCB_UD = SAVE_SIZECB_UNDER_L0_IF_LRCB
253 PEAK_DYN_LRLUCB_UD = SAVE_SIZECB_UNDER_L0_IF_LRCB
254 PEAK_DYN_LRLU_WC = SAVE_SIZECB_UNDER_L0
255 PEAK_DYN_LRLUCB_WC = SAVE_SIZECB_UNDER_L0
257 NRLADU_if_LR_LU = 0_8
258 NRLNEC_if_LR_LU = 0_8
259 NRLNEC_if_LR_CB = 0_8
260 NRLNEC_if_LR_LUCB = 0_8
261 NRLNECOOC_if_LR_LUCB = 0_8
263 NRLNECLR_LUCB_UD = 0_8
264 NRLNECLR_LUCB_WC = 0_8
271 PEAK_OOC_LRLU_UD = 0_8
272 PEAK_OOC_LRLU_WC = 0_8
275 PEAK_OOC_LRLUCB_UD= 0_8
276 PEAK_OOC_LRLUCB_WC= 0_8
278 PEAK_OOC_LRCB_UD = 0_8
288.NE..AND..EQ.
IF (KEEP(38) 0 KEEP(60)0) THEN
290 NRLADU_ROOT_3 = int(LOCAL_M,8)*int(LOCAL_N,8)
291 NRLADU = NRLADU_ROOT_3
292 NRLNEC_ACTIVE = NRLADU_CURRENT
293 MAX_SIZE_FACTOR=max(MAX_SIZE_FACTOR,NRLADU_ROOT_3)
295 NRLADU_if_LR_LU = NRLADU_ROOT_3
296 NRLNECOOC_if_LR_LUCB = NRLNEC_ACTIVE
297 NRLNEC_if_LR_LU = NRLADU
298 NRLNEC_if_LR_CB = NRLADU
299 NRLNEC_if_LR_LUCB = NRLADU
300 PEAK_LRLU_UD = max(PEAK_LRLU_UD,
301 & NRLNEC_if_LR_LU + NRLADULR_UD + SIZECB_UNDER_L0)
303 & max(PEAK_OOC_LRLU_UD,
304 & NRLNEC_ACTIVE + NRLADULR_UD)
306 & max(PEAK_OOC_LRLU_WC,
307 & NRLNEC_ACTIVE + NRLADULR_WC)
309 & max(PEAK_LRLUCB_UD,
310 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_UD)
312 & max(PEAK_LRLUCB_WC,
313 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_WC)
315 & max(PEAK_OOC_LRLUCB_UD,
316 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_UD)
318 & max(PEAK_OOC_LRLUCB_WC,
319 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_WC)
322 & NRLNEC_if_LR_CB + NRLNECLR_CB_UD)
324 & max(PEAK_OOC_LRCB_UD,
325 & NRLNECOOC_if_LR_LUCB + NRLNECLR_CB_UD)
327 PEAK_DYN_LRLU_UD = max( PEAK_DYN_LRLU_UD,
328 & SIZECB_UNDER_L0 + NRLADULR_UD )
329 PEAK_DYN_LRCB_UD = max( PEAK_DYN_LRCB_UD,
330 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB)
331 PEAK_DYN_LRLUCB_UD = max( PEAK_DYN_LRLUCB_UD,
332 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB + NRLADULR_UD)
333 PEAK_DYN_LRLU_WC = max( PEAK_DYN_LRLU_WC,
334 & SIZECB_UNDER_L0 + NRLADULR_WC)
335 PEAK_DYN_LRLUCB_WC = max( PEAK_DYN_LRLUCB_WC,
336 & SIZECB_UNDER_L0 + ISTKRLR_CB_WC + NRLADULR_WC)
338 IF (MUMPS_PROCNODE(PROCNODE(STEP(INODE)),KEEP(199))
340 NIRADU = SIZEHEADER+2*(ND(STEP(INODE))+KEEP(253))
341 NIRADU_OOC = SIZEHEADER_OOC+2*(ND(STEP(INODE))+KEEP(253))
344 NIRADU_OOC = SIZEHEADER_OOC
347 NIRNEC_OOC = NIRADU_OOC
349.eq..OR..eq.
IF((KEEP(24)0)(KEEP(24)1)) THEN
352.eq.
FORCE_CAND=(mod(KEEP(24),2)0)
359.NE.
IF (LIPOOL0) THEN
367 NFR = ND(STEP(INODE))+KEEP(253)
369 NSTK = NE(STEP(INODE))
372 100 NELIM = NELIM + 1
375.GT.
IF (IN 0 ) GOTO 100
377 IFATH = DAD(STEP(INODE))
378 MASTER = MUMPS_PROCNODE(PROCNODE(STEP(INODE)),KEEP(199))
380 LEVEL = MUMPS_TYPENODE(PROCNODE(STEP(INODE)),KEEP(199))
381 INSSARBR = MUMPS_IN_OR_ROOT_SSARBR(PROCNODE(STEP(INODE)),
384.NOT.
if(FORCE_CAND) then
385.AND..NE..OR..EQ.
UPDATE = ( (MASTER(LEVEL3) ) LEVEL2 )
387.and..ne.
if(MASTER(LEVEL3)) then
389.eq.
else if(LEVEL2) then
390 if ( I_AM_CAND(ISTEP_TO_INIV2(STEP(INODE)))) THEN
397 SIZECBINFR = NCB8*NCB8
398.EQ.
IF (KEEP(50)0) THEN
401 IFATH = DAD(STEP(INODE))
402.NE..AND.
IF ( IFATHKEEP(38) PACKED_CB ) THEN
403 SIZECB = (NCB8*(NCB8+1_8))/2_8
409 CALL IS_FRONT_BLR_CANDIDATE (INODE, LEVEL, NFR, NELIM,
410 & KEEP(494), 1, KEEP(490),
411 & KEEP(491), KEEP(492),
412 & KEEP(20), KEEP(60), DAD(STEP(INODE)), KEEP(38),
414.GE.
COMPRESS_PANEL = (LRSTATUS2)
415.EQ..OR..EQ.
COMPRESS_CB = ((LRSTATUS1)(LRSTATUS3))
416.OR.
IF (COMPRESS_PANELCOMPRESS_CB) NBNODES_BLR = NBNODES_BLR+1
417 IF (COMPRESS_PANEL) THEN
418 K464_8 = int(KEEP(464),8)
422 IF (COMPRESS_CB) THEN
423 K465_8 = int(KEEP(465),8)
425 SIZECBLR_UD = SIZECB*K465_8/1000_8
431 SIZECB_if_LRCB = SIZECB
433 SIZECBI = 2* NCB + SIZEHEADER
435 NSLAVES_LOC = -99999999
436 SIZECB_SLAVE = -99999997_8
437 SIZECB_SLAVE_if_LRCB = SIZECB_SLAVE
440.EQ.
IF (KEEP(48) 5) THEN
443 NSLAVES_LOC=CANDIDATES(SLAVEF+1,
444 & ISTEP_TO_INIV2(STEP(INODE)))
448 NSLAVES_PASSED=NSLAVES_LOC
451 NSLAVES_PASSED=SLAVEF
452 NSLAVES_LOC =SLAVEF-1
454 CALL MUMPS_MAX_SURFCB_NBROWS(WHAT, KEEP,KEEP8,
455 & NCB, NFR, NSLAVES_PASSED, NBROWMAX, SIZECB_SLAVE
457 IF (COMPRESS_CB) THEN
458 SIZECB_SLAVE_if_LRCB = 0_8
459 SIZECBLR_SLAVE_UD = SIZECB_SLAVE*K465_8/1000_8
460 SIZECBLR_SLAVE_WC = SIZECB_SLAVE
462 SIZECB_SLAVE_if_LRCB = SIZECB_SLAVE
463 SIZECBLR_SLAVE_UD = 0_8
464 SIZECBLR_SLAVE_WC = 0_8
467.GT.
IF (KEEP(60)1) THEN
468.AND..EQ.
IF (MASTER INODEKEEP(38)) THEN
469 NIRADU = NIRADU+SIZEHEADER+2*(ND(STEP(INODE))+KEEP(253))
470 NIRADU_OOC = NIRADU_OOC+SIZEHEADER_OOC+
471 & 2*(ND(STEP(INODE))+KEEP(253))
478 NRLADU_CURRENT = int(LOCAL_M,8)*int(LOCAL_N,8)
479 NRLNEC = max(NRLNEC,NRLADU+ISTKR+
481 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE,NRLADU_ROOT_3 +
482 & NRLADU_CURRENT+ISTKR)
483 NRLNEC_if_LR_LU = max(NRLNEC_if_LR_LU,
484 & NRLADU_if_LR_LU+ISTKR+
486 NRLNEC_if_LR_CB = max(NRLNEC_if_LR_CB ,
487 & NRLADU+ISTKR_if_LRCB+
489 NRLNEC_if_LR_LUCB = max(NRLNEC_if_LR_LUCB,
490 & NRLADU_if_LR_LU+ISTKR_if_LRCB+
492 NRLNECOOC_if_LR_LUCB = max(NRLNECOOC_if_LR_LUCB,
494 & NRLADU_CURRENT+ISTKR_if_LRCB)
495 PEAK_LRLU_UD = max(PEAK_LRLU_UD,
496 & NRLNEC_if_LR_LU + NRLADULR_UD)
498 & max(PEAK_OOC_LRLU_UD,
499 & NRLNEC_ACTIVE + NRLADULR_UD)
501 & max(PEAK_OOC_LRLU_WC,
502 & NRLNEC_ACTIVE + NRLADULR_WC)
504 & max(PEAK_LRLUCB_UD,
505 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_UD)
507 & max(PEAK_LRLUCB_WC,
508 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_WC)
510 & max(PEAK_OOC_LRLUCB_UD,
511 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_UD)
513 & max(PEAK_OOC_LRLUCB_WC,
514 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_WC)
517 & NRLNEC_if_LR_CB + NRLNECLR_CB_UD)
519 & max(PEAK_OOC_LRCB_UD,
520 & NRLNECOOC_if_LR_LUCB + NRLNECLR_CB_UD)
522 PEAK_DYN_LRLU_UD = max( PEAK_DYN_LRLU_UD,
523 & SIZECB_UNDER_L0 + NRLADULR_UD )
524 PEAK_DYN_LRCB_UD = max( PEAK_DYN_LRCB_UD,
525 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB)
526 PEAK_DYN_LRLUCB_UD = max( PEAK_DYN_LRLUCB_UD,
527 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB + NRLADULR_UD)
528 PEAK_DYN_LRLU_WC = max( PEAK_DYN_LRLU_WC,
529 & SIZECB_UNDER_L0 + NRLADULR_WC)
530 PEAK_DYN_LRLUCB_WC = max( PEAK_DYN_LRLUCB_WC,
531 & SIZECB_UNDER_L0 + ISTKRLR_CB_WC + NRLADULR_WC)
535.GT.
IF (NFRMAXFR) MAXFR = NFR
538.EQ.
IF(KEEP(86)1)THEN
539.AND..NOT.
IF(MASTER(MUMPS_IN_OR_ROOT_SSARBR(
540 & PROCNODE(STEP(INODE)), KEEP(199)))
543 MAX_FRONT_SURFACE_LOCAL=max(MAX_FRONT_SURFACE_LOCAL,
545.NE.
IF (KEEP(268)0) THEN
546 MAX_FRONT_SURFACE_LOCAL=max(MAX_FRONT_SURFACE_LOCAL,
549.EQ.
ELSEIF(LEVEL2)THEN
550.EQ.
IF(KEEP(50)0)THEN
551 MAX_FRONT_SURFACE_LOCAL=max(MAX_FRONT_SURFACE_LOCAL,
554 MAX_FRONT_SURFACE_LOCAL=max(MAX_FRONT_SURFACE_LOCAL,
556.NE..AND..EQ.
IF (KEEP(219)0KEEP(50)2) THEN
557 MAX_FRONT_SURFACE_LOCAL=max(MAX_FRONT_SURFACE_LOCAL,
558 & NELIM8*(NELIM8+1_8))
566.EQ.
IF (KEEP(50)0) THEN
567 SBUFS_FR = max(SBUFS_FR, NFR*LKJIB_FR+LKJIB_FR+4)
568 SBUFS_LR = max(SBUFS_LR, NFR*LKJIB_LR+LKJIB_LR+4)
570 SBUFS_FR = max(SBUFS_FR, NELIM*LKJIB_FR+NELIM+6)
571 SBUFS_LR = max(SBUFS_LR, NELIM*LKJIB_LR+NELIM+6)
574.EQ.
if (KEEP(50)0) THEN
575 SBUFR_FR = max(SBUFR_FR, NFR*LKJIB_FR+LKJIB_FR+4)
576 SBUFR_LR = max(SBUFR_LR, NFR*LKJIB_LR+LKJIB_LR+4)
578 SBUFR_FR = max( SBUFR_FR, NELIM*LKJIB_FR+NELIM+6 )
579 SBUFR_LR = max( SBUFR_LR, NELIM*LKJIB_LR+NELIM+6 )
580 SBUFS_FR = max( SBUFS_FR, NBROWMAX*LKJIB_FR+6 )
581 SBUFS_LR = max( SBUFS_LR, NBROWMAX*LKJIB_LR+6 )
582 SBUFR_FR = max( SBUFR_FR, NBROWMAX*LKJIB_FR+6 )
583 SBUFR_LR = max( SBUFR_LR, NBROWMAX*LKJIB_LR+6 )
588.AND..EQ.
IF ( (MASTER) (LEVEL1) ) THEN
589 NIRADU = NIRADU + 2*NFR + SIZEHEADER
590 NIRADU_OOC = NIRADU_OOC + 2*NFR + SIZEHEADER_OOC
591 PANEL_SIZE = ZMUMPS_OOC_GET_PANEL_SIZE(
592 & 2_8*int(KEEP(226),8), NFR, KEEP(227), KEEP(50))
593 NIRADU_OOC = NIRADU_OOC +
594 & EXTRA_PERM_INFO_OOC*(2+NELIM + NELIM/PANEL_SIZE+1)
595.EQ.
IF (KEEP(50)0) THEN
596 NRLADU_CURRENT = int(NELIM,8)*int(2*NFR-NELIM,8)
597 NRLADU = NRLADU + NRLADU_CURRENT
598 MAX_SIZE_FACTOR=max(MAX_SIZE_FACTOR,NRLADU_CURRENT)
600.GT..AND..NE.
IF ( KEEP(459) 1 KEEP(50)0 ) THEN
601 CALL MUMPS_LDLTPANEL_STORAGE( NELIM, KEEP,
602 & IDUMMY_ARRAY(1), NRLADU_CURRENT )
603 SIZEFRNOCBLU = int(NELIM,8)*int(NELIM,8) -
605 NRLADU_CURRENT = NRLADU_CURRENT +
606 & int(NELIM,8) * int(NFR-NELIM,8)
608 NRLADU_CURRENT = int(NELIM,8)*int(NFR,8)
610 NRLADU = NRLADU + NRLADU_CURRENT
611 MAX_SIZE_FACTOR=max(MAX_SIZE_FACTOR,NRLADU_CURRENT)
613.EQ..AND..EQ.
IF (INODEKEEP(20)(KEEP(60)1)) THEN
614 I_PROCESS_SCHUR_K60_1 = .TRUE.
615 NRLADU_CURRENT_K60_1 = NRLADU_CURRENT
617 IF (COMPRESS_PANEL) THEN
618 NRLADU_if_LR_LU = NRLADU_if_LR_LU + 0_8
619 NRLADU_CURRENT_MISSING = NRLADU_CURRENT
620 NRLADULR_UD = NRLADULR_UD +
621 & NRLADU_CURRENT*K464_8/1000_8
622 NRLADULR_WC = NRLADULR_WC +
625 NRLADU_if_LR_LU = NRLADU_if_LR_LU + NRLADU_CURRENT
626 NRLADU_CURRENT_MISSING = 0_8
628 SIZECBI = 2* NCB + SIZEHEADER
629.EQ.
ELSEIF (LEVEL2) THEN
631 NIRADU = NIRADU+SIZEHEADER +SLAVEF-1+2*NFR
632 NIRADU_OOC = NIRADU_OOC+SIZEHEADER_OOC +SLAVEF-1+2*NFR
633.EQ.
IF (KEEP(50)0) THEN
634 NRLADU_CURRENT = int(NFR,8)*int(NELIM,8)
638.GT..AND..NE.
IF ( KEEP(459) 1 KEEP(50) 0 ) THEN
639 CALL MUMPS_LDLTPANEL_STORAGE( NELIM, KEEP,
640 & IDUMMY_ARRAY(1), NRLADU_CURRENT )
641 SIZEFRNOCBLU = int(NELIM,8)*int(NELIM,8) -
644 NRLADU_CURRENT = int(NELIM,8)*int(NELIM,8)
647 PANEL_SIZE = ZMUMPS_OOC_GET_PANEL_SIZE(
648 & 2_8*int(KEEP(226),8), NBCOLFAC, KEEP(227), KEEP(50))
649 NIRADU_OOC = NIRADU_OOC +
650 & EXTRA_PERM_INFO_OOC*(2+NELIM + NELIM/PANEL_SIZE+1)
651 NRLADU = NRLADU + NRLADU_CURRENT
652 IF (COMPRESS_PANEL) THEN
653 NRLADU_if_LR_LU = NRLADU_if_LR_LU + 0_8
654 NRLADU_CURRENT_MISSING = NRLADU_CURRENT
655 NRLADULR_UD = NRLADULR_UD +
656 & NRLADU_CURRENT*K464_8/1000_8
657 NRLADULR_WC = NRLADULR_WC +
660 NRLADU_if_LR_LU = NRLADU_if_LR_LU + NRLADU_CURRENT
661 NRLADU_CURRENT_MISSING = NRLADU_CURRENT
663 MAX_SIZE_FACTOR=max(MAX_SIZE_FACTOR,NRLADU_CURRENT)
669 SIZECBI = NCB + SIZEHEADER + SLAVEF - 1
674 NIRADU = NIRADU+4+NELIM+NBROWMAX
675 NIRADU_OOC = NIRADU_OOC+4+NELIM+NBROWMAX
676.EQ.
IF (KEEP(50)0) THEN
677 NRLADU_CURRENT = int(NELIM,8)*int(NBROWMAX,8)
679 NRLADU_CURRENT = int(NELIM,8)*int(NCB/NSLAVES_LOC,8)
681 NRLADU = NRLADU + NRLADU_CURRENT
682 IF (COMPRESS_PANEL) THEN
683 NRLADU_if_LR_LU = NRLADU_if_LR_LU + 0_8
684 NRLADU_CURRENT_MISSING = NRLADU_CURRENT
685 NRLADULR_UD = NRLADULR_UD +
686 & NRLADU_CURRENT*K464_8/1000_8
687 NRLADULR_WC = NRLADULR_WC +
690 NRLADU_if_LR_LU = NRLADU_if_LR_LU + NRLADU_CURRENT
691 NRLADU_CURRENT_MISSING = 0
693 MAX_SIZE_FACTOR=max(MAX_SIZE_FACTOR,NRLADU_CURRENT)
694.EQ.
IF (KEEP(50)0) THEN
695 SIZECBI = 7 + NBROWMAX + NCB
697 SIZECBI = 8 + NBROWMAX + NCB
699.NE.
IF (KEEP(50)0) THEN
700 SIZECBI=SIZECBI+NSLAVES_LOC+
703 SIZECBI=SIZECBI+NSLAVES_LOC+
708 NIRNEC = max0(NIRNEC,
709 & NIRADU+ISTKI+SIZECBI+MAXITEMPCB)
710 NIRNEC_OOC = max0(NIRNEC_OOC,
711 & NIRADU_OOC+ISTKI_OOC+SIZECBI+MAXITEMPCB +
712 & (XSIZE_OOC-XSIZE_IC) )
713 CURRENT_ACTIVE_MEM = ISTKR+SIZECBINFR
714.NE..AND..EQ.
IF ( KEEP(50)0 LEVEL1 ) THEN
715 CURRENT_ACTIVE_MEM = CURRENT_ACTIVE_MEM +
716 & int(NELIM,8)*int(NCB,8)
718.NE..AND..GT.
IF ( KEEP(50)0 KEEP(459) 1 ) THEN
719 CURRENT_ACTIVE_MEM = CURRENT_ACTIVE_MEM + SIZEFRNOCBLU
721.AND..NE..AND.
IF (MASTER KEEP(219)0
722.EQ..AND..EQ.
& KEEP(50)2LEVEL2) THEN
723 CURRENT_ACTIVE_MEM = CURRENT_ACTIVE_MEM + int(NELIM,8)
725.EQ.
IF (SLAVEF1) THEN
727 & max(NRLNEC_if_LR_CB ,NRLADU+
728 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB)
730 & max(NRLNEC_if_LR_LUCB,NRLADU_if_LR_LU+
731 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB+
732 & NRLADU_CURRENT_MISSING)
735 & max(NRLNEC_if_LR_CB ,NRLADU+
736 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB+
739 & max(NRLNEC_if_LR_LUCB,NRLADU_if_LR_LU+
740 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB+
742 & NRLADU_CURRENT_MISSING)
744.NE..AND..AND.
IF (NSTK 0 INSSARBR
745.NE..AND..EQ.
& KEEP(234)0 KEEP(55)0) THEN
746 CURRENT_ACTIVE_MEM = CURRENT_ACTIVE_MEM - LSTKR(ITOP)
748.EQ.
IF (SLAVEF1) THEN
749 NRLNEC = max(NRLNEC,NRLADU+CURRENT_ACTIVE_MEM)
750 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE,NRLADU_CURRENT+
751 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM)
753 & max(NRLNEC_if_LR_LU,NRLADU_if_LR_LU+
754 & CURRENT_ACTIVE_MEM+NRLADU_CURRENT_MISSING)
755 NRLNECOOC_if_LR_LUCB =
756 & max(NRLNECOOC_if_LR_LUCB,
757 & NRLADU_CURRENT+NRLADU_ROOT_3+
758 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB)
760 NRLNEC = max(NRLNEC,NRLADU+CURRENT_ACTIVE_MEM+MAXTEMPCB)
761 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE,NRLADU_CURRENT+
762 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM+MAXTEMPCB)
764 & max(NRLNEC_if_LR_LU,NRLADU_if_LR_LU+
765 & CURRENT_ACTIVE_MEM+MAXTEMPCB+
766 & NRLADU_CURRENT_MISSING)
767 NRLNECOOC_if_LR_LUCB = max(NRLNECOOC_if_LR_LUCB,
768 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM-ISTKR+
769 & ISTKR_if_LRCB+MAXTEMPCB)
771 NRLNECLR_LUCB_UD = max(NRLNECLR_LUCB_UD,
772 & NRLADULR_UD+ISTKRLR_CB_UD)
773 NRLNECLR_LUCB_WC = max(NRLNECLR_LUCB_WC,
774 & NRLADULR_WC+ISTKRLR_CB_WC)
777 & NRLNEC_if_LR_LU + NRLADULR_UD)
779 & max(PEAK_OOC_LRLU_UD,
780 & NRLNEC_ACTIVE + NRLADULR_UD)
782 & max(PEAK_OOC_LRLU_WC,
783 & NRLNEC_ACTIVE + NRLADULR_WC)
785 & max(PEAK_LRLUCB_UD,
786 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_UD)
788 & max(PEAK_LRLUCB_WC,
789 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_WC)
791 & max(PEAK_OOC_LRLUCB_UD,
792 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_UD)
794 & max(PEAK_OOC_LRLUCB_WC,
795 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_WC)
798 & NRLNEC_if_LR_CB + NRLNECLR_CB_UD)
800 & max(PEAK_OOC_LRCB_UD,
801 & NRLNECOOC_if_LR_LUCB + NRLNECLR_CB_UD)
803 PEAK_DYN_LRLU_UD = max( PEAK_DYN_LRLU_UD,
804 & SIZECB_UNDER_L0 + NRLADULR_UD )
805 PEAK_DYN_LRCB_UD = max( PEAK_DYN_LRCB_UD,
806 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB)
807 PEAK_DYN_LRLUCB_UD = max( PEAK_DYN_LRLUCB_UD,
808 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB + NRLADULR_UD)
809 PEAK_DYN_LRLU_WC = max( PEAK_DYN_LRLU_WC,
810 & SIZECB_UNDER_L0 + NRLADULR_WC)
811 PEAK_DYN_LRLUCB_WC = max( PEAK_DYN_LRLUCB_WC,
812 & SIZECB_UNDER_L0 + ISTKRLR_CB_WC + NRLADULR_WC)
814.GT.
IF (NFRMAXFR) MAXFR = NFR
815.AND..AND..EQ.
IF (ABOVE_L0MASTER(LEVEL1)) THEN
816.GT.
DO WHILE (IFSON0)
817.EQ.
IF (TNSTK(STEP(IFSON))FLAG_L0OMP) THEN
818 NFRS = ND(STEP(IFSON))+KEEP(253)
826 NELIMS8=int(NELIMS,8)
829 SIZECBINFRS = NCBS8*NCBS8
830.EQ.
IF (KEEP(50)0) THEN
831 SIZECBS = SIZECBINFRS
833 IF ( PACKED_CB ) THEN
834 SIZECBS = (NCBS8*(NCBS8+1_8))/2_8
836 SIZECBS = SIZECBINFRS
840 CALL IS_FRONT_BLR_CANDIDATE
841 & (IFSON, LEVELS, NFRS, NELIMS,
842 & KEEP(494), 1, KEEP(490),
843 & KEEP(491), KEEP(492),
844 & KEEP(20), KEEP(60), DAD(STEP(IFSON)), KEEP(38),
846.EQ..OR..EQ.
COMPRESS_CBS = ((LRSTATUSS1)(LRSTATUSS3))
847 IF (COMPRESS_CBS) THEN
848 K465_8 = int(KEEP(465),8)
849 SIZECBSLR = SIZECBS*K465_8/1000_8
853 SIZECB_UNDER_L0 = SIZECB_UNDER_L0 - SIZECBS
854 SIZECB_UNDER_L0_IF_LRCB = SIZECB_UNDER_L0_IF_LRCB
857 IFSON = FRERE(STEP(IFSON))
864.AND..AND..NE.
IF (K==1 INSSARBRKEEP(234)0
865.AND..EQ.
& KEEP(55)0) THEN
867 CURRENT_ACTIVE_MEM = CURRENT_ACTIVE_MEM - LSTK
869 LSTK = LSTKR_if_LRCB(ITOP)
870 ISTKR_if_LRCB = ISTKR_if_LRCB - LSTK
871 LSTK = LSTKRLR_CB_UD(ITOP)
872 ISTKRLR_CB_UD = ISTKRLR_CB_UD - LSTK
873 LSTK = LSTKRLR_CB_WC(ITOP)
874 ISTKRLR_CB_WC = ISTKRLR_CB_WC - LSTK
877 ISTKI_OOC = ISTKI_OOC - STKI - (XSIZE_OOC-XSIZE_IC)
886.NE.
ELSE IF (LEVEL3) THEN
887.GT.
DO WHILE (IFSON0)
889 MASTERSON = MUMPS_PROCNODE(PROCNODE(STEP(IFSON)),KEEP(199))
891 LEVELSON = MUMPS_TYPENODE(PROCNODE(STEP(IFSON)),KEEP(199))
892.NOT.
if(FORCE_CAND) then
893.AND..NE..OR.
UPDATES =((MASTERSON(LEVELSON3))
896.and..ne.
if(MASTERSON(LEVELSON3)) then
898.eq.
else if(LEVELSON2) then
899 if ( I_AM_CAND(ISTEP_TO_INIV2(STEP(IFSON)))) then
907 LSTK = LSTKR_if_LRCB(ITOP)
908 ISTKR_if_LRCB = ISTKR_if_LRCB - LSTK
909 LSTK = LSTKRLR_CB_UD(ITOP)
910 ISTKRLR_CB_UD = ISTKRLR_CB_UD - LSTK
911 LSTK = LSTKRLR_CB_WC(ITOP)
912 ISTKRLR_CB_WC = ISTKRLR_CB_WC - LSTK
915 ISTKI_OOC = ISTKI_OOC - STKI - (XSIZE_OOC-XSIZE_IC)
923 IFSON = FRERE(STEP(IFSON))
927.NE..OR..EQ.
& ( (INODEKEEP(20))(KEEP(60)0) )
929.NE..OR..LE.
& ( (INODEKEEP(38))(KEEP(60)1) )
932 ENTRIES_NODE_LOWER_PART = int(NFR-NELIM,8) * int(NELIM,8)
933.EQ.
IF ( KEEP(50)0 ) THEN
934 ENTRIES_NODE_UPPER_PART = int(NFR,8) * int(NELIM,8)
936 ENTRIES_NODE_UPPER_PART =
937 & (int(NELIM,8)*int(NELIM+1,8))/2_8
939.EQ..AND..EQ.
IF (KEEP(50)2 LEVEL3) THEN
940 CALL MUMPS_GET_FLOPS_COST(NFR,
944 CALL MUMPS_GET_FLOPS_COST(NFR,
945 & NELIM, NELIM,KEEP(50),
949 CALL MUMPS_GET_FLOPS_COST(NFR,
950 & NELIM, NELIM,KEEP(50),
952 OPS_NODE_SLAVE=OPS_NODE-OPS_NODE_MASTER
956 ENTRIES_NODE_UPPER_PART = 0_8
957 ENTRIES_NODE_LOWER_PART = 0_8
960 ENTRIES_IN_FACTORS_LOC_MASTERS =
961 & ENTRIES_IN_FACTORS_LOC_MASTERS +
962 & ENTRIES_NODE_UPPER_PART +
963 & ENTRIES_NODE_LOWER_PART
965.OR..EQ.
IF (UPDATELEVEL3) THEN
966.EQ.
IF ( LEVEL 3 ) THEN
968 OPSA_LOC = OPSA_LOC +
971 & int(ROOT_NPROW*ROOT_NPCOL,8)
973 ENTRIES_IN_FACTORS_LOC = ENTRIES_IN_FACTORS_LOC +
974 & ENTRIES_NODE_UPPER_PART /
975 & int(ROOT_NPROW*ROOT_NPCOL,8)
977 ENTRIES_IN_FACTORS_LOC = ENTRIES_IN_FACTORS_LOC +
978 & mod(ENTRIES_NODE_UPPER_PART,
982.AND..EQ.
ELSE IF (MASTER LEVEL2) THEN
983 OPSA_LOC = OPSA_LOC + OPS_NODE_MASTER
984 ENTRIES_IN_FACTORS_LOC = ENTRIES_IN_FACTORS_LOC +
985 & ENTRIES_NODE_UPPER_PART +
986 & mod(ENTRIES_NODE_LOWER_PART,
987 & int(NSLAVES_LOC,8))
988.AND..EQ.
ELSE IF (MASTER LEVEL1) THEN
989 OPSA_LOC = OPSA_LOC + OPS_NODE
990 ENTRIES_IN_FACTORS_LOC = ENTRIES_IN_FACTORS_LOC +
991 & ENTRIES_NODE_UPPER_PART +
992 & ENTRIES_NODE_LOWER_PART
993 ELSE IF (UPDATE) THEN
994 OPSA_LOC = OPSA_LOC +
995 & dble(OPS_NODE_SLAVE)/dble(NSLAVES_LOC)
996 ENTRIES_IN_FACTORS_LOC = ENTRIES_IN_FACTORS_LOC
997 & + ENTRIES_NODE_LOWER_PART /
1000 IF (MUMPS_IN_OR_ROOT_SSARBR(PROCNODE(STEP(INODE)),
1001.OR.
& KEEP(199)) NE(STEP(INODE))==0) THEN
1002 IF (LEVEL == 1) THEN
1003 OPS_SBTR_LOC = OPS_SBTR_LOC + OPS_NODE
1005 CALL MUMPS_GET_FLOPS_COST(NFR,
1006 & NELIM, NELIM,KEEP(50),
1008 OPS_SBTR_LOC = OPS_SBTR_LOC + OPS_NODE
1012.EQ.
IF (IFATH 0) THEN
1019 NFRF = ND(STEP(IFATH))+KEEP(253)
1020.EQ.
IF (DAD(STEP(IFATH))0) THEN
1021 NELIMF = NFRF-KEEP(253)
1031 NCBF = NFRF - NELIMF
1032 LEVELF = MUMPS_TYPENODE(PROCNODE(STEP(IFATH)),KEEP(199))
1033 MASTERF= MUMPS_PROCNODE(PROCNODE(STEP(IFATH)),
1034.EQ.
& KEEP(199))MYID
1036.NOT.
if(FORCE_CAND) then
1037.AND..NE..OR..EQ.
UPDATEF= ((MASTERF(LEVELF3))LEVELF2)
1039.and..ne.
if(MASTERF(LEVELF3)) then
1041.eq.
else if (LEVELF2) then
1042 if ( I_AM_CAND(ISTEP_TO_INIV2(STEP(IFATH)))) THEN
1047.OR.
CONCERNED = UPDATEF UPDATE
1048.NE.
IF (LEVELF 2) THEN
1051.EQ.
IF (KEEP(48) 5) THEN
1053 IF (FORCE_CAND) THEN
1054 NSLAVES_LOC=CANDIDATES(SLAVEF+1,
1055 & ISTEP_TO_INIV2(STEP(IFATH)))
1057 NSLAVES_LOC=SLAVEF-1
1063 CALL MUMPS_MAX_SURFCB_NBROWS( WHAT, KEEP, KEEP8,
1064 & NCBF, NFRF, NSLAVES_LOC, NBROWMAXF, IDUMMY8
1067.EQ..AND..AND.
IF(LEVEL1UPDATE
1068.OR..EQ.
& (UPDATEFLEVELF2)
1069.AND..NE.
& LEVELF3) THEN
1070.AND..NE.
IF ( INSSARBR KEEP(234)0) THEN
1071 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE,NRLADU_CURRENT+
1072 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM)
1073 NRLNEC = max(NRLNEC,NRLADU+CURRENT_ACTIVE_MEM)
1075 & max(NRLNEC_if_LR_LU,NRLADU_if_LR_LU+
1076 & CURRENT_ACTIVE_MEM+
1077 & NRLADU_CURRENT_MISSING)
1079 & max(NRLNEC_if_LR_CB ,NRLADU+
1080 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB)
1082 & max(NRLNEC_if_LR_LUCB,NRLADU_if_LR_LU+
1083 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB+
1084 & NRLADU_CURRENT_MISSING)
1085 NRLNECOOC_if_LR_LUCB = max(NRLNECOOC_if_LR_LUCB,
1086 & NRLADU_CURRENT+NRLADU_ROOT_3+
1087 & CURRENT_ACTIVE_MEM-ISTKR+ISTKR_if_LRCB)
1089 NRLNEC = max(NRLNEC,NRLADU+CURRENT_ACTIVE_MEM+SIZECB)
1090 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE,NRLADU_CURRENT+
1091 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM+SIZECB)
1093 & max(NRLNEC_if_LR_LU,NRLADU_if_LR_LU+
1094 & CURRENT_ACTIVE_MEM+SIZECB+
1095 & NRLADU_CURRENT_MISSING)
1097 & max(NRLNEC_if_LR_CB ,NRLADU+
1098 & CURRENT_ACTIVE_MEM-ISTKR+
1099 & ISTKR_if_LRCB+ SIZECB)
1101 & max(NRLNEC_if_LR_LUCB,NRLADU_if_LR_LU+
1102 & CURRENT_ACTIVE_MEM-ISTKR+
1103 & ISTKR_if_LRCB+ SIZECB+
1104 & NRLADU_CURRENT_MISSING)
1105 NRLNECOOC_if_LR_LUCB = max(NRLNECOOC_if_LR_LUCB,
1106 & NRLADU_CURRENT+NRLADU_ROOT_3+
1107 & CURRENT_ACTIVE_MEM-ISTKR+
1108 & ISTKR_if_LRCB+ SIZECB)
1112 & NRLNEC_if_LR_LU + NRLADULR_UD)
1114 & max(PEAK_OOC_LRLU_UD,
1115 & NRLNEC_ACTIVE + NRLADULR_UD)
1117 & max(PEAK_OOC_LRLU_WC,
1118 & NRLNEC_ACTIVE + NRLADULR_WC)
1120 & max(PEAK_LRLUCB_UD,
1121 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_UD)
1123 & max(PEAK_LRLUCB_WC,
1124 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_WC)
1125 PEAK_OOC_LRLUCB_UD =
1126 & max(PEAK_OOC_LRLUCB_UD,
1127 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_UD)
1128 PEAK_OOC_LRLUCB_WC =
1129 & max(PEAK_OOC_LRLUCB_WC,
1130 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_WC)
1133 & NRLNEC_if_LR_CB + NRLNECLR_CB_UD)
1135 & max(PEAK_OOC_LRCB_UD,
1136 & NRLNECOOC_if_LR_LUCB + NRLNECLR_CB_UD)
1138 PEAK_DYN_LRLU_UD = max( PEAK_DYN_LRLU_UD,
1139 & SIZECB_UNDER_L0 + NRLADULR_UD )
1140 PEAK_DYN_LRCB_UD = max( PEAK_DYN_LRCB_UD,
1141 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB)
1142 PEAK_DYN_LRLUCB_UD = max( PEAK_DYN_LRLUCB_UD,
1143 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB + NRLADULR_UD)
1144 PEAK_DYN_LRLU_WC = max( PEAK_DYN_LRLU_WC,
1145 & SIZECB_UNDER_L0 + NRLADULR_WC)
1146 PEAK_DYN_LRLUCB_WC = max( PEAK_DYN_LRLUCB_WC,
1147 & SIZECB_UNDER_L0 + ISTKRLR_CB_WC + NRLADULR_WC)
1150.AND..EQ..AND..NOT.
IF (UPDATE LEVEL2 MASTER) THEN
1152 & max(NRLNEC,NRLADU+CURRENT_ACTIVE_MEM+NRLADU_CURRENT)
1153 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE,2_8*NRLADU_CURRENT+
1154 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM)
1155.NOT.
IF (COMPRESS_PANEL) THEN
1156 NRLNEC_if_LR_LU = max(
1157 & NRLNEC_if_LR_LU,NRLADU_if_LR_LU+
1158 & CURRENT_ACTIVE_MEM+NRLADU_CURRENT)
1159 NRLNEC_if_LR_CB = max(
1160 & NRLNEC_if_LR_CB ,NRLADU +
1161 & CURRENT_ACTIVE_MEM-ISTKR +
1162 & ISTKR_if_LRCB+NRLADU_CURRENT)
1163 NRLNEC_if_LR_LUCB = max(
1164 & NRLNEC_if_LR_LUCB,NRLADU_if_LR_LU+
1165 & CURRENT_ACTIVE_MEM-ISTKR +
1166 & ISTKR_if_LRCB+NRLADU_CURRENT)
1167 NRLNECOOC_if_LR_LUCB = max(NRLNECOOC_if_LR_LUCB,
1168 & 2_8*NRLADU_CURRENT+
1169 & NRLADU_ROOT_3+CURRENT_ACTIVE_MEM-ISTKR+
1173 & NRLNEC_if_LR_LU + NRLADULR_UD)
1175 & max(PEAK_OOC_LRLU_UD,
1176 & NRLNEC_ACTIVE + NRLADULR_UD)
1178 & max(PEAK_OOC_LRLU_WC,
1179 & NRLNEC_ACTIVE + NRLADULR_WC)
1181 & max(PEAK_LRLUCB_UD,
1182 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_UD)
1184 & max(PEAK_LRLUCB_WC,
1185 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_WC)
1186 PEAK_OOC_LRLUCB_UD =
1187 & max(PEAK_OOC_LRLUCB_UD,
1188 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_UD)
1189 PEAK_OOC_LRLUCB_WC =
1190 & max(PEAK_OOC_LRLUCB_WC,
1191 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_WC)
1194 & NRLNEC_if_LR_CB + NRLNECLR_CB_UD)
1196 & max(PEAK_OOC_LRCB_UD,
1197 & NRLNECOOC_if_LR_LUCB + NRLNECLR_CB_UD)
1199 PEAK_DYN_LRLU_UD = max( PEAK_DYN_LRLU_UD,
1200 & SIZECB_UNDER_L0 + NRLADULR_UD )
1201 PEAK_DYN_LRCB_UD = max( PEAK_DYN_LRCB_UD,
1202 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB)
1203 PEAK_DYN_LRLUCB_UD = max( PEAK_DYN_LRLUCB_UD,
1204 & SIZECB_UNDER_L0_IF_LRCB + ISTKR_if_LRCB + NRLADULR_UD)
1205 PEAK_DYN_LRLU_WC = max( PEAK_DYN_LRLU_WC,
1206 & SIZECB_UNDER_L0 + NRLADULR_WC)
1207 PEAK_DYN_LRLUCB_WC = max( PEAK_DYN_LRLUCB_WC,
1208 & SIZECB_UNDER_L0 + ISTKRLR_CB_WC + NRLADULR_WC)
1212.EQ.
IF (LEVELF3) THEN
1213.EQ.
IF (LEVEL1) THEN
1214 LEV3MAXREC = int(min(NCB,LOCAL_M),8) *
1215 & int(min(NCB,LOCAL_N),8)
1217 LEV3MAXREC = min(SIZECB,
1218 & int(min(NBROWMAX,LOCAL_M),8)
1219 & *int(min(NCB,LOCAL_N),8))
1221 MAXTEMPCB = max(MAXTEMPCB, LEV3MAXREC)
1222 MAXITEMPCB = max(MAXITEMPCB,SIZECBI+SIZEHEADER)
1223 SBUFR_CB = max(SBUFR_CB, LEV3MAXREC+int(SIZECBI,8))
1224 NIRNEC = max(NIRNEC,NIRADU+ISTKI+
1225 & min(NCB,LOCAL_M)+ min(NCB,LOCAL_N)+SIZEHEADER)
1226 NIRNEC_OOC = max(NIRNEC_OOC,NIRADU_OOC+ISTKI_OOC+
1227 & min(NCB,LOCAL_M)+ min(NCB,LOCAL_N)+SIZEHEADER)
1230.EQ.
IF (LEVELF2) THEN
1231.AND..NE..OR..NOT.
IF (UPDATE(LEVEL2MASTER)) THEN
1233 NBR = min(NBROWMAXF,NBROWMAX)
1235 NBR = min(max(NELIMF,NBROWMAXF),NBROWMAX)
1237.EQ.
IF (KEEP(50)0) THEN
1238 CBMAXS = int(NBR,8)*int(NCB,8)
1240 CBMAXS = int(NBR,8)*int(NCB,8) -
1241 & (int(NBR,8)*int(NBR-1,8))/2_8
1247.EQ.
IF (LEVEL1) THEN
1248.NOT.
IF (UPDATE) THEN
1249 NBR = min(NELIMF, NCB)
1254 NBR = min(NELIMF, NBROWMAX)
1256.EQ.
IF (KEEP(50)0) THEN
1257 CBMAXR = int(NBR,8)*NCB8
1259 CBMAXR = int(NBR,8)*int(min(NCB,NELIMF),8)-
1260 & (int(NBR,8)*int(NBR-1,8))/2_8
1261 CBMAXR = min(CBMAXR, int(NELIMF,8)*int(NELIMF+1,8)/2_8)
1262 CBMAXR = min(CBMAXR, SIZECB)
1263.EQ..AND..NOT.
IF ((LEVEL1)( PACKED_CB)) THEN
1264 CBMAXR = min(CBMAXR,(NCB8*(NCB8+1_8))/2_8)
1267 ELSE IF (UPDATEF) THEN
1268 NBR = min(NBROWMAXF,NBROWMAX)
1269 CBMAXR = int(NBR,8) * NCB8
1270.NE.
IF (KEEP(50)0) THEN
1271 CBMAXR = CBMAXR - (int(NBR,8)*(int(NBR-1,8)))/2_8
1276.EQ.
ELSEIF (LEVELF3) THEN
1278.AND..NOT..AND..EQ.
IF (UPDATE (MASTERLEVEL2)) THEN
1286 NBR = min(NFRF,NBROWMAX)
1287.EQ..AND.
IF ((LEVEL1)UPDATE) THEN
1290 CBMAXR = int(NBR,8)*int(min(NFRF,NCB),8)
1292 & CBMAXR = min(CBMAXR, SIZECB_SLAVE)
1293.NE.
IF ( KEEP(50)0 ) THEN
1294 CBMAXR = min(CBMAXR,(int(NFRF,8)*int(NFRF+1,8))/2_8)
1296 CBMAXR = min(CBMAXR,int(NFRF,8)*int(NFRF,8))
1304 CBMAXS = min(CBMAXS, SIZECB)
1305.not..eq..AND.
IF ( ( LEVELF 1 UPDATEF ) )THEN
1306 SBUFS_CB = max(SBUFS_CB, CBMAXS+int(SIZECBI,8))
1312 SIZECBI = 2 * NCB + SIZEHEADER
1313.EQ.
IF (LEVEL1) THEN
1314.NE..AND..NE.
IF (KEEP(50)0LEVELF3
1315.AND.
& PACKED_CB) THEN
1316 SIZECB = (NCB8*(NCB8+1_8))/2_8
1322 SIZECBI = 2+ XSIZE_IC
1324.EQ.
ELSE IF (LEVELF1) THEN
1325 SIZECB = min(CBMAXR,SIZECB)
1326 IF (COMPRESS_CB) THEN
1327 SIZECBLR_UD = min(SIZECBLR_UD,SIZECB)
1328 SIZECBLR_WC = min(SIZECBLR_WC,SIZECB)
1329 SIZECB_if_LRCB = min(SIZECB_if_LRCB,SIZECB)
1331 SIZECBI = 2 * NCB + 9
1332 SBUFR_CB = max(SBUFR_CB, int(SIZECBI,8)+SIZECB)
1333 SIZECBI = 2 * NCB + SIZEHEADER
1335 SIZECBI = 2 * NCB + 9
1336 SBUFR_CB = max(SBUFR_CB,
1337 & min(SIZECB,CBMAXR) + int(SIZECBI,8))
1338 MAXTEMPCB = max(MAXTEMPCB, min(SIZECB,CBMAXR))
1339 SIZECBI = 2 * NCB + SIZEHEADER
1340 MAXITEMPCB = max(MAXITEMPCB, SIZECBI)
1341.NOT.
IF ( MASTERF ) THEN
1344 SIZECBI = NCB + SIZEHEADER + SLAVEF - 1
1349 SIZECB_if_LRCB = 0_8
1352 SIZECB = SIZECB_SLAVE
1353 SIZECBLR_UD = SIZECBLR_SLAVE_UD
1354 SIZECBLR_WC = SIZECBLR_SLAVE_WC
1355 SIZECB_if_LRCB = SIZECB_SLAVE_if_LRCB
1356 MAXTEMPCB = max(MAXTEMPCB, min(CBMAXR,SIZECB) )
1357 MAXITEMPCB = max(MAXITEMPCB,NBROWMAX+NCB+SIZEHEADER)
1359.AND..NOT..AND..EQ.
& (UPDATE(MASTER)(NSLAVES_LOC1))
1361 & SBUFR_CB = max(SBUFR_CB,
1362 & min(CBMAXR,SIZECB) + int(NBROWMAX + NCB + 6,8))
1365 SIZECB_SLAVE_if_LRCB = 0_8
1369 SIZECBI = 2 + XSIZE_IC
1373 ELSE IF (UPDATE) THEN
1375 SIZECBI = NCB + SIZEHEADER + SLAVEF - 1
1379.EQ.
IF (KEEP(50)0) THEN
1380 SIZECBI = SIZECBI + NBROWMAX + NFR +
1383 SIZECBI = SIZECBI + NBROWMAX + NFR +
1384 & SIZEHEADER+ NSLAVES_LOC
1389 SIZECBI = NCB + SIZEHEADER + SLAVEF - 1
1393 SIZECB_SLAVE_if_LRCB = 0_8
1399.NE.
IF (LEVELF3) THEN
1402 SIZECB_SLAVE_if_LRCB = 0_8
1406.EQ..AND..NE.
IF ( (LEVEL1) (LEVELF1) ) THEN
1408 SIZECB = (NCB8*(NCB8+1_8))/2_8
1412 SIZECBI = 2 * NCB + SIZEHEADER
1413.EQ.
ELSE IF (LEVEL2) THEN
1417 SIZECB = SIZECB_SLAVE
1418 SIZECBLR_UD = SIZECBLR_SLAVE_UD
1419 SIZECBLR_WC = SIZECBLR_SLAVE_WC
1420 SIZECB_if_LRCB = SIZECB_SLAVE_if_LRCB
1421 SIZECBI = NBROWMAX + NFR + SIZEHEADER
1427.EQ.
IF (FRERE(STEP(INODE))0) THEN
1432.GT.
IF ( ITOP NSTEPS ) THEN
1435 LSTKI(ITOP) = SIZECBI
1436 ISTKI=ISTKI + SIZECBI
1437 ISTKI_OOC = ISTKI_OOC + SIZECBI + (XSIZE_OOC-XSIZE_IC)
1438 LSTKR(ITOP) = SIZECB
1439 ISTKR = ISTKR + LSTKR(ITOP)
1440 NRLNEC = max(NRLNEC,NRLADU+ISTKR+MAXTEMPCB)
1441 NIRNEC = max0(NIRNEC,NIRADU+ISTKI+MAXITEMPCB)
1442 NIRNEC_OOC = max0(NIRNEC_OOC,NIRADU_OOC+ISTKI_OOC+
1444 & (XSIZE_OOC-XSIZE_IC) )
1445 NRLNEC_if_LR_LU = max(NRLNEC_if_LR_LU,
1446 & NRLADU_if_LR_LU+ISTKR+MAXTEMPCB)
1447 LSTKR_if_LRCB(ITOP) = SIZECB_if_LRCB
1448 ISTKR_if_LRCB = ISTKR_if_LRCB + LSTKR_if_LRCB(ITOP)
1449 NRLNEC_if_LR_CB = max(NRLNEC_if_LR_CB,
1450 & NRLADU_if_LR_LU+ISTKR_if_LRCB +
1452 NRLNEC_if_LR_LUCB = max(NRLNEC_if_LR_LUCB,
1453 & NRLADU_if_LR_LU+ISTKR_if_LRCB +
1455 LSTKRLR_CB_UD(ITOP) = SIZECBLR_UD
1456 ISTKRLR_CB_UD = ISTKRLR_CB_UD + LSTKRLR_CB_UD(ITOP)
1457 LSTKRLR_CB_WC(ITOP) = SIZECBLR_WC
1458 ISTKRLR_CB_WC = ISTKRLR_CB_WC + LSTKRLR_CB_WC(ITOP)
1459 NRLNECLR_CB_UD = max(NRLNECLR_CB_UD, ISTKRLR_CB_UD)
1460 NRLNECLR_LUCB_UD = max(NRLNECLR_LUCB_UD,
1461 & NRLADULR_UD+ISTKRLR_CB_UD)
1462 NRLNECLR_LUCB_WC = max(NRLNECLR_LUCB_WC,
1463 & NRLADULR_WC+ISTKRLR_CB_WC)
1466 TNSTK(STEP(IFATH)) = TNSTK(STEP(IFATH)) - 1
1467.EQ.
IF ( TNSTK(STEP(IFATH)) 0 ) THEN
1475 NRLNEC = max(NRLNEC, NRLADU+int(KEEP(30),8))
1476 NRLNEC_ACTIVE = max(NRLNEC_ACTIVE, MAX_SIZE_FACTOR+
1478 NRLNEC_if_LR_LU = max(NRLNEC_if_LR_LU,
1479 & NRLADU_if_LR_LU + int(KEEP(30),8))
1480 NRLNEC_if_LR_LUCB = max(NRLNEC_if_LR_LUCB,
1481 & NRLADU_if_LR_LU + int(KEEP(30),8))
1482 NRLNEC_if_LR_CB = max(NRLNEC_if_LR_CB,
1483 & NRLADU + int(KEEP(30),8))
1484 NRLNECOOC_if_LR_LUCB = max(NRLNECOOC_if_LR_LUCB,
1485 & MAX_SIZE_FACTOR+ int(KEEP(30),8))
1486 PEAK_FR = SAVE_SIZECB_UNDER_L0 + NRLNEC
1487 PEAK_FR_OOC = SAVE_SIZECB_UNDER_L0 + NRLNEC_ACTIVE
1490 & NRLNEC_if_LR_CB + NRLNECLR_CB_UD)
1493 & NRLNEC_if_LR_LU + NRLADULR_UD)
1495 & max(PEAK_OOC_LRLU_UD,
1496 & NRLNEC_ACTIVE + NRLADULR_UD)
1498 & max(PEAK_OOC_LRLU_WC,
1499 & NRLNEC_ACTIVE + NRLADULR_WC)
1501 & max(PEAK_LRLUCB_UD,
1502 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_UD)
1504 & max(PEAK_LRLUCB_WC,
1505 & NRLNEC_if_LR_LUCB + NRLNECLR_LUCB_WC)
1506 PEAK_OOC_LRLUCB_UD =
1507 & max(PEAK_OOC_LRLUCB_UD,
1508 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_UD)
1509 PEAK_OOC_LRLUCB_WC =
1510 & max(PEAK_OOC_LRLUCB_WC,
1511 & NRLNECOOC_if_LR_LUCB + NRLNECLR_LUCB_WC)
1512.EQ.
IF (KEEP(60)1) THEN
1513 IF (I_PROCESS_SCHUR_K60_1) THEN
1514 NRLADU = NRLADU - NRLADU_CURRENT_K60_1
1515 NRLADU_IF_LR_LU = NRLADU_IF_LR_LU - NRLADU_CURRENT_K60_1
1521 & NRLNEC_if_LR_CB + SAVE_SIZECB_UNDER_L0_IF_LRCB)
1524 & NRLNEC_if_LR_CB + PEAK_DYN_LRCB_UD)
1525 PEAK_LRLU_UD = max(PEAK_LRLU_UD,
1526 & NRLNEC_if_LR_LU + SAVE_SIZECB_UNDER_L0)
1527 PEAK_LRLU_UD = max(PEAK_LRLU_UD,
1528 & NRLNEC_if_LR_LU + PEAK_DYN_LRLU_UD)
1530 & max(PEAK_OOC_LRLU_UD,
1531 & NRLNEC_ACTIVE + SAVE_SIZECB_UNDER_L0)
1533 & max(PEAK_OOC_LRLU_UD,
1534 & NRLNEC_ACTIVE + PEAK_DYN_LRLU_UD)
1536 & max(PEAK_OOC_LRLU_WC,
1537 & NRLNEC_ACTIVE + SAVE_SIZECB_UNDER_L0)
1539 & max(PEAK_OOC_LRLU_WC,
1540 & NRLNEC_ACTIVE + PEAK_DYN_LRLU_WC)
1542 & max(PEAK_LRLUCB_UD,
1543 & NRLNEC_if_LR_LUCB + SAVE_SIZECB_UNDER_L0_IF_LRCB)
1545 & max(PEAK_LRLUCB_UD,
1546 & NRLNEC_if_LR_LUCB + PEAK_DYN_LRLUCB_UD)
1548 & max(PEAK_LRLUCB_WC,
1549 & NRLNEC_if_LR_LUCB + SAVE_SIZECB_UNDER_L0)
1551 & max(PEAK_LRLUCB_WC,
1552 & NRLNEC_if_LR_LUCB + PEAK_DYN_LRLUCB_WC)
1553 PEAK_OOC_LRLUCB_UD =
1554 & max(PEAK_OOC_LRLUCB_UD,
1555 & NRLNECOOC_if_LR_LUCB + SAVE_SIZECB_UNDER_L0_IF_LRCB)
1556 PEAK_OOC_LRLUCB_UD =
1557 & max(PEAK_OOC_LRLUCB_UD,
1558 & NRLNECOOC_if_LR_LUCB + PEAK_DYN_LRLUCB_UD)
1559 PEAK_OOC_LRLUCB_WC =
1560 & max(PEAK_OOC_LRLUCB_WC,
1561 & NRLNECOOC_if_LR_LUCB + SAVE_SIZECB_UNDER_L0)
1562 PEAK_OOC_LRLUCB_WC =
1563 & max(PEAK_OOC_LRLUCB_WC,
1564 & NRLNECOOC_if_LR_LUCB + PEAK_DYN_LRLUCB_WC)
1566 SBUF_RECOLD = max(int(SBUFR_FR,8),SBUFR_CB)
1567 SBUF_RECOLD = max(SBUF_RECOLD,
1568 & MAXTEMPCB+int(MAXITEMPCB,8)) + 10_8
1569 SBUF_REC_FR = max(SBUFR_FR, int(min(100000_8,SBUFR_CB))) + 17
1570 SBUF_REC_LR = max(SBUFR_LR, int(min(100000_8,SBUFR_CB))) + 17
1571 SBUF_REC_FR = SBUF_REC_FR + 2 * KEEP(127) + SLAVEF - 1 + 7
1572 SBUF_REC_LR = SBUF_REC_LR + 2 * KEEP(127) + SLAVEF - 1 + 7
1573 SBUF_SEND_FR = max(SBUFS_FR, int(min(100000_8,SBUFR_CB)))+17
1574 SBUF_SEND_LR = max(SBUFS_LR, int(min(100000_8,SBUFR_CB)))+17
1575.NE..AND..EQ.
IF(KEEP(219)0KEEP(50) 2) THEN
1576 SBUF_RECOLD = SBUF_RECOLD+int(KEEP(108)+1,8)
1577 SBUF_REC_FR = SBUF_REC_FR+KEEP(108)+1
1578 SBUF_REC_LR = SBUF_REC_LR+KEEP(108)+1
1579 SBUF_SEND_FR = SBUF_SEND_FR+KEEP(108)+1
1580 SBUF_SEND_LR = SBUF_SEND_LR+KEEP(108)+1
1582.EQ.
IF (SLAVEF1) THEN
1589 DEALLOCATE( LSTKR, TNSTK, LSTKI,
1590 & LSTKR_if_LRCB, LSTKRLR_CB_UD, LSTKRLR_CB_WC
1593 KEEP(470) = KEEP(470)+ NBNODES_BLR
1595 KEEP(470) = NBNODES_BLR
1597.NOT.
IF (ABOVE_L0) THEN
1599 PEAK_FR_OOC = NRLNEC_ACTIVE
1601 MAXFR = max(MAXFR, MAXFR_UNDER_L0)
1602 MAX_FRONT_SURFACE_LOCAL = max (MAX_FRONT_SURFACE_LOCAL,
1603 & MAX_FRONT_SURFACE_LOCAL_L0)
1604 MAX_SIZE_FACTOR = max (MAX_SIZE_FACTOR,
1605 & MAX_SIZE_FACTOR_L0)
1606 ENTRIES_IN_FACTORS_LOC_MASTERS = ENTRIES_IN_FACTORS_LOC_MASTERS +
1607 & ENTRIES_IN_FACTORS_MASTERS_LO
1608 ENTRIES_IN_FACTORS_LOC = ENTRIES_IN_FACTORS_LOC +
1609 & ENTRIES_IN_FACTORS_UNDER_L0
1610 OPS_SBTR_LOC = OPS_SBTR_LOC + COST_SUBTREES_UNDER_LO
1611 OPSA_LOC = OPSA_LOC + OPSA_UNDER_L0
1612 OPS_SUBTREE = dble(OPS_SBTR_LOC)
1613 OPSA = dble(OPSA_LOC)
subroutine zmumps_ana_distm(myid, n, step, frere, fils, ipool, lipool, ne, dad, nd, procnode, slavef, above_l0, sizecb_under_l0, sizecb_under_l0_if_lrcb, maxfr_under_l0, max_front_surface_local_l0, max_size_factor_l0, entries_in_factors_under_l0, entries_in_factors_masters_lo, cost_subtrees_under_lo, opsa_under_l0, peak_fr, peak_fr_ooc, nrladu, niradu, nirnec, nrlnec, nrlnec_active, nrladu_if_lr_lu, nrlnec_if_lr_lu, nrlnec_if_lr_lucb, nrlnecooc_if_lr_lucb, nrlnec_if_lr_cb, nrladulr_ud, nrladulr_wc, nrlneclr_cb_ud, nrlneclr_lucb_ud, nrlneclr_lucb_wc, peak_lrlu_ud, peak_ooc_lrlu_ud, peak_ooc_lrlu_wc, peak_lrlucb_ud, peak_lrlucb_wc, peak_ooc_lrlucb_ud, peak_ooc_lrlucb_wc, peak_lrcb_ud, peak_ooc_lrcb_ud, niradu_ooc, nirnec_ooc, maxfr, opsa, uu, keep, keep8, local_m, local_n, sbuf_recold, sbuf_send_fr, sbuf_rec_fr, sbuf_send_lr, sbuf_rec_lr, ops_subtree, nsteps, i_am_cand, nmb_par2, istep_to_iniv2, candidates, iflag, ierror, max_front_surface_local, max_size_factor, entries_in_factors_loc, entries_in_factors_loc_masters, root_yes, root_nprow, root_npcol)