Fix bug in triad apparently caused by target attribute

fix-hash
sfilippone 1 year ago
parent e1ae3df6a3
commit c7d4147769

@ -1464,10 +1464,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
complex(psb_spk_), intent(in), target :: valsnd(:)
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
complex(psb_spk_), intent(out), target :: valrcv(:)
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
complex(psb_spk_), intent(in) :: valsnd(:)
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
complex(psb_spk_), 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_complex_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_c_spk_,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_complex_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_c_spk_,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_spk_), intent(in), target :: valsnd(:)
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
complex(psb_spk_), intent(out), target :: valrcv(:)
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
complex(psb_spk_), intent(in) :: valsnd(:)
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
complex(psb_spk_), 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_complex_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_c_spk_,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_complex_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_c_spk_,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

@ -2104,10 +2104,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
real(psb_dpk_), intent(in), target :: valsnd(:)
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
real(psb_dpk_), intent(out), target :: valrcv(:)
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
real(psb_dpk_), intent(in) :: valsnd(:)
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
real(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
@ -2134,14 +2134,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_double_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_r_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
@ -2154,14 +2154,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_double_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_r_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
@ -2187,10 +2187,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
real(psb_dpk_), intent(in), target :: valsnd(:)
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
real(psb_dpk_), intent(out), target :: valrcv(:)
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
real(psb_dpk_), intent(in) :: valsnd(:)
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
real(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
@ -2217,14 +2217,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_double_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_r_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
@ -2237,14 +2237,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_double_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_r_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

@ -1942,10 +1942,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
integer(psb_epk_), intent(in), target :: valsnd(:)
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
integer(psb_epk_), intent(out), target :: valrcv(:)
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
integer(psb_epk_), intent(in) :: valsnd(:)
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
integer(psb_epk_), 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
@ -1972,14 +1972,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_int8_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_epk_,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
@ -1992,14 +1992,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_int8_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_epk_,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
@ -2025,10 +2025,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
integer(psb_epk_), intent(in), target :: valsnd(:)
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
integer(psb_epk_), intent(out), target :: valrcv(:)
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
integer(psb_epk_), intent(in) :: valsnd(:)
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
integer(psb_epk_), 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
@ -2055,14 +2055,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_int8_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_epk_,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
@ -2075,14 +2075,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_int8_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_epk_,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

@ -1942,10 +1942,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
integer(psb_i2pk_), intent(in), target :: valsnd(:)
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
integer(psb_i2pk_), intent(out), target :: valrcv(:)
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
integer(psb_i2pk_), intent(in) :: valsnd(:)
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
integer(psb_i2pk_), 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
@ -1972,14 +1972,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_int2_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_i2pk_,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
@ -1992,14 +1992,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_int2_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_i2pk_,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
@ -2025,10 +2025,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
integer(psb_i2pk_), intent(in), target :: valsnd(:)
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
integer(psb_i2pk_), intent(out), target :: valrcv(:)
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
integer(psb_i2pk_), intent(in) :: valsnd(:)
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
integer(psb_i2pk_), 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
@ -2055,14 +2055,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_int2_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_i2pk_,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
@ -2075,14 +2075,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_int2_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_i2pk_,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

@ -1942,10 +1942,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
integer(psb_mpk_), intent(in), target :: valsnd(:)
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
integer(psb_mpk_), intent(out), target :: valrcv(:)
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
integer(psb_mpk_), intent(in) :: valsnd(:)
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
integer(psb_mpk_), 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
@ -1972,14 +1972,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_int4_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_mpk_,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
@ -1992,14 +1992,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_int4_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_mpk_,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
@ -2025,10 +2025,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
integer(psb_mpk_), intent(in), target :: valsnd(:)
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
integer(psb_mpk_), intent(out), target :: valrcv(:)
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
integer(psb_mpk_), intent(in) :: valsnd(:)
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
integer(psb_mpk_), 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
@ -2055,14 +2055,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_int4_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_mpk_,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
@ -2075,14 +2075,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_int4_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_mpk_,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

@ -2104,10 +2104,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
real(psb_spk_), intent(in), target :: valsnd(:)
integer(psb_mpk_), intent(in), target :: iasnd(:), jasnd(:)
real(psb_spk_), intent(out), target :: valrcv(:)
integer(psb_mpk_), intent(out),target :: iarcv(:), jarcv(:)
real(psb_spk_), intent(in) :: valsnd(:)
integer(psb_mpk_), intent(in) :: iasnd(:), jasnd(:)
real(psb_spk_), 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
@ -2134,14 +2134,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_real_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_r_spk_,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
@ -2154,14 +2154,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_real_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_r_spk_,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
@ -2187,10 +2187,10 @@ contains
#ifdef PSB_MPI_H
include 'mpif.h'
#endif
real(psb_spk_), intent(in), target :: valsnd(:)
integer(psb_epk_), intent(in), target :: iasnd(:), jasnd(:)
real(psb_spk_), intent(out), target :: valrcv(:)
integer(psb_epk_), intent(out), target :: iarcv(:), jarcv(:)
real(psb_spk_), intent(in) :: valsnd(:)
integer(psb_epk_), intent(in) :: iasnd(:), jasnd(:)
real(psb_spk_), 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
@ -2217,14 +2217,14 @@ contains
prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = brvindx(ip+1)
p2ptag = psb_real_tag
call mpi_irecv((valrcv(idx+1:idx+sz)),sz,&
call mpi_irecv(valrcv(idx+1:idx+sz),sz,&
& psb_mpi_r_spk_,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
@ -2237,14 +2237,14 @@ contains
if (prcid(ip+1)<0) prcid(ip+1) = psb_get_mpi_rank(ctxt,ip)
idx = bsdindx(ip+1)
p2ptag = psb_real_tag
call mpi_send((valsnd(idx+1:idx+sz)),sz,&
call mpi_send(valsnd(idx+1:idx+sz),sz,&
& psb_mpi_r_spk_,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

@ -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

Loading…
Cancel
Save