Update description of internals.

newG2L
Salvatore Filippone 4 years ago
parent e64d52cbc2
commit 734041d90f

@ -156,7 +156,7 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
call psb_errpush(psb_err_from_subroutine_,name,a_err='psb_realloc')
goto 9999
end if
iprc(:) = -1
iprc(:) = -1
n_answers = 0
!
! Start from the adjacncy list
@ -167,7 +167,9 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
call psb_realloc(nadj,ladj,info)
!
! Throughout the subroutine, nqries is the number of local inquiries
! that have not been answered yet
! that have not been answered yet, stored in idx(n_aswers+1:)
! idx(1:n_answers) and iprc(1:n_answers) are queries that have
! already been answered; n_answers is updated by psi_adj_fnd_sweep.
!
nqries = nv - n_answers
nqries_max = nqries
@ -186,7 +188,8 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
maxspace = nt*locr_max
if (tmpv(4) > 0) maxspace = min(maxspace,tmpv(4))
maxspace = max(maxspace,np)
if (trace.and.(me == 0)) write(0,*) ' Through graph_fnd_owner with maxspace:',maxspace,maxspace/np
if (trace.and.(me == 0)) write(0,*) ' Through graph_fnd_owner with maxspace:',&
& maxspace, maxspace/np
if (do_timings) call psb_tic(idx_sweep0)
if ((tmpv(1) > 0).and.(tmpv(2) >0)) then
!
@ -194,8 +197,10 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
!
if (debugsz) write(0,*) me,' Initial sweep on user-defined topology',nqries
nsampl_in = min(nqries,max(1,(maxspace+max(1,nadj)-1))/(max(1,nadj)))
if (trace.and.(me == 0)) write(0,*) ' Initial sweep on user-defined topology',nsampl_in
call psi_adj_fnd_sweep(idx,iprc,ladj,idxmap,nsampl_in,n_answers)
if (trace.and.(me == 0)) write(0,*) ' Initial sweep on user-defined topology',&
& nsampl_in
ipnt = n_answers + 1
call psi_adj_fnd_sweep(idx(ipnt:),iprc(ipnt:),ladj,idxmap,nsampl_in,n_answers)
call idxmap%xtnd_p_adjcncy(ladj)
nqries = nv - n_answers
nqries_max = nqries
@ -223,7 +228,7 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
! Choose a sample, should it be done in this simplistic way?
! Note: nsampl_in is a hint, not an absolute, hence nsampl_out
!
ipnt = 1
ipnt = n_answers + 1
call psi_get_sample(ipnt, idx,iprc,tidx,tsmpl,nsampl_in,nsampl_out, pad=.true.)
nsampl_in = min(nsampl_out,nsampl_in)
if (debugsz) write(0,*) me,' From first sampling ',nsampl_in
@ -269,7 +274,8 @@ subroutine psi_graph_fnd_owner(idx,iprc,idxmap,info)
! call psb_min(ctxt,mnnsin)
! write(0,*) me, ' mxnsin ',mxnsin
if (trace.and.(me == 0)) write(0,*) ' Further sweep',nsampl_in, mxnsin, mnnsin
if (mxnsin>0) call psi_adj_fnd_sweep(idx(n_answers+1:),iprc(n_answers+1:),ladj,&
ipnt = n_answers + 1
if (mxnsin>0) call psi_adj_fnd_sweep(idx(ipnt:),iprc(ipnt:),ladj,&
& idxmap,nsampl_in,n_answers)
call idxmap%xtnd_p_adjcncy(ladj)

Loading…
Cancel
Save