|
|
|
|
@ -1464,10 +1464,10 @@ contains
|
|
|
|
|
#ifdef PSB_MPI_H
|
|
|
|
|
include 'mpif.h'
|
|
|
|
|
#endif
|
|
|
|
|
complex(psb_dpk_), intent(in), target :: valsnd(:)
|
|
|
|
|
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
|
|
|
|
|
complex(psb_dpk_), intent(out), target :: valrcv(:)
|
|
|
|
|
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
|
|
|
|
|
complex(psb_dpk_), intent(in) :: valsnd(:)
|
|
|
|
|
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
|
|
|
|
|
complex(psb_dpk_), intent(out) :: valrcv(:)
|
|
|
|
|
integer(psb_mpk_), intent(out) :: iarcv(:), jarcv(:)
|
|
|
|
|
integer(psb_mpk_), intent(in) :: bsdindx(:), brvindx(:), sdsz(:), rvsz(:)
|
|
|
|
|
type(psb_ctxt_type), intent(in) :: ctxt
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
@ -1494,14 +1494,14 @@ contains
|
|
|
|
|
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
|
|
|
|
|
idx = brvindx(ip+1)
|
|
|
|
|
p2ptag = psb_dcomplex_tag
|
|
|
|
|
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_c_dpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,rvhd(ip+1,1),iret)
|
|
|
|
|
p2ptag = psb_int_swap_tag
|
|
|
|
|
call mpi_irecv((iarcv(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_irecv(iarcv(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_mpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,rvhd(ip+1,2),iret)
|
|
|
|
|
call mpi_irecv((jarcv(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_irecv(jarcv(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_mpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,rvhd(ip+1,3),iret)
|
|
|
|
|
end if
|
|
|
|
|
@ -1514,14 +1514,14 @@ contains
|
|
|
|
|
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
|
|
|
|
|
idx = bsdindx(ip+1)
|
|
|
|
|
p2ptag = psb_dcomplex_tag
|
|
|
|
|
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_send(valsnd(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_c_dpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,iret)
|
|
|
|
|
p2ptag = psb_int_swap_tag
|
|
|
|
|
call mpi_send((iasnd(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_send(iasnd(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_mpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,iret)
|
|
|
|
|
call mpi_send((jasnd(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_send(jasnd(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_mpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,iret)
|
|
|
|
|
end if
|
|
|
|
|
@ -1547,10 +1547,10 @@ contains
|
|
|
|
|
#ifdef PSB_MPI_H
|
|
|
|
|
include 'mpif.h'
|
|
|
|
|
#endif
|
|
|
|
|
complex(psb_dpk_), intent(in), target :: valsnd(:)
|
|
|
|
|
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
|
|
|
|
|
complex(psb_dpk_), intent(out), target :: valrcv(:)
|
|
|
|
|
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
|
|
|
|
|
complex(psb_dpk_), intent(in) :: valsnd(:)
|
|
|
|
|
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
|
|
|
|
|
complex(psb_dpk_), intent(out) :: valrcv(:)
|
|
|
|
|
integer(psb_epk_), intent(out) :: iarcv(:), jarcv(:)
|
|
|
|
|
integer(psb_mpk_), intent(in) :: bsdindx(:), brvindx(:), sdsz(:), rvsz(:)
|
|
|
|
|
type(psb_ctxt_type), intent(in) :: ctxt
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|
@ -1577,14 +1577,14 @@ contains
|
|
|
|
|
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
|
|
|
|
|
idx = brvindx(ip+1)
|
|
|
|
|
p2ptag = psb_dcomplex_tag
|
|
|
|
|
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_c_dpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,rvhd(ip+1,1),iret)
|
|
|
|
|
p2ptag = psb_int_swap_tag
|
|
|
|
|
call mpi_irecv((iarcv(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_irecv(iarcv(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_epk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,rvhd(ip+1,2),iret)
|
|
|
|
|
call mpi_irecv((jarcv(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_irecv(jarcv(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_epk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,rvhd(ip+1,3),iret)
|
|
|
|
|
end if
|
|
|
|
|
@ -1597,14 +1597,14 @@ contains
|
|
|
|
|
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
|
|
|
|
|
idx = bsdindx(ip+1)
|
|
|
|
|
p2ptag = psb_dcomplex_tag
|
|
|
|
|
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_send(valsnd(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_c_dpk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,iret)
|
|
|
|
|
p2ptag = psb_int_swap_tag
|
|
|
|
|
call mpi_send((iasnd(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_send(iasnd(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_epk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,iret)
|
|
|
|
|
call mpi_send((jasnd(idx+1:idx+sz)),sz,&
|
|
|
|
|
call mpi_send(jasnd(idx+1:idx+sz),sz,&
|
|
|
|
|
& psb_mpi_epk_,prcid(ip+1),&
|
|
|
|
|
& p2ptag, icomm,iret)
|
|
|
|
|
end if
|
|
|
|
|
|