|
|
|
@ -57,7 +57,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,nxch,nsnd,nrcv,info)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
type(psb_desc_type), intent(in) :: desc_a
|
|
|
|
|
integer, intent(out) :: info,nxch,nsnd,nrcv
|
|
|
|
|
integer, intent(in) :: index_in(:)
|
|
|
|
@ -77,7 +77,7 @@ module psi_mod
|
|
|
|
|
interface
|
|
|
|
|
subroutine psi_desc_index(desc,index_in,dep_list,&
|
|
|
|
|
& length_dl,nsnd,nrcv,desc_index,isglob_in,info)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
type(psb_desc_type) :: desc
|
|
|
|
|
integer :: index_in(:),dep_list(:)
|
|
|
|
|
integer,allocatable :: desc_index(:)
|
|
|
|
@ -101,7 +101,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_swapdata
|
|
|
|
|
subroutine psi_sswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_spk_) :: y(:,:), beta
|
|
|
|
@ -110,7 +110,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_sswapdatam
|
|
|
|
|
subroutine psi_sswapdatav(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_spk_) :: y(:), beta
|
|
|
|
@ -135,7 +135,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_sswapidxv
|
|
|
|
|
subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_dpk_) :: y(:,:), beta
|
|
|
|
@ -144,7 +144,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_dswapdatam
|
|
|
|
|
subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_dpk_) :: y(:), beta
|
|
|
|
@ -169,7 +169,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_dswapidxv
|
|
|
|
|
subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer :: y(:,:), beta
|
|
|
|
@ -178,7 +178,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_iswapdatam
|
|
|
|
|
subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer :: y(:), beta
|
|
|
|
@ -203,7 +203,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_iswapidxv
|
|
|
|
|
subroutine psi_cswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_spk_) :: y(:,:), beta
|
|
|
|
@ -212,7 +212,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_cswapdatam
|
|
|
|
|
subroutine psi_cswapdatav(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_spk_) :: y(:), beta
|
|
|
|
@ -237,7 +237,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_cswapidxv
|
|
|
|
|
subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_dpk_) :: y(:,:), beta
|
|
|
|
@ -246,7 +246,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_zswapdatam
|
|
|
|
|
subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_dpk_) :: y(:), beta
|
|
|
|
@ -275,7 +275,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_swaptran
|
|
|
|
|
subroutine psi_sswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_spk_) :: y(:,:), beta
|
|
|
|
@ -284,7 +284,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_sswaptranm
|
|
|
|
|
subroutine psi_sswaptranv(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_spk_) :: y(:), beta
|
|
|
|
@ -309,7 +309,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_stranidxv
|
|
|
|
|
subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_dpk_) :: y(:,:), beta
|
|
|
|
@ -318,7 +318,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_dswaptranm
|
|
|
|
|
subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
real(psb_dpk_) :: y(:), beta
|
|
|
|
@ -343,7 +343,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_dtranidxv
|
|
|
|
|
subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer :: y(:,:), beta
|
|
|
|
@ -352,7 +352,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_iswaptranm
|
|
|
|
|
subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
integer :: y(:), beta
|
|
|
|
@ -377,7 +377,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_itranidxv
|
|
|
|
|
subroutine psi_cswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_spk_) :: y(:,:), beta
|
|
|
|
@ -386,7 +386,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_cswaptranm
|
|
|
|
|
subroutine psi_cswaptranv(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_spk_) :: y(:), beta
|
|
|
|
@ -411,7 +411,7 @@ module psi_mod
|
|
|
|
|
integer, intent(in) :: idx(:),totxch,totsnd,totrcv
|
|
|
|
|
end subroutine psi_ctranidxv
|
|
|
|
|
subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag, n
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_dpk_) :: y(:,:), beta
|
|
|
|
@ -420,7 +420,7 @@ module psi_mod
|
|
|
|
|
integer, optional :: data
|
|
|
|
|
end subroutine psi_zswaptranm
|
|
|
|
|
subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_dpk_
|
|
|
|
|
integer, intent(in) :: flag
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
complex(psb_dpk_) :: y(:), beta
|
|
|
|
@ -457,7 +457,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_fnd_owner
|
|
|
|
|
subroutine psi_fnd_owner(nv,idx,iprc,desc,info)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: nv
|
|
|
|
|
integer, intent(in) :: idx(:)
|
|
|
|
|
integer, allocatable, intent(out) :: iprc(:)
|
|
|
|
@ -468,7 +468,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_ldsc_pre_halo
|
|
|
|
|
subroutine psi_ldsc_pre_halo(desc,ext_hv,info)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
|
logical, intent(in) :: ext_hv
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -477,7 +477,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_bld_tmphalo
|
|
|
|
|
subroutine psi_bld_tmphalo(desc,info)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|
end subroutine psi_bld_tmphalo
|
|
|
|
@ -486,7 +486,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_bld_tmpovrl
|
|
|
|
|
subroutine psi_bld_tmpovrl(iv,desc,info)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: iv(:)
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
@ -534,7 +534,7 @@ module psi_mod
|
|
|
|
|
|
|
|
|
|
interface psi_idx_ins_cnv
|
|
|
|
|
subroutine psi_idx_ins_cnv1(nv,idxin,desc,info,mask)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: nv
|
|
|
|
|
integer, intent(inout) :: idxin(:)
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
@ -542,7 +542,7 @@ module psi_mod
|
|
|
|
|
logical, intent(in), optional :: mask(:)
|
|
|
|
|
end subroutine psi_idx_ins_cnv1
|
|
|
|
|
subroutine psi_idx_ins_cnv2(nv,idxin,idxout,desc,info,mask)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: nv, idxin(:)
|
|
|
|
|
integer, intent(out) :: idxout(:)
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
@ -550,7 +550,7 @@ module psi_mod
|
|
|
|
|
logical, intent(in), optional :: mask(:)
|
|
|
|
|
end subroutine psi_idx_ins_cnv2
|
|
|
|
|
subroutine psi_idx_ins_cnvs2(idxin,idxout,desc,info,mask)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(in) :: idxin
|
|
|
|
|
integer, intent(out) :: idxout
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
@ -558,7 +558,7 @@ module psi_mod
|
|
|
|
|
logical, intent(in), optional :: mask
|
|
|
|
|
end subroutine psi_idx_ins_cnvs2
|
|
|
|
|
subroutine psi_idx_ins_cnvs1(idxin,desc,info,mask)
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type, psb_spk_, psb_dpk_
|
|
|
|
|
use psb_descriptor_type, only : psb_desc_type
|
|
|
|
|
integer, intent(inout) :: idxin
|
|
|
|
|
type(psb_desc_type), intent(inout) :: desc
|
|
|
|
|
integer, intent(out) :: info
|
|
|
|
|