OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cmumps_sol_es Module Reference

Functions/Subroutines

subroutine, public cmumps_sol_es_init (size_of_block_arg, keep201)
subroutine, public cmumps_tree_prun_nodes (fill, dad, ne_steps, frere, keep28, fils, step, n, nodes_rhs, nb_nodes_rhs, to_process, nb_prun_nodes, nb_prun_roots, nb_prun_leaves, pruned_list, pruned_roots, pruned_leaves)
subroutine, public cmumps_chain_prun_nodes (fill, dad, keep28, step, n, nodes_rhs, nb_nodes_rhs, pruned_sons, to_process, nb_prun_nodes, nb_prun_roots, nb_prun_leaves, pruned_list, pruned_roots, pruned_leaves)
subroutine, public cmumps_initialize_rhs_bounds (step, n, irhs_ptr, nbcol, irhs_sparse, nz_rhs, jbeg_rhs, perm_rhs, size_perm_rhs, k242, k243, uns_perm_inv, size_uns_perm_inv, k23, rhs_bounds, nsteps, nb_sparse, myid, mode)
subroutine, public cmumps_propagate_rhs_bounds (pruned_leaves, nb_pruned_leaves, step, n, pruned_sons, dad, rhs_bounds, nsteps, myid, comm, keep485, iw, liw, ptrist, kixsz, ooc_fct_loc, phase, ldlt, k38)
integer(8) function cmumps_local_factor_size (iw, liw, ptr, phase, ldlt, is_root)
integer(8) function cmumps_local_factor_size_blr (iw, liw, ptr, lrstatus, iwhandler, phase, ldlt, is_root)
subroutine, public cmumps_tree_prun_nodes_stats (myid, n, keep28, keep201, fr_fact, step, pruned_list, nb_prun_nodes, ooc_fct_type_loc)
subroutine, public cmumps_chain_prun_nodes_stats (myid, n, keep28, keep201, keep485, fr_fact, step, pruned_list, nb_prun_nodes, ooc_fct_type_loc)

Variables

integer(8), dimension(:,:), pointer size_of_block
integer(8), public pruned_size_loaded

Function/Subroutine Documentation

◆ cmumps_chain_prun_nodes()

subroutine, public cmumps_sol_es::cmumps_chain_prun_nodes ( logical, intent(in) fill,
integer, dimension(keep28), intent(in) dad,
integer, intent(in) keep28,
integer, dimension(n), intent(in) step,
integer, intent(in) n,
integer, dimension(nb_nodes_rhs), intent(in) nodes_rhs,
integer, intent(in) nb_nodes_rhs,
integer, dimension(keep28) pruned_sons,
logical, dimension(keep28) to_process,
integer nb_prun_nodes,
integer nb_prun_roots,
integer nb_prun_leaves,
integer, dimension(nb_prun_nodes), intent(inout), optional pruned_list,
integer, dimension(nb_prun_roots), intent(inout), optional pruned_roots,
integer, dimension(nb_prun_leaves), intent(inout), optional pruned_leaves )

Definition at line 130 of file cmumps_sol_es.F.

