mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-24 14:51:49 +00:00
[UPDATE] Removed work/aux buffer from vector routines that use psb_x_vect_type encapsulation for data exchange
This commit is contained in:
@@ -37,52 +37,48 @@ module psb_c_comm_mod
|
||||
use psb_c_multivect_mod, only : psb_c_multivect_type, psb_c_base_multivect_type
|
||||
|
||||
interface psb_ovrl
|
||||
subroutine psb_covrl_vect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_covrl_vect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_covrl_vect
|
||||
subroutine psb_covrl_multivect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_covrl_multivect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_c_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_covrl_multivect
|
||||
end interface psb_ovrl
|
||||
|
||||
interface psb_halo
|
||||
subroutine psb_chalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_chalo_vect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type), intent(inout) :: x
|
||||
type(psb_c_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_chalo_vect
|
||||
subroutine psb_chalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_chalo_multivect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
type(psb_c_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_chalo_multivect
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
interface psb_scatter
|
||||
subroutine psb_cscatter_vect(globx, locx, desc_a, info, root, mold)
|
||||
subroutine psb_cscatter_vect(globx, locx, desc_a, info, root, mold)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type), intent(inout) :: locx
|
||||
|
||||
@@ -73,7 +73,7 @@ module psb_c_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), optional :: work(:)
|
||||
end subroutine psb_c_map_U2V_a
|
||||
subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_c_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_c_vect_mod, only : psb_c_vect_type
|
||||
import :: psb_ipk_, psb_spk_, psb_clinmap_type
|
||||
implicit none
|
||||
@@ -81,7 +81,6 @@ module psb_c_linmap_mod
|
||||
complex(psb_spk_), intent(in) :: alpha,beta
|
||||
type(psb_c_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), optional :: work(:)
|
||||
type(psb_c_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_c_map_U2V_v
|
||||
end interface
|
||||
@@ -97,7 +96,7 @@ module psb_c_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), optional :: work(:)
|
||||
end subroutine psb_c_map_V2U_a
|
||||
subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_c_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_c_vect_mod, only : psb_c_vect_type
|
||||
import :: psb_ipk_, psb_spk_, psb_clinmap_type
|
||||
implicit none
|
||||
@@ -105,7 +104,6 @@ module psb_c_linmap_mod
|
||||
complex(psb_spk_), intent(in) :: alpha,beta
|
||||
type(psb_c_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_spk_), optional :: work(:)
|
||||
type(psb_c_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_c_map_V2U_v
|
||||
end interface
|
||||
|
||||
@@ -36,11 +36,11 @@ module psb_d_comm_a_mod
|
||||
subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update,mode)
|
||||
import
|
||||
implicit none
|
||||
real(psb_dpk_), intent(inout), target :: x(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), intent(inout), target :: x(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
|
||||
integer(psb_ipk_), intent(in), optional :: update,jx,ik,mode
|
||||
end subroutine psb_dovrlm
|
||||
subroutine psb_dovrlv(x,desc_a,info,work,update,mode)
|
||||
import
|
||||
@@ -57,22 +57,22 @@ module psb_d_comm_a_mod
|
||||
subroutine psb_dhalom(x,desc_a,info,jx,ik,work,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
real(psb_dpk_), intent(inout), target :: x(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), intent(inout), target :: x(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data
|
||||
character, intent(in), optional :: tran
|
||||
integer(psb_ipk_), intent(in), optional :: mode,jx,ik,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_dhalom
|
||||
subroutine psb_dhalov(x,desc_a,info,work,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
real(psb_dpk_), intent(inout) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), intent(inout) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_dhalov
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
@@ -37,46 +37,42 @@ module psb_d_comm_mod
|
||||
use psb_d_multivect_mod, only : psb_d_multivect_type, psb_d_base_multivect_type
|
||||
|
||||
interface psb_ovrl
|
||||
subroutine psb_dovrl_vect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_dovrl_vect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_d_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_dovrl_vect
|
||||
subroutine psb_dovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_dovrl_multivect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_d_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_dovrl_multivect
|
||||
end interface psb_ovrl
|
||||
|
||||
interface psb_halo
|
||||
subroutine psb_dhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_dhalo_vect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_vect_type), intent(inout) :: x
|
||||
type(psb_d_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
character, intent(in), optional :: tran
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
end subroutine psb_dhalo_vect
|
||||
subroutine psb_dhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_dhalo_multivect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
type(psb_d_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
character, intent(in), optional :: tran
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
end subroutine psb_dhalo_multivect
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ module psb_d_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), optional :: work(:)
|
||||
end subroutine psb_d_map_U2V_a
|
||||
subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_d_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_d_vect_mod, only : psb_d_vect_type
|
||||
import :: psb_ipk_, psb_dpk_, psb_dlinmap_type
|
||||
implicit none
|
||||
@@ -81,7 +81,6 @@ module psb_d_linmap_mod
|
||||
real(psb_dpk_), intent(in) :: alpha,beta
|
||||
type(psb_d_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), optional :: work(:)
|
||||
type(psb_d_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_d_map_U2V_v
|
||||
end interface
|
||||
@@ -97,7 +96,7 @@ module psb_d_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), optional :: work(:)
|
||||
end subroutine psb_d_map_V2U_a
|
||||
subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_d_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_d_vect_mod, only : psb_d_vect_type
|
||||
import :: psb_ipk_, psb_dpk_, psb_dlinmap_type
|
||||
implicit none
|
||||
@@ -105,7 +104,6 @@ module psb_d_linmap_mod
|
||||
real(psb_dpk_), intent(in) :: alpha,beta
|
||||
type(psb_d_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_), optional :: work(:)
|
||||
type(psb_d_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_d_map_V2U_v
|
||||
end interface
|
||||
|
||||
@@ -36,46 +36,42 @@ module psb_i_comm_mod
|
||||
use psb_i_multivect_mod, only : psb_i_multivect_type, psb_i_base_multivect_type
|
||||
|
||||
interface psb_ovrl
|
||||
subroutine psb_iovrl_vect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_iovrl_vect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_iovrl_vect
|
||||
subroutine psb_iovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_iovrl_multivect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_i_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_iovrl_multivect
|
||||
end interface psb_ovrl
|
||||
|
||||
interface psb_halo
|
||||
subroutine psb_ihalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_ihalo_vect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_vect_type), intent(inout) :: x
|
||||
type(psb_i_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_ihalo_vect
|
||||
subroutine psb_ihalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_ihalo_multivect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
type(psb_i_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_ihalo_multivect
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
@@ -36,46 +36,42 @@ module psb_l_comm_mod
|
||||
use psb_l_multivect_mod, only : psb_l_multivect_type, psb_l_base_multivect_type
|
||||
|
||||
interface psb_ovrl
|
||||
subroutine psb_lovrl_vect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_lovrl_vect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_lpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_lovrl_vect
|
||||
subroutine psb_lovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_lovrl_multivect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_lpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_l_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_lovrl_multivect
|
||||
end interface psb_ovrl
|
||||
|
||||
interface psb_halo
|
||||
subroutine psb_lhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_lhalo_vect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_vect_type), intent(inout) :: x
|
||||
type(psb_l_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_lpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_lhalo_vect
|
||||
subroutine psb_lhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_lhalo_multivect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_lpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
type(psb_l_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_lhalo_multivect
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
@@ -37,46 +37,42 @@ module psb_s_comm_mod
|
||||
use psb_s_multivect_mod, only : psb_s_multivect_type, psb_s_base_multivect_type
|
||||
|
||||
interface psb_ovrl
|
||||
subroutine psb_sovrl_vect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_sovrl_vect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_sovrl_vect
|
||||
subroutine psb_sovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_sovrl_multivect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_s_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_sovrl_multivect
|
||||
end interface psb_ovrl
|
||||
|
||||
interface psb_halo
|
||||
subroutine psb_shalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_shalo_vect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_vect_type), intent(inout) :: x
|
||||
type(psb_s_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_shalo_vect
|
||||
subroutine psb_shalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_shalo_multivect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
type(psb_s_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_shalo_multivect
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ module psb_s_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), optional :: work(:)
|
||||
end subroutine psb_s_map_U2V_a
|
||||
subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_s_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_s_vect_mod, only : psb_s_vect_type
|
||||
import :: psb_ipk_, psb_spk_, psb_slinmap_type
|
||||
implicit none
|
||||
@@ -81,7 +81,6 @@ module psb_s_linmap_mod
|
||||
real(psb_spk_), intent(in) :: alpha,beta
|
||||
type(psb_s_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), optional :: work(:)
|
||||
type(psb_s_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_s_map_U2V_v
|
||||
end interface
|
||||
@@ -97,7 +96,7 @@ module psb_s_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), optional :: work(:)
|
||||
end subroutine psb_s_map_V2U_a
|
||||
subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_s_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_s_vect_mod, only : psb_s_vect_type
|
||||
import :: psb_ipk_, psb_spk_, psb_slinmap_type
|
||||
implicit none
|
||||
@@ -105,7 +104,6 @@ module psb_s_linmap_mod
|
||||
real(psb_spk_), intent(in) :: alpha,beta
|
||||
type(psb_s_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_spk_), optional :: work(:)
|
||||
type(psb_s_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_s_map_V2U_v
|
||||
end interface
|
||||
|
||||
@@ -37,46 +37,42 @@ module psb_z_comm_mod
|
||||
use psb_z_multivect_mod, only : psb_z_multivect_type, psb_z_base_multivect_type
|
||||
|
||||
interface psb_ovrl
|
||||
subroutine psb_zovrl_vect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_zovrl_vect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_zovrl_vect
|
||||
subroutine psb_zovrl_multivect(x,desc_a,info,work,update,mode)
|
||||
subroutine psb_zovrl_multivect(x,desc_a,info,update,mode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), intent(inout), optional, target :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
type(psb_z_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: update,mode
|
||||
end subroutine psb_zovrl_multivect
|
||||
end interface psb_ovrl
|
||||
|
||||
interface psb_halo
|
||||
subroutine psb_zhalo_vect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_zhalo_vect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_vect_type), intent(inout) :: x
|
||||
type(psb_z_vect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_zhalo_vect
|
||||
subroutine psb_zhalo_multivect(x,desc_a,info,work,tran,mode,data)
|
||||
subroutine psb_zhalo_multivect(x,desc_a,info,tran,mode,data)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), target, optional, intent(inout) :: work(:)
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
type(psb_z_multivect_type), intent(inout) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), intent(in), optional :: mode,data
|
||||
character, intent(in), optional :: tran
|
||||
end subroutine psb_zhalo_multivect
|
||||
end interface psb_halo
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ module psb_z_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), optional :: work(:)
|
||||
end subroutine psb_z_map_U2V_a
|
||||
subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_z_map_U2V_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_z_vect_mod, only : psb_z_vect_type
|
||||
import :: psb_ipk_, psb_dpk_, psb_zlinmap_type
|
||||
implicit none
|
||||
@@ -81,7 +81,6 @@ module psb_z_linmap_mod
|
||||
complex(psb_dpk_), intent(in) :: alpha,beta
|
||||
type(psb_z_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), optional :: work(:)
|
||||
type(psb_z_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_z_map_U2V_v
|
||||
end interface
|
||||
@@ -97,7 +96,7 @@ module psb_z_linmap_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), optional :: work(:)
|
||||
end subroutine psb_z_map_V2U_a
|
||||
subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,work,vtx,vty)
|
||||
subroutine psb_z_map_V2U_v(alpha,x,beta,y,map,info,vtx,vty)
|
||||
use psb_z_vect_mod, only : psb_z_vect_type
|
||||
import :: psb_ipk_, psb_dpk_, psb_zlinmap_type
|
||||
implicit none
|
||||
@@ -105,7 +104,6 @@ module psb_z_linmap_mod
|
||||
complex(psb_dpk_), intent(in) :: alpha,beta
|
||||
type(psb_z_vect_type), intent(inout) :: x,y
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
complex(psb_dpk_), optional :: work(:)
|
||||
type(psb_z_vect_type), optional, target, intent(inout) :: vtx,vty
|
||||
end subroutine psb_z_map_V2U_v
|
||||
end interface
|
||||
|
||||
@@ -36,43 +36,39 @@ module psi_c_comm_v_mod
|
||||
use psb_c_base_multivect_mod, only : psb_c_base_multivect_type
|
||||
|
||||
interface psi_swapdata
|
||||
module subroutine psi_cswapdata_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_cswapdata_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_vect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_cswapdata_vect
|
||||
module subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_cswapdata_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_multivect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_cswapdata_multivect
|
||||
module subroutine psi_cswap_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_vect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_cswap_vidx_vect
|
||||
module subroutine psi_cswap_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_multivect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_cswap_vidx_multivect
|
||||
@@ -80,43 +76,39 @@ module psi_c_comm_v_mod
|
||||
|
||||
|
||||
interface psi_swaptran
|
||||
module subroutine psi_cswaptran_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_cswaptran_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_vect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_cswaptran_vect
|
||||
module subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_cswaptran_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_multivect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_cswaptran_multivect
|
||||
module subroutine psi_ctran_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_vect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_ctran_vidx_vect
|
||||
module subroutine psi_ctran_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_multivect_type) :: y
|
||||
complex(psb_spk_) :: beta
|
||||
complex(psb_spk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_ctran_vidx_multivect
|
||||
|
||||
@@ -35,40 +35,44 @@ module psi_d_comm_a_mod
|
||||
|
||||
interface psi_swapdata
|
||||
module subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data)
|
||||
integer(psb_mpk_), intent(in) :: n
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_mpk_), intent(in) :: n
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:,:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:,:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_dswapdatam
|
||||
module subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_dswapdatav
|
||||
module subroutine psi_dswapidxm(ctxt,flag,n,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_mpk_), intent(in) :: n
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_mpk_), intent(in) :: n
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:,:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:,:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
end subroutine psi_dswapidxm
|
||||
module subroutine psi_dswapidxv(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
end subroutine psi_dswapidxv
|
||||
end interface psi_swapdata
|
||||
|
||||
@@ -77,38 +81,42 @@ module psi_d_comm_a_mod
|
||||
module subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_Mpk_), intent(in) :: n
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:,:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:,:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
integer(psb_ipk_), optional :: data !! TODO: Is this used in the code? If not, remove it.
|
||||
end subroutine psi_dswaptranm
|
||||
module subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
integer(psb_ipk_), optional :: data !! TODO: Is this used in the code? If not, remove it.
|
||||
end subroutine psi_dswaptranv
|
||||
module subroutine psi_dtranidxm(ctxt,flag,n,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_mpk_), intent(in) :: n
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_mpk_), intent(in) :: n
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:,:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:,:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
end subroutine psi_dtranidxm
|
||||
module subroutine psi_dtranidxv(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_),intent(in) :: beta
|
||||
real(psb_dpk_),intent(inout) :: y(:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
real(psb_dpk_) :: y(:), beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
integer(psb_ipk_), intent(in) :: idx(:),totxch,totsnd,totrcv
|
||||
end subroutine psi_dtranidxv
|
||||
end interface psi_swaptran
|
||||
|
||||
|
||||
@@ -40,23 +40,21 @@ module psi_d_comm_v_mod
|
||||
! Wrapper that calls different communications schemes depending on
|
||||
! flag variable using communication buff obtained from desc_a%get_list_p
|
||||
! ---------------------------------------------------------------
|
||||
module subroutine psi_dswapdata_vect(flag,beta,y,desc_a,info,data,work)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_vect_type) :: y
|
||||
real(psb_dpk_) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
real(psb_dpk_), optional, target :: work(:)
|
||||
module subroutine psi_dswapdata_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_), intent(in) :: beta
|
||||
class(psb_d_base_vect_type), intent(inout) :: y
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_dswapdata_vect
|
||||
module subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,info,data,work)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_multivect_type) :: y
|
||||
real(psb_dpk_) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
real(psb_dpk_), optional, target :: work(:)
|
||||
module subroutine psi_dswapdata_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_), intent(in) :: beta
|
||||
class(psb_d_base_multivect_type), intent(inout) :: y
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_dswapdata_multivect
|
||||
end interface psi_swapdata
|
||||
|
||||
@@ -65,23 +63,21 @@ module psi_d_comm_v_mod
|
||||
! ---------------------------------------------------------------
|
||||
! Upper call in order to populate idx using desc_a%get_list_p
|
||||
! ---------------------------------------------------------------
|
||||
module subroutine psi_dswaptran_vect(flag,beta,y,desc_a,work,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_vect_type) :: y
|
||||
real(psb_dpk_) :: beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
module subroutine psi_dswaptran_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_), intent(in) :: beta
|
||||
class(psb_d_base_vect_type), intent(inout) :: y
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_dswaptran_vect
|
||||
module subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_multivect_type) :: y
|
||||
real(psb_dpk_) :: beta
|
||||
real(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
module subroutine psi_dswaptran_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_dpk_), intent(in) :: beta
|
||||
class(psb_d_base_multivect_type), intent(inout) :: y
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_dswaptran_multivect
|
||||
|
||||
! ---------------------------------------------------------------
|
||||
@@ -91,24 +87,22 @@ module psi_d_comm_v_mod
|
||||
! flag variable
|
||||
! ---------------------------------------------------------------
|
||||
module subroutine psi_dtran_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_vect_type) :: y
|
||||
real(psb_dpk_) :: beta
|
||||
real(psb_dpk_), target :: work(:)
|
||||
class(psb_d_base_vect_type), intent(inout) :: y
|
||||
real(psb_dpk_), intent(in) :: beta
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_dtran_vidx_vect
|
||||
module subroutine psi_dtran_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_multivect_type) :: y
|
||||
real(psb_dpk_) :: beta
|
||||
real(psb_dpk_), target :: work(:)
|
||||
class(psb_d_base_multivect_type), intent(inout) :: y
|
||||
real(psb_dpk_), intent(in) :: beta
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_dtran_vidx_multivect
|
||||
|
||||
@@ -37,43 +37,39 @@ module psi_i_comm_v_mod
|
||||
use psb_i_base_multivect_mod, only : psb_i_base_multivect_type
|
||||
|
||||
interface psi_swapdata
|
||||
module subroutine psi_iswapdata_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_iswapdata_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_vect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_iswapdata_vect
|
||||
module subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_iswapdata_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_multivect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_iswapdata_multivect
|
||||
module subroutine psi_iswap_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_vect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_iswap_vidx_vect
|
||||
module subroutine psi_iswap_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_multivect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_iswap_vidx_multivect
|
||||
@@ -81,43 +77,39 @@ module psi_i_comm_v_mod
|
||||
|
||||
|
||||
interface psi_swaptran
|
||||
module subroutine psi_iswaptran_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_iswaptran_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_vect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_iswaptran_vect
|
||||
module subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_iswaptran_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_multivect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_iswaptran_multivect
|
||||
module subroutine psi_itran_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_vect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_itran_vidx_vect
|
||||
module subroutine psi_itran_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_multivect_type) :: y
|
||||
integer(psb_ipk_) :: beta
|
||||
integer(psb_ipk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_itran_vidx_multivect
|
||||
|
||||
@@ -38,43 +38,39 @@ module psi_l_comm_v_mod
|
||||
use psb_l_base_multivect_mod, only : psb_l_base_multivect_type
|
||||
|
||||
interface psi_swapdata
|
||||
module subroutine psi_lswapdata_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_lswapdata_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_vect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_lswapdata_vect
|
||||
module subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_lswapdata_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_multivect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_lswapdata_multivect
|
||||
module subroutine psi_lswap_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_vect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_lswap_vidx_vect
|
||||
module subroutine psi_lswap_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_multivect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_lswap_vidx_multivect
|
||||
@@ -82,43 +78,39 @@ module psi_l_comm_v_mod
|
||||
|
||||
|
||||
interface psi_swaptran
|
||||
module subroutine psi_lswaptran_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_lswaptran_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_vect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_lswaptran_vect
|
||||
module subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_lswaptran_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_multivect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_lswaptran_multivect
|
||||
module subroutine psi_ltran_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_vect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_ltran_vidx_vect
|
||||
module subroutine psi_ltran_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_multivect_type) :: y
|
||||
integer(psb_lpk_) :: beta
|
||||
integer(psb_lpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_ltran_vidx_multivect
|
||||
|
||||
@@ -36,68 +36,62 @@ module psi_s_comm_v_mod
|
||||
use psb_s_base_multivect_mod, only : psb_s_base_multivect_type
|
||||
|
||||
interface psi_swapdata
|
||||
module subroutine psi_sswapdata_vect(flag,beta,y,desc_a,info,data,work)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_vect_type) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
real(psb_spk_),target, optional :: work(:)
|
||||
module subroutine psi_sswapdata_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
class(psb_s_base_vect_type), intent(inout) :: y
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_sswapdata_vect
|
||||
module subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,info,data,work)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_multivect_type) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
real(psb_spk_),target, optional :: work(:)
|
||||
module subroutine psi_sswapdata_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
class(psb_s_base_multivect_type), intent(inout) :: y
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_sswapdata_multivect
|
||||
end interface psi_swapdata
|
||||
|
||||
|
||||
|
||||
interface psi_swaptran
|
||||
module subroutine psi_sswaptran_vect(flag,beta,y,desc_a,info,data,work)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_vect_type) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
real(psb_spk_),target, optional :: work(:)
|
||||
module subroutine psi_sswaptran_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_vect_type), intent(inout) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_sswaptran_vect
|
||||
module subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,info,data,work)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_multivect_type) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
real(psb_spk_),target, optional :: work(:)
|
||||
module subroutine psi_sswaptran_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
class(psb_s_base_multivect_type), intent(inout) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_sswaptran_multivect
|
||||
module subroutine psi_stran_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_vect_type) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
real(psb_spk_), target, optional :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
class(psb_s_base_vect_type), intent(inout) :: y
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_stran_vidx_vect
|
||||
module subroutine psi_stran_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_multivect_type) :: y
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
real(psb_spk_), target, optional :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
real(psb_spk_), intent(in) :: beta
|
||||
class(psb_s_base_multivect_type), intent(inout) :: y
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psi_stran_vidx_multivect
|
||||
end interface psi_swaptran
|
||||
|
||||
|
||||
@@ -36,43 +36,39 @@ module psi_z_comm_v_mod
|
||||
use psb_z_base_multivect_mod, only : psb_z_base_multivect_type
|
||||
|
||||
interface psi_swapdata
|
||||
module subroutine psi_zswapdata_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_zswapdata_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_vect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_zswapdata_vect
|
||||
module subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_zswapdata_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_multivect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_zswapdata_multivect
|
||||
module subroutine psi_zswap_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_vect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_zswap_vidx_vect
|
||||
module subroutine psi_zswap_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_multivect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_zswap_vidx_multivect
|
||||
@@ -80,43 +76,39 @@ module psi_z_comm_v_mod
|
||||
|
||||
|
||||
interface psi_swaptran
|
||||
module subroutine psi_zswaptran_vect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_zswaptran_vect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_vect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_zswaptran_vect
|
||||
module subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,work,info,data)
|
||||
module subroutine psi_zswaptran_multivect(flag,beta,y,desc_a,info,data)
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_multivect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_),target :: work(:)
|
||||
type(psb_desc_type), target :: desc_a
|
||||
integer(psb_ipk_), optional :: data
|
||||
end subroutine psi_zswaptran_multivect
|
||||
module subroutine psi_ztran_vidx_vect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_vect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_ztran_vidx_vect
|
||||
module subroutine psi_ztran_vidx_multivect(ctxt,flag,beta,y,idx,&
|
||||
& totxch,totsnd,totrcv,work,info)
|
||||
& totxch,totsnd,totrcv,info)
|
||||
type(psb_ctxt_type), intent(in) :: ctxt
|
||||
integer(psb_ipk_), intent(in) :: flag
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_multivect_type) :: y
|
||||
complex(psb_dpk_) :: beta
|
||||
complex(psb_dpk_), target :: work(:)
|
||||
class(psb_i_base_vect_type), intent(inout) :: idx
|
||||
integer(psb_ipk_), intent(in) :: totxch,totsnd, totrcv
|
||||
end subroutine psi_ztran_vidx_multivect
|
||||
|
||||
@@ -421,18 +421,17 @@ module psb_c_psblas_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_cspmv
|
||||
subroutine psb_cspmv_vect(alpha, a, x, beta, y,&
|
||||
& desc_a, info, trans, work,doswap)
|
||||
& desc_a, info, trans,doswap)
|
||||
import :: psb_desc_type, psb_spk_, psb_ipk_, &
|
||||
& psb_c_vect_type, psb_cspmat_type
|
||||
type(psb_cspmat_type), intent(in) :: a
|
||||
type(psb_c_vect_type), intent(inout) :: x
|
||||
type(psb_c_vect_type), intent(inout) :: y
|
||||
complex(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans
|
||||
complex(psb_spk_), optional, intent(inout),target :: work(:)
|
||||
logical, optional, intent(in) :: doswap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
type(psb_cspmat_type), intent(in) :: a
|
||||
type(psb_c_vect_type), intent(inout) :: x
|
||||
type(psb_c_vect_type), intent(inout) :: y
|
||||
complex(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans
|
||||
logical, optional, intent(in) :: doswap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_cspmv_vect
|
||||
end interface
|
||||
|
||||
@@ -472,7 +471,7 @@ module psb_c_psblas_mod
|
||||
end subroutine psb_cspsv
|
||||
subroutine psb_cspsv_vect(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
& diag)
|
||||
import :: psb_desc_type, psb_spk_, psb_ipk_, &
|
||||
& psb_c_vect_type, psb_cspmat_type
|
||||
type(psb_cspmat_type), intent(inout) :: t
|
||||
@@ -483,7 +482,6 @@ module psb_c_psblas_mod
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer(psb_ipk_), optional, intent(in) :: choice
|
||||
type(psb_c_vect_type), intent(inout), optional :: diag
|
||||
complex(psb_spk_), optional, intent(inout), target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_cspsv_vect
|
||||
end interface
|
||||
|
||||
@@ -432,7 +432,7 @@ module psb_d_psblas_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dspmv
|
||||
subroutine psb_dspmv_vect(alpha, a, x, beta, y,&
|
||||
& desc_a, info, trans, work,doswap)
|
||||
& desc_a, info, trans,doswap)
|
||||
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
|
||||
& psb_d_vect_type, psb_dspmat_type
|
||||
type(psb_dspmat_type), intent(in) :: a
|
||||
@@ -441,7 +441,6 @@ module psb_d_psblas_mod
|
||||
real(psb_dpk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans
|
||||
real(psb_dpk_), optional, intent(inout),target :: work(:)
|
||||
logical, optional, intent(in) :: doswap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dspmv_vect
|
||||
@@ -483,7 +482,7 @@ module psb_d_psblas_mod
|
||||
end subroutine psb_dspsv
|
||||
subroutine psb_dspsv_vect(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
& diag)
|
||||
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
|
||||
& psb_d_vect_type, psb_dspmat_type
|
||||
type(psb_dspmat_type), intent(inout) :: t
|
||||
@@ -494,7 +493,6 @@ module psb_d_psblas_mod
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer(psb_ipk_), optional, intent(in) :: choice
|
||||
type(psb_d_vect_type), intent(inout), optional :: diag
|
||||
real(psb_dpk_), optional, intent(inout), target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_dspsv_vect
|
||||
end interface
|
||||
|
||||
@@ -432,7 +432,7 @@ module psb_s_psblas_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_sspmv
|
||||
subroutine psb_sspmv_vect(alpha, a, x, beta, y,&
|
||||
& desc_a, info, trans, work,doswap)
|
||||
& desc_a, info, trans,doswap)
|
||||
import :: psb_desc_type, psb_spk_, psb_ipk_, &
|
||||
& psb_s_vect_type, psb_sspmat_type
|
||||
type(psb_sspmat_type), intent(in) :: a
|
||||
@@ -441,7 +441,6 @@ module psb_s_psblas_mod
|
||||
real(psb_spk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans
|
||||
real(psb_spk_), optional, intent(inout),target :: work(:)
|
||||
logical, optional, intent(in) :: doswap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_sspmv_vect
|
||||
@@ -483,7 +482,7 @@ module psb_s_psblas_mod
|
||||
end subroutine psb_sspsv
|
||||
subroutine psb_sspsv_vect(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
& diag)
|
||||
import :: psb_desc_type, psb_spk_, psb_ipk_, &
|
||||
& psb_s_vect_type, psb_sspmat_type
|
||||
type(psb_sspmat_type), intent(inout) :: t
|
||||
@@ -494,7 +493,6 @@ module psb_s_psblas_mod
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer(psb_ipk_), optional, intent(in) :: choice
|
||||
type(psb_s_vect_type), intent(inout), optional :: diag
|
||||
real(psb_spk_), optional, intent(inout), target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_sspsv_vect
|
||||
end interface
|
||||
|
||||
@@ -421,7 +421,7 @@ module psb_z_psblas_mod
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zspmv
|
||||
subroutine psb_zspmv_vect(alpha, a, x, beta, y,&
|
||||
& desc_a, info, trans, work,doswap)
|
||||
& desc_a, info, trans,doswap)
|
||||
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
|
||||
& psb_z_vect_type, psb_zspmat_type
|
||||
type(psb_zspmat_type), intent(in) :: a
|
||||
@@ -430,7 +430,6 @@ module psb_z_psblas_mod
|
||||
complex(psb_dpk_), intent(in) :: alpha, beta
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
character, optional, intent(in) :: trans
|
||||
complex(psb_dpk_), optional, intent(inout),target :: work(:)
|
||||
logical, optional, intent(in) :: doswap
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zspmv_vect
|
||||
@@ -472,7 +471,7 @@ module psb_z_psblas_mod
|
||||
end subroutine psb_zspsv
|
||||
subroutine psb_zspsv_vect(alpha, t, x, beta, y,&
|
||||
& desc_a, info, trans, scale, choice,&
|
||||
& diag, work)
|
||||
& diag)
|
||||
import :: psb_desc_type, psb_dpk_, psb_ipk_, &
|
||||
& psb_z_vect_type, psb_zspmat_type
|
||||
type(psb_zspmat_type), intent(inout) :: t
|
||||
@@ -483,7 +482,6 @@ module psb_z_psblas_mod
|
||||
character, optional, intent(in) :: trans, scale
|
||||
integer(psb_ipk_), optional, intent(in) :: choice
|
||||
type(psb_z_vect_type), intent(inout), optional :: diag
|
||||
complex(psb_dpk_), optional, intent(inout), target :: work(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_zspsv_vect
|
||||
end interface
|
||||
|
||||
Reference in New Issue
Block a user