15 & INODE, NELIM, NSLAVES, ROW_LIST,
16 & COL_LIST, SLAVE_LIST,
18 & PROCNODE_STEPS, IWPOS, IWPOSCB, IPTRLU,
19 & LRLU, LRLUS, N, IW, LIW, A, LA, PTRIST,
21 & PTRAST, STEP, PIMASTER, PAMASTER, NSTK_S,
22 & ITLOC, RHS_MUMPS, COMP,
24 & IPOOL, LPOOL, LEAF, MYID, SLAVEF,
26 & COMM, COMM_LOAD, FILS, DAD, ND )
30 TYPE (CMUMPS_ROOT_STRUC) :: ROOT
31 INTEGER INODE, NELIM, NSLAVES
35 INTEGER ROW_LIST(*), COL_LIST(*),
37 INTEGER(8) :: IPTRLU, LRLU, LRLUS, LA
38 INTEGER IWPOS, IWPOSCB
42 INTEGER PTRIST( KEEP(28) ), PTLUST_S(KEEP(28))
43 INTEGER(8) :: PTRFAC(KEEP(28))
44 INTEGER(8) :: PTRAST(KEEP(28))
45 INTEGER(8) :: PAMASTER(KEEP(28))
46 INTEGER STEP(N), PIMASTER(KEEP(28))
48 INTEGER NSTK_S(KEEP(28)), ITLOC( N + KEEP(253) )
49 COMPLEX :: RHS_MUMPS(KEEP(255))
50 INTEGER PROCNODE_STEPS( KEEP(28) )
53 INTEGER IPOOL( LPOOL )
55 INTEGER COMM, COMM_LOAD, ND(KEEP(28)), FILS(N), DAD(KEEP(28))
56 INTEGER IROOT, TYPE_INODE, DEB_ROW, DEB_COL,
59 include
'mumps_headers.h'
60 include
'mumps_tags.h'
61 INTEGER MUMPS_TYPENODE
62 EXTERNAL mumps_typenode
64 nstk_s(step(iroot))= nstk_s(step(iroot)) - 1
65 keep(42) = keep(42) + nelim
66 type_inode= mumps_typenode( procnode_steps(step(inode)),
68 IF (type_inode.EQ.1)
THEN
70 keep(41) = keep(41) + 1
72 keep(41) = keep(41) + 3
76 keep(41) = keep(41) + nslaves
78 keep(41) = keep(41) + 2*nslaves + 1
82 pimaster(step(inode)) = 0
84 noint = 6 + nslaves + nelim + nelim + keep(ixsz)
87 & myid,n,keep,keep8,dkeep,iw,liw, a, la,
88 & lrlu, iptrlu,iwpos,iwposcb, slavef, procnode_steps, dad,
89 & ptrist,ptrast,step, pimaster, pamaster,
90 & noint, noreal, inode, s_notfree, .true.,
91 & comp, lrlus, keep8(67), iflag, ierror
93 IF ( iflag .LT. 0 )
THEN
94 WRITE(*,*)
' Failure in int space allocation in CB area ',
95 &
' during assembly of root : CMUMPS_PROCESS_RTNELIND',
96 &
' size required was :', noint,
97 &
'INODE=',inode,
' NELIM=',nelim,
' NSLAVES=', nslaves
100 pimaster(step( inode )) = iwposcb + 1
101 pamaster(step( inode )) = iptrlu + 1_8
102 iw( iwposcb + 1+keep(ixsz) ) = 2*nelim
103 iw( iwposcb + 2+keep(ixsz) ) = nelim
104 iw( iwposcb + 3+keep(ixsz) ) = 0
105 iw( iwposcb + 4+keep(ixsz) ) = 0
106 iw( iwposcb + 5+keep(ixsz) ) = 1
107 iw( iwposcb + 6+keep(ixsz) ) = nslaves
108 IF (nslaves.GT.0)
THEN
109 iw( iwposcb+7+keep(ixsz):iwposcb+7+keep(ixsz)+nslaves-1) =
110 & slave_list(1:nslaves)
112 deb_row = iwposcb+7+nslaves+keep(ixsz)
113 iw(deb_row : deb_row+nelim -1) = row_list(1:nelim)
114 deb_col = deb_row + nelim
115 iw(deb_col : deb_col+nelim -1) = col_list(1:nelim)
117 IF (nstk_s(step(iroot)) .EQ. 0 )
THEN
120 & keep(28), keep(76), keep(80), keep(47),
122 IF (keep(47) .GE. 3)
THEN
125 & procnode_steps, keep,keep8, slavef, comm_load,
126 & myid, step, n, nd, fils )
subroutine cmumps_alloc_cb(inplace, min_space_in_place, ssarbr, process_bande, myid, n, keep, keep8, dkeep, iw, liw, a, la, lrlu, iptrlu, iwpos, iwposcb, slavef, procnode_steps, dad, ptrist, ptrast, step, pimaster, pamaster, lreq, lreqcb, node_arg, state_arg, set_header, comp, lrlus, lrlusm, iflag, ierror)
subroutine cmumps_process_rtnelind(root, inode, nelim, nslaves, row_list, col_list, slave_list, procnode_steps, iwpos, iwposcb, iptrlu, lrlu, lrlus, n, iw, liw, a, la, ptrist, ptlust_s, ptrfac, ptrast, step, pimaster, pamaster, nstk_s, itloc, rhs_mumps, comp, iflag, ierror, ipool, lpool, leaf, myid, slavef, keep, keep8, dkeep, comm, comm_load, fils, dad, nd)