139 IMPLICIT NONE
140 LOGICAL, INTENT(IN) :: fill
141 INTEGER, INTENT(IN) :: N
142 INTEGER, INTENT(IN) :: STEP(N)
143 INTEGER, INTENT(IN) :: KEEP28
144 INTEGER, INTENT(IN) :: DAD(KEEP28)
145 INTEGER, INTENT(IN) :: nb_nodes_RHS
146 INTEGER, INTENT(IN) :: nodes_RHS(nb_nodes_RHS)
147 INTEGER :: nb_prun_nodes
148 INTEGER, OPTIONAL, INTENT(INOUT):: Pruned_List(nb_prun_nodes)
149 INTEGER :: nb_prun_roots
150 INTEGER, OPTIONAL, INTENT(INOUT):: Pruned_Roots(nb_prun_roots)
151 INTEGER :: nb_prun_leaves
152 INTEGER, OPTIONAL, INTENT(INOUT):: Pruned_Leaves(nb_prun_leaves)
153 INTEGER :: Pruned_SONS(KEEP28)
154 LOGICAL :: TO_PROCESS(KEEP28)
155 INTEGER :: IN, I, ISTEP, TMP
156 nb_prun_nodes = 0
157 nb_prun_roots = 0
158 to_process(:) = .false.
159 pruned_sons(:) = -1
160 DO i = 1, nb_nodes_rhs
161 tmp = nodes_rhs(i)
162 istep = step(tmp)
163 to_process(istep) = .true.
164 IF (pruned_sons(istep) .eq. -1) THEN
165 pruned_sons(istep) = 0
166 nb_prun_nodes = nb_prun_nodes + 1
167 IF(fill) THEN
168 pruned_list(nb_prun_nodes) = nodes_rhs(i)
169 END IF
170 in = nodes_rhs(i)
171 in = dad(step(in))
172 DO WHILE (in.NE.0)
173 to_process(step(in)) = .true.
174 IF (pruned_sons(step(in)).eq.-1) THEN
175 nb_prun_nodes = nb_prun_nodes + 1
176 IF(fill) THEN
177 pruned_list(nb_prun_nodes) = in
178 END IF
179 pruned_sons(step(in)) = 1
180 tmp = in
181 in = dad(step(in))
182 ELSE
183 pruned_sons(step(in)) = pruned_sons(step(in)) + 1
184 GOTO 201
185 ENDIF
186 ENDDO
187 nb_prun_roots = nb_prun_roots +1
188 IF(fill) THEN
189 pruned_roots(nb_prun_roots) = tmp
190 END IF
191 ENDIF
192 201 CONTINUE
193 ENDDO
194 nb_prun_leaves = 0
195 DO i = 1, nb_nodes_rhs
196 tmp = nodes_rhs(i)
197 istep = step(tmp)
198 IF (pruned_sons(istep).EQ.0) THEN
199 nb_prun_leaves = nb_prun_leaves +1
200 IF(fill) THEN
201 pruned_leaves(nb_prun_leaves) = tmp
202 END IF
203 END IF
204 ENDDO
205 RETURN

◆ cmumps_chain_prun_nodes_stats()

subroutine, public cmumps_sol_es::cmumps_chain_prun_nodes_stats ( integer, intent(in) myid,
integer, intent(in) n,
integer, intent(in) keep28,
integer, intent(in) keep201,
integer, intent(in) keep485,
integer(8), intent(in) fr_fact,
integer, dimension(n), intent(in) step,
integer, dimension(nb_prun_nodes), intent(in) pruned_list,
integer, intent(in) nb_prun_nodes,
integer, intent(in) ooc_fct_type_loc )

Definition at line 435 of file cmumps_sol_es.F.

439 IMPLICIT NONE
440 INTEGER, intent(in) :: KEEP28, KEEP201, OOC_FCT_TYPE_LOC, N,
441 & KEEP485
442 INTEGER(8), intent(in) :: FR_FACT
443 INTEGER, intent(in) :: nb_prun_nodes, MYID
444 INTEGER, intent(in) :: Pruned_List(nb_prun_nodes)
445 INTEGER, intent(in) :: STEP(N)
446 include 'mpif.h'
447 INTEGER I, ISTEP
448 INTEGER(8) :: Pruned_Size
449 pruned_size = 0_8
450 DO i = 1, nb_prun_nodes
451 istep = step(pruned_list(i))
452 IF (keep201 .GT. 0) THEN
453 pruned_size = pruned_size + size_of_block
454 & (istep, ooc_fct_type_loc)
455 ENDIF
456 ENDDO
457 IF (keep201.GT.0) THEN
458 IF (fr_fact .NE. 0_8) THEN
459 pruned_size_loaded = pruned_size_loaded +pruned_size
460 ENDIF
461 ENDIF
462 RETURN

◆ cmumps_initialize_rhs_bounds()

