[UPDATE] Removed work/aux buffer from vector routines that use psb_x_vect_type encapsulation for data exchange

This commit is contained in:
Stack-1
2026-03-19 17:36:44 +01:00
parent dc61cbb0a2
commit 461a6a325f
143 changed files with 3051 additions and 3129 deletions
+19 -23
View File
@@ -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
+2 -4
View File
@@ -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
+14 -14
View File
@@ -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
+20 -24
View File
@@ -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
+2 -4
View File
@@ -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
+18 -22
View File
@@ -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
+18 -22
View File
@@ -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
+18 -22
View File
@@ -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
+2 -4
View File
@@ -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
+18 -22
View File
@@ -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
+2 -4
View File
@@ -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
+8 -16
View File
@@ -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
+37 -29
View File
@@ -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
+34 -40
View File
@@ -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
+8 -16
View File
@@ -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
+8 -16
View File
@@ -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
+44 -50
View File
@@ -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
+8 -16
View File
@@ -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
+10 -12
View File
@@ -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
+2 -4
View File
@@ -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
+2 -4
View File
@@ -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
+2 -4
View File
@@ -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