|
|
|
@ -130,7 +130,6 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
|
|
|
|
|
end if
|
|
|
|
|
iprc(:) = -1
|
|
|
|
|
n_answers = 0
|
|
|
|
|
if (.true.) then
|
|
|
|
|
!
|
|
|
|
|
! Start from the adjacncy list
|
|
|
|
|
!
|
|
|
|
@ -183,24 +182,14 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
|
|
|
|
|
! so that the total size is <= maxspace
|
|
|
|
|
! (will not be exact since nadj varies with process)
|
|
|
|
|
! Need to set up a proper loop here to have a complete
|
|
|
|
|
! sweep over the input vector.
|
|
|
|
|
! sweep over the input vector. Done inside adj_fnd_sweep.
|
|
|
|
|
!
|
|
|
|
|
!!$ write(0,*) me,' After a2a ',n_rest
|
|
|
|
|
nsampl_in = min(n_rest,max(1,(maxspace+max(1,nadj)-1))/(max(1,nadj)))
|
|
|
|
|
mxnsin = nsampl_in
|
|
|
|
|
call psb_max(ictxt,mxnsin)
|
|
|
|
|
!!$ write(0,*) me, ' mxnsin ',mxnsin
|
|
|
|
|
if (.false.) then
|
|
|
|
|
write(0,*) me,' Into second sampling ',nsampl_in
|
|
|
|
|
call psi_get_sample(ipnt, idx,iprc,tidx,tsmpl,nsampl_in,nsampl_out)
|
|
|
|
|
nsampl_in = min(nsampl_out,nsampl_in)
|
|
|
|
|
write(0,*) me,' From second sampling ',nsampl_in
|
|
|
|
|
call psi_adjcncy_fnd_owner(tidx(1:nsampl_in),tprc,ladj,idxmap,info)
|
|
|
|
|
call psi_cpy_out(iprc,tprc,tsmpl,nsampl_in,nsampl_out)
|
|
|
|
|
n_answers = n_answers + nsampl_out
|
|
|
|
|
else
|
|
|
|
|
if (mxnsin>0) call psi_adj_fnd_sweep(idx,iprc,ladj,idxmap,nsampl_in,n_answers)
|
|
|
|
|
end if
|
|
|
|
|
call idxmap%xtnd_p_adjcncy(ladj)
|
|
|
|
|
|
|
|
|
|
n_rest = nv - n_answers
|
|
|
|
@ -208,9 +197,6 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
|
|
|
|
|
call psb_max(ictxt,nrest_max)
|
|
|
|
|
end do fnd_owner_loop
|
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
call psi_a2a_fnd_owner(idx,iprc,idxmap,info)
|
|
|
|
|
end if
|
|
|
|
|
call psb_erractionrestore(err_act)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|