subroutine, public cmumps_sol_es::cmumps_initialize_rhs_bounds ( integer, dimension(n), intent(in) step,
integer, intent(in) n,
integer, dimension(nbcol+1), intent(in) irhs_ptr,
integer, intent(in) nbcol,
integer, dimension(nz_rhs), intent(in) irhs_sparse,
integer, intent(in) nz_rhs,
integer, intent(in) jbeg_rhs,
integer, dimension(size_perm_rhs), intent(in) perm_rhs,
integer, intent(in) size_perm_rhs,
integer, intent(in) k242,
integer, intent(in) k243,
integer, dimension(size_uns_perm_inv), intent(in) uns_perm_inv,
integer, intent(in) size_uns_perm_inv,
integer, intent(in) k23,
integer, dimension(2*nsteps), intent(inout) rhs_bounds,
integer, intent(in) nsteps,
integer, intent(in) nb_sparse,
integer, intent(in) myid,
integer, intent(in) mode )

Definition at line 207 of file cmumps_sol_es.F.

215 IMPLICIT NONE
216 INTEGER, INTENT(IN) :: MYID, N, NSTEPS, K242, K243, K23
217 INTEGER, INTENT(IN) :: JBEG_RHS, SIZE_PERM_RHS, nb_sparse
218 INTEGER, INTENT(IN) :: NBCOL, NZ_RHS, SIZE_UNS_PERM_INV
219 INTEGER, INTENT(IN) :: STEP(N), PERM_RHS(SIZE_PERM_RHS)
220 INTEGER, INTENT(IN) :: IRHS_PTR(NBCOL+1),IRHS_SPARSE(NZ_RHS)
221 INTEGER, INTENT(IN) :: UNS_PERM_INV(SIZE_UNS_PERM_INV)
222 INTEGER, INTENT(INOUT):: RHS_BOUNDS(2*NSTEPS)
223 INTEGER, INTENT(IN) :: mode
224 INTEGER :: I, ICOL, JPTR, J, JAM1, node, bound
225 rhs_bounds = 0
226 icol = 0
227 DO i = 1, nbcol
228 IF ( (irhs_ptr(i+1)-irhs_ptr(i)).EQ.0) cycle
229 icol = icol + 1
230 bound = icol - mod(icol, nb_sparse) + 1
231 IF(mod(icol, nb_sparse).EQ.0) bound = bound - nb_sparse
232 IF(mode.EQ.0) THEN
233 IF ((k242.NE.0).OR.(k243.NE.0)) THEN
234 jam1 = perm_rhs(jbeg_rhs+i-1)
235 ELSE
236 jam1 = jbeg_rhs+i-1
237 ENDIF
238 node = abs(step(jam1))
239 IF(rhs_bounds(2*node - 1).EQ.0) THEN
240 rhs_bounds(2*node - 1) = bound
241 rhs_bounds(2*node) = bound + nb_sparse - 1
242 ELSE
243 rhs_bounds(2*node) = bound + nb_sparse - 1
244 END IF
245 ELSE
246 DO jptr = irhs_ptr(i), irhs_ptr(i+1)-1
247 j = irhs_sparse(jptr)
248 IF ( mode .EQ. 1 ) THEN
249 IF (k23.NE.0) j = uns_perm_inv(j)
250 ENDIF
251 node = abs(step(j))
252 IF(rhs_bounds(2*node - 1).EQ.0) THEN
253 rhs_bounds(2*node - 1) = bound
254 rhs_bounds(2*node) = bound + nb_sparse - 1
255 ELSE
256 rhs_bounds(2*node) = bound + nb_sparse - 1
257 END IF
258 END DO
259 END IF
260 END DO
261 RETURN

◆ cmumps_local_factor_size()

integer(8) function cmumps_sol_es::cmumps_local_factor_size ( integer, dimension(liw), intent(in) iw,
integer, intent(in) liw,
integer, intent(in) ptr,
integer, intent(in) phase,
integer, intent(in) ldlt,
logical, intent(in) is_root )
private

