16 & PTRICB, IWCB, LIWCB,
17 & RHSCOMP, LRHSCOMP, POSINRHSCOMP_FWD,
20 & NSTK, IPOOL, LPOOL, PTRIST, PTRFAC, MYLEAF, MYROOT,
24 & SLAVEF, COMM, MYID, BUFR, LBUFR, LBUFR_BYTES,
25 & RHS_ROOT, LRHS_ROOT, MTYPE,
27 & ISTEP_TO_INIV2, TAB_POS_IN_PERE
28 & , RHS_BOUNDS, LRHS_BOUNDS, DO_NBSPARSE, FROM_PP
29 & , L0_OMP_MAPPING, LL0_OMP_MAPPING,
30 & L0_OMP_FACTORS, LL0_OMP_FACTORS
37 INTEGER(8),
INTENT(IN) :: LA, LWCB
38 INTEGER,
INTENT(IN) :: N, LIW, LPOOL, LIWCB
39 INTEGER,
INTENT(IN) :: SLAVEF, MYLEAF, MYROOT, COMM, MYID
40 INTEGER INFO( 80 ), KEEP(500)
42 DOUBLE PRECISION,
INTENT(INOUT) :: DKEEP(230)
45 COMPLEX(kind=8) A( LA ), WCB( LWCB )
46 INTEGER(8),
intent(in) :: LRHS_ROOT
47 COMPLEX(kind=8) RHS_ROOT( LRHS_ROOT )
48 INTEGER LBUFR, LBUFR_BYTES
50 INTEGER STEP( N ), FRERE( KEEP(28) ), FILS( N ),
52 INTEGER NSTK(KEEP(28)), IPOOL( LPOOL )
53 INTEGER PTRIST(KEEP(28))
54 INTEGER(8) :: PTRFAC(KEEP(28))
55 INTEGER PTRICB( KEEP(28) )
56 LOGICAL,
intent(in) :: DO_NBSPARSE
57 INTEGER,
intent(in) :: LRHS_BOUNDS
58 INTEGER,
intent(in) :: RHS_BOUNDS(LRHS_BOUNDS)
59 INTEGER IW( LIW ), IWCB( LIWCB )
60 INTEGER ISTEP_TO_INIV2(KEEP(71)),
61 & tab_pos_in_pere(slavef+2,
max(1,keep(56)))
62 INTEGER,
intent(in) :: POSINRHSCOMP_FWD(N), LRHSCOMP
63 COMPLEX(kind=8),
intent(inout) :: RHSCOMP(LRHSCOMP,NRHS)
64 LOGICAL,
intent(in) :: FROM_PP
65 INTEGER,
INTENT( in ) :: LL0_OMP_MAPPING, LL0_OMP_FACTORS
66 INTEGER,
INTENT( in ) :: L0_OMP_MAPPING( LL0_OMP_MAPPING )
67 TYPE (ZMUMPS_L0OMPFAC_T),
INTENT(IN) ::
68 & L0_OMP_FACTORS(LL0_OMP_FACTORS)
70 include
'mumps_tags.h'
73 COMPLEX(kind=8),
DIMENSION(:),
POINTER :: A_PTR
76 INTEGER NBFIN, MYROOT_LEFT
78 INTEGER(8) :: POSWCB, PLEFTWCB
83 INTEGER MUMPS_PROCNODE
84 LOGICAL ERROR_WAS_BROADCASTED
95 IF ( myroot_left .EQ. 0 )
THEN
98 & racine_solve, slavef, keep)
99 IF (nbfin.EQ.0)
GOTO 260
102 IF (slavef .EQ. 1)
THEN
104 & ( ipool(1), lpool, iii, leaf, inode,
108 bloq = ( ( iii .EQ. leaf )
111 & bufr, lbufr, lbufr_bytes,
112 & myid, slavef, comm,
113 & n, nrhs, ipool, lpool, leaf,
114 & nbfin, nstk, iw, liw, a, la, ptrist, ptrfac,
118 & ptricb, info, keep,keep8, dkeep, step,
120 & rhscomp, lrhscomp, posinrhscomp_fwd
123 IF ( info( 1 ) .LT. 0 .OR. nbfin .EQ. 0 )
GOTO 260
125 IF (iii .NE. leaf)
THEN
127 & (ipool(1), lpool, iii, leaf, inode,
134 IF (keep(400) .GT. 0 )
THEN
135 underl0map = l0_omp_mapping(step(inode))
139 IF (underl0map .EQ. 0 .OR. keep(201).GT.0)
THEN
144 a_ptr => l0_omp_factors(underl0map)%A
145 la_ptr = l0_omp_factors(underl0map)%LA
148 & huge(inode), huge(inode),
149 & bufr, lbufr, lbufr_bytes,
150 & myid, slavef, comm, n,
151 & ipool, lpool, leaf, nbfin, nstk,
152 & iwcb, liwcb, wcb, lwcb, a_ptr(1), la_ptr,
154 & poswcb, pleftwcb, posiwcb,
155 & ptricb, ptrist, ptrfac, procnode_steps,
156 & fils, step, frere, dad,
157 & info, keep,keep8, dkeep, rhs_root, lrhs_root, mtype,
158 & rhscomp, lrhscomp, posinrhscomp_fwd,
159 & istep_to_iniv2, tab_pos_in_pere
160 & , rhs_bounds, lrhs_bounds, do_nbsparse
162 & , error_was_broadcasted
164 IF ( info(1) .LT. 0 )
THEN
165 IF (.NOT. error_was_broadcasted)
THEN
170 ifath = dad(step(inode))
171 IF ( ifath .EQ. 0 )
THEN
172 myroot_left = myroot_left - 1
173 IF (myroot_left .EQ. 0)
THEN
175 IF (slavef .GT. 1)
THEN
177 & comm, racine_solve, slavef, keep)
181 IF ( mumps_procnode(procnode_steps(step(ifath)), keep(199))
183 IF ( ptricb(step(inode)) .EQ. 1 .OR.
184 & ptricb(step(inode)) .EQ. -1 )
THEN
185 nstk(step(ifath)) = nstk(step(ifath)) - 1
186 IF (nstk(step(ifath)) .EQ. 0)
THEN
189 IF (leaf .GT. lpool)
THEN
191 &
'Internal error ZMUMPS_TRAITER_MESSAGE_SOLVE',
196 ptricb(step(inode)) = 0
200 IF ( nbfin .EQ. 0 )
GOTO 260
205 & slavef, .true., .false.)
subroutine zmumps_sol_r(n, a, la, iw, liw, wcb, lwcb, nrhs, ptricb, iwcb, liwcb, rhscomp, lrhscomp, posinrhscomp_fwd, step, frere, dad, fils, nstk, ipool, lpool, ptrist, ptrfac, myleaf, myroot, info, keep, keep8, dkeep, procnode_steps, slavef, comm, myid, bufr, lbufr, lbufr_bytes, rhs_root, lrhs_root, mtype, istep_to_iniv2, tab_pos_in_pere, rhs_bounds, lrhs_bounds, do_nbsparse, from_pp, l0_omp_mapping, ll0_omp_mapping, l0_omp_factors, ll0_omp_factors)
recursive subroutine zmumps_solve_recv_and_treat(bloq, flag, bufr, lbufr, lbufr_bytes, myid, slavef, comm, n, nrhs, ipool, lpool, leaf, nbfin, nstk_s, iw, liw, a, la, ptrist, ptrfac, iwcb, liwcb, wcb, lwcb, poswcb, pleftwcb, posiwcb, ptricb, info, keep, keep8, dkeep, step, procnode_steps, rhscomp, lrhscomp, posinrhscomp_fwd, from_pp)
subroutine zmumps_solve_node_fwd(inode, lastfsl0sta, lastfsl0dyn, bufr, lbufr, lbufr_bytes, myid, slavef, comm, n, ipool, lpool, leaf, nbfin, nstk_s, iwcb, liwcb, wcb, lwcb, a, la, iw, liw, nrhs, poswcb, pleftwcb, posiwcb, ptricb, ptrist, ptrfac, procnode_steps, fils, step, frere, dad, info, keep, keep8, dkeep, rhs_root, lrhs_root, mtype, rhscomp, lrhscomp, posinrhscomp_fwd istep_to_iniv2, tab_pos_in_pere, rhs_bounds, lrhs_bounds, do_nbsparse, from_pp, error_was_broadcasted)