Changing names to integer kinds, in preparation for great rewrite

ILmat
Salvatore Filippone 9 years ago
parent 11be9e654b
commit 15c01cb5e5

@ -173,9 +173,9 @@ subroutine psi_cswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -662,9 +662,9 @@ subroutine psi_cswapidxv(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1113,9 +1113,9 @@ subroutine psi_cswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1456,9 +1456,9 @@ subroutine psi_cswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -179,9 +179,9 @@ subroutine psi_ctranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -677,9 +677,9 @@ subroutine psi_ctranidxv(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1132,9 +1132,9 @@ subroutine psi_ctran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1486,9 +1486,9 @@ subroutine psi_ctran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -173,9 +173,9 @@ subroutine psi_dswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -662,9 +662,9 @@ subroutine psi_dswapidxv(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1113,9 +1113,9 @@ subroutine psi_dswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1456,9 +1456,9 @@ subroutine psi_dswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -179,9 +179,9 @@ subroutine psi_dtranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -677,9 +677,9 @@ subroutine psi_dtranidxv(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1132,9 +1132,9 @@ subroutine psi_dtran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1486,9 +1486,9 @@ subroutine psi_dtran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -173,9 +173,9 @@ subroutine psi_iswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -297,8 +297,8 @@ subroutine psi_iswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
! swap elements using mpi_alltoallv
call mpi_alltoallv(sndbuf,sdsz,bsdidx,&
& psb_mpi_ipk_integer,rcvbuf,rvsz,&
& brvidx,psb_mpi_ipk_integer,icomm,iret)
& psb_mpi_ipk_int,rcvbuf,rvsz,&
& brvidx,psb_mpi_ipk_int,icomm,iret)
if(iret /= mpi_success) then
ierr(1) = iret
info=psb_err_mpi_error_
@ -355,7 +355,7 @@ subroutine psi_iswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
if ((nerv>0).and.(proc_to_comm /= me)) then
p2ptag = psb_int_swap_tag
call mpi_irecv(rcvbuf(rcv_pt),n*nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,rvhd(i),iret)
end if
rcv_pt = rcv_pt + n*nerv
@ -379,11 +379,11 @@ subroutine psi_iswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
if ((nesd>0).and.(proc_to_comm /= me)) then
if (usersend) then
call mpi_rsend(sndbuf(snd_pt),n*nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,iret)
else
call mpi_send(sndbuf(snd_pt),n*nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,iret)
end if
@ -662,9 +662,9 @@ subroutine psi_iswapidxv(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -787,8 +787,8 @@ subroutine psi_iswapidxv(iictxt,iicomm,flag,beta,y,idx, &
! swap elements using mpi_alltoallv
call mpi_alltoallv(sndbuf,sdsz,bsdidx,&
& psb_mpi_ipk_integer,rcvbuf,rvsz,&
& brvidx,psb_mpi_ipk_integer,icomm,iret)
& psb_mpi_ipk_int,rcvbuf,rvsz,&
& brvidx,psb_mpi_ipk_int,icomm,iret)
if(iret /= mpi_success) then
ierr(1) = iret
info=psb_err_mpi_error_
@ -845,7 +845,7 @@ subroutine psi_iswapidxv(iictxt,iicomm,flag,beta,y,idx, &
if ((nerv>0).and.(proc_to_comm /= me)) then
p2ptag = psb_int_swap_tag
call mpi_irecv(rcvbuf(rcv_pt),nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,rvhd(i),iret)
end if
rcv_pt = rcv_pt + nerv
@ -870,11 +870,11 @@ subroutine psi_iswapidxv(iictxt,iicomm,flag,beta,y,idx, &
if ((nesd>0).and.(proc_to_comm /= me)) then
if (usersend) then
call mpi_rsend(sndbuf(snd_pt),nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,iret)
else
call mpi_send(sndbuf(snd_pt),nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,iret)
end if
@ -1113,9 +1113,9 @@ subroutine psi_iswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1181,7 +1181,7 @@ subroutine psi_iswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt
p2ptag = psb_int_swap_tag
call mpi_irecv(y%combuf(rcv_pt),nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,y%comid(i,2),iret)
end if
pnti = pnti + nerv + nesd + 3
@ -1224,7 +1224,7 @@ subroutine psi_iswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
if ((nesd>0).and.(proc_to_comm /= me)) then
call mpi_isend(y%combuf(snd_pt),nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,y%comid(i,1),iret)
end if
@ -1456,9 +1456,9 @@ subroutine psi_iswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1526,7 +1526,7 @@ subroutine psi_iswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt
p2ptag = psb_int_swap_tag
call mpi_irecv(y%combuf(rcv_pt),n*nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,y%comid(i,2),iret)
end if
rcv_pt = rcv_pt + n*nerv
@ -1571,7 +1571,7 @@ subroutine psi_iswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
if ((nesd>0).and.(proc_to_comm /= me)) then
call mpi_isend(y%combuf(snd_pt),n*nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,y%comid(i,1),iret)
end if

@ -179,9 +179,9 @@ subroutine psi_itranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -308,8 +308,8 @@ subroutine psi_itranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
! swap elements using mpi_alltoallv
call mpi_alltoallv(rcvbuf,rvsz,brvidx,&
& psb_mpi_ipk_integer,&
& sndbuf,sdsz,bsdidx,psb_mpi_ipk_integer,icomm,iret)
& psb_mpi_ipk_int,&
& sndbuf,sdsz,bsdidx,psb_mpi_ipk_int,icomm,iret)
if(iret /= mpi_success) then
ierr(1) = iret
info=psb_err_mpi_error_
@ -366,7 +366,7 @@ subroutine psi_itranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
if ((nesd>0).and.(proc_to_comm /= me)) then
p2ptag = psb_int_swap_tag
call mpi_irecv(sndbuf(snd_pt),n*nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,rvhd(i),iret)
end if
rcv_pt = rcv_pt + n*nerv
@ -390,11 +390,11 @@ subroutine psi_itranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
p2ptag = psb_int_swap_tag
if (usersend) then
call mpi_rsend(rcvbuf(rcv_pt),n*nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,iret)
else
call mpi_send(rcvbuf(rcv_pt),n*nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,iret)
end if
@ -677,9 +677,9 @@ subroutine psi_itranidxv(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -807,8 +807,8 @@ subroutine psi_itranidxv(iictxt,iicomm,flag,beta,y,idx,&
! swap elements using mpi_alltoallv
call mpi_alltoallv(rcvbuf,rvsz,brvidx,&
& psb_mpi_ipk_integer,&
& sndbuf,sdsz,bsdidx,psb_mpi_ipk_integer,icomm,iret)
& psb_mpi_ipk_int,&
& sndbuf,sdsz,bsdidx,psb_mpi_ipk_int,icomm,iret)
if(iret /= mpi_success) then
ierr(1) = iret
info=psb_err_mpi_error_
@ -864,7 +864,7 @@ subroutine psi_itranidxv(iictxt,iicomm,flag,beta,y,idx,&
if ((nesd>0).and.(proc_to_comm /= me)) then
p2ptag = psb_int_swap_tag
call mpi_irecv(sndbuf(snd_pt),nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,rvhd(i),iret)
end if
rcv_pt = rcv_pt + nerv
@ -888,11 +888,11 @@ subroutine psi_itranidxv(iictxt,iicomm,flag,beta,y,idx,&
p2ptag = psb_int_swap_tag
if (usersend) then
call mpi_rsend(rcvbuf(rcv_pt),nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,iret)
else
call mpi_send(rcvbuf(rcv_pt),nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,iret)
end if
@ -1132,9 +1132,9 @@ subroutine psi_itran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1202,7 +1202,7 @@ subroutine psi_itran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
if ((nesd>0).and.(proc_to_comm /= me)) then
if (debug) write(*,*) me,'Posting receive from',prcid(i),rcv_pt
call mpi_irecv(y%combuf(snd_pt),nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,y%comid(i,2),iret)
end if
pnti = pnti + nerv + nesd + 3
@ -1249,7 +1249,7 @@ subroutine psi_itran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
if ((nerv>0).and.(proc_to_comm /= me)) then
call mpi_isend(y%combuf(rcv_pt),nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,y%comid(i,1),iret)
end if
@ -1486,9 +1486,9 @@ subroutine psi_itran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1556,7 +1556,7 @@ subroutine psi_itran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
if ((nesd>0).and.(proc_to_comm /= me)) then
if (debug) write(*,*) me,'Posting receive from',prcid(i),snd_pt
call mpi_irecv(y%combuf(snd_pt),n*nesd,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag, icomm,y%comid(i,2),iret)
end if
rcv_pt = rcv_pt + n*nerv
@ -1603,7 +1603,7 @@ subroutine psi_itran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
if ((nerv>0).and.(proc_to_comm /= me)) then
call mpi_isend(y%combuf(rcv_pt),n*nerv,&
& psb_mpi_ipk_integer,prcid(i),&
& psb_mpi_ipk_int,prcid(i),&
& p2ptag,icomm,y%comid(i,1),iret)
end if

@ -173,9 +173,9 @@ subroutine psi_sswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -662,9 +662,9 @@ subroutine psi_sswapidxv(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1113,9 +1113,9 @@ subroutine psi_sswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1456,9 +1456,9 @@ subroutine psi_sswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -179,9 +179,9 @@ subroutine psi_stranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -677,9 +677,9 @@ subroutine psi_stranidxv(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1132,9 +1132,9 @@ subroutine psi_stran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1486,9 +1486,9 @@ subroutine psi_stran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -173,9 +173,9 @@ subroutine psi_zswapidxm(iictxt,iicomm,flag,n,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -662,9 +662,9 @@ subroutine psi_zswapidxv(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1113,9 +1113,9 @@ subroutine psi_zswap_vidx_vect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1456,9 +1456,9 @@ subroutine psi_zswap_vidx_multivect(iictxt,iicomm,flag,beta,y,idx, &
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -179,9 +179,9 @@ subroutine psi_ztranidxm(iictxt,iicomm,flag,n,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -677,9 +677,9 @@ subroutine psi_ztranidxv(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable, dimension(:) :: bsdidx, brvidx,&
integer(psb_mpk_), allocatable, dimension(:) :: bsdidx, brvidx,&
& sdsz, rvsz, prcid, rvhd, sdhd
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
@ -1132,9 +1132,9 @@ subroutine psi_ztran_vidx_vect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n
@ -1486,9 +1486,9 @@ subroutine psi_ztran_vidx_multivect(iictxt,iicomm,flag,beta,y,idx,&
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
! locals
integer(psb_mpik_) :: ictxt, icomm, np, me,&
integer(psb_mpk_) :: ictxt, icomm, np, me,&
& proc_to_comm, p2ptag, p2pstat(mpi_status_size), iret
integer(psb_mpik_), allocatable :: prcid(:)
integer(psb_mpk_), allocatable :: prcid(:)
integer(psb_ipk_) :: nesd, nerv,&
& err_act, i, idx_pt, totsnd_, totrcv_,&
& snd_pt, rcv_pt, pnti, n

@ -57,7 +57,7 @@ subroutine psb_cgatherm(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, &
& ilx, i, j, idx
@ -229,7 +229,7 @@ subroutine psb_cgatherv(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
@ -342,7 +342,7 @@ subroutine psb_cgather_vect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
complex(psb_spk_), allocatable :: llocx(:)
@ -455,7 +455,7 @@ subroutine psb_cgather_multivect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
complex(psb_spk_), allocatable :: llocx(:,:)

@ -65,7 +65,7 @@ subroutine psb_chalom(x,desc_a,info,jx,ik,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, k, maxk, nrow, imode, i,&
& err, liwork,data_, ldx
complex(psb_spk_),pointer :: iwork(:), xp(:,:)
@ -272,7 +272,7 @@ subroutine psb_chalov(x,desc_a,info,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, ldx, &
& m, n, iix, jjx, ix, ijx, nrow, imode, err, liwork,data_
complex(psb_spk_),pointer :: iwork(:)

@ -76,7 +76,7 @@ subroutine psb_covrlm(x,desc_a,info,jx,ik,work,update,mode)
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, nrow, ncol, k, maxk, update_,&
& mode_, err, liwork, ldx
complex(psb_spk_),pointer :: iwork(:), xp(:,:)

@ -62,7 +62,7 @@ subroutine psb_cscatterm(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_mpk_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, lock, globk, k, maxk, &
& col,pos
@ -157,8 +157,8 @@ subroutine psb_cscatterm(globx, locx, desc_a, info, root)
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if (iam == iroot) then
displ(1)=0
@ -185,8 +185,8 @@ subroutine psb_cscatterm(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
do col=1, k
! prepare vector to scatter
@ -298,7 +298,7 @@ subroutine psb_cscatterv(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
complex(psb_spk_), allocatable :: scatterv(:)
@ -384,8 +384,8 @@ subroutine psb_cscatterv(globx, locx, desc_a, info, root)
else
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if(iam == iroot) then
displ(1)=0
@ -417,8 +417,8 @@ subroutine psb_cscatterv(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
! prepare vector to scatter
if (iam == iroot) then
@ -504,7 +504,7 @@ subroutine psb_cscatter_vect(globx, locx, desc_a, info, root, mold)
class(psb_c_base_vect_type), intent(in), optional :: mold
! locals
integer(psb_mpik_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
complex(psb_spk_), allocatable :: vlocx(:)

@ -54,9 +54,9 @@ subroutine psb_csp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
integer(psb_ipk_) :: err_act, dupl_, nrg, ncg, nzg
integer(psb_ipk_) :: ip,naggrm1,naggrp1, i, j, k, nzl
logical :: keepnum_, keeploc_
integer(psb_mpik_) :: ictxt,np,me
integer(psb_mpik_) :: icomm, minfo, ndx
integer(psb_mpik_), allocatable :: nzbr(:), idisp(:)
integer(psb_mpk_) :: ictxt,np,me
integer(psb_mpk_) :: icomm, minfo, ndx
integer(psb_mpk_), allocatable :: nzbr(:), idisp(:)
integer(psb_ipk_) :: ierr(5)
character(len=20) :: name
integer(psb_ipk_) :: debug_level, debug_unit
@ -117,13 +117,13 @@ subroutine psb_csp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
& glob_coo%val,nzbr,idisp,&
& psb_mpi_c_spk_,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_int,&
& glob_coo%ia,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_int,&
& glob_coo%ja,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo /= psb_success_) then
info = minfo

@ -57,7 +57,7 @@ subroutine psb_dgatherm(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, &
& ilx, i, j, idx
@ -229,7 +229,7 @@ subroutine psb_dgatherv(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
@ -342,7 +342,7 @@ subroutine psb_dgather_vect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
real(psb_dpk_), allocatable :: llocx(:)
@ -455,7 +455,7 @@ subroutine psb_dgather_multivect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
real(psb_dpk_), allocatable :: llocx(:,:)

@ -65,7 +65,7 @@ subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, k, maxk, nrow, imode, i,&
& err, liwork,data_, ldx
real(psb_dpk_),pointer :: iwork(:), xp(:,:)
@ -272,7 +272,7 @@ subroutine psb_dhalov(x,desc_a,info,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, ldx, &
& m, n, iix, jjx, ix, ijx, nrow, imode, err, liwork,data_
real(psb_dpk_),pointer :: iwork(:)

@ -76,7 +76,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update,mode)
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, nrow, ncol, k, maxk, update_,&
& mode_, err, liwork, ldx
real(psb_dpk_),pointer :: iwork(:), xp(:,:)

@ -62,7 +62,7 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_mpk_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, lock, globk, k, maxk, &
& col,pos
@ -157,8 +157,8 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, root)
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if (iam == iroot) then
displ(1)=0
@ -185,8 +185,8 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
do col=1, k
! prepare vector to scatter
@ -298,7 +298,7 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
real(psb_dpk_), allocatable :: scatterv(:)
@ -384,8 +384,8 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, root)
else
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if(iam == iroot) then
displ(1)=0
@ -417,8 +417,8 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
! prepare vector to scatter
if (iam == iroot) then
@ -504,7 +504,7 @@ subroutine psb_dscatter_vect(globx, locx, desc_a, info, root, mold)
class(psb_d_base_vect_type), intent(in), optional :: mold
! locals
integer(psb_mpik_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
real(psb_dpk_), allocatable :: vlocx(:)

@ -54,9 +54,9 @@ subroutine psb_dsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
integer(psb_ipk_) :: err_act, dupl_, nrg, ncg, nzg
integer(psb_ipk_) :: ip,naggrm1,naggrp1, i, j, k, nzl
logical :: keepnum_, keeploc_
integer(psb_mpik_) :: ictxt,np,me
integer(psb_mpik_) :: icomm, minfo, ndx
integer(psb_mpik_), allocatable :: nzbr(:), idisp(:)
integer(psb_mpk_) :: ictxt,np,me
integer(psb_mpk_) :: icomm, minfo, ndx
integer(psb_mpk_), allocatable :: nzbr(:), idisp(:)
integer(psb_ipk_) :: ierr(5)
character(len=20) :: name
integer(psb_ipk_) :: debug_level, debug_unit
@ -117,13 +117,13 @@ subroutine psb_dsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
& glob_coo%val,nzbr,idisp,&
& psb_mpi_r_dpk_,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_int,&
& glob_coo%ia,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_int,&
& glob_coo%ja,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo /= psb_success_) then
info = minfo

@ -57,7 +57,7 @@ subroutine psb_igatherm(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, &
& ilx, i, j, idx
@ -229,7 +229,7 @@ subroutine psb_igatherv(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
@ -342,7 +342,7 @@ subroutine psb_igather_vect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
integer(psb_ipk_), allocatable :: llocx(:)
@ -455,7 +455,7 @@ subroutine psb_igather_multivect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
integer(psb_ipk_), allocatable :: llocx(:,:)

@ -65,7 +65,7 @@ subroutine psb_ihalom(x,desc_a,info,jx,ik,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, k, maxk, nrow, imode, i,&
& err, liwork,data_, ldx
integer(psb_ipk_),pointer :: iwork(:), xp(:,:)
@ -272,7 +272,7 @@ subroutine psb_ihalov(x,desc_a,info,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, ldx, &
& m, n, iix, jjx, ix, ijx, nrow, imode, err, liwork,data_
integer(psb_ipk_),pointer :: iwork(:)

@ -76,7 +76,7 @@ subroutine psb_iovrlm(x,desc_a,info,jx,ik,work,update,mode)
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, nrow, ncol, k, maxk, update_,&
& mode_, err, liwork, ldx
integer(psb_ipk_),pointer :: iwork(:), xp(:,:)

@ -62,7 +62,7 @@ subroutine psb_iscatterm(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_mpk_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, lock, globk, k, maxk, &
& col,pos
@ -157,8 +157,8 @@ subroutine psb_iscatterm(globx, locx, desc_a, info, root)
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if (iam == iroot) then
displ(1)=0
@ -185,8 +185,8 @@ subroutine psb_iscatterm(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
do col=1, k
! prepare vector to scatter
@ -202,8 +202,8 @@ subroutine psb_iscatterm(globx, locx, desc_a, info, root)
! scatter
call mpi_scatterv(scatterv,all_dim,displ,&
& psb_mpi_ipk_integer,locx(1,col),nrow,&
& psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,locx(1,col),nrow,&
& psb_mpi_ipk_int,rootrank,icomm,info)
end do
@ -298,7 +298,7 @@ subroutine psb_iscatterv(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
integer(psb_ipk_), allocatable :: scatterv(:)
@ -384,8 +384,8 @@ subroutine psb_iscatterv(globx, locx, desc_a, info, root)
else
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if(iam == iroot) then
displ(1)=0
@ -417,8 +417,8 @@ subroutine psb_iscatterv(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
! prepare vector to scatter
if (iam == iroot) then
@ -433,8 +433,8 @@ subroutine psb_iscatterv(globx, locx, desc_a, info, root)
end if
call mpi_scatterv(scatterv,all_dim,displ,&
& psb_mpi_ipk_integer,locx,nrow,&
& psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,locx,nrow,&
& psb_mpi_ipk_int,rootrank,icomm,info)
deallocate(l_t_g_all, scatterv,stat=info)
if(info /= psb_success_) then
@ -504,7 +504,7 @@ subroutine psb_iscatter_vect(globx, locx, desc_a, info, root, mold)
class(psb_i_base_vect_type), intent(in), optional :: mold
! locals
integer(psb_mpik_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
integer(psb_ipk_), allocatable :: vlocx(:)

@ -57,7 +57,7 @@ subroutine psb_sgatherm(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, &
& ilx, i, j, idx
@ -229,7 +229,7 @@ subroutine psb_sgatherv(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
@ -342,7 +342,7 @@ subroutine psb_sgather_vect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
real(psb_spk_), allocatable :: llocx(:)
@ -455,7 +455,7 @@ subroutine psb_sgather_multivect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
real(psb_spk_), allocatable :: llocx(:,:)

@ -65,7 +65,7 @@ subroutine psb_shalom(x,desc_a,info,jx,ik,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, k, maxk, nrow, imode, i,&
& err, liwork,data_, ldx
real(psb_spk_),pointer :: iwork(:), xp(:,:)
@ -272,7 +272,7 @@ subroutine psb_shalov(x,desc_a,info,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, ldx, &
& m, n, iix, jjx, ix, ijx, nrow, imode, err, liwork,data_
real(psb_spk_),pointer :: iwork(:)

@ -76,7 +76,7 @@ subroutine psb_sovrlm(x,desc_a,info,jx,ik,work,update,mode)
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, nrow, ncol, k, maxk, update_,&
& mode_, err, liwork, ldx
real(psb_spk_),pointer :: iwork(:), xp(:,:)

@ -62,7 +62,7 @@ subroutine psb_sscatterm(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_mpk_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, lock, globk, k, maxk, &
& col,pos
@ -157,8 +157,8 @@ subroutine psb_sscatterm(globx, locx, desc_a, info, root)
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if (iam == iroot) then
displ(1)=0
@ -185,8 +185,8 @@ subroutine psb_sscatterm(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
do col=1, k
! prepare vector to scatter
@ -298,7 +298,7 @@ subroutine psb_sscatterv(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
real(psb_spk_), allocatable :: scatterv(:)
@ -384,8 +384,8 @@ subroutine psb_sscatterv(globx, locx, desc_a, info, root)
else
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if(iam == iroot) then
displ(1)=0
@ -417,8 +417,8 @@ subroutine psb_sscatterv(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
! prepare vector to scatter
if (iam == iroot) then
@ -504,7 +504,7 @@ subroutine psb_sscatter_vect(globx, locx, desc_a, info, root, mold)
class(psb_s_base_vect_type), intent(in), optional :: mold
! locals
integer(psb_mpik_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
real(psb_spk_), allocatable :: vlocx(:)

@ -54,9 +54,9 @@ subroutine psb_ssp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
integer(psb_ipk_) :: err_act, dupl_, nrg, ncg, nzg
integer(psb_ipk_) :: ip,naggrm1,naggrp1, i, j, k, nzl
logical :: keepnum_, keeploc_
integer(psb_mpik_) :: ictxt,np,me
integer(psb_mpik_) :: icomm, minfo, ndx
integer(psb_mpik_), allocatable :: nzbr(:), idisp(:)
integer(psb_mpk_) :: ictxt,np,me
integer(psb_mpk_) :: icomm, minfo, ndx
integer(psb_mpk_), allocatable :: nzbr(:), idisp(:)
integer(psb_ipk_) :: ierr(5)
character(len=20) :: name
integer(psb_ipk_) :: debug_level, debug_unit
@ -117,13 +117,13 @@ subroutine psb_ssp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
& glob_coo%val,nzbr,idisp,&
& psb_mpi_r_spk_,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_int,&
& glob_coo%ia,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_int,&
& glob_coo%ja,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo /= psb_success_) then
info = minfo

@ -57,7 +57,7 @@ subroutine psb_zgatherm(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, &
& ilx, i, j, idx
@ -229,7 +229,7 @@ subroutine psb_zgatherv(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
@ -342,7 +342,7 @@ subroutine psb_zgather_vect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
complex(psb_dpk_), allocatable :: llocx(:)
@ -455,7 +455,7 @@ subroutine psb_zgather_multivect(globx, locx, desc_a, info, iroot)
! locals
integer(psb_mpik_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, root, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, n, ilocx, iglobx, jlocx,&
& jglobx, lda_locx, lda_globx, m, k, jlx, ilx, i, idx
complex(psb_dpk_), allocatable :: llocx(:,:)

@ -65,7 +65,7 @@ subroutine psb_zhalom(x,desc_a,info,jx,ik,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, k, maxk, nrow, imode, i,&
& err, liwork,data_, ldx
complex(psb_dpk_),pointer :: iwork(:), xp(:,:)
@ -272,7 +272,7 @@ subroutine psb_zhalov(x,desc_a,info,work,tran,mode,data)
character, intent(in), optional :: tran
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, ldx, &
& m, n, iix, jjx, ix, ijx, nrow, imode, err, liwork,data_
complex(psb_dpk_),pointer :: iwork(:)

@ -76,7 +76,7 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update,mode)
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
! locals
integer(psb_mpik_) :: ictxt, np, me
integer(psb_mpk_) :: ictxt, np, me
integer(psb_ipk_) :: err_act, m, n, iix, jjx, ix, ijx, nrow, ncol, k, maxk, update_,&
& mode_, err, liwork, ldx
complex(psb_dpk_),pointer :: iwork(:), xp(:,:)

@ -62,7 +62,7 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_mpk_) :: ictxt, np, me, iroot, icomm, myrank, rootrank, iam
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, lock, globk, k, maxk, &
& col,pos
@ -157,8 +157,8 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, root)
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if (iam == iroot) then
displ(1)=0
@ -185,8 +185,8 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
do col=1, k
! prepare vector to scatter
@ -298,7 +298,7 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, root)
! locals
integer(psb_mpik_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, iam, iroot, iiroot, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
complex(psb_dpk_), allocatable :: scatterv(:)
@ -384,8 +384,8 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, root)
else
call psb_get_rank(rootrank,ictxt,iroot)
call mpi_gather(nrow,1,psb_mpi_ipk_integer,all_dim,&
& 1,psb_mpi_ipk_integer,rootrank,icomm,info)
call mpi_gather(nrow,1,psb_mpi_ipk_int,all_dim,&
& 1,psb_mpi_ipk_int,rootrank,icomm,info)
if(iam == iroot) then
displ(1)=0
@ -417,8 +417,8 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, root)
end if
call mpi_gatherv(ltg,nrow,&
& psb_mpi_ipk_integer,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_integer,rootrank,icomm,info)
& psb_mpi_ipk_int,l_t_g_all,all_dim,&
& displ,psb_mpi_ipk_int,rootrank,icomm,info)
! prepare vector to scatter
if (iam == iroot) then
@ -504,7 +504,7 @@ subroutine psb_zscatter_vect(globx, locx, desc_a, info, root, mold)
class(psb_z_base_vect_type), intent(in), optional :: mold
! locals
integer(psb_mpik_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_mpk_) :: ictxt, np, me, icomm, myrank, rootrank
integer(psb_ipk_) :: ierr(5), err_act, m, n, i, j, idx, nrow, iglobx, jglobx,&
& ilocx, jlocx, lda_locx, lda_globx, k, pos, ilx, jlx
complex(psb_dpk_), allocatable :: vlocx(:)

@ -54,9 +54,9 @@ subroutine psb_zsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
integer(psb_ipk_) :: err_act, dupl_, nrg, ncg, nzg
integer(psb_ipk_) :: ip,naggrm1,naggrp1, i, j, k, nzl
logical :: keepnum_, keeploc_
integer(psb_mpik_) :: ictxt,np,me
integer(psb_mpik_) :: icomm, minfo, ndx
integer(psb_mpik_), allocatable :: nzbr(:), idisp(:)
integer(psb_mpk_) :: ictxt,np,me
integer(psb_mpk_) :: icomm, minfo, ndx
integer(psb_mpk_), allocatable :: nzbr(:), idisp(:)
integer(psb_ipk_) :: ierr(5)
character(len=20) :: name
integer(psb_ipk_) :: debug_level, debug_unit
@ -117,13 +117,13 @@ subroutine psb_zsp_allgather(globa, loca, desc_a, info, root, dupl,keepnum,keep
& glob_coo%val,nzbr,idisp,&
& psb_mpi_c_dpk_,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ia,ndx,psb_mpi_ipk_int,&
& glob_coo%ia,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo == psb_success_) call &
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_integer,&
& mpi_allgatherv(loc_coo%ja,ndx,psb_mpi_ipk_int,&
& glob_coo%ja,nzbr,idisp,&
& psb_mpi_ipk_integer,icomm,minfo)
& psb_mpi_ipk_int,icomm,minfo)
if (minfo /= psb_success_) then
info = minfo

@ -68,9 +68,9 @@ subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info)
integer(psb_ipk_), allocatable :: helem(:),hproc(:),&
& answers(:,:),idxsrch(:,:), hhidx(:)
integer(psb_mpik_), allocatable :: hsz(:),hidx(:), &
integer(psb_mpk_), allocatable :: hsz(:),hidx(:), &
& sdsz(:),sdidx(:), rvsz(:), rvidx(:)
integer(psb_mpik_) :: icomm, minfo, iictxt
integer(psb_mpk_) :: icomm, minfo, iictxt
integer(psb_ipk_) :: i,n_row,n_col,err_act,ih,hsize,ip,isz,k,j,&
& last_ih, last_j, nv, mglob
integer(psb_ipk_) :: ictxt,np,me, nresp
@ -169,8 +169,8 @@ subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info)
t3 = psb_wtime()
end if
call mpi_allgatherv(idx,hsz(me+1),psb_mpi_ipk_integer,&
& hproc,hsz,hidx,psb_mpi_ipk_integer,&
call mpi_allgatherv(idx,hsz(me+1),psb_mpi_ipk_int,&
& hproc,hsz,hidx,psb_mpi_ipk_int,&
& icomm,minfo)
if (gettime) then
tamx = psb_wtime() - t3
@ -213,8 +213,8 @@ subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info)
end if
! Collect all the answers with alltoallv (need sizes)
call mpi_alltoall(sdsz,1,psb_mpi_def_integer,&
& rvsz,1,psb_mpi_def_integer,icomm,minfo)
call mpi_alltoall(sdsz,1,psb_mpi_mpk_int,&
& rvsz,1,psb_mpi_mpk_int,icomm,minfo)
isz = sum(rvsz)
@ -228,8 +228,8 @@ subroutine psb_indx_map_fnd_owner(idx,iprc,idxmap,info)
rvidx(ip) = j
j = j + rvsz(ip)
end do
call mpi_alltoallv(hproc,sdsz,sdidx,psb_mpi_ipk_integer,&
& answers(:,1),rvsz,rvidx,psb_mpi_ipk_integer,&
call mpi_alltoallv(hproc,sdsz,sdidx,psb_mpi_ipk_int,&
& answers(:,1),rvsz,rvidx,psb_mpi_ipk_int,&
& icomm,minfo)
if (gettime) then
tamx = psb_wtime() - t3 + tamx

@ -128,12 +128,12 @@ subroutine psi_desc_index(desc,index_in,dep_list,&
! ...local arrays..
integer(psb_ipk_),allocatable :: sndbuf(:), rcvbuf(:)
integer(psb_mpik_),allocatable :: brvindx(:),rvsz(:),&
integer(psb_mpk_),allocatable :: brvindx(:),rvsz(:),&
& bsdindx(:),sdsz(:)
integer(psb_ipk_) :: ihinsz,ntot,k,err_act,nidx,&
& idxr, idxs, iszs, iszr, nesd, nerv
integer(psb_mpik_) :: icomm, minfo
integer(psb_mpk_) :: icomm, minfo
logical,parameter :: usempi=.true.
integer(psb_ipk_) :: debug_level, debug_unit
@ -186,7 +186,7 @@ subroutine psi_desc_index(desc,index_in,dep_list,&
i = i + nerv + 1
end do
ihinsz=i
call mpi_alltoall(sdsz,1,psb_mpi_def_integer,rvsz,1,psb_mpi_def_integer,icomm,minfo)
call mpi_alltoall(sdsz,1,psb_mpi_mpk_int,rvsz,1,psb_mpi_mpk_int,icomm,minfo)
if (minfo /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='mpi_alltoall')
goto 9999
@ -292,8 +292,8 @@ subroutine psi_desc_index(desc,index_in,dep_list,&
idxr = idxr + rvsz(proc+1)
end do
call mpi_alltoallv(sndbuf,sdsz,bsdindx,psb_mpi_ipk_integer,&
& rcvbuf,rvsz,brvindx,psb_mpi_ipk_integer,icomm,minfo)
call mpi_alltoallv(sndbuf,sdsz,bsdindx,psb_mpi_ipk_int,&
& rcvbuf,rvsz,brvindx,psb_mpi_ipk_int,icomm,minfo)
if (minfo /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='mpi_alltoallv')
goto 9999

@ -145,7 +145,7 @@ subroutine psi_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,&
integer(psb_ipk_) :: i,pointer_dep_list,proc,j,err_act
integer(psb_ipk_) :: err
integer(psb_ipk_) :: debug_level, debug_unit
integer(psb_mpik_) :: iictxt, icomm, me, npr, dl_mpi, minfo
integer(psb_mpk_) :: iictxt, icomm, me, npr, dl_mpi, minfo
character name*20
name='psi_extrct_dl'
@ -272,8 +272,8 @@ subroutine psi_extract_dep_list(ictxt,is_bld,is_upd,desc_str,dep_list,&
endif
itmp(1:dl_lda) = dep_list(1:dl_lda,me)
dl_mpi = dl_lda
call mpi_allgather(itmp,dl_mpi,psb_mpi_ipk_integer,&
& dep_list,dl_mpi,psb_mpi_ipk_integer,icomm,minfo)
call mpi_allgather(itmp,dl_mpi,psb_mpi_ipk_int,&
& dep_list,dl_mpi,psb_mpi_ipk_int,icomm,minfo)
info = minfo
if (info == 0) deallocate(itmp,stat=info)
if (info /= psb_success_) then

@ -109,7 +109,7 @@ contains
key_ = key
val = ival
do i=1, psb_sizeof_int
do i=1, psb_sizeof_ip
val = val * 33 + iand(key_,255)
key_ = ishft(key_,-8)
end do
@ -130,7 +130,7 @@ contains
key_ = key
val = ival
do i=1, psb_sizeof_long_int
do i=1, psb_sizeof_lp
val = val * 33 + iand(key_,255)
key_ = ishft(key_,-8)
end do
@ -143,10 +143,10 @@ contains
function psb_Sizeof_hash_type(hash) result(val)
type(psb_hash_type) :: hash
integer(psb_long_int_k_) :: val
val = 4*psb_sizeof_int + 2*psb_sizeof_long_int
integer(psb_epk_) :: val
val = 4*psb_sizeof_ip + 2*psb_sizeof_lp
if (allocated(hash%table)) &
& val = val + psb_sizeof_long_int * size(hash%table)
& val = val + psb_sizeof_lp * size(hash%table)
end function psb_Sizeof_hash_type

@ -124,13 +124,13 @@ contains
use psb_desc_mod
implicit none
class(psb_base_linmap_type), intent(in) :: map
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = psb_sizeof_int
val = psb_sizeof_ip
if (allocated(map%iaggr)) &
& val = val + psb_sizeof_int*size(map%iaggr)
& val = val + psb_sizeof_ip*size(map%iaggr)
if (allocated(map%naggr)) &
& val = val + psb_sizeof_int*size(map%naggr)
& val = val + psb_sizeof_ip*size(map%naggr)
val = val + map%desc_X%sizeof()
val = val + map%desc_Y%sizeof()

@ -141,7 +141,7 @@ contains
use psb_c_mat_mod
implicit none
class(psb_clinmap_type), intent(in) :: map
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = map%psb_base_linmap_type%sizeof()
val = val + map%map_X2Y%sizeof()

@ -141,7 +141,7 @@ contains
use psb_d_mat_mod
implicit none
class(psb_dlinmap_type), intent(in) :: map
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = map%psb_base_linmap_type%sizeof()
val = val + map%map_X2Y%sizeof()

@ -141,7 +141,7 @@ contains
use psb_s_mat_mod
implicit none
class(psb_slinmap_type), intent(in) :: map
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = map%psb_base_linmap_type%sizeof()
val = val + map%map_X2Y%sizeof()

@ -141,7 +141,7 @@ contains
use psb_z_mat_mod
implicit none
class(psb_zlinmap_type), intent(in) :: map
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = map%psb_base_linmap_type%sizeof()
val = val + map%map_X2Y%sizeof()

@ -35,7 +35,7 @@
! Auxiliary module for descriptor: constant values.
!
module psb_desc_const_mod
use psb_const_mod, only : psb_ipk_, psb_mpik_
use psb_const_mod, only : psb_ipk_, psb_mpk_
!
! Communication, prolongation & restriction
!

@ -299,17 +299,17 @@ contains
!....Parameters...
class(psb_desc_type), intent(in) :: desc
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = 0
val = val + psb_sizeof_int*psb_size(desc%halo_index)
val = val + psb_sizeof_int*psb_size(desc%ext_index)
val = val + psb_sizeof_int*psb_size(desc%bnd_elem)
val = val + psb_sizeof_int*psb_size(desc%ovrlap_index)
val = val + psb_sizeof_int*psb_size(desc%ovrlap_elem)
val = val + psb_sizeof_int*psb_size(desc%ovr_mst_idx)
val = val + psb_sizeof_int*psb_size(desc%lprm)
val = val + psb_sizeof_int*psb_size(desc%idx_space)
val = val + psb_sizeof_ip*psb_size(desc%halo_index)
val = val + psb_sizeof_ip*psb_size(desc%ext_index)
val = val + psb_sizeof_ip*psb_size(desc%bnd_elem)
val = val + psb_sizeof_ip*psb_size(desc%ovrlap_index)
val = val + psb_sizeof_ip*psb_size(desc%ovrlap_elem)
val = val + psb_sizeof_ip*psb_size(desc%ovr_mst_idx)
val = val + psb_sizeof_ip*psb_size(desc%lprm)
val = val + psb_sizeof_ip*psb_size(desc%idx_space)
if (allocated(desc%indxmap)) val = val + desc%indxmap%sizeof()
val = val + desc%v_halo_index%sizeof()
val = val + desc%v_ext_index%sizeof()

@ -122,16 +122,16 @@ contains
function block_sizeof(idxmap) result(val)
implicit none
class(psb_gen_block_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = idxmap%psb_indx_map%sizeof()
val = val + 2 * psb_sizeof_long_int
val = val + 2 * psb_sizeof_lp
if (allocated(idxmap%loc_to_glob)) &
& val = val + size(idxmap%loc_to_glob)*psb_sizeof_long_int
& val = val + size(idxmap%loc_to_glob)*psb_sizeof_lp
if (allocated(idxmap%srt_l2g)) &
& val = val + size(idxmap%srt_l2g)*psb_sizeof_long_int
& val = val + size(idxmap%srt_l2g)*psb_sizeof_lp
if (allocated(idxmap%vnl)) &
& val = val + size(idxmap%vnl)*psb_sizeof_long_int
& val = val + size(idxmap%vnl)*psb_sizeof_lp
val = val + psb_sizeof(idxmap%hash)
end function block_sizeof
@ -515,7 +515,7 @@ contains
logical, intent(in), optional :: owned
integer(psb_ipk_) :: i, nv, is, ip, lip
integer(psb_lpk_) :: tidx
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
logical :: owned_
info = 0
@ -628,7 +628,7 @@ contains
integer(psb_ipk_) :: i, nv, is, ip, lip, im
integer(psb_lpk_) :: tidx
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
logical :: owned_
info = 0
@ -778,7 +778,7 @@ contains
logical, intent(in), optional :: owned
integer(psb_ipk_) :: i, nv, is, ip, lip
integer(psb_lpk_) :: tidx
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
logical :: owned_
info = 0
@ -891,7 +891,7 @@ contains
integer(psb_ipk_) :: i, nv, is, ip, lip, im
integer(psb_lpk_) :: tidx
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
logical :: owned_
info = 0
@ -1921,11 +1921,11 @@ contains
use psb_error_mod
implicit none
class(psb_gen_block_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: nl
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
integer(psb_ipk_) :: i, ntot
integer(psb_lpk_), allocatable :: vnl(:)
@ -1986,7 +1986,7 @@ contains
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nhal
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
info = 0
ictxt = idxmap%get_ctxt()

@ -67,12 +67,12 @@ contains
function glist_sizeof(idxmap) result(val)
implicit none
class(psb_glist_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = idxmap%psb_list_map%sizeof()
if (allocated(idxmap%vgp)) &
& val = val + size(idxmap%vgp)*psb_sizeof_int
& val = val + size(idxmap%vgp)*psb_sizeof_ip
end function glist_sizeof
@ -96,11 +96,11 @@ contains
use psb_error_mod
implicit none
class(psb_glist_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vg(:)
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
integer(psb_ipk_) :: i, n, nl
@ -157,7 +157,7 @@ contains
integer(psb_ipk_), allocatable, intent(out) :: iprc(:)
class(psb_glist_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
integer(psb_ipk_) :: nv, i, ngp
ictxt = idxmap%get_ctxt()

@ -126,16 +126,16 @@ contains
function hash_sizeof(idxmap) result(val)
implicit none
class(psb_hash_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = idxmap%psb_indx_map%sizeof()
val = val + 2 * psb_sizeof_int
val = val + 2 * psb_sizeof_ip
if (allocated(idxmap%hashv)) &
& val = val + size(idxmap%hashv)*psb_sizeof_int
& val = val + size(idxmap%hashv)*psb_sizeof_ip
if (allocated(idxmap%glb_lc)) &
& val = val + size(idxmap%glb_lc)*psb_sizeof_int
& val = val + size(idxmap%glb_lc)*psb_sizeof_ip
if (allocated(idxmap%loc_to_glob)) &
& val = val + size(idxmap%loc_to_glob)*psb_sizeof_int
& val = val + size(idxmap%loc_to_glob)*psb_sizeof_ip
val = val + psb_sizeof(idxmap%hash)
end function hash_sizeof
@ -312,7 +312,7 @@ contains
logical, intent(in), optional :: mask(:)
logical, intent(in), optional :: owned
integer(psb_ipk_) :: i, is, mglob, ip, lip, nrow, ncol, nrm
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
logical :: owned_
info = 0
@ -755,11 +755,11 @@ contains
use psb_realloc_mod
implicit none
class(psb_hash_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
integer(psb_ipk_) :: i, nlu, nl, m, nrt,int_err(5)
integer(psb_ipk_), allocatable :: vlu(:), ix(:)
character(len=20), parameter :: name='hash_map_init_vl'
@ -826,11 +826,11 @@ contains
use psb_error_mod
implicit none
class(psb_hash_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vg(:)
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
integer(psb_ipk_) :: i, j, nl, n, int_err(5)
integer(psb_ipk_), allocatable :: vlu(:)
@ -885,11 +885,11 @@ contains
use psb_realloc_mod
implicit none
class(psb_hash_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vlu(:), nl, ntot
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
integer(psb_ipk_) :: i, j, lc2, nlu, m, nrt,int_err(5)
character(len=20), parameter :: name='hash_map_init_vlu'
@ -942,7 +942,7 @@ contains
class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
integer(psb_ipk_) :: i, j, m, nl
integer(psb_ipk_) :: key, ih, nh, idx, nbits, hsize, hmask
character(len=20), parameter :: name='hash_map_init_vlu'
@ -1045,7 +1045,7 @@ contains
class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
integer(psb_ipk_) :: nhal
info = 0
@ -1461,7 +1461,7 @@ contains
class(psb_hash_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: err_act, nr,nc,k, nl, ntot
integer(psb_mpik_) :: ictxt, me, np
integer(psb_mpk_) :: ictxt, me, np
integer(psb_ipk_), allocatable :: idx(:),lidx(:)
character(len=20) :: name='hash_reinit'
logical, parameter :: debug=.false.

@ -108,9 +108,9 @@ module psb_indx_map_mod
!> State of the map
integer(psb_ipk_) :: state = psb_desc_null_
!> Communication context
integer(psb_mpik_) :: ictxt = -1
integer(psb_mpk_) :: ictxt = -1
!> MPI communicator
integer(psb_mpik_) :: mpic = -1
integer(psb_mpk_) :: mpic = -1
!> Number of global rows
integer(psb_lpk_) :: global_rows = -1
!> Number of global columns
@ -317,7 +317,7 @@ contains
function base_get_ctxt(idxmap) result(val)
implicit none
class(psb_indx_map), intent(in) :: idxmap
integer(psb_mpik_) :: val
integer(psb_mpk_) :: val
val = idxmap%ictxt
@ -327,7 +327,7 @@ contains
function base_get_mpic(idxmap) result(val)
implicit none
class(psb_indx_map), intent(in) :: idxmap
integer(psb_mpik_) :: val
integer(psb_mpk_) :: val
val = idxmap%mpic
@ -345,7 +345,7 @@ contains
subroutine base_set_ctxt(idxmap,val)
implicit none
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: val
integer(psb_mpk_), intent(in) :: val
idxmap%ictxt = val
end subroutine base_set_ctxt
@ -401,7 +401,7 @@ contains
subroutine base_set_mpic(idxmap,val)
implicit none
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: val
integer(psb_mpk_), intent(in) :: val
idxmap%mpic = val
end subroutine base_set_mpic
@ -472,9 +472,9 @@ contains
function base_sizeof(idxmap) result(val)
implicit none
class(psb_indx_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = 8 * psb_sizeof_int
val = 8 * psb_sizeof_ip
end function base_sizeof
@ -1149,7 +1149,7 @@ contains
use psb_error_mod
implicit none
class(psb_indx_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: err_act

@ -112,14 +112,14 @@ contains
function list_sizeof(idxmap) result(val)
implicit none
class(psb_list_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = idxmap%psb_indx_map%sizeof()
if (allocated(idxmap%loc_to_glob)) &
& val = val + size(idxmap%loc_to_glob)*psb_sizeof_int
& val = val + size(idxmap%loc_to_glob)*psb_sizeof_ip
if (allocated(idxmap%glob_to_loc)) &
& val = val + size(idxmap%glob_to_loc)*psb_sizeof_int
& val = val + size(idxmap%glob_to_loc)*psb_sizeof_ip
end function list_sizeof
@ -1033,13 +1033,13 @@ contains
use psb_error_mod
implicit none
class(psb_list_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_lpk_) :: nl
integer(psb_lpk_), allocatable :: lvl(:)
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
info = 0
call psb_info(ictxt,iam,np)
@ -1067,12 +1067,12 @@ contains
use psb_error_mod
implicit none
class(psb_list_map), intent(inout) :: idxmap
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_lpk_), intent(in) :: vl(:)
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_lpk_) :: i, ix, nl, n, nrt
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
info = 0
call psb_info(ictxt,iam,np)
@ -1136,7 +1136,7 @@ contains
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nhal
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
info = 0
ictxt = idxmap%get_ctxt()

@ -96,7 +96,7 @@ contains
function repl_sizeof(idxmap) result(val)
implicit none
class(psb_repl_map), intent(in) :: idxmap
integer(psb_long_int_k_) :: val
integer(psb_epk_) :: val
val = idxmap%psb_indx_map%sizeof()
@ -674,7 +674,7 @@ contains
class(psb_repl_map), intent(in) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_ipk_) :: nv
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
ictxt = idxmap%get_ctxt()
call psb_info(ictxt,iam,np)
@ -696,10 +696,10 @@ contains
implicit none
class(psb_repl_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(in) :: nl
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(out) :: info
! To be implemented
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
info = 0
call psb_info(ictxt,iam,np)
@ -729,7 +729,7 @@ contains
class(psb_repl_map), intent(inout) :: idxmap
integer(psb_ipk_), intent(out) :: info
integer(psb_mpik_) :: ictxt, iam, np
integer(psb_mpk_) :: ictxt, iam, np
info = 0
ictxt = idxmap%get_ctxt()

@ -33,61 +33,86 @@
module psb_const_mod
#if defined(HAVE_ISO_FORTRAN_ENV)
use iso_fortran_env
! This is the default PSBLAS integer, can be 4 or 8 bytes.
#if defined(LONG_INTEGERS)
integer, parameter :: psb_ipk_ = int64
#else
integer, parameter :: psb_ipk_ = int32
#endif
! This is always an 8-byte integer.
integer, parameter :: psb_long_int_k_ = int64
integer, parameter :: psb_lpk_ = psb_long_int_k_
! This is always a 4-byte integer, for MPI-related stuff
integer, parameter :: psb_mpik_ = int32
integer, parameter :: psb_mpk_ = int32
! This is always an 8-byte integer.
integer, parameter :: psb_epk_ = int64
!
! These must be the kind parameter corresponding to psb_mpi_r_dpk_
! and psb_mpi_r_spk_
!
integer(psb_mpik_), parameter :: psb_spk_ = real32
integer(psb_mpik_), parameter :: psb_dpk_ = real64
integer, parameter :: psb_spk_ = real32
integer, parameter :: psb_dpk_ = real64
#else
! This is the default PSBLAS integer, can be 4 or 8 bytes.
#if defined(LONG_INTEGERS)
integer, parameter :: ndig=12
#else
integer, parameter :: ndig=8
#endif
integer, parameter :: psb_ipk_ = selected_int_kind(ndig)
! This is always an 8-byte integer.
integer, parameter :: longndig=12
integer, parameter :: psb_long_int_k_ = selected_int_kind(longndig)
integer, parameter :: psb_lpk_ = psb_long_int_k_
integer, parameter :: indig=8
integer, parameter :: lndig=12
! This is always a 4-byte integer, for MPI-related stuff
integer, parameter :: psb_mpik_ = kind(1)
integer, parameter :: psb_mpk_ = selected_int_kind(indig)
! This is always an 8-byte integer.
integer, parameter :: psb_epk_ = selected_int_kind(lndig)
!
! These must be the kind parameter corresponding to psb_mpi_r_dpk_
! and psb_mpi_r_spk_
!
integer(psb_mpik_), parameter :: psb_spk_p_ = 6
integer(psb_mpik_), parameter :: psb_spk_r_ = 37
integer(psb_mpik_), parameter :: psb_spk_ = selected_real_kind(psb_spk_p_,psb_spk_r_)
integer(psb_mpik_), parameter :: psb_dpk_p_ = 15
integer(psb_mpik_), parameter :: psb_dpk_r_ = 307
integer(psb_mpik_), parameter :: psb_dpk_ = selected_real_kind(psb_dpk_p_,psb_dpk_r_)
integer, parameter :: psb_spk_p_ = 6
integer, parameter :: psb_spk_r_ = 37
integer, parameter :: psb_spk_ = selected_real_kind(psb_spk_p_,psb_spk_r_)
integer, parameter :: psb_dpk_p_ = 15
integer, parameter :: psb_dpk_r_ = 307
integer, parameter :: psb_dpk_ = selected_real_kind(psb_dpk_p_,psb_dpk_r_)
#endif
integer(psb_ipk_), save :: psb_sizeof_dp, psb_sizeof_sp
integer(psb_ipk_), save :: psb_sizeof_int, psb_sizeof_long_int
! Now for the choices:
! IPK = integer kind for "local" indices and sizes.
! Can be 4 or 8 bytes.
! LPK = integer kind for "global" indices and sizes.
! Can be 4 or 8 bytes.
! Size must be >= size of IPK
!
! Additional rules:
! 1. MPI related stuff is always MPK
! 2. ICTXT,IAM,NP: should we have two versions of everything,
! one with MPK the other with EPK?
! 3. INFO, ERR_ACT, IERR etc are always IPK
! 4. For the array version of things, where it makes sense
! e.g. realloc, snd/receive, define as MPK,EPK and the
! compiler will later pick up the correct version according
! to what IPK/LPK are mapped onto.
!
#if defined(INT_I4_L4)
integer, parameter :: psb_ipk_ = psb_mpk_
integer, parameter :: psb_lpk_ = psb_mpk_
#elif defined(INT_I4_L8)
integer, parameter :: psb_ipk_ = psb_mpk_
integer, parameter :: psb_lpk_ = psb_epk_
#elif defined(INT_I8_L8)
integer, parameter :: psb_ipk_ = psb_mpk_
integer, parameter :: psb_lpk_ = psb_epk_
#else
! Unsupported combination, compilation will stop later on
integer, parameter :: psb_ipk_ = -1
integer, parameter :: psb_lpk_ = -1
#endif
integer(psb_ipk_), save :: psb_sizeof_sp
integer(psb_ipk_), save :: psb_sizeof_dp
integer(psb_ipk_), save :: psb_sizeof_mp
integer(psb_ipk_), save :: psb_sizeof_ep
integer(psb_ipk_), save :: psb_sizeof_ip
integer(psb_ipk_), save :: psb_sizeof_lp
!
! Integer type identifiers for MPI operations.
!
integer(psb_mpik_), save :: psb_mpi_ipk_integer
integer(psb_mpik_), save :: psb_mpi_def_integer
integer(psb_mpik_), save :: psb_mpi_lng_integer
integer(psb_mpik_), save :: psb_mpi_r_spk_
integer(psb_mpik_), save :: psb_mpi_r_dpk_
integer(psb_mpik_), save :: psb_mpi_c_spk_
integer(psb_mpik_), save :: psb_mpi_c_dpk_
integer(psb_mpk_), save :: psb_mpi_epk_int
integer(psb_mpk_), save :: psb_mpi_mpk_int
integer(psb_mpk_), save :: psb_mpi_ipk_int
integer(psb_mpk_), save :: psb_mpi_lpk_int
integer(psb_mpk_), save :: psb_mpi_r_spk_
integer(psb_mpk_), save :: psb_mpi_r_dpk_
integer(psb_mpk_), save :: psb_mpi_c_spk_
integer(psb_mpk_), save :: psb_mpi_c_dpk_
!
! Version
!
@ -114,6 +139,7 @@ module psb_const_mod
real(psb_spk_), parameter :: s_epstol=5.e-8_psb_spk_ ! Is this right?
character, parameter :: psb_all_='A', psb_topdef_=' '
logical, parameter :: psb_i_is_complex_ = .false.
logical, parameter :: psb_l_is_complex_ = .false.
logical, parameter :: psb_s_is_complex_ = .false.
logical, parameter :: psb_d_is_complex_ = .false.
logical, parameter :: psb_c_is_complex_ = .true.

@ -2,7 +2,7 @@
subroutine psb_errcomm(ictxt, err)
use psb_error_mod, psb_protect_name => psb_errcomm
use psb_penv_mod
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout):: err
if (psb_get_global_checks()) call psb_amx(ictxt, err)
@ -30,7 +30,7 @@ subroutine psb_par_error_handler(ictxt,err_act)
implicit none
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: err_act
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
call psb_erractionrestore(err_act)
iictxt = ictxt
if (err_act == psb_act_print_) &
@ -45,7 +45,7 @@ end subroutine psb_par_error_handler
subroutine psb_par_error_print_stack(ictxt)
use psb_error_mod, psb_protect_name => psb_par_error_print_stack
use psb_penv_mod
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
call psb_error(ictxt, abrt=.false.)
@ -103,14 +103,14 @@ subroutine psb_perror(ictxt,abrt)
use psb_error_mod
use psb_penv_mod
implicit none
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
logical, intent(in), optional :: abrt
integer(psb_ipk_) :: err_c
character(len=20) :: r_name
character(len=40) :: a_e_d
integer(psb_ipk_) :: i_e_d(5)
integer(psb_mpik_) :: iam, np
integer(psb_mpk_) :: iam, np
logical :: abrt_
abrt_=.true.

@ -72,7 +72,7 @@ module psb_error_mod
integer(psb_ipk_), intent(inout) :: err_act
end subroutine psb_ser_error_handler
subroutine psb_par_error_handler(ictxt,err_act)
import :: psb_ipk_,psb_mpik_
import :: psb_ipk_,psb_mpk_
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in) :: err_act
end subroutine psb_par_error_handler
@ -82,8 +82,8 @@ module psb_error_mod
subroutine psb_serror()
end subroutine psb_serror
subroutine psb_perror(ictxt,abrt)
import :: psb_mpik_
integer(psb_mpik_), intent(in) :: ictxt
import :: psb_mpk_
integer(psb_mpk_), intent(in) :: ictxt
logical, intent(in), optional :: abrt
end subroutine psb_perror
end interface
@ -91,8 +91,8 @@ module psb_error_mod
interface psb_error_print_stack
subroutine psb_par_error_print_stack(ictxt)
import :: psb_ipk_,psb_mpik_
integer(psb_mpik_), intent(in) :: ictxt
import :: psb_ipk_,psb_mpk_
integer(psb_mpk_), intent(in) :: ictxt
end subroutine psb_par_error_print_stack
subroutine psb_ser_error_print_stack()
end subroutine psb_ser_error_print_stack
@ -100,8 +100,8 @@ module psb_error_mod
interface psb_errcomm
subroutine psb_errcomm(ictxt, err)
import :: psb_mpik_, psb_ipk_
integer(psb_mpik_), intent(in) :: ictxt
import :: psb_mpk_, psb_ipk_
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout):: err
end subroutine psb_errcomm
end interface psb_errcomm
@ -190,14 +190,14 @@ contains
subroutine psb_errcomm_ipk(ictxt, err)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout):: err
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
iictxt = ictxt
call psb_errcomm(iictxt,err)
end subroutine psb_errcomm_ipk
subroutine psb_perror_ipk(ictxt)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
iictxt = ictxt
call psb_perror(iictxt)
end subroutine psb_perror_ipk
@ -486,7 +486,7 @@ contains
character(len=20), intent(in) :: r_name
character(len=40), intent(in) :: a_e_d
integer(psb_ipk_), intent(in) :: i_e_d(5)
integer(psb_mpik_), optional :: me
integer(psb_mpk_), optional :: me
character(len=psb_max_errmsg_len_) :: tmpmsg
@ -1057,7 +1057,7 @@ contains
character(len=20), intent(in) :: r_name
character(len=40), intent(in) :: a_e_d
integer(psb_ipk_), intent(in) :: i_e_d(5)
integer(psb_mpik_), optional :: me
integer(psb_mpk_), optional :: me
integer(psb_ipk_) :: i
character(len=psb_max_errmsg_len_), allocatable :: achmsg(:)

@ -1175,7 +1175,7 @@ Contains
#if !defined(LONG_INTEGERS)
function psb_i8size1d(vin)
integer(psb_ipk_) :: psb_i8size1d
integer(psb_long_int_k_), allocatable, intent(in) :: vin(:)
integer(psb_epk_), allocatable, intent(in) :: vin(:)
if (.not.allocated(vin)) then
psb_i8size1d = 0
@ -1186,7 +1186,7 @@ Contains
function psb_i8size2d(vin,dim)
integer(psb_ipk_) :: psb_i8size2d
integer(psb_long_int_k_), allocatable, intent(in) :: vin(:,:)
integer(psb_epk_), allocatable, intent(in) :: vin(:,:)
integer(psb_ipk_), optional :: dim
integer(psb_ipk_) :: dim_
@ -1381,9 +1381,9 @@ Contains
! ...Subroutine Arguments
integer(psb_ipk_),Intent(in) :: len
Integer(psb_long_int_k_),allocatable, intent(inout) :: v(:)
Integer(psb_epk_),allocatable, intent(inout) :: v(:)
integer(psb_ipk_) :: info
integer(psb_long_int_k_), optional, intent(in) :: pad
integer(psb_epk_), optional, intent(in) :: pad
integer(psb_ipk_), optional, intent(in) :: addsz,newsz
! ...Local Variables
character(len=20) :: name
@ -2459,12 +2459,12 @@ Contains
! ...Subroutine Arguments
integer(psb_ipk_),Intent(in) :: len
Integer(psb_long_int_k_),allocatable, intent(inout) :: rrax(:)
Integer(psb_epk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
integer(psb_long_int_k_), optional, intent(in) :: pad
integer(psb_epk_), optional, intent(in) :: pad
integer(psb_ipk_), optional, intent(in) :: lb
! ...Local Variables
Integer(psb_long_int_k_),allocatable :: tmp(:)
Integer(psb_epk_),allocatable :: tmp(:)
integer(psb_ipk_) :: dim, err_act, err,lb_, lbi, ub_
character(len=20) :: name
logical, parameter :: debug=.false.
@ -2623,13 +2623,13 @@ Contains
use psb_error_mod
! ...Subroutine Arguments
integer(psb_ipk_),Intent(in) :: len1,len2
integer(psb_long_int_k_),allocatable :: rrax(:,:)
integer(psb_epk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
integer(psb_long_int_k_), optional, intent(in) :: pad
integer(psb_epk_), optional, intent(in) :: pad
integer(psb_ipk_),Intent(in), optional :: lb1,lb2
! ...Local Variables
integer(psb_long_int_k_),allocatable :: tmp(:,:)
integer(psb_epk_),allocatable :: tmp(:,:)
integer(psb_ipk_) :: dim,err_act,err, dim2,lb1_, lb2_, ub1_, ub2_,&
& lbi1, lbi2
character(len=20) :: name
@ -3042,7 +3042,7 @@ Contains
#if !defined(LONG_INTEGERS)
Subroutine psb_i8move_alloc1d(vin,vout,info)
use psb_error_mod
integer(psb_long_int_k_), allocatable, intent(inout) :: vin(:),vout(:)
integer(psb_epk_), allocatable, intent(inout) :: vin(:),vout(:)
integer(psb_ipk_), intent(out) :: info
!
!
@ -3054,7 +3054,7 @@ Contains
Subroutine psb_i8move_alloc2d(vin,vout,info)
use psb_error_mod
integer(psb_long_int_k_), allocatable, intent(inout) :: vin(:,:),vout(:,:)
integer(psb_epk_), allocatable, intent(inout) :: vin(:,:),vout(:,:)
integer(psb_ipk_), intent(out) :: info
!
!
@ -3068,8 +3068,8 @@ Contains
Subroutine psb_i4move_alloc1d(vin,vout,info)
use psb_error_mod
integer(psb_mpik_), allocatable, intent(inout) :: vin(:),vout(:)
integer(psb_mpik_), intent(out) :: info
integer(psb_mpk_), allocatable, intent(inout) :: vin(:),vout(:)
integer(psb_mpk_), intent(out) :: info
!
!
info=psb_success_
@ -3080,7 +3080,7 @@ Contains
Subroutine psb_i4move_alloc1d_i8(vin,vout,info)
use psb_error_mod
integer(psb_mpik_), allocatable, intent(inout) :: vin(:),vout(:)
integer(psb_mpk_), allocatable, intent(inout) :: vin(:),vout(:)
integer(psb_ipk_), intent(out) :: info
!
!
@ -3092,8 +3092,8 @@ Contains
Subroutine psb_i4move_alloc2d(vin,vout,info)
use psb_error_mod
integer(psb_mpik_), allocatable, intent(inout) :: vin(:,:),vout(:,:)
integer(psb_mpik_), intent(out) :: info
integer(psb_mpk_), allocatable, intent(inout) :: vin(:,:),vout(:,:)
integer(psb_mpk_), intent(out) :: info
!
!
info=psb_success_
@ -3104,7 +3104,7 @@ Contains
Subroutine psb_i4move_alloc2d_i8(vin,vout,info)
use psb_error_mod
integer(psb_mpik_), allocatable, intent(inout) :: vin(:,:),vout(:,:)
integer(psb_mpk_), allocatable, intent(inout) :: vin(:,:),vout(:,:)
integer(psb_ipk_), intent(out) :: info
!
!
@ -3121,14 +3121,14 @@ Contains
use psb_error_mod
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len
Integer(psb_mpik_),allocatable, intent(inout) :: rrax(:)
integer(psb_mpik_) :: info
integer(psb_mpik_), optional, intent(in) :: pad
integer(psb_mpik_), optional, intent(in) :: lb
integer(psb_mpk_),Intent(in) :: len
Integer(psb_mpk_),allocatable, intent(inout) :: rrax(:)
integer(psb_mpk_) :: info
integer(psb_mpk_), optional, intent(in) :: pad
integer(psb_mpk_), optional, intent(in) :: lb
! ...Local Variables
Integer(psb_mpik_),allocatable :: tmp(:)
integer(psb_mpik_) :: dim, lb_, lbi, ub_
Integer(psb_mpk_),allocatable :: tmp(:)
integer(psb_mpk_) :: dim, lb_, lbi, ub_
integer(psb_ipk_) :: err, err_act, ierr(5)
character(len=20) :: name
logical, parameter :: debug=.false.
@ -3200,13 +3200,13 @@ Contains
! ...Subroutine Arguments
integer(psb_ipk_),Intent(in) :: len
Integer(psb_mpik_),allocatable, intent(inout) :: rrax(:)
Integer(psb_mpk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
integer(psb_mpik_), optional, intent(in) :: pad
integer(psb_mpk_), optional, intent(in) :: pad
integer(psb_ipk_), optional, intent(in) :: lb
! ...Local Variables
Integer(psb_mpik_),allocatable :: tmp(:)
integer(psb_mpik_) :: dim, lb_, lbi, ub_, iinfo
Integer(psb_mpk_),allocatable :: tmp(:)
integer(psb_mpk_) :: dim, lb_, lbi, ub_, iinfo
integer(psb_ipk_) :: err, err_act, ierr(5)
character(len=20) :: name
logical, parameter :: debug=.false.
@ -3276,15 +3276,15 @@ Contains
Subroutine psb_reallocate2i4(len1,len2,rrax,info,pad,lb1,lb2)
use psb_error_mod
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1,len2
integer(psb_mpik_),allocatable :: rrax(:,:)
integer(psb_mpik_) :: info
integer(psb_mpik_), optional, intent(in) :: pad
integer(psb_mpik_),Intent(in), optional :: lb1,lb2
integer(psb_mpk_),Intent(in) :: len1,len2
integer(psb_mpk_),allocatable :: rrax(:,:)
integer(psb_mpk_) :: info
integer(psb_mpk_), optional, intent(in) :: pad
integer(psb_mpk_),Intent(in), optional :: lb1,lb2
! ...Local Variables
integer(psb_mpik_),allocatable :: tmp(:,:)
integer(psb_mpik_) :: dim, dim2,lb1_, lb2_, ub1_, ub2_,&
integer(psb_mpk_),allocatable :: tmp(:,:)
integer(psb_mpk_) :: dim, dim2,lb1_, lb2_, ub1_, ub2_,&
& lbi1, lbi2
integer(psb_ipk_) :: err,err_act, ierr(5)
character(len=20) :: name
@ -3362,14 +3362,14 @@ Contains
use psb_error_mod
! ...Subroutine Arguments
integer(psb_ipk_),Intent(in) :: len1,len2
integer(psb_mpik_),allocatable :: rrax(:,:)
integer(psb_mpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
integer(psb_mpik_), optional, intent(in) :: pad
integer(psb_mpk_), optional, intent(in) :: pad
integer(psb_ipk_),Intent(in), optional :: lb1,lb2
! ...Local Variables
integer(psb_mpik_),allocatable :: tmp(:,:)
integer(psb_mpik_) :: dim, dim2,lb1_, lb2_, ub1_, ub2_,&
integer(psb_mpk_),allocatable :: tmp(:,:)
integer(psb_mpk_) :: dim, dim2,lb1_, lb2_, ub1_, ub2_,&
& lbi1, lbi2
integer(psb_ipk_) :: err,err_act, ierr(5)
character(len=20) :: name
@ -3446,11 +3446,11 @@ Contains
Subroutine psb_rp1i1(len,rrax,info,pad,lb)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len
integer(psb_mpk_),Intent(in) :: len
integer(psb_ipk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
integer(psb_ipk_), optional, intent(in) :: pad
integer(psb_mpik_), optional, intent(in) :: lb
integer(psb_mpk_), optional, intent(in) :: lb
integer(psb_ipk_) :: ilen, ilb
@ -3467,7 +3467,7 @@ Contains
subroutine psb_rp1i2i2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len1
integer(psb_ipk_),Intent(in) :: len2
integer(psb_ipk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3481,7 +3481,7 @@ Contains
subroutine psb_ri1p2i2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len2
integer(psb_ipk_),Intent(in) :: len1
integer(psb_ipk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3495,8 +3495,8 @@ Contains
subroutine psb_rp1p2i2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len2
integer(psb_ipk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
integer(psb_ipk_), optional, intent(in) :: pad
@ -3510,11 +3510,11 @@ Contains
Subroutine psb_rp1s1(len,rrax,info,pad,lb)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len
integer(psb_mpk_),Intent(in) :: len
real(psb_spk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
real(psb_spk_), optional, intent(in) :: pad
integer(psb_mpik_), optional, intent(in) :: lb
integer(psb_mpk_), optional, intent(in) :: lb
integer(psb_ipk_) :: ilen, ilb
@ -3530,7 +3530,7 @@ Contains
subroutine psb_rp1i2s2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len1
integer(psb_ipk_),Intent(in) :: len2
real(psb_spk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3544,7 +3544,7 @@ Contains
subroutine psb_ri1p2s2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len2
integer(psb_ipk_),Intent(in) :: len1
real(psb_spk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3558,8 +3558,8 @@ Contains
subroutine psb_rp1p2s2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len2
real(psb_spk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
real(psb_spk_), optional, intent(in) :: pad
@ -3575,11 +3575,11 @@ Contains
Subroutine psb_rp1d1(len,rrax,info,pad,lb)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len
integer(psb_mpk_),Intent(in) :: len
Real(psb_dpk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
real(psb_dpk_), optional, intent(in) :: pad
integer(psb_mpik_), optional, intent(in) :: lb
integer(psb_mpk_), optional, intent(in) :: lb
integer(psb_ipk_) :: ilen, ilb
@ -3596,7 +3596,7 @@ Contains
subroutine psb_rp1i2d2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len1
integer(psb_ipk_),Intent(in) :: len2
Real(psb_dpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3610,7 +3610,7 @@ Contains
subroutine psb_ri1p2d2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len2
integer(psb_ipk_),Intent(in) :: len1
Real(psb_dpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3624,8 +3624,8 @@ Contains
subroutine psb_rp1p2d2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len2
Real(psb_dpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
real(psb_dpk_), optional, intent(in) :: pad
@ -3641,11 +3641,11 @@ Contains
Subroutine psb_rp1c1(len,rrax,info,pad,lb)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len
integer(psb_mpk_),Intent(in) :: len
complex(psb_spk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
complex(psb_spk_), optional, intent(in) :: pad
integer(psb_mpik_), optional, intent(in) :: lb
integer(psb_mpk_), optional, intent(in) :: lb
integer(psb_ipk_) :: ilen, ilb
@ -3661,7 +3661,7 @@ Contains
subroutine psb_rp1i2c2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len1
integer(psb_ipk_),Intent(in) :: len2
complex(psb_spk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3675,7 +3675,7 @@ Contains
subroutine psb_ri1p2c2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len2
integer(psb_ipk_),Intent(in) :: len1
complex(psb_spk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3689,8 +3689,8 @@ Contains
subroutine psb_rp1p2c2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len2
complex(psb_spk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
complex(psb_spk_), optional, intent(in) :: pad
@ -3705,11 +3705,11 @@ Contains
Subroutine psb_rp1z1(len,rrax,info,pad,lb)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len
integer(psb_mpk_),Intent(in) :: len
Complex(psb_dpk_),allocatable, intent(inout) :: rrax(:)
integer(psb_ipk_) :: info
complex(psb_dpk_), optional, intent(in) :: pad
integer(psb_mpik_), optional, intent(in) :: lb
integer(psb_mpk_), optional, intent(in) :: lb
integer(psb_ipk_) :: ilen, ilb
@ -3725,7 +3725,7 @@ Contains
subroutine psb_rp1i2z2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len1
integer(psb_ipk_),Intent(in) :: len2
Complex(psb_dpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3739,7 +3739,7 @@ Contains
subroutine psb_ri1p2z2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len2
integer(psb_ipk_),Intent(in) :: len1
Complex(psb_dpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
@ -3753,8 +3753,8 @@ Contains
subroutine psb_rp1p2z2(len1,len2,rrax,info,pad,lb1,lb2)
! ...Subroutine Arguments
integer(psb_mpik_),Intent(in) :: len1
integer(psb_mpik_),Intent(in) :: len2
integer(psb_mpk_),Intent(in) :: len1
integer(psb_mpk_),Intent(in) :: len2
Complex(psb_dpk_),allocatable :: rrax(:,:)
integer(psb_ipk_) :: info
complex(psb_dpk_), optional, intent(in) :: pad

@ -77,11 +77,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -91,7 +91,7 @@ contains
endif
call psb_info(ictxt,iam,np)
call mpi_bcast(dat,1,psb_mpi_ipk_integer,root_,ictxt,info)
call mpi_bcast(dat,1,psb_mpi_ipk_int,root_,ictxt,info)
#endif
end subroutine psb_ibcasts
@ -103,11 +103,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
root_ = root
@ -116,7 +116,7 @@ contains
endif
call psb_info(ictxt,iam,np)
call mpi_bcast(dat,size(dat),psb_mpi_ipk_integer,root_,ictxt,info)
call mpi_bcast(dat,size(dat),psb_mpi_ipk_int,root_,ictxt,info)
#endif
end subroutine psb_ibcastv
@ -128,11 +128,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_ipk_), intent(inout) :: dat(:,:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -142,7 +142,7 @@ contains
endif
call psb_info(ictxt,iam,np)
call mpi_bcast(dat,size(dat),psb_mpi_ipk_integer,root_,ictxt,info)
call mpi_bcast(dat,size(dat),psb_mpi_ipk_int,root_,ictxt,info)
#endif
end subroutine psb_ibcastm
@ -155,11 +155,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
real(psb_spk_), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -182,11 +182,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
real(psb_spk_), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -209,11 +209,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
real(psb_spk_), intent(inout) :: dat(:,:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -237,11 +237,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
real(psb_dpk_), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -264,11 +264,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
real(psb_dpk_), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -290,11 +290,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
real(psb_dpk_), intent(inout) :: dat(:,:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -316,11 +316,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
complex(psb_spk_), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -342,11 +342,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
complex(psb_spk_), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -368,11 +368,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
complex(psb_spk_), intent(inout) :: dat(:,:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -394,11 +394,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
complex(psb_dpk_), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -420,11 +420,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
complex(psb_dpk_), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -446,11 +446,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
complex(psb_dpk_), intent(inout) :: dat(:,:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -473,11 +473,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
character(len=*), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root,length
integer(psb_mpk_), intent(in), optional :: root,length
integer(psb_mpik_) :: iam, np, root_,length_,info
integer(psb_mpk_) :: iam, np, root_,length_,info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -506,11 +506,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
character(len=*), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_,length_,info, size_
integer(psb_mpk_) :: iam, np, root_,length_,info, size_
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -536,11 +536,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
logical, intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_,info
integer(psb_mpk_) :: iam, np, root_,info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -564,11 +564,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
logical, intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_,info
integer(psb_mpk_) :: iam, np, root_,info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -594,11 +594,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_long_int_k_), intent(inout) :: dat
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_epk_), intent(inout) :: dat
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -608,7 +608,7 @@ contains
endif
call psb_info(ictxt,iam,np)
call mpi_bcast(dat,1,psb_mpi_lng_integer,root_,ictxt,info)
call mpi_bcast(dat,1,psb_mpi_lpk_int,root_,ictxt,info)
#endif
end subroutine psb_i8bcasts
@ -620,11 +620,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_long_int_k_), intent(inout) :: dat(:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_epk_), intent(inout) :: dat(:)
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
root_ = root
@ -633,7 +633,7 @@ contains
endif
call psb_info(ictxt,iam,np)
call mpi_bcast(dat,size(dat),psb_mpi_lng_integer,root_,ictxt,info)
call mpi_bcast(dat,size(dat),psb_mpi_lpk_int,root_,ictxt,info)
#endif
end subroutine psb_i8bcastv
@ -645,11 +645,11 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_long_int_k_), intent(inout) :: dat(:,:)
integer(psb_mpik_), intent(in), optional :: root
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_epk_), intent(inout) :: dat(:,:)
integer(psb_mpk_), intent(in), optional :: root
integer(psb_mpik_) :: iam, np, root_, info
integer(psb_mpk_) :: iam, np, root_, info
#if !defined(SERIAL_MPI)
if (present(root)) then
@ -659,7 +659,7 @@ contains
endif
call psb_info(ictxt,iam,np)
call mpi_bcast(dat,size(dat),psb_mpi_lng_integer,root_,ictxt,info)
call mpi_bcast(dat,size(dat),psb_mpi_lpk_int,root_,ictxt,info)
#endif
end subroutine psb_i8bcastm
@ -674,7 +674,7 @@ contains
integer(psb_ipk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -691,7 +691,7 @@ contains
integer(psb_ipk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -708,7 +708,7 @@ contains
integer(psb_ipk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -726,7 +726,7 @@ contains
real(psb_spk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -744,7 +744,7 @@ contains
real(psb_spk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -761,7 +761,7 @@ contains
real(psb_spk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -779,7 +779,7 @@ contains
real(psb_dpk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -797,7 +797,7 @@ contains
real(psb_dpk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -814,7 +814,7 @@ contains
real(psb_dpk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -831,7 +831,7 @@ contains
complex(psb_spk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -848,7 +848,7 @@ contains
complex(psb_spk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -865,7 +865,7 @@ contains
complex(psb_spk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -882,7 +882,7 @@ contains
complex(psb_dpk_), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -899,7 +899,7 @@ contains
complex(psb_dpk_), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -916,7 +916,7 @@ contains
complex(psb_dpk_), intent(inout) :: dat(:,:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -934,7 +934,7 @@ contains
character(len=*), intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root,length
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -951,7 +951,7 @@ contains
character(len=*), intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -968,7 +968,7 @@ contains
logical, intent(inout) :: dat
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then
@ -986,7 +986,7 @@ contains
logical, intent(inout) :: dat(:)
integer(psb_ipk_), intent(in), optional :: root
integer(psb_mpik_) :: iictxt, root_
integer(psb_mpk_) :: iictxt, root_
iictxt = ictxt
if (present(root)) then

@ -33,20 +33,20 @@
! Provide a fake mpi module just to keep the compiler(s) happy.
module mpi
use psb_const_mod
integer(psb_mpik_), parameter :: mpi_success = 0
integer(psb_mpik_), parameter :: mpi_request_null = 0
integer(psb_mpik_), parameter :: mpi_status_size = 1
integer(psb_mpik_), parameter :: mpi_integer = 1
integer(psb_mpik_), parameter :: mpi_integer8 = 2
integer(psb_mpik_), parameter :: mpi_real = 3
integer(psb_mpik_), parameter :: mpi_double_precision = 4
integer(psb_mpik_), parameter :: mpi_complex = 5
integer(psb_mpik_), parameter :: mpi_double_complex = 6
integer(psb_mpik_), parameter :: mpi_character = 7
integer(psb_mpik_), parameter :: mpi_logical = 8
integer(psb_mpik_), parameter :: mpi_integer2 = 9
integer(psb_mpik_), parameter :: mpi_comm_null = -1
integer(psb_mpik_), parameter :: mpi_comm_world = 1
integer(psb_mpk_), parameter :: mpi_success = 0
integer(psb_mpk_), parameter :: mpi_request_null = 0
integer(psb_mpk_), parameter :: mpi_status_size = 1
integer(psb_mpk_), parameter :: mpi_integer = 1
integer(psb_mpk_), parameter :: mpi_integer8 = 2
integer(psb_mpk_), parameter :: mpi_real = 3
integer(psb_mpk_), parameter :: mpi_double_precision = 4
integer(psb_mpk_), parameter :: mpi_complex = 5
integer(psb_mpk_), parameter :: mpi_double_complex = 6
integer(psb_mpk_), parameter :: mpi_character = 7
integer(psb_mpk_), parameter :: mpi_logical = 8
integer(psb_mpk_), parameter :: mpi_integer2 = 9
integer(psb_mpk_), parameter :: mpi_comm_null = -1
integer(psb_mpk_), parameter :: mpi_comm_world = 1
real(psb_dpk_), external :: mpi_wtime
end module mpi
@ -55,26 +55,50 @@ end module mpi
module psi_comm_buffers_mod
use psb_const_mod
integer(psb_mpik_), private, parameter:: psb_int_type = 987543
integer(psb_mpik_), private, parameter:: psb_real_type = psb_int_type + 1
integer(psb_mpik_), private, parameter:: psb_double_type = psb_real_type + 1
integer(psb_mpik_), private, parameter:: psb_complex_type = psb_double_type + 1
integer(psb_mpik_), private, parameter:: psb_dcomplex_type = psb_complex_type + 1
integer(psb_mpik_), private, parameter:: psb_logical_type = psb_dcomplex_type + 1
integer(psb_mpik_), private, parameter:: psb_char_type = psb_logical_type + 1
integer(psb_mpik_), private, parameter:: psb_int8_type = psb_char_type + 1
integer(psb_mpik_), private, parameter:: psb_int2_type = psb_int8_type + 1
integer(psb_mpik_), private, parameter:: psb_int4_type = psb_int2_type + 1
integer(psb_mpk_), parameter:: psb_int_tag = 543987
integer(psb_mpk_), parameter:: psb_real_tag = psb_int_tag + 1
integer(psb_mpk_), parameter:: psb_double_tag = psb_real_tag + 1
integer(psb_mpk_), parameter:: psb_complex_tag = psb_double_tag + 1
integer(psb_mpk_), parameter:: psb_dcomplex_tag = psb_complex_tag + 1
integer(psb_mpk_), parameter:: psb_logical_tag = psb_dcomplex_tag + 1
integer(psb_mpk_), parameter:: psb_char_tag = psb_logical_tag + 1
integer(psb_mpk_), parameter:: psb_int8_tag = psb_char_tag + 1
integer(psb_mpk_), parameter:: psb_int2_tag = psb_int8_tag + 1
integer(psb_mpk_), parameter:: psb_int4_tag = psb_int2_tag + 1
integer(psb_mpk_), parameter:: psb_int_swap_tag = psb_int_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_real_swap_tag = psb_real_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_double_swap_tag = psb_double_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_complex_swap_tag = psb_complex_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_dcomplex_swap_tag = psb_dcomplex_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_logical_swap_tag = psb_logical_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_char_swap_tag = psb_char_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_int8_swap_tag = psb_int8_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_int2_swap_tag = psb_int2_tag + psb_int_tag
integer(psb_mpk_), parameter:: psb_int4_swap_tag = psb_int4_tag + psb_int_tag
integer(psb_mpk_), private, parameter:: psb_int_type = 987543
integer(psb_mpk_), private, parameter:: psb_real_type = psb_int_type + 1
integer(psb_mpk_), private, parameter:: psb_double_type = psb_real_type + 1
integer(psb_mpk_), private, parameter:: psb_complex_type = psb_double_type + 1
integer(psb_mpk_), private, parameter:: psb_dcomplex_type = psb_complex_type + 1
integer(psb_mpk_), private, parameter:: psb_logical_type = psb_dcomplex_type + 1
integer(psb_mpk_), private, parameter:: psb_char_type = psb_logical_type + 1
integer(psb_mpk_), private, parameter:: psb_int8_type = psb_char_type + 1
integer(psb_mpk_), private, parameter:: psb_int2_type = psb_int8_type + 1
integer(psb_mpk_), private, parameter:: psb_int4_type = psb_int2_type + 1
type psb_buffer_node
integer(psb_mpik_) :: request
integer(psb_mpik_) :: icontxt
integer(psb_mpik_) :: buffer_type
integer(psb_mpk_) :: request
integer(psb_mpk_) :: icontxt
integer(psb_mpk_) :: buffer_type
integer(psb_ipk_), allocatable :: intbuf(:)
integer(psb_long_int_k_), allocatable :: int8buf(:)
integer(psb_epk_), allocatable :: int8buf(:)
integer(2), allocatable :: int2buf(:)
integer(psb_mpik_), allocatable :: int4buf(:)
integer(psb_mpk_), allocatable :: int4buf(:)
real(psb_spk_), allocatable :: realbuf(:)
real(psb_dpk_), allocatable :: doublebuf(:)
complex(psb_spk_), allocatable :: complexbuf(:)
@ -148,7 +172,7 @@ contains
#endif
type(psb_buffer_node), intent(inout) :: node
integer(psb_ipk_), intent(out) :: info
integer(psb_mpik_) :: status(mpi_status_size),minfo
integer(psb_mpk_) :: status(mpi_status_size),minfo
minfo = mpi_success
call mpi_wait(node%request,status,minfo)
info=minfo
@ -165,7 +189,7 @@ contains
type(psb_buffer_node), intent(inout) :: node
logical, intent(out) :: flag
integer(psb_ipk_), intent(out) :: info
integer(psb_mpik_) :: status(mpi_status_size), minfo
integer(psb_mpk_) :: status(mpi_status_size), minfo
minfo = mpi_success
#if defined(SERIAL_MPI)
flag = .true.
@ -178,7 +202,7 @@ contains
subroutine psb_close_context(mesg_queue,icontxt)
type(psb_buffer_queue), intent(inout) :: mesg_queue
integer(psb_mpik_), intent(in) :: icontxt
integer(psb_mpk_), intent(in) :: icontxt
integer(psb_ipk_) :: info
type(psb_buffer_node), pointer :: node, nextnode
@ -281,12 +305,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
integer(psb_ipk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -300,7 +324,7 @@ contains
write(psb_err_unit,*) 'Fatal memory error inside communication subsystem'
return
end if
call mpi_isend(node%intbuf,size(node%intbuf),psb_mpi_ipk_integer,&
call mpi_isend(node%intbuf,size(node%intbuf),psb_mpi_ipk_int,&
& dest,tag,icontxt,node%request,minfo)
info = minfo
call psb_insert_node(mesg_queue,node)
@ -318,12 +342,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpik_), allocatable, intent(inout) :: buffer(:)
integer(psb_mpk_) :: icontxt, tag, dest
integer(psb_mpk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_mpik_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: info
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -337,7 +361,7 @@ contains
write(psb_err_unit,*) 'Fatal memory error inside communication subsystem'
return
end if
call mpi_isend(node%int4buf,size(node%int4buf),psb_mpi_def_integer,&
call mpi_isend(node%int4buf,size(node%int4buf),psb_mpi_mpk_int,&
& dest,tag,icontxt,node%request,minfo)
info = minfo
call psb_insert_node(mesg_queue,node)
@ -356,12 +380,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_long_int_k_), allocatable, intent(inout) :: buffer(:)
integer(psb_mpk_) :: icontxt, tag, dest
integer(psb_epk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -375,7 +399,7 @@ contains
write(psb_err_unit,*) 'Fatal memory error inside communication subsystem'
return
end if
call mpi_isend(node%int8buf,size(node%int8buf),psb_mpi_lng_integer,&
call mpi_isend(node%int8buf,size(node%int8buf),psb_mpi_lpk_int,&
& dest,tag,icontxt,node%request,minfo)
info = minfo
call psb_insert_node(mesg_queue,node)
@ -394,12 +418,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
integer(2), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -413,7 +437,7 @@ contains
write(psb_err_unit,*) 'Fatal memory error inside communication subsystem'
return
end if
call mpi_isend(node%int2buf,size(node%int2buf),psb_mpi_def_integer2,&
call mpi_isend(node%int2buf,size(node%int2buf),psb_mpi_mpk_int2,&
& dest,tag,icontxt,node%request,minfo)
info = minfo
call psb_insert_node(mesg_queue,node)
@ -431,12 +455,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
real(psb_spk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -467,12 +491,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
real(psb_dpk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -503,12 +527,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
complex(psb_spk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -539,12 +563,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
complex(psb_dpk_), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -576,12 +600,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
logical, allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then
@ -613,12 +637,12 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: icontxt, tag, dest
integer(psb_mpk_) :: icontxt, tag, dest
character(len=1), allocatable, intent(inout) :: buffer(:)
type(psb_buffer_queue) :: mesg_queue
type(psb_buffer_node), pointer :: node
integer(psb_ipk_) :: info
integer(psb_mpik_) :: minfo
integer(psb_mpk_) :: minfo
allocate(node, stat=info)
if (info /= 0) then

@ -30,7 +30,7 @@
!
!
module psi_i_mod
use psb_desc_mod, only : psb_desc_type, psb_ipk_, psb_mpik_
use psb_desc_mod, only : psb_desc_type, psb_ipk_, psb_mpk_
use psb_i_base_vect_mod, only : psb_i_base_vect_type
use psb_i_base_multivect_mod, only : psb_i_base_multivect_type

File diff suppressed because it is too large Load Diff

@ -82,18 +82,18 @@ module psi_penv_mod
#if defined(SERIAL_MPI)
integer(psb_mpik_), private, save :: nctxt=0
integer(psb_mpk_), private, save :: nctxt=0
#else
integer(psb_mpik_), save :: mpi_iamx_op, mpi_iamn_op
integer(psb_mpik_), save :: mpi_i4amx_op, mpi_i4amn_op
integer(psb_mpik_), save :: mpi_i8amx_op, mpi_i8amn_op
integer(psb_mpik_), save :: mpi_samx_op, mpi_samn_op
integer(psb_mpik_), save :: mpi_damx_op, mpi_damn_op
integer(psb_mpik_), save :: mpi_camx_op, mpi_camn_op
integer(psb_mpik_), save :: mpi_zamx_op, mpi_zamn_op
integer(psb_mpik_), save :: mpi_snrm2_op, mpi_dnrm2_op
integer(psb_mpk_), save :: mpi_iamx_op, mpi_iamn_op
integer(psb_mpk_), save :: mpi_i4amx_op, mpi_i4amn_op
integer(psb_mpk_), save :: mpi_i8amx_op, mpi_i8amn_op
integer(psb_mpk_), save :: mpi_samx_op, mpi_samn_op
integer(psb_mpk_), save :: mpi_damx_op, mpi_damn_op
integer(psb_mpk_), save :: mpi_camx_op, mpi_camn_op
integer(psb_mpk_), save :: mpi_zamx_op, mpi_zamn_op
integer(psb_mpk_), save :: mpi_snrm2_op, mpi_dnrm2_op
type(psb_buffer_queue), save :: psb_mesg_queue
@ -121,13 +121,17 @@ contains
use psb_const_mod
real(psb_dpk_) :: dv(2)
real(psb_spk_) :: sv(2)
integer(psb_mpk_) :: mv(2)
integer(psb_ipk_) :: iv(2)
integer(psb_long_int_k_) :: ilv(2)
integer(psb_lpk_) :: lv(2)
integer(psb_epk_) :: ev(2)
call psi_c_diffadd(sv(1),sv(2),psb_sizeof_sp)
call psi_c_diffadd(dv(1),dv(2),psb_sizeof_dp)
call psi_c_diffadd(iv(1),iv(2),psb_sizeof_int)
call psi_c_diffadd(ilv(1),ilv(2),psb_sizeof_long_int)
call psi_c_diffadd(mv(1),mv(2),psb_sizeof_mp)
call psi_c_diffadd(iv(1),iv(2),psb_sizeof_ip)
call psi_c_diffadd(lv(1),lv(2),psb_sizeof_lp)
call psi_c_diffadd(ev(1),ev(2),psb_sizeof_ep)
end subroutine psi_get_sizes
@ -139,29 +143,38 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_) :: info
integer(psb_mpk_) :: info
info = 0
#if 0
if (info == 0) call mpi_type_create_f90_integer(psb_ipk_, psb_mpi_ipk_integer ,info)
if (info == 0) call mpi_type_create_f90_integer(psb_mpik_, psb_mpi_def_integer ,info)
if (info == 0) call mpi_type_create_f90_integer(psb_long_int_k_, psb_mpi_lng_integer ,info)
if (info == 0) call mpi_type_create_f90_integer(psb_ipk_, psb_mpi_ipk_int ,info)
if (info == 0) call mpi_type_create_f90_integer(psb_mpk_, psb_mpi_mpk_int ,info)
if (info == 0) call mpi_type_create_f90_integer(psb_epk_, psb_mpi_lpk_int ,info)
if (info == 0) call mpi_type_create_f90_real(psb_spk_p_,psb_spk_r_, psb_mpi_r_spk_,info)
if (info == 0) call mpi_type_create_f90_real(psb_dpk_p_,psb_dpk_r_, psb_mpi_r_dpk_,info)
if (info == 0) call mpi_type_create_f90_complex(psb_spk_p_,psb_spk_r_, psb_mpi_c_spk_,info)
if (info == 0) call mpi_type_create_f90_complex(psb_dpk_p_,psb_dpk_r_, psb_mpi_c_dpk_,info)
#else
#if defined(LONG_INTEGERS)
psb_mpi_ipk_integer = mpi_integer8
#if defined(INT_I4_L4)
psb_mpi_ipk_int = mpi_integer
psb_mpi_lpk_int = mpi_integer
#elsif defined(INT_I4_L8)
psb_mpi_ipk_int = mpi_integer
psb_mpi_lpk_int = mpi_integer8
#elsif defined(INT_I8_L8)
psb_mpi_ipk_int = mpi_integer8
psb_mpi_lpk_int = mpi_integer8
#else
psb_mpi_ipk_integer = mpi_integer
! This should never happen
psb_mpi_ipk_int = -1
psb_mpi_lpk_int = -1
#endif
psb_mpi_def_integer = mpi_integer
psb_mpi_lng_integer = mpi_integer8
psb_mpi_r_spk_ = mpi_real
psb_mpi_r_dpk_ = mpi_double_precision
psb_mpi_c_spk_ = mpi_complex
psb_mpi_c_dpk_ = mpi_double_complex
psb_mpi_mpk_int = mpi_integer
psb_mpi_epk_int = mpi_integer8
psb_mpi_r_spk_ = mpi_real
psb_mpi_r_dpk_ = mpi_double_precision
psb_mpi_c_spk_ = mpi_complex
psb_mpi_c_dpk_ = mpi_double_complex
#endif
#if defined(SERIAL_MPI)
@ -191,9 +204,9 @@ contains
integer(psb_ipk_), intent(out) :: ictxt
integer(psb_ipk_), intent(in), optional :: np, basectxt, ids(:)
integer(psb_mpik_) :: iictxt
integer(psb_mpik_) :: inp, ibasectxt
integer(psb_mpik_), allocatable :: ids_(:)
integer(psb_mpk_) :: iictxt
integer(psb_mpk_) :: inp, ibasectxt
integer(psb_mpk_), allocatable :: ids_(:)
if (present(ids)) then
allocate(ids_(size(ids)))
@ -220,7 +233,7 @@ contains
subroutine psb_exit_ipk(ictxt,close)
integer(psb_ipk_), intent(inout) :: ictxt
logical, intent(in), optional :: close
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
iictxt = ictxt
call psb_exit(iictxt, close)
@ -228,7 +241,7 @@ contains
subroutine psb_barrier_ipk(ictxt)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
iictxt = ictxt
call psb_barrier(iictxt)
@ -237,7 +250,7 @@ contains
subroutine psb_abort_ipk(ictxt,errc)
integer(psb_ipk_), intent(in) :: ictxt
integer(psb_ipk_), intent(in), optional :: errc
integer(psb_mpik_) :: iictxt, ierrc
integer(psb_mpk_) :: iictxt, ierrc
iictxt = ictxt
if (present(errc)) then
@ -257,7 +270,7 @@ contains
! Simple caching scheme, keep track
! of the last CTXT encountered.
!
integer(psb_mpik_), save :: lctxt=-1, lam, lnp
integer(psb_mpk_), save :: lctxt=-1, lam, lnp
if (ictxt /= lctxt) then
lctxt = ictxt
call psb_info(lctxt,lam,lnp)
@ -281,14 +294,14 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(out) :: ictxt
integer(psb_mpik_), intent(in), optional :: np, basectxt, ids(:)
integer(psb_mpk_), intent(out) :: ictxt
integer(psb_mpk_), intent(in), optional :: np, basectxt, ids(:)
integer(psb_mpik_) :: i, isnullcomm
integer(psb_mpik_), allocatable :: iids(:)
integer(psb_mpk_) :: i, isnullcomm
integer(psb_mpk_), allocatable :: iids(:)
logical :: initialized
integer(psb_mpik_) :: np_, npavail, iam, info, basecomm, basegroup, newgroup
integer(psb_mpk_) :: np_, npavail, iam, info, basecomm, basegroup, newgroup
character(len=20), parameter :: name='psb_init'
integer(psb_ipk_) :: iinfo
call psb_set_debug_unit(psb_err_unit)
@ -406,10 +419,10 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(inout) :: ictxt
integer(psb_mpk_), intent(inout) :: ictxt
logical, intent(in), optional :: close
logical :: close_
integer(psb_mpik_) :: info
integer(psb_mpk_) :: info
character(len=20), parameter :: name='psb_exit'
info = 0
@ -457,9 +470,9 @@ contains
#ifdef MPI_H
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_mpik_) :: info
integer(psb_mpk_) :: info
#if !defined(SERIAL_MPI)
if (ictxt /= mpi_comm_null) then
call mpi_barrier(ictxt, info)
@ -486,10 +499,10 @@ contains
subroutine psb_abort_mpik(ictxt,errc)
use psi_comm_buffers_mod
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpik_), intent(in), optional :: errc
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_mpk_), intent(in), optional :: errc
integer(psb_mpik_) :: code, info
integer(psb_mpk_) :: code, info
#if defined(SERIAL_MPI)
stop
@ -516,14 +529,14 @@ contains
include 'mpif.h'
#endif
integer(psb_mpik_), intent(in) :: ictxt
integer(psb_mpik_), intent(out) :: iam, np
integer(psb_mpik_) :: info
integer(psb_mpk_), intent(in) :: ictxt
integer(psb_mpk_), intent(out) :: iam, np
integer(psb_mpk_) :: info
!
! Simple caching scheme, keep track
! of the last CTXT encountered.
!
integer(psb_mpik_), save :: lctxt=-1, lam, lnp
integer(psb_mpk_), save :: lctxt=-1, lam, lnp
#if defined(SERIAL_MPI)
iam = 0
@ -551,13 +564,13 @@ contains
subroutine psb_get_mpicomm(ictxt,comm)
integer(psb_mpik_) :: ictxt, comm
integer(psb_mpk_) :: ictxt, comm
comm = ictxt
end subroutine psb_get_mpicomm
subroutine psb_get_rank(rank,ictxt,id)
integer(psb_mpik_) :: rank,ictxt,id
integer(psb_mpk_) :: rank,ictxt,id
rank = id
end subroutine psb_get_rank
@ -572,8 +585,8 @@ contains
! !!!!!!!!!!!!!!!!!!!!!!
subroutine psi_iamx_op(inv, outv,len,type)
integer(psb_ipk_) :: inv(*),outv(*)
integer(psb_mpik_) :: len,type
integer(psb_mpik_) :: i
integer(psb_mpk_) :: len,type
integer(psb_mpk_) :: i
do i=1, len
if (abs(inv(i)) > abs(outv(i))) outv(i) = inv(i)
@ -582,17 +595,17 @@ contains
subroutine psi_iamn_op(inv, outv,len,type)
integer(psb_ipk_) :: inv(*),outv(*)
integer(psb_mpik_) :: len,type
integer(psb_mpik_) :: i
integer(psb_mpk_) :: len,type
integer(psb_mpk_) :: i
do i=1, len
if (abs(inv(i)) < abs(outv(i))) outv(i) = inv(i)
end do
end subroutine psi_iamn_op
subroutine psi_i4amx_op(inv, outv,len,type)
integer(psb_mpik_) :: inv(*),outv(*)
integer(psb_mpik_) :: len,type
integer(psb_mpik_) :: i
integer(psb_mpk_) :: inv(*),outv(*)
integer(psb_mpk_) :: len,type
integer(psb_mpk_) :: i
do i=1, len
if (abs(inv(i)) > abs(outv(i))) outv(i) = inv(i)
@ -600,9 +613,9 @@ contains
end subroutine psi_i4amx_op
subroutine psi_i4amn_op(inv, outv,len,type)
integer(psb_mpik_) :: inv(*),outv(*)
integer(psb_mpik_) :: len,type
integer(psb_mpik_) :: i
integer(psb_mpk_) :: inv(*),outv(*)
integer(psb_mpk_) :: len,type
integer(psb_mpk_) :: i
do i=1, len
if (abs(inv(i)) < abs(outv(i))) outv(i) = inv(i)
@ -610,9 +623,9 @@ contains
end subroutine psi_i4amn_op
subroutine psi_i8amx_op(inv, outv,len,type)
integer(psb_long_int_k_) :: inv(*),outv(*)
integer(psb_mpik_) :: len,type
integer(psb_mpik_) :: i
integer(psb_epk_) :: inv(*),outv(*)
integer(psb_mpk_) :: len,type
integer(psb_mpk_) :: i
do i=1, len
if (abs(inv(i)) > abs(outv(i))) outv(i) = inv(i)
@ -620,9 +633,9 @@ contains
end subroutine psi_i8amx_op
subroutine psi_i8amn_op(inv, outv,len,type)
integer(psb_long_int_k_) :: inv(*),outv(*)
integer(psb_mpik_) :: len,type
integer(psb_mpik_) :: i
integer(psb_epk_) :: inv(*),outv(*)
integer(psb_mpk_) :: len,type
integer(psb_mpk_) :: i
do i=1, len
if (abs(inv(i)) < abs(outv(i))) outv(i) = inv(i)
@ -630,88 +643,88 @@ contains
end subroutine psi_i8amn_op
subroutine psi_samx_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
real(psb_spk_), intent(in) :: vin(len)
real(psb_spk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) < abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_samx_op
subroutine psi_samn_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
real(psb_spk_), intent(in) :: vin(len)
real(psb_spk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) > abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_samn_op
subroutine psi_damx_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
real(psb_dpk_), intent(in) :: vin(len)
real(psb_dpk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) < abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_damx_op
subroutine psi_damn_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
real(psb_dpk_), intent(in) :: vin(len)
real(psb_dpk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) > abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_damn_op
subroutine psi_camx_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
complex(psb_spk_), intent(in) :: vin(len)
complex(psb_spk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) < abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_camx_op
subroutine psi_camn_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
complex(psb_spk_), intent(in) :: vin(len)
complex(psb_spk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) > abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_camn_op
subroutine psi_zamx_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
complex(psb_dpk_), intent(in) :: vin(len)
complex(psb_dpk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) < abs(vin(i))) vinout(i) = vin(i)
end do
end subroutine psi_zamx_op
subroutine psi_zamn_op(vin,vinout,len,itype)
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
complex(psb_dpk_), intent(in) :: vin(len)
complex(psb_dpk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
do i=1, len
if (abs(vinout(i)) > abs(vin(i))) vinout(i) = vin(i)
end do
@ -719,11 +732,11 @@ contains
subroutine psi_snrm2_op(vin,vinout,len,itype)
implicit none
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
real(psb_spk_), intent(in) :: vin(len)
real(psb_spk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
real(psb_spk_) :: w, z
do i=1, len
w = max( vin(i), vinout(i) )
@ -738,11 +751,11 @@ contains
subroutine psi_dnrm2_op(vin,vinout,len,itype)
implicit none
integer(psb_mpik_), intent(in) :: len, itype
integer(psb_mpk_), intent(in) :: len, itype
real(psb_dpk_), intent(in) :: vin(len)
real(psb_dpk_), intent(inout) :: vinout(len)
integer(psb_mpik_) :: i
integer(psb_mpk_) :: i
real(psb_dpk_) :: w, z
do i=1, len
w = max( vin(i), vinout(i) )

File diff suppressed because it is too large Load Diff

@ -230,7 +230,7 @@ module psb_base_mat_mod
!
interface
function psb_base_get_nz_row(idx,a) result(res)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
integer(psb_ipk_), intent(in) :: idx
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_ipk_) :: res
@ -245,7 +245,7 @@ module psb_base_mat_mod
!
interface
function psb_base_get_nzeros(a) result(res)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_ipk_) :: res
end function psb_base_get_nzeros
@ -260,7 +260,7 @@ module psb_base_mat_mod
!
interface
function psb_base_get_size(a) result(res)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_ipk_) :: res
end function psb_base_get_size
@ -273,7 +273,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_reinit(a,clear)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(inout) :: a
logical, intent(in), optional :: clear
end subroutine psb_base_reinit
@ -292,7 +292,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_sparse_print(iout,a,iv,head,ivr,ivc)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
integer(psb_ipk_), intent(in) :: iout
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_ipk_), intent(in), optional :: iv(:)
@ -332,7 +332,7 @@ module psb_base_mat_mod
interface
subroutine psb_base_csgetptn(imin,imax,a,nz,ia,ja,info,&
& jmin,jmax,iren,append,nzin,rscale,cscale)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_ipk_), intent(in) :: imin,imax
integer(psb_ipk_), intent(out) :: nz
@ -362,7 +362,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_get_neigh(a,idx,neigh,n,info,lev)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_ipk_), intent(in) :: idx
integer(psb_ipk_), intent(out) :: n
@ -384,7 +384,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_allocate_mnnz(m,n,a,nz)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
integer(psb_ipk_), intent(in) :: m,n
class(psb_base_sparse_mat), intent(inout) :: a
integer(psb_ipk_), intent(in), optional :: nz
@ -402,7 +402,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_reallocate_nz(nz,a)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
integer(psb_ipk_), intent(in) :: nz
class(psb_base_sparse_mat), intent(inout) :: a
end subroutine psb_base_reallocate_nz
@ -415,7 +415,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_free(a)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(inout) :: a
end subroutine psb_base_free
end interface
@ -429,7 +429,7 @@ module psb_base_mat_mod
!
interface
subroutine psb_base_trim(a)
import :: psb_ipk_, psb_long_int_k_, psb_base_sparse_mat
import :: psb_ipk_, psb_epk_, psb_base_sparse_mat
class(psb_base_sparse_mat), intent(inout) :: a
end subroutine psb_base_trim
end interface
@ -446,7 +446,7 @@ contains
function psb_base_sizeof(a) result(res)
implicit none
class(psb_base_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
end function psb_base_sizeof

@ -521,7 +521,7 @@ module psb_c_base_mat_mod
!
interface
subroutine psb_c_base_mold(a,b,info)
import :: psb_ipk_, psb_c_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_c_base_sparse_mat, psb_epk_
class(psb_c_base_sparse_mat), intent(in) :: a
class(psb_c_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -543,7 +543,7 @@ module psb_c_base_mat_mod
!
interface
subroutine psb_c_base_clone(a,b, info)
import :: psb_ipk_, psb_c_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_c_base_sparse_mat, psb_epk_
implicit none
class(psb_c_base_sparse_mat), intent(inout) :: a
class(psb_c_base_sparse_mat), allocatable, intent(inout) :: b
@ -1290,7 +1290,7 @@ module psb_c_base_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_c_coo_mold(a,b,info)
import :: psb_ipk_, psb_c_coo_sparse_mat, psb_c_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_c_coo_sparse_mat, psb_c_base_sparse_mat, psb_epk_
class(psb_c_coo_sparse_mat), intent(in) :: a
class(psb_c_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -1755,11 +1755,11 @@ contains
function c_coo_sizeof(a) result(res)
implicit none
class(psb_c_coo_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8 + 1
res = res + (2*psb_sizeof_sp) * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function c_coo_sizeof

@ -63,7 +63,7 @@ module psb_c_base_vect_mod
!> Values.
complex(psb_spk_), allocatable :: v(:)
complex(psb_spk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -660,10 +660,10 @@ contains
function c_base_sizeof(x) result(res)
implicit none
class(psb_c_base_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * (2*psb_sizeof_sp)) * x%get_nrows()
res = (1_psb_epk_ * (2*psb_sizeof_sp)) * x%get_nrows()
end function c_base_sizeof
@ -1396,7 +1396,7 @@ module psb_c_base_multivect_mod
!> Values.
complex(psb_spk_), allocatable :: v(:,:)
complex(psb_spk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -1914,10 +1914,10 @@ contains
function c_base_mlv_sizeof(x) result(res)
implicit none
class(psb_c_base_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_int) * x%get_nrows() * x%get_ncols()
res = (1_psb_epk_ * psb_sizeof_ip) * x%get_nrows() * x%get_ncols()
end function c_base_mlv_sizeof

@ -136,7 +136,7 @@ module psb_c_csc_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_c_csc_mold(a,b,info)
import :: psb_ipk_, psb_c_csc_sparse_mat, psb_c_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_c_csc_sparse_mat, psb_c_base_sparse_mat, psb_epk_
class(psb_c_csc_sparse_mat), intent(in) :: a
class(psb_c_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -519,11 +519,11 @@ contains
function c_csc_sizeof(a) result(res)
implicit none
class(psb_c_csc_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + (2*psb_sizeof_sp) * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%icp)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%icp)
res = res + psb_sizeof_ip * psb_size(a%ia)
end function c_csc_sizeof

@ -139,7 +139,7 @@ module psb_c_csr_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_c_csr_mold(a,b,info)
import :: psb_ipk_, psb_c_csr_sparse_mat, psb_c_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_c_csr_sparse_mat, psb_c_base_sparse_mat, psb_epk_
class(psb_c_csr_sparse_mat), intent(in) :: a
class(psb_c_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -524,11 +524,11 @@ contains
function c_csr_sizeof(a) result(res)
implicit none
class(psb_c_csr_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + (2*psb_sizeof_sp) * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%irp)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%irp)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function c_csr_sizeof

@ -932,7 +932,7 @@ contains
function psb_c_sizeof(a) result(res)
implicit none
class(psb_cspmat_type), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(a%a)) then

@ -308,7 +308,7 @@ contains
function c_vect_sizeof(x) result(res)
implicit none
class(psb_c_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function c_vect_sizeof
@ -1050,7 +1050,7 @@ contains
function c_vect_sizeof(x) result(res)
implicit none
class(psb_c_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function c_vect_sizeof

@ -521,7 +521,7 @@ module psb_d_base_mat_mod
!
interface
subroutine psb_d_base_mold(a,b,info)
import :: psb_ipk_, psb_d_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_d_base_sparse_mat, psb_epk_
class(psb_d_base_sparse_mat), intent(in) :: a
class(psb_d_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -543,7 +543,7 @@ module psb_d_base_mat_mod
!
interface
subroutine psb_d_base_clone(a,b, info)
import :: psb_ipk_, psb_d_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_d_base_sparse_mat, psb_epk_
implicit none
class(psb_d_base_sparse_mat), intent(inout) :: a
class(psb_d_base_sparse_mat), allocatable, intent(inout) :: b
@ -1290,7 +1290,7 @@ module psb_d_base_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_d_coo_mold(a,b,info)
import :: psb_ipk_, psb_d_coo_sparse_mat, psb_d_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_d_coo_sparse_mat, psb_d_base_sparse_mat, psb_epk_
class(psb_d_coo_sparse_mat), intent(in) :: a
class(psb_d_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -1755,11 +1755,11 @@ contains
function d_coo_sizeof(a) result(res)
implicit none
class(psb_d_coo_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8 + 1
res = res + psb_sizeof_dp * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function d_coo_sizeof

@ -63,7 +63,7 @@ module psb_d_base_vect_mod
!> Values.
real(psb_dpk_), allocatable :: v(:)
real(psb_dpk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -660,10 +660,10 @@ contains
function d_base_sizeof(x) result(res)
implicit none
class(psb_d_base_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_dp) * x%get_nrows()
res = (1_psb_epk_ * psb_sizeof_dp) * x%get_nrows()
end function d_base_sizeof
@ -1396,7 +1396,7 @@ module psb_d_base_multivect_mod
!> Values.
real(psb_dpk_), allocatable :: v(:,:)
real(psb_dpk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -1914,10 +1914,10 @@ contains
function d_base_mlv_sizeof(x) result(res)
implicit none
class(psb_d_base_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_int) * x%get_nrows() * x%get_ncols()
res = (1_psb_epk_ * psb_sizeof_ip) * x%get_nrows() * x%get_ncols()
end function d_base_mlv_sizeof

@ -136,7 +136,7 @@ module psb_d_csc_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_d_csc_mold(a,b,info)
import :: psb_ipk_, psb_d_csc_sparse_mat, psb_d_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_d_csc_sparse_mat, psb_d_base_sparse_mat, psb_epk_
class(psb_d_csc_sparse_mat), intent(in) :: a
class(psb_d_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -519,11 +519,11 @@ contains
function d_csc_sizeof(a) result(res)
implicit none
class(psb_d_csc_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + psb_sizeof_dp * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%icp)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%icp)
res = res + psb_sizeof_ip * psb_size(a%ia)
end function d_csc_sizeof

@ -139,7 +139,7 @@ module psb_d_csr_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_d_csr_mold(a,b,info)
import :: psb_ipk_, psb_d_csr_sparse_mat, psb_d_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_d_csr_sparse_mat, psb_d_base_sparse_mat, psb_epk_
class(psb_d_csr_sparse_mat), intent(in) :: a
class(psb_d_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -524,11 +524,11 @@ contains
function d_csr_sizeof(a) result(res)
implicit none
class(psb_d_csr_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + psb_sizeof_dp * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%irp)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%irp)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function d_csr_sizeof

@ -932,7 +932,7 @@ contains
function psb_d_sizeof(a) result(res)
implicit none
class(psb_dspmat_type), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(a%a)) then

@ -308,7 +308,7 @@ contains
function d_vect_sizeof(x) result(res)
implicit none
class(psb_d_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function d_vect_sizeof
@ -1050,7 +1050,7 @@ contains
function d_vect_sizeof(x) result(res)
implicit none
class(psb_d_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function d_vect_sizeof

@ -62,7 +62,7 @@ module psb_i_base_vect_mod
!> Values.
integer(psb_ipk_), allocatable :: v(:)
integer(psb_ipk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -629,10 +629,10 @@ contains
function i_base_sizeof(x) result(res)
implicit none
class(psb_i_base_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_int) * x%get_nrows()
res = (1_psb_epk_ * psb_sizeof_ip) * x%get_nrows()
end function i_base_sizeof
@ -937,7 +937,7 @@ module psb_i_base_multivect_mod
!> Values.
integer(psb_ipk_), allocatable :: v(:,:)
integer(psb_ipk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -1422,10 +1422,10 @@ contains
function i_base_mlv_sizeof(x) result(res)
implicit none
class(psb_i_base_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_int) * x%get_nrows() * x%get_ncols()
res = (1_psb_epk_ * psb_sizeof_ip) * x%get_nrows() * x%get_ncols()
end function i_base_mlv_sizeof

@ -281,7 +281,7 @@ contains
function i_vect_sizeof(x) result(res)
implicit none
class(psb_i_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function i_vect_sizeof
@ -779,7 +779,7 @@ contains
function i_vect_sizeof(x) result(res)
implicit none
class(psb_i_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function i_vect_sizeof

@ -521,7 +521,7 @@ module psb_s_base_mat_mod
!
interface
subroutine psb_s_base_mold(a,b,info)
import :: psb_ipk_, psb_s_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_s_base_sparse_mat, psb_epk_
class(psb_s_base_sparse_mat), intent(in) :: a
class(psb_s_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -543,7 +543,7 @@ module psb_s_base_mat_mod
!
interface
subroutine psb_s_base_clone(a,b, info)
import :: psb_ipk_, psb_s_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_s_base_sparse_mat, psb_epk_
implicit none
class(psb_s_base_sparse_mat), intent(inout) :: a
class(psb_s_base_sparse_mat), allocatable, intent(inout) :: b
@ -1290,7 +1290,7 @@ module psb_s_base_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_s_coo_mold(a,b,info)
import :: psb_ipk_, psb_s_coo_sparse_mat, psb_s_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_s_coo_sparse_mat, psb_s_base_sparse_mat, psb_epk_
class(psb_s_coo_sparse_mat), intent(in) :: a
class(psb_s_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -1755,11 +1755,11 @@ contains
function s_coo_sizeof(a) result(res)
implicit none
class(psb_s_coo_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8 + 1
res = res + psb_sizeof_sp * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function s_coo_sizeof

@ -63,7 +63,7 @@ module psb_s_base_vect_mod
!> Values.
real(psb_spk_), allocatable :: v(:)
real(psb_spk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -660,10 +660,10 @@ contains
function s_base_sizeof(x) result(res)
implicit none
class(psb_s_base_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_sp) * x%get_nrows()
res = (1_psb_epk_ * psb_sizeof_sp) * x%get_nrows()
end function s_base_sizeof
@ -1396,7 +1396,7 @@ module psb_s_base_multivect_mod
!> Values.
real(psb_spk_), allocatable :: v(:,:)
real(psb_spk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -1914,10 +1914,10 @@ contains
function s_base_mlv_sizeof(x) result(res)
implicit none
class(psb_s_base_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_int) * x%get_nrows() * x%get_ncols()
res = (1_psb_epk_ * psb_sizeof_ip) * x%get_nrows() * x%get_ncols()
end function s_base_mlv_sizeof

@ -136,7 +136,7 @@ module psb_s_csc_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_s_csc_mold(a,b,info)
import :: psb_ipk_, psb_s_csc_sparse_mat, psb_s_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_s_csc_sparse_mat, psb_s_base_sparse_mat, psb_epk_
class(psb_s_csc_sparse_mat), intent(in) :: a
class(psb_s_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -519,11 +519,11 @@ contains
function s_csc_sizeof(a) result(res)
implicit none
class(psb_s_csc_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + psb_sizeof_sp * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%icp)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%icp)
res = res + psb_sizeof_ip * psb_size(a%ia)
end function s_csc_sizeof

@ -139,7 +139,7 @@ module psb_s_csr_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_s_csr_mold(a,b,info)
import :: psb_ipk_, psb_s_csr_sparse_mat, psb_s_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_s_csr_sparse_mat, psb_s_base_sparse_mat, psb_epk_
class(psb_s_csr_sparse_mat), intent(in) :: a
class(psb_s_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -524,11 +524,11 @@ contains
function s_csr_sizeof(a) result(res)
implicit none
class(psb_s_csr_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + psb_sizeof_sp * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%irp)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%irp)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function s_csr_sizeof

@ -932,7 +932,7 @@ contains
function psb_s_sizeof(a) result(res)
implicit none
class(psb_sspmat_type), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(a%a)) then

@ -308,7 +308,7 @@ contains
function s_vect_sizeof(x) result(res)
implicit none
class(psb_s_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function s_vect_sizeof
@ -1050,7 +1050,7 @@ contains
function s_vect_sizeof(x) result(res)
implicit none
class(psb_s_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function s_vect_sizeof

@ -128,7 +128,7 @@ contains
! october 31, 1992
!
! .. scalar arguments ..
integer(psb_mpik_) :: incx, incy, n
integer(psb_mpk_) :: incx, incy, n
real(psb_spk_) c
complex(psb_spk_) s
! ..
@ -172,7 +172,7 @@ contains
! == = ==================================================================
!
! .. local scalars ..
integer(psb_mpik_) :: i, ix, iy
integer(psb_mpk_) :: i, ix, iy
complex(psb_spk_) stemp
! ..
! .. intrinsic functions ..
@ -246,7 +246,7 @@ contains
! october 31, 1992
!
! .. scalar arguments ..
integer(psb_mpik_) :: incx, incy, n
integer(psb_mpk_) :: incx, incy, n
real(psb_dpk_) c
complex(psb_dpk_) s
! ..
@ -290,7 +290,7 @@ contains
! == = ==================================================================
!
! .. local scalars ..
integer(psb_mpik_) :: i, ix, iy
integer(psb_mpk_) :: i, ix, iy
complex(psb_dpk_) stemp
! ..
! .. intrinsic functions ..

@ -521,7 +521,7 @@ module psb_z_base_mat_mod
!
interface
subroutine psb_z_base_mold(a,b,info)
import :: psb_ipk_, psb_z_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_z_base_sparse_mat, psb_epk_
class(psb_z_base_sparse_mat), intent(in) :: a
class(psb_z_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -543,7 +543,7 @@ module psb_z_base_mat_mod
!
interface
subroutine psb_z_base_clone(a,b, info)
import :: psb_ipk_, psb_z_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_z_base_sparse_mat, psb_epk_
implicit none
class(psb_z_base_sparse_mat), intent(inout) :: a
class(psb_z_base_sparse_mat), allocatable, intent(inout) :: b
@ -1290,7 +1290,7 @@ module psb_z_base_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_z_coo_mold(a,b,info)
import :: psb_ipk_, psb_z_coo_sparse_mat, psb_z_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_z_coo_sparse_mat, psb_z_base_sparse_mat, psb_epk_
class(psb_z_coo_sparse_mat), intent(in) :: a
class(psb_z_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -1755,11 +1755,11 @@ contains
function z_coo_sizeof(a) result(res)
implicit none
class(psb_z_coo_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8 + 1
res = res + (2*psb_sizeof_dp) * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function z_coo_sizeof

@ -63,7 +63,7 @@ module psb_z_base_vect_mod
!> Values.
complex(psb_dpk_), allocatable :: v(:)
complex(psb_dpk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -660,10 +660,10 @@ contains
function z_base_sizeof(x) result(res)
implicit none
class(psb_z_base_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * (2*psb_sizeof_dp)) * x%get_nrows()
res = (1_psb_epk_ * (2*psb_sizeof_dp)) * x%get_nrows()
end function z_base_sizeof
@ -1396,7 +1396,7 @@ module psb_z_base_multivect_mod
!> Values.
complex(psb_dpk_), allocatable :: v(:,:)
complex(psb_dpk_), allocatable :: combuf(:)
integer(psb_mpik_), allocatable :: comid(:,:)
integer(psb_mpk_), allocatable :: comid(:,:)
contains
!
! Constructors/allocators
@ -1914,10 +1914,10 @@ contains
function z_base_mlv_sizeof(x) result(res)
implicit none
class(psb_z_base_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
! Force 8-byte integers.
res = (1_psb_long_int_k_ * psb_sizeof_int) * x%get_nrows() * x%get_ncols()
res = (1_psb_epk_ * psb_sizeof_ip) * x%get_nrows() * x%get_ncols()
end function z_base_mlv_sizeof

@ -136,7 +136,7 @@ module psb_z_csc_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_z_csc_mold(a,b,info)
import :: psb_ipk_, psb_z_csc_sparse_mat, psb_z_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_z_csc_sparse_mat, psb_z_base_sparse_mat, psb_epk_
class(psb_z_csc_sparse_mat), intent(in) :: a
class(psb_z_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -519,11 +519,11 @@ contains
function z_csc_sizeof(a) result(res)
implicit none
class(psb_z_csc_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + (2*psb_sizeof_dp) * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%icp)
res = res + psb_sizeof_int * psb_size(a%ia)
res = res + psb_sizeof_ip * psb_size(a%icp)
res = res + psb_sizeof_ip * psb_size(a%ia)
end function z_csc_sizeof

@ -139,7 +139,7 @@ module psb_z_csr_mat_mod
!| \see psb_base_mat_mod::psb_base_mold
interface
subroutine psb_z_csr_mold(a,b,info)
import :: psb_ipk_, psb_z_csr_sparse_mat, psb_z_base_sparse_mat, psb_long_int_k_
import :: psb_ipk_, psb_z_csr_sparse_mat, psb_z_base_sparse_mat, psb_epk_
class(psb_z_csr_sparse_mat), intent(in) :: a
class(psb_z_base_sparse_mat), intent(inout), allocatable :: b
integer(psb_ipk_), intent(out) :: info
@ -524,11 +524,11 @@ contains
function z_csr_sizeof(a) result(res)
implicit none
class(psb_z_csr_sparse_mat), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 8
res = res + (2*psb_sizeof_dp) * psb_size(a%val)
res = res + psb_sizeof_int * psb_size(a%irp)
res = res + psb_sizeof_int * psb_size(a%ja)
res = res + psb_sizeof_ip * psb_size(a%irp)
res = res + psb_sizeof_ip * psb_size(a%ja)
end function z_csr_sizeof

@ -932,7 +932,7 @@ contains
function psb_z_sizeof(a) result(res)
implicit none
class(psb_zspmat_type), intent(in) :: a
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(a%a)) then

@ -308,7 +308,7 @@ contains
function z_vect_sizeof(x) result(res)
implicit none
class(psb_z_vect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function z_vect_sizeof
@ -1050,7 +1050,7 @@ contains
function z_vect_sizeof(x) result(res)
implicit none
class(psb_z_multivect_type), intent(in) :: x
integer(psb_long_int_k_) :: res
integer(psb_epk_) :: res
res = 0
if (allocated(x%v)) res = x%v%sizeof()
end function z_vect_sizeof

@ -156,17 +156,18 @@ module psb_cd_tools_mod
interface psb_cdall
subroutine psb_cdall(ictxt, desc, info,mg,ng,parts,vg,vl,flag,nl,repl,&
subroutine psb_cdall(ictxt, desc, info,mg,ng,parts,vg,vl,vll,flag,nl,repl,&
& globalcheck,lidx)
import :: psb_ipk_, psb_desc_type, psb_parts
import :: psb_ipk_, psb_lpk_, psb_desc_type, psb_parts
implicit None
procedure(psb_parts) :: parts
integer(psb_ipk_), intent(in) :: mg,ng,ictxt, vg(:), vl(:),nl,lidx(:)
integer(psb_lpk_), intent(in) :: vll(:)
integer(psb_ipk_), intent(in) :: flag
logical, intent(in) :: repl, globalcheck
integer(psb_ipk_), intent(out) :: info
type(psb_desc_type), intent(out) :: desc
optional :: mg,ng,parts,vg,vl,flag,nl,repl, globalcheck,lidx
optional :: mg,ng,parts,vg,vl,flag,nl,repl, globalcheck,lidx,vll
end subroutine psb_cdall
end interface

@ -216,7 +216,7 @@ function psb_cdot(x, y,desc_a, info, jx, jy) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = cdotc(int(nr,kind=psb_mpik_), x(iix:,jjx),1,y(iiy:,jjy),1)
res = cdotc(int(nr,kind=psb_mpk_), x(iix:,jjx),1,y(iiy:,jjy),1)
! adjust dot_local because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -340,7 +340,7 @@ function psb_cdotv(x, y,desc_a, info) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = cdotc(int(nr,kind=psb_mpik_), x,1,y,1)
res = cdotc(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -463,7 +463,7 @@ subroutine psb_cdotvs(res, x, y,desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = cdotc(int(nr,kind=psb_mpik_), x,1,y,1)
res = cdotc(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -596,7 +596,7 @@ subroutine psb_cmdots(res, x, y, desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
do j=1,k
res(j) = cdotc(int(nr,kind=psb_mpik_),x(1:,j),1,y(1:,j),1)
res(j) = cdotc(int(nr,kind=psb_mpk_),x(1:,j),1,y(1:,j),1)
! adjust res because overlapped elements are computed more than once
end do
do i=1,size(desc_a%ovrlap_elem,1)

@ -101,7 +101,7 @@ function psb_cnrm2(x, desc_a, info, jx) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = scnrm2( int(ndim,kind=psb_mpik_), x(iix:,jjx), int(ione,kind=psb_mpik_) )
res = scnrm2( int(ndim,kind=psb_mpk_), x(iix:,jjx), int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
@ -221,7 +221,7 @@ function psb_cnrm2v(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = scnrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = scnrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -426,7 +426,7 @@ subroutine psb_cnrm2vs(res, x, desc_a, info)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = scnrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = scnrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)

@ -216,7 +216,7 @@ function psb_ddot(x, y,desc_a, info, jx, jy) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = ddot(int(nr,kind=psb_mpik_), x(iix:,jjx),1,y(iiy:,jjy),1)
res = ddot(int(nr,kind=psb_mpk_), x(iix:,jjx),1,y(iiy:,jjy),1)
! adjust dot_local because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -340,7 +340,7 @@ function psb_ddotv(x, y,desc_a, info) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = ddot(int(nr,kind=psb_mpik_), x,1,y,1)
res = ddot(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -463,7 +463,7 @@ subroutine psb_ddotvs(res, x, y,desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = ddot(int(nr,kind=psb_mpik_), x,1,y,1)
res = ddot(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -596,7 +596,7 @@ subroutine psb_dmdots(res, x, y, desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
do j=1,k
res(j) = ddot(int(nr,kind=psb_mpik_),x(1:,j),1,y(1:,j),1)
res(j) = ddot(int(nr,kind=psb_mpk_),x(1:,j),1,y(1:,j),1)
! adjust res because overlapped elements are computed more than once
end do
do i=1,size(desc_a%ovrlap_elem,1)

@ -101,7 +101,7 @@ function psb_dnrm2(x, desc_a, info, jx) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = dnrm2( int(ndim,kind=psb_mpik_), x(iix:,jjx), int(ione,kind=psb_mpik_) )
res = dnrm2( int(ndim,kind=psb_mpk_), x(iix:,jjx), int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
@ -221,7 +221,7 @@ function psb_dnrm2v(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = dnrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = dnrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -426,7 +426,7 @@ subroutine psb_dnrm2vs(res, x, desc_a, info)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = dnrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = dnrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)

@ -216,7 +216,7 @@ function psb_sdot(x, y,desc_a, info, jx, jy) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = sdot(int(nr,kind=psb_mpik_), x(iix:,jjx),1,y(iiy:,jjy),1)
res = sdot(int(nr,kind=psb_mpk_), x(iix:,jjx),1,y(iiy:,jjy),1)
! adjust dot_local because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -340,7 +340,7 @@ function psb_sdotv(x, y,desc_a, info) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = sdot(int(nr,kind=psb_mpik_), x,1,y,1)
res = sdot(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -463,7 +463,7 @@ subroutine psb_sdotvs(res, x, y,desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = sdot(int(nr,kind=psb_mpik_), x,1,y,1)
res = sdot(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -596,7 +596,7 @@ subroutine psb_smdots(res, x, y, desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
do j=1,k
res(j) = sdot(int(nr,kind=psb_mpik_),x(1:,j),1,y(1:,j),1)
res(j) = sdot(int(nr,kind=psb_mpk_),x(1:,j),1,y(1:,j),1)
! adjust res because overlapped elements are computed more than once
end do
do i=1,size(desc_a%ovrlap_elem,1)

@ -101,7 +101,7 @@ function psb_snrm2(x, desc_a, info, jx) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = snrm2( int(ndim,kind=psb_mpik_), x(iix:,jjx), int(ione,kind=psb_mpik_) )
res = snrm2( int(ndim,kind=psb_mpk_), x(iix:,jjx), int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
@ -221,7 +221,7 @@ function psb_snrm2v(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = snrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = snrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -426,7 +426,7 @@ subroutine psb_snrm2vs(res, x, desc_a, info)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = snrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = snrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)

@ -216,7 +216,7 @@ function psb_zdot(x, y,desc_a, info, jx, jy) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = zdotc(int(nr,kind=psb_mpik_), x(iix:,jjx),1,y(iiy:,jjy),1)
res = zdotc(int(nr,kind=psb_mpk_), x(iix:,jjx),1,y(iiy:,jjy),1)
! adjust dot_local because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -340,7 +340,7 @@ function psb_zdotv(x, y,desc_a, info) result(res)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = zdotc(int(nr,kind=psb_mpik_), x,1,y,1)
res = zdotc(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -463,7 +463,7 @@ subroutine psb_zdotvs(res, x, y,desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
res = zdotc(int(nr,kind=psb_mpik_), x,1,y,1)
res = zdotc(int(nr,kind=psb_mpk_), x,1,y,1)
! adjust res because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -596,7 +596,7 @@ subroutine psb_zmdots(res, x, y, desc_a, info)
nr = desc_a%get_local_rows()
if(nr > 0) then
do j=1,k
res(j) = zdotc(int(nr,kind=psb_mpik_),x(1:,j),1,y(1:,j),1)
res(j) = zdotc(int(nr,kind=psb_mpk_),x(1:,j),1,y(1:,j),1)
! adjust res because overlapped elements are computed more than once
end do
do i=1,size(desc_a%ovrlap_elem,1)

@ -101,7 +101,7 @@ function psb_znrm2(x, desc_a, info, jx) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = dznrm2( int(ndim,kind=psb_mpik_), x(iix:,jjx), int(ione,kind=psb_mpik_) )
res = dznrm2( int(ndim,kind=psb_mpk_), x(iix:,jjx), int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
@ -221,7 +221,7 @@ function psb_znrm2v(x, desc_a, info) result(res)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = dznrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = dznrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)
idx = desc_a%ovrlap_elem(i,1)
@ -426,7 +426,7 @@ subroutine psb_znrm2vs(res, x, desc_a, info)
if (desc_a%get_local_rows() > 0) then
ndim = desc_a%get_local_rows()
res = dznrm2( int(ndim,kind=psb_mpik_), x, int(ione,kind=psb_mpik_) )
res = dznrm2( int(ndim,kind=psb_mpk_), x, int(ione,kind=psb_mpk_) )
! adjust because overlapped elements are computed more than once
do i=1,size(desc_a%ovrlap_elem,1)

@ -88,13 +88,13 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
& n_elem_send,tot_recv,tot_elem,cntov_o,&
& counter_t,n_elem,i_ovr,jj,proc_id,isz, &
& idxr, idxs, iszr, iszs, nxch, nsnd, nrcv,lidx, extype_
integer(psb_mpik_) :: icomm, ictxt, me, np, minfo
integer(psb_mpk_) :: icomm, ictxt, me, np, minfo
integer(psb_ipk_), allocatable :: irow(:), icol(:)
integer(psb_ipk_), allocatable :: tmp_halo(:),tmp_ovr_idx(:), orig_ovr(:)
integer(psb_ipk_), allocatable :: halo(:),ovrlap(:),works(:),workr(:),&
& t_halo_in(:), t_halo_out(:),temp(:),maskr(:)
integer(psb_mpik_),allocatable :: brvindx(:),rvsz(:), bsdindx(:),sdsz(:)
integer(psb_mpk_),allocatable :: brvindx(:),rvsz(:), bsdindx(:),sdsz(:)
integer(psb_ipk_) :: debug_level, debug_unit
integer(psb_ipk_) :: ierr(5)
character(len=20) :: name, ch_err
@ -468,8 +468,8 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
! accumulated RECV requests, we have an all-to-all to build
! matchings SENDs.
!
call mpi_alltoall(sdsz,1,psb_mpi_def_integer,rvsz,1, &
& psb_mpi_def_integer,icomm,minfo)
call mpi_alltoall(sdsz,1,psb_mpi_mpk_int,rvsz,1, &
& psb_mpi_mpk_int,icomm,minfo)
if (minfo /= psb_success_) then
info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='mpi_alltoall')
@ -504,8 +504,8 @@ Subroutine psb_ccdbldext(a,desc_a,novr,desc_ov,info, extype)
lworkr = max(iszr,1)
end if
call mpi_alltoallv(works,sdsz,bsdindx,psb_mpi_ipk_integer,&
& workr,rvsz,brvindx,psb_mpi_ipk_integer,icomm,minfo)
call mpi_alltoallv(works,sdsz,bsdindx,psb_mpi_ipk_int,&
& workr,rvsz,brvindx,psb_mpi_ipk_int,icomm,minfo)
if (minfo /= psb_success_) then
info=psb_err_from_subroutine_
call psb_errpush(info,name,a_err='mpi_alltoallv')

@ -64,7 +64,7 @@ subroutine psb_cd_inloc(v, ictxt, desc, info, globalcheck,idx)
integer(psb_ipk_), allocatable :: temp_ovrlap(:), tmpgidx(:,:), vl(:),&
& nov(:), ov_idx(:,:), ix(:)
integer(psb_ipk_) :: debug_level, debug_unit
integer(psb_mpik_) :: iictxt
integer(psb_mpk_) :: iictxt
logical :: check_, islarge
character(len=20) :: name

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save