Definition at line 319 of file cmumps_sol_es.F.

321 INTEGER, INTENT(IN) :: LIW, PTR, PHASE, LDLT
322 INTEGER, INTENT(IN) :: IW(LIW)
323 LOGICAL, INTENT(IN) :: IS_ROOT
324 INTEGER(8) :: NCB, NELIM, LIELL, NPIV, NROW
325 ncb = int(iw(ptr),8)
326 nelim = int(iw(ptr+1),8)
327 nrow = int(iw(ptr+2),8)
328 npiv = int(iw(ptr+3),8)
329 liell = npiv + ncb
330 IF (is_root) THEN
331 cmumps_local_factor_size = int(iw(ptr+1),8) *
332 & int(iw(ptr+2),8) / 2_8
333 RETURN
334 ENDIF
335 IF (ncb.GE.0_8) THEN
336 IF (phase.EQ.0
337 & .OR. (phase.EQ.1.AND.ldlt.NE.0)
338 & ) THEN
339 cmumps_local_factor_size =
340 & npiv*(npiv-1_8)/2_8 + (nrow-npiv)*npiv
341 ELSE
342 cmumps_local_factor_size =
343 & npiv*(npiv+1_8)/2_8 + (liell-npiv)*npiv
344 ENDIF
345 ELSE
346 cmumps_local_factor_size =
347 & -ncb*nelim
348 END IF
349 RETURN

◆ cmumps_local_factor_size_blr()

integer(8) function cmumps_sol_es::cmumps_local_factor_size_blr ( integer, dimension(liw), intent(in) iw,
integer, intent(in) liw,
integer, intent(in) ptr,
integer, intent(in) lrstatus,
integer, intent(in) iwhandler,
integer, intent(in) phase,
integer, intent(in) ldlt,
logical, intent(in) is_root )
private

Definition at line 351 of file cmumps_sol_es.F.

356 INTEGER, INTENT(IN) :: LIW, PTR, PHASE, LDLT
357 INTEGER, INTENT(IN) :: LRSTATUS, IWHANDLER
358 INTEGER, INTENT(IN) :: IW(LIW)
359 LOGICAL, INTENT(IN) :: IS_ROOT
360 INTEGER(8) :: NCB, NELIM, LIELL, NPIV, NROW, FACTOR_SIZE
361 INTEGER :: NB_PANELS, IPANEL, LorU, IBLOCK
362 LOGICAL :: LR_ACTIVATED
363 TYPE(LRB_TYPE), POINTER, DIMENSION(:) :: LRB_PANEL
364 ncb = int(iw(ptr),8)
365 nelim = int(iw(ptr+1),8)
366 nrow = int(iw(ptr+2),8)
367 npiv = int(iw(ptr+3),8)
368 liell = npiv + ncb
369 lr_activated=(lrstatus.GE.2)
370 IF (lr_activated) THEN
371 factor_size = 0_8
372 CALL cmumps_blr_retrieve_nb_panels(iwhandler, nb_panels)
373 IF (ldlt.EQ.0) THEN
374 loru = phase
375 ELSE
376 loru = 0
377 ENDIF
378 DO ipanel=1,nb_panels
379 IF (is_root.AND.ipanel.EQ.nb_panels) THEN
380 cycle
381 ENDIF
382 IF (cmumps_blr_empty_panel_loru(iwhandler, loru, ipanel))
383 & THEN
384 cycle
385 ENDIF
386 CALL cmumps_blr_retrieve_panel_loru(iwhandler, loru,
387 & ipanel, lrb_panel)
388 IF (size(lrb_panel).GT.0) THEN
389 IF (phase.EQ.0) THEN
390 factor_size = factor_size +
391 & int(lrb_panel(1)%N,8)*(int(lrb_panel(1)%N,8)-1_8)/2_8
392 ELSE
393 factor_size = factor_size +
394 & int(lrb_panel(1)%N,8)*(int(lrb_panel(1)%N,8)+1_8)/2_8
395 ENDIF
396 ENDIF
397 DO iblock=1,size(lrb_panel)
398 IF (lrb_panel(iblock)%ISLR) THEN
399 factor_size = factor_size + int(lrb_panel(iblock)%K,8)*
400 & int(lrb_panel(iblock)%M+lrb_panel(iblock)%M,8)
401 ELSE
402 factor_size = factor_size +
403 & int(lrb_panel(iblock)%M*lrb_panel(iblock)%N,8)
404 ENDIF
405 ENDDO
406 ENDDO
407 cmumps_local_factor_size_blr = factor_size
408 ELSE
409 cmumps_local_factor_size_blr =
410 & cmumps_local_factor_size(iw, liw, ptr, phase, ldlt, is_root)
411 ENDIF
412 RETURN
subroutine, public cmumps_blr_retrieve_nb_panels(iwhandler, nb_panels)
subroutine, public cmumps_blr_retrieve_panel_loru(iwhandler, loru, ipanel, thelrbpanel)
logical function, public cmumps_blr_empty_panel_loru(iwhandler, loru, ipanel)

◆ cmumps_propagate_rhs_bounds()

subroutine, public cmumps_sol_es::cmumps_propagate_rhs_bounds ( integer, dimension(nb_pruned_leaves), intent(in) pruned_leaves,
integer, intent(in) nb_pruned_leaves,
integer, dimension(n), intent(in) step,
integer, intent(in) n,
integer, dimension(nsteps), intent(in) pruned_sons,
integer, dimension(nsteps), intent(in) dad,
integer, dimension(2*nsteps), intent(inout) rhs_bounds,
integer, intent(in) nsteps,
integer, intent(in) myid,
integer, intent(in) comm,
integer, intent(in) keep485,
integer, dimension(liw), intent(in) iw,
integer, intent(in) liw,
integer, dimension(nsteps), intent(in) ptrist,
integer, intent(in) kixsz,
integer, intent(in) ooc_fct_loc,
integer, intent(in) phase,
integer, intent(in) ldlt,
integer, intent(in) k38 )

Definition at line 263 of file cmumps_sol_es.F.

269 IMPLICIT NONE
270 include 'mpif.h'
271 include 'mumps_headers.h'
272 INTEGER, INTENT(IN) :: nb_pruned_leaves, N, NSTEPS
273 INTEGER, INTENT(IN) :: STEP(N), DAD(NSTEPS), Pruned_SONS(NSTEPS)
274 INTEGER, INTENT(IN) :: MYID, COMM, KEEP485
275 INTEGER, INTENT(IN) :: pruned_leaves(nb_pruned_leaves)
276 INTEGER, INTENT(IN) :: LIW, IW(LIW), PTRIST(NSTEPS)
277 INTEGER, INTENT(IN) :: KIXSZ, OOC_FCT_LOC, PHASE, LDLT, K38
278 INTEGER, INTENT(INOUT):: RHS_BOUNDS(2*NSTEPS)
279 INTEGER :: I, node, father, size_pool, next_size_pool
280 INTEGER :: IERR
281 INTEGER, ALLOCATABLE, DIMENSION(:) :: POOL, NBSONS
282 ALLOCATE(pool(nb_pruned_leaves),
283 & nbsons(nsteps),
284 & stat=ierr)
285 IF (ierr.NE.0) THEN
286 WRITE(6,*)'Allocation problem in CMUMPS_PROPAGATE_RHS_BOUNDS'
287 CALL mumps_abort()
288 END IF
289 size_pool = nb_pruned_leaves
290 pool = pruned_leaves
291 nbsons = pruned_sons
292 DO WHILE (size_pool.ne.0)
293 next_size_pool =0
294 DO i=1, size_pool
295 node = step(pool(i))
296 IF (dad(node).NE.0) THEN
297 father = step(dad(node))
298 nbsons(father) = nbsons(father)-1
299 IF (rhs_bounds(2*father-1).EQ.0) THEN
300 rhs_bounds(2*father-1) = rhs_bounds(2*node-1)
301 rhs_bounds(2*father) = rhs_bounds(2*node)
302 ELSE
303 rhs_bounds(2*father-1) = min(rhs_bounds(2*father-1),
304 & rhs_bounds(2*node-1))
305 rhs_bounds(2*father) = max(rhs_bounds(2*father),
306 & rhs_bounds(2*node))
307 END IF
308 IF(nbsons(father).EQ.0) THEN
309 next_size_pool = next_size_pool+1
310 pool(next_size_pool) = dad(node)
311 END IF
312 END IF
313 END DO
314 size_pool = next_size_pool
315 END DO
316 DEALLOCATE(pool, nbsons)
317 RETURN
#define mumps_abort
Definition VE_Metis.h:25
integer function father(nn, ixc, ipartc, ipart, sontype)
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21

◆ cmumps_sol_es_init()

subroutine, public cmumps_sol_es::cmumps_sol_es_init ( integer(8), dimension(:,:), pointer size_of_block_arg,
integer, intent(in) keep201 )

Definition at line 28 of file cmumps_sol_es.F.

29 IMPLICIT NONE
30 INTEGER, INTENT(IN) :: KEEP201
31 INTEGER(8), POINTER, DIMENSION(:,:) :: SIZE_OF_BLOCK_ARG
32 IF (keep201 > 0) THEN
33 size_of_block => size_of_block_arg
34 ELSE
35 NULLIFY(size_of_block)
36 ENDIF
37 RETURN

◆ cmumps_tree_prun_nodes()

subroutine, public cmumps_sol_es::cmumps_tree_prun_nodes ( logical, intent(in) fill,
integer, dimension(keep28), intent(in) dad,
integer, dimension(keep28), intent(in) ne_steps,
integer, dimension(keep28), intent(in) frere,
integer, intent(in) keep28,
integer, dimension(n), intent(in) fils,
integer, dimension(n), intent(in) step,
integer, intent(in) n,
integer, dimension(keep28), intent(in) nodes_rhs,
integer, intent(in) nb_nodes_rhs,
logical, dimension(keep28) to_process,
integer nb_prun_nodes,
integer nb_prun_roots,
integer nb_prun_leaves,
integer, dimension(nb_prun_nodes), intent(inout), optional pruned_list,
integer, dimension(nb_prun_roots), intent(inout), optional pruned_roots,
integer, dimension(nb_prun_leaves), intent(inout), optional pruned_leaves )

Definition at line 39 of file cmumps_sol_es.F.

48 IMPLICIT NONE
49 LOGICAL, INTENT(IN) :: fill
50 INTEGER, INTENT(IN) :: N, KEEP28
51 INTEGER, INTENT(IN) :: DAD(KEEP28),NE_STEPS(KEEP28),FRERE(KEEP28)
52 INTEGER, INTENT(IN) :: FILS(N), STEP(N)
53 INTEGER, INTENT(IN) :: nodes_RHS(KEEP28), nb_nodes_RHS
54 INTEGER :: nb_prun_nodes
55 INTEGER, OPTIONAL, INTENT(INOUT):: Pruned_List(nb_prun_nodes)
56 INTEGER :: nb_prun_roots
57 INTEGER, OPTIONAL, INTENT(INOUT):: Pruned_Roots(nb_prun_roots)
58 INTEGER :: nb_prun_leaves
59 INTEGER, OPTIONAL, INTENT(INOUT):: Pruned_Leaves(nb_prun_leaves)
60 LOGICAL :: TO_PROCESS(KEEP28)
61 INTEGER :: IN, I, ISTEP, TMP, TMPsave
62 LOGICAL :: FILS_VISITED
63 nb_prun_nodes = 0
64 nb_prun_leaves = 0
65 to_process(:) = .false.
66 DO i = 1, nb_nodes_rhs
67 tmp = nodes_rhs(i)
68 tmpsave = tmp
69 istep = step(tmp)
70 DO WHILE(.NOT.to_process(istep))
71 to_process(istep) = .true.
72 nb_prun_nodes = nb_prun_nodes + 1
73 IF(fill) THEN
74 pruned_list(nb_prun_nodes) = tmp
75 END IF
76 in = fils(tmp)
77 DO WHILE(in.GT.0)
78 in = fils(in)
79 END DO
80 fils_visited = .false.
81 IF (in.LT.0) THEN
82 fils_visited = to_process(step(-in))
83 ENDIF
84 IF ( in.LT.0.and..NOT.fils_visited)
85 & THEN
86 tmp = -in
87 istep = step(tmp)
88 ELSE
89 IF (in.EQ.0) THEN
90 nb_prun_leaves = nb_prun_leaves + 1
91 IF (fill) THEN
92 pruned_leaves(nb_prun_leaves) = tmp
93 END IF
94 ELSE
95 tmp = -in
96 istep = step(tmp)
97 ENDIF
98 DO WHILE (tmp.NE.tmpsave)
99 tmp = abs(frere(istep))
100 IF(tmp.NE.0) THEN
101 istep = step(tmp)
102 ELSE
103 exit
104 END IF
105 IF (.NOT.to_process(istep)) exit
106 END DO
107 END IF
108 END DO
109 END DO
110 nb_prun_roots = 0
111 DO i=1,nb_nodes_rhs
112 tmp = nodes_rhs(i)
113 istep = step(tmp)
114 IF(dad(istep).NE.0) THEN
115 IF(.NOT.to_process(step(dad(istep)))) THEN
116 nb_prun_roots = nb_prun_roots + 1
117 IF(fill) THEN
118 pruned_roots(nb_prun_roots) = tmp
119 END IF
120 END IF
121 ELSE
122 nb_prun_roots = nb_prun_roots + 1
123 IF(fill) THEN
124 pruned_roots(nb_prun_roots) = tmp
125 END IF
126 END IF
127 END DO
128 RETURN

◆ cmumps_tree_prun_nodes_stats()

subroutine, public cmumps_sol_es::cmumps_tree_prun_nodes_stats ( integer, intent(in) myid,
integer, intent(in) n,
integer, intent(in) keep28,
integer, intent(in) keep201,
integer(8), intent(in) fr_fact,
integer, dimension(n), intent(in) step,
integer, dimension(nb_prun_nodes), intent(in) pruned_list,
integer, intent(in) nb_prun_nodes,
integer, intent(in) ooc_fct_type_loc )

Definition at line 414 of file cmumps_sol_es.F.

417 INTEGER, intent(in) :: KEEP28, KEEP201, OOC_FCT_TYPE_LOC, MYID, N
418 INTEGER(8), intent(in) :: FR_FACT
419 INTEGER, intent(in) :: nb_prun_nodes
420 INTEGER, intent(in) :: Pruned_List(nb_prun_nodes)
421 INTEGER, intent(in) :: STEP(N)
422 INTEGER I, ISTEP
423 INTEGER(8) :: Pruned_Size
424 IF (keep201 .GT. 0) THEN
425 pruned_size = 0_8
426 DO i = 1, nb_prun_nodes
427 istep = step(pruned_list(i))
428 pruned_size = pruned_size + size_of_block
429 & (istep, ooc_fct_type_loc)
430 ENDDO
431 pruned_size_loaded = pruned_size_loaded +pruned_size
432 ENDIF
433 RETURN

Variable Documentation

◆ pruned_size_loaded

integer(8), public cmumps_sol_es::pruned_size_loaded

Definition at line 25 of file cmumps_sol_es.F.

25 INTEGER(8) :: PRUNED_SIZE_LOADED

◆ size_of_block

integer(8), dimension(:,:), pointer cmumps_sol_es::size_of_block
private

Definition at line 24 of file cmumps_sol_es.F.

24 INTEGER(8), POINTER, DIMENSION(:,:) :: SIZE_OF_BLOCK