mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-19 12:22:10 +00:00
Changes for remote build interfaces. Implementation to be completed.
This commit is contained in:
@@ -84,7 +84,7 @@ module psb_c_mat_mod
|
||||
|
||||
type :: psb_cspmat_type
|
||||
|
||||
class(psb_c_base_sparse_mat), allocatable :: a
|
||||
class(psb_c_base_sparse_mat), allocatable :: a
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
type(psb_lc_coo_sparse_mat), allocatable :: rmta
|
||||
|
||||
|
||||
@@ -53,8 +53,10 @@ module psb_c_vect_mod
|
||||
procedure, pass(x) :: get_nrows => c_vect_get_nrows
|
||||
procedure, pass(x) :: sizeof => c_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => c_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => psb_c_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => psb_c_set_remote_build
|
||||
procedure, pass(x) :: is_remote_build => c_vect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => c_vect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => c_vect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => c_vect_set_dupl
|
||||
procedure, pass(x) :: all => c_vect_all
|
||||
procedure, pass(x) :: reall => c_vect_reall
|
||||
procedure, pass(x) :: zero => c_vect_zero
|
||||
@@ -152,7 +154,9 @@ module psb_c_vect_mod
|
||||
& c_vect_cnv, c_vect_set_scal, &
|
||||
& c_vect_set_vect, c_vect_clone, c_vect_sync, c_vect_is_host, &
|
||||
& c_vect_is_dev, c_vect_is_sync, c_vect_set_host, &
|
||||
& c_vect_set_dev, c_vect_set_sync
|
||||
& c_vect_set_dev, c_vect_set_sync, &
|
||||
& c_vect_set_remote_build, c_is_remote_build, &
|
||||
& c_vect_set_dupl, c_get_dupl
|
||||
|
||||
private :: c_vect_dot_v, c_vect_dot_a, c_vect_axpby_v, c_vect_axpby_a, &
|
||||
& c_vect_mlt_v, c_vect_mlt_a, c_vect_mlt_a_2, c_vect_mlt_v_2, &
|
||||
@@ -175,14 +179,34 @@ module psb_c_vect_mod
|
||||
contains
|
||||
|
||||
|
||||
function psb_c_is_remote_build(x) result(res)
|
||||
function c_vect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_c_vect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function c_vect_get_dupl
|
||||
|
||||
subroutine c_vect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_c_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine c_vect_set_dupl
|
||||
|
||||
|
||||
function c_vect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_c_vect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function psb_c_is_remote_build
|
||||
end function c_vect_is_remote_build
|
||||
|
||||
subroutine psb_c_set_remote_build(x,val)
|
||||
subroutine c_vect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_c_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
@@ -192,7 +216,7 @@ contains
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine psb_c_set_remote_build
|
||||
end subroutine c_vect_set_remote_build
|
||||
|
||||
subroutine psb_c_set_vect_default(v)
|
||||
implicit none
|
||||
@@ -1211,7 +1235,6 @@ contains
|
||||
end module psb_c_vect_mod
|
||||
|
||||
|
||||
|
||||
module psb_c_multivect_mod
|
||||
|
||||
use psb_c_base_multivect_mod
|
||||
@@ -1223,11 +1246,19 @@ module psb_c_multivect_mod
|
||||
|
||||
type psb_c_multivect_type
|
||||
class(psb_c_base_multivect_type), allocatable :: v
|
||||
integer(psb_ipk_) :: nrmv = 0
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
integer(psb_ipk_) :: dupl = psb_dupl_add_
|
||||
complex(psb_spk_), allocatable :: rmtv(:,:)
|
||||
contains
|
||||
procedure, pass(x) :: get_nrows => c_vect_get_nrows
|
||||
procedure, pass(x) :: get_ncols => c_vect_get_ncols
|
||||
procedure, pass(x) :: sizeof => c_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => c_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => c_mvect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => c_mvect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => c_mvect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => c_mvect_set_dupl
|
||||
|
||||
procedure, pass(x) :: all => c_vect_all
|
||||
procedure, pass(x) :: reall => c_vect_reall
|
||||
@@ -1295,6 +1326,46 @@ module psb_c_multivect_mod
|
||||
|
||||
contains
|
||||
|
||||
|
||||
function c_mvect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_c_multivect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function c_mvect_get_dupl
|
||||
|
||||
subroutine c_mvect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_c_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine c_mvect_set_dupl
|
||||
|
||||
|
||||
function c_mvect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_c_multivect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function c_mvect_is_remote_build
|
||||
|
||||
subroutine c_mvect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_c_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%remote_build = val
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine c_mvect_set_remote_build
|
||||
|
||||
|
||||
subroutine psb_c_set_multivect_default(v)
|
||||
implicit none
|
||||
|
||||
@@ -84,7 +84,7 @@ module psb_d_mat_mod
|
||||
|
||||
type :: psb_dspmat_type
|
||||
|
||||
class(psb_d_base_sparse_mat), allocatable :: a
|
||||
class(psb_d_base_sparse_mat), allocatable :: a
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
type(psb_ld_coo_sparse_mat), allocatable :: rmta
|
||||
|
||||
|
||||
@@ -53,8 +53,10 @@ module psb_d_vect_mod
|
||||
procedure, pass(x) :: get_nrows => d_vect_get_nrows
|
||||
procedure, pass(x) :: sizeof => d_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => d_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => psb_d_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => psb_d_set_remote_build
|
||||
procedure, pass(x) :: is_remote_build => d_vect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => d_vect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => d_vect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => d_vect_set_dupl
|
||||
procedure, pass(x) :: all => d_vect_all
|
||||
procedure, pass(x) :: reall => d_vect_reall
|
||||
procedure, pass(x) :: zero => d_vect_zero
|
||||
@@ -159,7 +161,9 @@ module psb_d_vect_mod
|
||||
& d_vect_cnv, d_vect_set_scal, &
|
||||
& d_vect_set_vect, d_vect_clone, d_vect_sync, d_vect_is_host, &
|
||||
& d_vect_is_dev, d_vect_is_sync, d_vect_set_host, &
|
||||
& d_vect_set_dev, d_vect_set_sync
|
||||
& d_vect_set_dev, d_vect_set_sync, &
|
||||
& d_vect_set_remote_build, d_is_remote_build, &
|
||||
& d_vect_set_dupl, d_get_dupl
|
||||
|
||||
private :: d_vect_dot_v, d_vect_dot_a, d_vect_axpby_v, d_vect_axpby_a, &
|
||||
& d_vect_mlt_v, d_vect_mlt_a, d_vect_mlt_a_2, d_vect_mlt_v_2, &
|
||||
@@ -182,14 +186,34 @@ module psb_d_vect_mod
|
||||
contains
|
||||
|
||||
|
||||
function psb_d_is_remote_build(x) result(res)
|
||||
function d_vect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_d_vect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function d_vect_get_dupl
|
||||
|
||||
subroutine d_vect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_d_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine d_vect_set_dupl
|
||||
|
||||
|
||||
function d_vect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_d_vect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function psb_d_is_remote_build
|
||||
end function d_vect_is_remote_build
|
||||
|
||||
subroutine psb_d_set_remote_build(x,val)
|
||||
subroutine d_vect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_d_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
@@ -199,7 +223,7 @@ contains
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine psb_d_set_remote_build
|
||||
end subroutine d_vect_set_remote_build
|
||||
|
||||
subroutine psb_d_set_vect_default(v)
|
||||
implicit none
|
||||
@@ -1290,7 +1314,6 @@ contains
|
||||
end module psb_d_vect_mod
|
||||
|
||||
|
||||
|
||||
module psb_d_multivect_mod
|
||||
|
||||
use psb_d_base_multivect_mod
|
||||
@@ -1302,11 +1325,19 @@ module psb_d_multivect_mod
|
||||
|
||||
type psb_d_multivect_type
|
||||
class(psb_d_base_multivect_type), allocatable :: v
|
||||
integer(psb_ipk_) :: nrmv = 0
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
integer(psb_ipk_) :: dupl = psb_dupl_add_
|
||||
real(psb_dpk_), allocatable :: rmtv(:,:)
|
||||
contains
|
||||
procedure, pass(x) :: get_nrows => d_vect_get_nrows
|
||||
procedure, pass(x) :: get_ncols => d_vect_get_ncols
|
||||
procedure, pass(x) :: sizeof => d_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => d_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => d_mvect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => d_mvect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => d_mvect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => d_mvect_set_dupl
|
||||
|
||||
procedure, pass(x) :: all => d_vect_all
|
||||
procedure, pass(x) :: reall => d_vect_reall
|
||||
@@ -1374,6 +1405,46 @@ module psb_d_multivect_mod
|
||||
|
||||
contains
|
||||
|
||||
|
||||
function d_mvect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_d_multivect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function d_mvect_get_dupl
|
||||
|
||||
subroutine d_mvect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_d_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine d_mvect_set_dupl
|
||||
|
||||
|
||||
function d_mvect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_d_multivect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function d_mvect_is_remote_build
|
||||
|
||||
subroutine d_mvect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_d_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%remote_build = val
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine d_mvect_set_remote_build
|
||||
|
||||
|
||||
subroutine psb_d_set_multivect_default(v)
|
||||
implicit none
|
||||
|
||||
@@ -52,8 +52,10 @@ module psb_i_vect_mod
|
||||
procedure, pass(x) :: get_nrows => i_vect_get_nrows
|
||||
procedure, pass(x) :: sizeof => i_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => i_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => psb_i_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => psb_i_set_remote_build
|
||||
procedure, pass(x) :: is_remote_build => i_vect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => i_vect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => i_vect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => i_vect_set_dupl
|
||||
procedure, pass(x) :: all => i_vect_all
|
||||
procedure, pass(x) :: reall => i_vect_reall
|
||||
procedure, pass(x) :: zero => i_vect_zero
|
||||
@@ -104,7 +106,9 @@ module psb_i_vect_mod
|
||||
& i_vect_cnv, i_vect_set_scal, &
|
||||
& i_vect_set_vect, i_vect_clone, i_vect_sync, i_vect_is_host, &
|
||||
& i_vect_is_dev, i_vect_is_sync, i_vect_set_host, &
|
||||
& i_vect_set_dev, i_vect_set_sync
|
||||
& i_vect_set_dev, i_vect_set_sync, &
|
||||
& i_vect_set_remote_build, i_is_remote_build, &
|
||||
& i_vect_set_dupl, i_get_dupl
|
||||
|
||||
|
||||
class(psb_i_base_vect_type), allocatable, target,&
|
||||
@@ -122,14 +126,34 @@ module psb_i_vect_mod
|
||||
contains
|
||||
|
||||
|
||||
function psb_i_is_remote_build(x) result(res)
|
||||
function i_vect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_i_vect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function i_vect_get_dupl
|
||||
|
||||
subroutine i_vect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_i_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine i_vect_set_dupl
|
||||
|
||||
|
||||
function i_vect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_i_vect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function psb_i_is_remote_build
|
||||
end function i_vect_is_remote_build
|
||||
|
||||
subroutine psb_i_set_remote_build(x,val)
|
||||
subroutine i_vect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_i_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
@@ -139,7 +163,7 @@ contains
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine psb_i_set_remote_build
|
||||
end subroutine i_vect_set_remote_build
|
||||
|
||||
subroutine psb_i_set_vect_default(v)
|
||||
implicit none
|
||||
@@ -586,7 +610,6 @@ contains
|
||||
end module psb_i_vect_mod
|
||||
|
||||
|
||||
|
||||
module psb_i_multivect_mod
|
||||
|
||||
use psb_i_base_multivect_mod
|
||||
@@ -598,11 +621,19 @@ module psb_i_multivect_mod
|
||||
|
||||
type psb_i_multivect_type
|
||||
class(psb_i_base_multivect_type), allocatable :: v
|
||||
integer(psb_ipk_) :: nrmv = 0
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
integer(psb_ipk_) :: dupl = psb_dupl_add_
|
||||
integer(psb_ipk_), allocatable :: rmtv(:,:)
|
||||
contains
|
||||
procedure, pass(x) :: get_nrows => i_vect_get_nrows
|
||||
procedure, pass(x) :: get_ncols => i_vect_get_ncols
|
||||
procedure, pass(x) :: sizeof => i_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => i_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => i_mvect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => i_mvect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => i_mvect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => i_mvect_set_dupl
|
||||
|
||||
procedure, pass(x) :: all => i_vect_all
|
||||
procedure, pass(x) :: reall => i_vect_reall
|
||||
@@ -652,6 +683,46 @@ module psb_i_multivect_mod
|
||||
|
||||
contains
|
||||
|
||||
|
||||
function i_mvect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_i_multivect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function i_mvect_get_dupl
|
||||
|
||||
subroutine i_mvect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_i_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine i_mvect_set_dupl
|
||||
|
||||
|
||||
function i_mvect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_i_multivect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function i_mvect_is_remote_build
|
||||
|
||||
subroutine i_mvect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_i_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%remote_build = val
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine i_mvect_set_remote_build
|
||||
|
||||
|
||||
subroutine psb_i_set_multivect_default(v)
|
||||
implicit none
|
||||
|
||||
@@ -53,8 +53,10 @@ module psb_l_vect_mod
|
||||
procedure, pass(x) :: get_nrows => l_vect_get_nrows
|
||||
procedure, pass(x) :: sizeof => l_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => l_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => psb_l_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => psb_l_set_remote_build
|
||||
procedure, pass(x) :: is_remote_build => l_vect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => l_vect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => l_vect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => l_vect_set_dupl
|
||||
procedure, pass(x) :: all => l_vect_all
|
||||
procedure, pass(x) :: reall => l_vect_reall
|
||||
procedure, pass(x) :: zero => l_vect_zero
|
||||
@@ -105,7 +107,9 @@ module psb_l_vect_mod
|
||||
& l_vect_cnv, l_vect_set_scal, &
|
||||
& l_vect_set_vect, l_vect_clone, l_vect_sync, l_vect_is_host, &
|
||||
& l_vect_is_dev, l_vect_is_sync, l_vect_set_host, &
|
||||
& l_vect_set_dev, l_vect_set_sync
|
||||
& l_vect_set_dev, l_vect_set_sync, &
|
||||
& l_vect_set_remote_build, l_is_remote_build, &
|
||||
& l_vect_set_dupl, l_get_dupl
|
||||
|
||||
|
||||
class(psb_l_base_vect_type), allocatable, target,&
|
||||
@@ -123,14 +127,34 @@ module psb_l_vect_mod
|
||||
contains
|
||||
|
||||
|
||||
function psb_l_is_remote_build(x) result(res)
|
||||
function l_vect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_l_vect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function l_vect_get_dupl
|
||||
|
||||
subroutine l_vect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_l_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine l_vect_set_dupl
|
||||
|
||||
|
||||
function l_vect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_l_vect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function psb_l_is_remote_build
|
||||
end function l_vect_is_remote_build
|
||||
|
||||
subroutine psb_l_set_remote_build(x,val)
|
||||
subroutine l_vect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_l_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
@@ -140,7 +164,7 @@ contains
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine psb_l_set_remote_build
|
||||
end subroutine l_vect_set_remote_build
|
||||
|
||||
subroutine psb_l_set_vect_default(v)
|
||||
implicit none
|
||||
@@ -587,7 +611,6 @@ contains
|
||||
end module psb_l_vect_mod
|
||||
|
||||
|
||||
|
||||
module psb_l_multivect_mod
|
||||
|
||||
use psb_l_base_multivect_mod
|
||||
@@ -599,11 +622,19 @@ module psb_l_multivect_mod
|
||||
|
||||
type psb_l_multivect_type
|
||||
class(psb_l_base_multivect_type), allocatable :: v
|
||||
integer(psb_ipk_) :: nrmv = 0
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
integer(psb_ipk_) :: dupl = psb_dupl_add_
|
||||
integer(psb_lpk_), allocatable :: rmtv(:,:)
|
||||
contains
|
||||
procedure, pass(x) :: get_nrows => l_vect_get_nrows
|
||||
procedure, pass(x) :: get_ncols => l_vect_get_ncols
|
||||
procedure, pass(x) :: sizeof => l_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => l_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => l_mvect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => l_mvect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => l_mvect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => l_mvect_set_dupl
|
||||
|
||||
procedure, pass(x) :: all => l_vect_all
|
||||
procedure, pass(x) :: reall => l_vect_reall
|
||||
@@ -653,6 +684,46 @@ module psb_l_multivect_mod
|
||||
|
||||
contains
|
||||
|
||||
|
||||
function l_mvect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_l_multivect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function l_mvect_get_dupl
|
||||
|
||||
subroutine l_mvect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_l_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine l_mvect_set_dupl
|
||||
|
||||
|
||||
function l_mvect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_l_multivect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function l_mvect_is_remote_build
|
||||
|
||||
subroutine l_mvect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_l_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%remote_build = val
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine l_mvect_set_remote_build
|
||||
|
||||
|
||||
subroutine psb_l_set_multivect_default(v)
|
||||
implicit none
|
||||
|
||||
@@ -84,7 +84,7 @@ module psb_s_mat_mod
|
||||
|
||||
type :: psb_sspmat_type
|
||||
|
||||
class(psb_s_base_sparse_mat), allocatable :: a
|
||||
class(psb_s_base_sparse_mat), allocatable :: a
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
type(psb_ls_coo_sparse_mat), allocatable :: rmta
|
||||
|
||||
|
||||
@@ -53,8 +53,10 @@ module psb_s_vect_mod
|
||||
procedure, pass(x) :: get_nrows => s_vect_get_nrows
|
||||
procedure, pass(x) :: sizeof => s_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => s_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => psb_s_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => psb_s_set_remote_build
|
||||
procedure, pass(x) :: is_remote_build => s_vect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => s_vect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => s_vect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => s_vect_set_dupl
|
||||
procedure, pass(x) :: all => s_vect_all
|
||||
procedure, pass(x) :: reall => s_vect_reall
|
||||
procedure, pass(x) :: zero => s_vect_zero
|
||||
@@ -159,7 +161,9 @@ module psb_s_vect_mod
|
||||
& s_vect_cnv, s_vect_set_scal, &
|
||||
& s_vect_set_vect, s_vect_clone, s_vect_sync, s_vect_is_host, &
|
||||
& s_vect_is_dev, s_vect_is_sync, s_vect_set_host, &
|
||||
& s_vect_set_dev, s_vect_set_sync
|
||||
& s_vect_set_dev, s_vect_set_sync, &
|
||||
& s_vect_set_remote_build, s_is_remote_build, &
|
||||
& s_vect_set_dupl, s_get_dupl
|
||||
|
||||
private :: s_vect_dot_v, s_vect_dot_a, s_vect_axpby_v, s_vect_axpby_a, &
|
||||
& s_vect_mlt_v, s_vect_mlt_a, s_vect_mlt_a_2, s_vect_mlt_v_2, &
|
||||
@@ -182,14 +186,34 @@ module psb_s_vect_mod
|
||||
contains
|
||||
|
||||
|
||||
function psb_s_is_remote_build(x) result(res)
|
||||
function s_vect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_s_vect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function s_vect_get_dupl
|
||||
|
||||
subroutine s_vect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_s_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine s_vect_set_dupl
|
||||
|
||||
|
||||
function s_vect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_s_vect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function psb_s_is_remote_build
|
||||
end function s_vect_is_remote_build
|
||||
|
||||
subroutine psb_s_set_remote_build(x,val)
|
||||
subroutine s_vect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_s_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
@@ -199,7 +223,7 @@ contains
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine psb_s_set_remote_build
|
||||
end subroutine s_vect_set_remote_build
|
||||
|
||||
subroutine psb_s_set_vect_default(v)
|
||||
implicit none
|
||||
@@ -1290,7 +1314,6 @@ contains
|
||||
end module psb_s_vect_mod
|
||||
|
||||
|
||||
|
||||
module psb_s_multivect_mod
|
||||
|
||||
use psb_s_base_multivect_mod
|
||||
@@ -1302,11 +1325,19 @@ module psb_s_multivect_mod
|
||||
|
||||
type psb_s_multivect_type
|
||||
class(psb_s_base_multivect_type), allocatable :: v
|
||||
integer(psb_ipk_) :: nrmv = 0
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
integer(psb_ipk_) :: dupl = psb_dupl_add_
|
||||
real(psb_spk_), allocatable :: rmtv(:,:)
|
||||
contains
|
||||
procedure, pass(x) :: get_nrows => s_vect_get_nrows
|
||||
procedure, pass(x) :: get_ncols => s_vect_get_ncols
|
||||
procedure, pass(x) :: sizeof => s_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => s_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => s_mvect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => s_mvect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => s_mvect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => s_mvect_set_dupl
|
||||
|
||||
procedure, pass(x) :: all => s_vect_all
|
||||
procedure, pass(x) :: reall => s_vect_reall
|
||||
@@ -1374,6 +1405,46 @@ module psb_s_multivect_mod
|
||||
|
||||
contains
|
||||
|
||||
|
||||
function s_mvect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_s_multivect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function s_mvect_get_dupl
|
||||
|
||||
subroutine s_mvect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_s_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine s_mvect_set_dupl
|
||||
|
||||
|
||||
function s_mvect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_s_multivect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function s_mvect_is_remote_build
|
||||
|
||||
subroutine s_mvect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_s_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%remote_build = val
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine s_mvect_set_remote_build
|
||||
|
||||
|
||||
subroutine psb_s_set_multivect_default(v)
|
||||
implicit none
|
||||
|
||||
@@ -84,7 +84,7 @@ module psb_z_mat_mod
|
||||
|
||||
type :: psb_zspmat_type
|
||||
|
||||
class(psb_z_base_sparse_mat), allocatable :: a
|
||||
class(psb_z_base_sparse_mat), allocatable :: a
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
type(psb_lz_coo_sparse_mat), allocatable :: rmta
|
||||
|
||||
|
||||
@@ -53,8 +53,10 @@ module psb_z_vect_mod
|
||||
procedure, pass(x) :: get_nrows => z_vect_get_nrows
|
||||
procedure, pass(x) :: sizeof => z_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => z_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => psb_z_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => psb_z_set_remote_build
|
||||
procedure, pass(x) :: is_remote_build => z_vect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => z_vect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => z_vect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => z_vect_set_dupl
|
||||
procedure, pass(x) :: all => z_vect_all
|
||||
procedure, pass(x) :: reall => z_vect_reall
|
||||
procedure, pass(x) :: zero => z_vect_zero
|
||||
@@ -152,7 +154,9 @@ module psb_z_vect_mod
|
||||
& z_vect_cnv, z_vect_set_scal, &
|
||||
& z_vect_set_vect, z_vect_clone, z_vect_sync, z_vect_is_host, &
|
||||
& z_vect_is_dev, z_vect_is_sync, z_vect_set_host, &
|
||||
& z_vect_set_dev, z_vect_set_sync
|
||||
& z_vect_set_dev, z_vect_set_sync, &
|
||||
& z_vect_set_remote_build, z_is_remote_build, &
|
||||
& z_vect_set_dupl, z_get_dupl
|
||||
|
||||
private :: z_vect_dot_v, z_vect_dot_a, z_vect_axpby_v, z_vect_axpby_a, &
|
||||
& z_vect_mlt_v, z_vect_mlt_a, z_vect_mlt_a_2, z_vect_mlt_v_2, &
|
||||
@@ -175,14 +179,34 @@ module psb_z_vect_mod
|
||||
contains
|
||||
|
||||
|
||||
function psb_z_is_remote_build(x) result(res)
|
||||
function z_vect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_z_vect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function z_vect_get_dupl
|
||||
|
||||
subroutine z_vect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_z_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine z_vect_set_dupl
|
||||
|
||||
|
||||
function z_vect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_z_vect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function psb_z_is_remote_build
|
||||
end function z_vect_is_remote_build
|
||||
|
||||
subroutine psb_z_set_remote_build(x,val)
|
||||
subroutine z_vect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_z_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
@@ -192,7 +216,7 @@ contains
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine psb_z_set_remote_build
|
||||
end subroutine z_vect_set_remote_build
|
||||
|
||||
subroutine psb_z_set_vect_default(v)
|
||||
implicit none
|
||||
@@ -1211,7 +1235,6 @@ contains
|
||||
end module psb_z_vect_mod
|
||||
|
||||
|
||||
|
||||
module psb_z_multivect_mod
|
||||
|
||||
use psb_z_base_multivect_mod
|
||||
@@ -1223,11 +1246,19 @@ module psb_z_multivect_mod
|
||||
|
||||
type psb_z_multivect_type
|
||||
class(psb_z_base_multivect_type), allocatable :: v
|
||||
integer(psb_ipk_) :: nrmv = 0
|
||||
integer(psb_ipk_) :: remote_build=psb_matbld_noremote_
|
||||
integer(psb_ipk_) :: dupl = psb_dupl_add_
|
||||
complex(psb_dpk_), allocatable :: rmtv(:,:)
|
||||
contains
|
||||
procedure, pass(x) :: get_nrows => z_vect_get_nrows
|
||||
procedure, pass(x) :: get_ncols => z_vect_get_ncols
|
||||
procedure, pass(x) :: sizeof => z_vect_sizeof
|
||||
procedure, pass(x) :: get_fmt => z_vect_get_fmt
|
||||
procedure, pass(x) :: is_remote_build => z_mvect_is_remote_build
|
||||
procedure, pass(x) :: set_remote_build => z_mvect_set_remote_build
|
||||
procedure, pass(x) :: get_dupl => z_mvect_get_dupl
|
||||
procedure, pass(x) :: set_dupl => z_mvect_set_dupl
|
||||
|
||||
procedure, pass(x) :: all => z_vect_all
|
||||
procedure, pass(x) :: reall => z_vect_reall
|
||||
@@ -1295,6 +1326,46 @@ module psb_z_multivect_mod
|
||||
|
||||
contains
|
||||
|
||||
|
||||
function z_mvect_get_dupl(x) result(res)
|
||||
implicit none
|
||||
class(psb_z_multivect_type), intent(in) :: x
|
||||
integer(psb_ipk_) :: res
|
||||
res = x%dupl
|
||||
end function z_mvect_get_dupl
|
||||
|
||||
subroutine z_mvect_set_dupl(x,val)
|
||||
implicit none
|
||||
class(psb_z_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%dupl = val
|
||||
else
|
||||
x%dupl = psb_dupl_def_
|
||||
end if
|
||||
end subroutine z_mvect_set_dupl
|
||||
|
||||
|
||||
function z_mvect_is_remote_build(x) result(res)
|
||||
implicit none
|
||||
class(psb_z_multivect_type), intent(in) :: x
|
||||
logical :: res
|
||||
res = (x%remote_build == psb_matbld_remote_)
|
||||
end function z_mvect_is_remote_build
|
||||
|
||||
subroutine z_mvect_set_remote_build(x,val)
|
||||
implicit none
|
||||
class(psb_z_multivect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(in), optional :: val
|
||||
|
||||
if (present(val)) then
|
||||
x%remote_build = val
|
||||
else
|
||||
x%remote_build = psb_matbld_remote_
|
||||
end if
|
||||
end subroutine z_mvect_set_remote_build
|
||||
|
||||
|
||||
subroutine psb_z_set_multivect_default(v)
|
||||
implicit none
|
||||
|
||||
@@ -40,41 +40,43 @@ Module psb_c_tools_mod
|
||||
use psi_mod, only : psb_snd, psb_rcv ! Needed only for psb_getelem
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_calloc_vect(x, desc_a,info)
|
||||
subroutine psb_calloc_vect(x, desc_a,info, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_calloc_vect
|
||||
subroutine psb_calloc_vect_r2(x, desc_a,info,n,lb)
|
||||
subroutine psb_calloc_vect_r2(x, desc_a,info,n,lb, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type), allocatable, intent(out) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n, lb
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_calloc_vect_r2
|
||||
subroutine psb_calloc_multivect(x, desc_a,info,n)
|
||||
subroutine psb_calloc_multivect(x, desc_a,info,n, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_multivect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_calloc_multivect
|
||||
end interface
|
||||
|
||||
|
||||
interface psb_geasb
|
||||
subroutine psb_casb_vect(x, desc_a, info,mold, dupl,scratch)
|
||||
subroutine psb_casb_vect(x, desc_a, info,mold, scratch)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_c_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_c_base_vect_type), intent(in), optional :: mold
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: scratch
|
||||
end subroutine psb_casb_vect
|
||||
subroutine psb_casb_vect_r2(x, desc_a, info,mold, scratch)
|
||||
@@ -124,7 +126,7 @@ Module psb_c_tools_mod
|
||||
|
||||
|
||||
interface psb_geins
|
||||
subroutine psb_cins_vect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_cins_vect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -133,10 +135,9 @@ Module psb_c_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
complex(psb_spk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_cins_vect
|
||||
subroutine psb_cins_vect_v(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_cins_vect_v(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -145,10 +146,9 @@ Module psb_c_tools_mod
|
||||
type(psb_l_vect_type), intent(inout) :: irw
|
||||
type(psb_c_vect_type), intent(inout) :: val
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_cins_vect_v
|
||||
subroutine psb_cins_vect_r2(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_cins_vect_r2(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -157,10 +157,9 @@ Module psb_c_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
complex(psb_spk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_cins_vect_r2
|
||||
subroutine psb_cins_multivect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_cins_multivect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -169,7 +168,6 @@ Module psb_c_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
complex(psb_spk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_cins_multivect
|
||||
end interface
|
||||
@@ -240,36 +238,36 @@ Module psb_c_tools_mod
|
||||
|
||||
|
||||
interface psb_spall
|
||||
subroutine psb_cspalloc(a, desc_a, info, nnz, bldmode)
|
||||
subroutine psb_cspalloc(a, desc_a, info, nnz, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_cspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_cspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
end subroutine psb_cspalloc
|
||||
end interface
|
||||
|
||||
interface psb_spasb
|
||||
subroutine psb_cspasb(a,desc_a, info, afmt, upd, dupl,mold)
|
||||
subroutine psb_cspasb(a,desc_a, info, afmt, upd, mold)
|
||||
import
|
||||
implicit none
|
||||
type(psb_cspmat_type), intent (inout) :: a
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_),optional, intent(in) :: dupl, upd
|
||||
integer(psb_ipk_),optional, intent(in) :: upd
|
||||
character(len=*), optional, intent(in) :: afmt
|
||||
class(psb_c_base_sparse_mat), intent(in), optional :: mold
|
||||
end subroutine psb_cspasb
|
||||
end interface
|
||||
|
||||
interface psb_remote_vect
|
||||
subroutine psb_c_remote_vect(v,desc_a, dupl, info)
|
||||
subroutine psb_c_remote_vect(v,desc_a, info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_c_vect_type),Intent(inout) :: v
|
||||
type(psb_desc_type),intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(in) :: dupl
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_c_remote_vect
|
||||
end interface psb_remote_vect
|
||||
|
||||
@@ -40,41 +40,43 @@ Module psb_d_tools_mod
|
||||
use psi_mod, only : psb_snd, psb_rcv ! Needed only for psb_getelem
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_dalloc_vect(x, desc_a,info)
|
||||
subroutine psb_dalloc_vect(x, desc_a,info, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_dalloc_vect
|
||||
subroutine psb_dalloc_vect_r2(x, desc_a,info,n,lb)
|
||||
subroutine psb_dalloc_vect_r2(x, desc_a,info,n,lb, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_vect_type), allocatable, intent(out) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n, lb
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_dalloc_vect_r2
|
||||
subroutine psb_dalloc_multivect(x, desc_a,info,n)
|
||||
subroutine psb_dalloc_multivect(x, desc_a,info,n, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_multivect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_dalloc_multivect
|
||||
end interface
|
||||
|
||||
|
||||
interface psb_geasb
|
||||
subroutine psb_dasb_vect(x, desc_a, info,mold, dupl,scratch)
|
||||
subroutine psb_dasb_vect(x, desc_a, info,mold, scratch)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_d_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_d_base_vect_type), intent(in), optional :: mold
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: scratch
|
||||
end subroutine psb_dasb_vect
|
||||
subroutine psb_dasb_vect_r2(x, desc_a, info,mold, scratch)
|
||||
@@ -124,7 +126,7 @@ Module psb_d_tools_mod
|
||||
|
||||
|
||||
interface psb_geins
|
||||
subroutine psb_dins_vect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_dins_vect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -133,10 +135,9 @@ Module psb_d_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
real(psb_dpk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_dins_vect
|
||||
subroutine psb_dins_vect_v(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_dins_vect_v(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -145,10 +146,9 @@ Module psb_d_tools_mod
|
||||
type(psb_l_vect_type), intent(inout) :: irw
|
||||
type(psb_d_vect_type), intent(inout) :: val
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_dins_vect_v
|
||||
subroutine psb_dins_vect_r2(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_dins_vect_r2(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -157,10 +157,9 @@ Module psb_d_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
real(psb_dpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_dins_vect_r2
|
||||
subroutine psb_dins_multivect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_dins_multivect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -169,7 +168,6 @@ Module psb_d_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
real(psb_dpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_dins_multivect
|
||||
end interface
|
||||
@@ -240,36 +238,36 @@ Module psb_d_tools_mod
|
||||
|
||||
|
||||
interface psb_spall
|
||||
subroutine psb_dspalloc(a, desc_a, info, nnz, bldmode)
|
||||
subroutine psb_dspalloc(a, desc_a, info, nnz, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_dspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
end subroutine psb_dspalloc
|
||||
end interface
|
||||
|
||||
interface psb_spasb
|
||||
subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl,mold)
|
||||
subroutine psb_dspasb(a,desc_a, info, afmt, upd, mold)
|
||||
import
|
||||
implicit none
|
||||
type(psb_dspmat_type), intent (inout) :: a
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_),optional, intent(in) :: dupl, upd
|
||||
integer(psb_ipk_),optional, intent(in) :: upd
|
||||
character(len=*), optional, intent(in) :: afmt
|
||||
class(psb_d_base_sparse_mat), intent(in), optional :: mold
|
||||
end subroutine psb_dspasb
|
||||
end interface
|
||||
|
||||
interface psb_remote_vect
|
||||
subroutine psb_d_remote_vect(v,desc_a, dupl, info)
|
||||
subroutine psb_d_remote_vect(v,desc_a, info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_d_vect_type),Intent(inout) :: v
|
||||
type(psb_desc_type),intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(in) :: dupl
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_d_remote_vect
|
||||
end interface psb_remote_vect
|
||||
|
||||
@@ -37,41 +37,43 @@ Module psb_i_tools_mod
|
||||
use psi_mod, only : psb_snd, psb_rcv ! Needed only for psb_getelem
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_ialloc_vect(x, desc_a,info)
|
||||
subroutine psb_ialloc_vect(x, desc_a,info, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_ialloc_vect
|
||||
subroutine psb_ialloc_vect_r2(x, desc_a,info,n,lb)
|
||||
subroutine psb_ialloc_vect_r2(x, desc_a,info,n,lb, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_vect_type), allocatable, intent(out) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n, lb
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_ialloc_vect_r2
|
||||
subroutine psb_ialloc_multivect(x, desc_a,info,n)
|
||||
subroutine psb_ialloc_multivect(x, desc_a,info,n, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_i_multivect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_ialloc_multivect
|
||||
end interface
|
||||
|
||||
|
||||
interface psb_geasb
|
||||
subroutine psb_iasb_vect(x, desc_a, info,mold, dupl,scratch)
|
||||
subroutine psb_iasb_vect(x, desc_a, info,mold, scratch)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_i_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_i_base_vect_type), intent(in), optional :: mold
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: scratch
|
||||
end subroutine psb_iasb_vect
|
||||
subroutine psb_iasb_vect_r2(x, desc_a, info,mold, scratch)
|
||||
@@ -121,7 +123,7 @@ Module psb_i_tools_mod
|
||||
|
||||
|
||||
interface psb_geins
|
||||
subroutine psb_iins_vect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_iins_vect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -130,10 +132,9 @@ Module psb_i_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
integer(psb_ipk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_iins_vect
|
||||
subroutine psb_iins_vect_v(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_iins_vect_v(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -142,10 +143,9 @@ Module psb_i_tools_mod
|
||||
type(psb_l_vect_type), intent(inout) :: irw
|
||||
type(psb_i_vect_type), intent(inout) :: val
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_iins_vect_v
|
||||
subroutine psb_iins_vect_r2(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_iins_vect_r2(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -154,10 +154,9 @@ Module psb_i_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
integer(psb_ipk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_iins_vect_r2
|
||||
subroutine psb_iins_multivect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_iins_multivect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -166,7 +165,6 @@ Module psb_i_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
integer(psb_ipk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_iins_multivect
|
||||
end interface
|
||||
|
||||
@@ -37,41 +37,43 @@ Module psb_l_tools_mod
|
||||
use psi_mod, only : psb_snd, psb_rcv ! Needed only for psb_getelem
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_lalloc_vect(x, desc_a,info)
|
||||
subroutine psb_lalloc_vect(x, desc_a,info, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_lalloc_vect
|
||||
subroutine psb_lalloc_vect_r2(x, desc_a,info,n,lb)
|
||||
subroutine psb_lalloc_vect_r2(x, desc_a,info,n,lb, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_vect_type), allocatable, intent(out) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n, lb
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_lalloc_vect_r2
|
||||
subroutine psb_lalloc_multivect(x, desc_a,info,n)
|
||||
subroutine psb_lalloc_multivect(x, desc_a,info,n, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_l_multivect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_lalloc_multivect
|
||||
end interface
|
||||
|
||||
|
||||
interface psb_geasb
|
||||
subroutine psb_lasb_vect(x, desc_a, info,mold, dupl,scratch)
|
||||
subroutine psb_lasb_vect(x, desc_a, info,mold, scratch)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_l_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_l_base_vect_type), intent(in), optional :: mold
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: scratch
|
||||
end subroutine psb_lasb_vect
|
||||
subroutine psb_lasb_vect_r2(x, desc_a, info,mold, scratch)
|
||||
@@ -121,7 +123,7 @@ Module psb_l_tools_mod
|
||||
|
||||
|
||||
interface psb_geins
|
||||
subroutine psb_lins_vect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_lins_vect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -130,10 +132,9 @@ Module psb_l_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
integer(psb_lpk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_lins_vect
|
||||
subroutine psb_lins_vect_v(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_lins_vect_v(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -142,10 +143,9 @@ Module psb_l_tools_mod
|
||||
type(psb_l_vect_type), intent(inout) :: irw
|
||||
type(psb_l_vect_type), intent(inout) :: val
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_lins_vect_v
|
||||
subroutine psb_lins_vect_r2(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_lins_vect_r2(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -154,10 +154,9 @@ Module psb_l_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
integer(psb_lpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_lins_vect_r2
|
||||
subroutine psb_lins_multivect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_lins_multivect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -166,7 +165,6 @@ Module psb_l_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
integer(psb_lpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_lins_multivect
|
||||
end interface
|
||||
|
||||
@@ -40,41 +40,43 @@ Module psb_s_tools_mod
|
||||
use psi_mod, only : psb_snd, psb_rcv ! Needed only for psb_getelem
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_salloc_vect(x, desc_a,info)
|
||||
subroutine psb_salloc_vect(x, desc_a,info, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_salloc_vect
|
||||
subroutine psb_salloc_vect_r2(x, desc_a,info,n,lb)
|
||||
subroutine psb_salloc_vect_r2(x, desc_a,info,n,lb, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_vect_type), allocatable, intent(out) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n, lb
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_salloc_vect_r2
|
||||
subroutine psb_salloc_multivect(x, desc_a,info,n)
|
||||
subroutine psb_salloc_multivect(x, desc_a,info,n, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_multivect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_salloc_multivect
|
||||
end interface
|
||||
|
||||
|
||||
interface psb_geasb
|
||||
subroutine psb_sasb_vect(x, desc_a, info,mold, dupl,scratch)
|
||||
subroutine psb_sasb_vect(x, desc_a, info,mold, scratch)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_s_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_s_base_vect_type), intent(in), optional :: mold
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: scratch
|
||||
end subroutine psb_sasb_vect
|
||||
subroutine psb_sasb_vect_r2(x, desc_a, info,mold, scratch)
|
||||
@@ -124,7 +126,7 @@ Module psb_s_tools_mod
|
||||
|
||||
|
||||
interface psb_geins
|
||||
subroutine psb_sins_vect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_sins_vect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -133,10 +135,9 @@ Module psb_s_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
real(psb_spk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_sins_vect
|
||||
subroutine psb_sins_vect_v(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_sins_vect_v(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -145,10 +146,9 @@ Module psb_s_tools_mod
|
||||
type(psb_l_vect_type), intent(inout) :: irw
|
||||
type(psb_s_vect_type), intent(inout) :: val
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_sins_vect_v
|
||||
subroutine psb_sins_vect_r2(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_sins_vect_r2(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -157,10 +157,9 @@ Module psb_s_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
real(psb_spk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_sins_vect_r2
|
||||
subroutine psb_sins_multivect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_sins_multivect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -169,7 +168,6 @@ Module psb_s_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
real(psb_spk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_sins_multivect
|
||||
end interface
|
||||
@@ -240,36 +238,36 @@ Module psb_s_tools_mod
|
||||
|
||||
|
||||
interface psb_spall
|
||||
subroutine psb_sspalloc(a, desc_a, info, nnz, bldmode)
|
||||
subroutine psb_sspalloc(a, desc_a, info, nnz, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_sspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_sspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
end subroutine psb_sspalloc
|
||||
end interface
|
||||
|
||||
interface psb_spasb
|
||||
subroutine psb_sspasb(a,desc_a, info, afmt, upd, dupl,mold)
|
||||
subroutine psb_sspasb(a,desc_a, info, afmt, upd, mold)
|
||||
import
|
||||
implicit none
|
||||
type(psb_sspmat_type), intent (inout) :: a
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_),optional, intent(in) :: dupl, upd
|
||||
integer(psb_ipk_),optional, intent(in) :: upd
|
||||
character(len=*), optional, intent(in) :: afmt
|
||||
class(psb_s_base_sparse_mat), intent(in), optional :: mold
|
||||
end subroutine psb_sspasb
|
||||
end interface
|
||||
|
||||
interface psb_remote_vect
|
||||
subroutine psb_s_remote_vect(v,desc_a, dupl, info)
|
||||
subroutine psb_s_remote_vect(v,desc_a, info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_s_vect_type),Intent(inout) :: v
|
||||
type(psb_desc_type),intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(in) :: dupl
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_s_remote_vect
|
||||
end interface psb_remote_vect
|
||||
|
||||
@@ -40,41 +40,43 @@ Module psb_z_tools_mod
|
||||
use psi_mod, only : psb_snd, psb_rcv ! Needed only for psb_getelem
|
||||
|
||||
interface psb_geall
|
||||
subroutine psb_zalloc_vect(x, desc_a,info)
|
||||
subroutine psb_zalloc_vect(x, desc_a,info, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_vect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_zalloc_vect
|
||||
subroutine psb_zalloc_vect_r2(x, desc_a,info,n,lb)
|
||||
subroutine psb_zalloc_vect_r2(x, desc_a,info,n,lb, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_vect_type), allocatable, intent(out) :: x(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n, lb
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_zalloc_vect_r2
|
||||
subroutine psb_zalloc_multivect(x, desc_a,info,n)
|
||||
subroutine psb_zalloc_multivect(x, desc_a,info,n, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_multivect_type), intent(out) :: x
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer(psb_ipk_),intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: n
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl, bldmode
|
||||
end subroutine psb_zalloc_multivect
|
||||
end interface
|
||||
|
||||
|
||||
interface psb_geasb
|
||||
subroutine psb_zasb_vect(x, desc_a, info,mold, dupl,scratch)
|
||||
subroutine psb_zasb_vect(x, desc_a, info,mold, scratch)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_z_vect_type), intent(inout) :: x
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
class(psb_z_base_vect_type), intent(in), optional :: mold
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: scratch
|
||||
end subroutine psb_zasb_vect
|
||||
subroutine psb_zasb_vect_r2(x, desc_a, info,mold, scratch)
|
||||
@@ -124,7 +126,7 @@ Module psb_z_tools_mod
|
||||
|
||||
|
||||
interface psb_geins
|
||||
subroutine psb_zins_vect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_zins_vect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -133,10 +135,9 @@ Module psb_z_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
complex(psb_dpk_), intent(in) :: val(:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_zins_vect
|
||||
subroutine psb_zins_vect_v(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_zins_vect_v(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -145,10 +146,9 @@ Module psb_z_tools_mod
|
||||
type(psb_l_vect_type), intent(inout) :: irw
|
||||
type(psb_z_vect_type), intent(inout) :: val
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_zins_vect_v
|
||||
subroutine psb_zins_vect_r2(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_zins_vect_r2(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -157,10 +157,9 @@ Module psb_z_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
complex(psb_dpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_zins_vect_r2
|
||||
subroutine psb_zins_multivect(m,irw,val,x,desc_a,info,dupl,local)
|
||||
subroutine psb_zins_multivect(m,irw,val,x,desc_a,info,local)
|
||||
import
|
||||
implicit none
|
||||
integer(psb_ipk_), intent(in) :: m
|
||||
@@ -169,7 +168,6 @@ Module psb_z_tools_mod
|
||||
integer(psb_lpk_), intent(in) :: irw(:)
|
||||
complex(psb_dpk_), intent(in) :: val(:,:)
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
logical, intent(in), optional :: local
|
||||
end subroutine psb_zins_multivect
|
||||
end interface
|
||||
@@ -240,36 +238,36 @@ Module psb_z_tools_mod
|
||||
|
||||
|
||||
interface psb_spall
|
||||
subroutine psb_zspalloc(a, desc_a, info, nnz, bldmode)
|
||||
subroutine psb_zspalloc(a, desc_a, info, nnz, dupl, bldmode)
|
||||
import
|
||||
implicit none
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_zspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
type(psb_zspmat_type), intent(inout) :: a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_), optional, intent(in) :: nnz, bldmode
|
||||
integer(psb_ipk_), optional, intent(in) :: dupl
|
||||
end subroutine psb_zspalloc
|
||||
end interface
|
||||
|
||||
interface psb_spasb
|
||||
subroutine psb_zspasb(a,desc_a, info, afmt, upd, dupl,mold)
|
||||
subroutine psb_zspasb(a,desc_a, info, afmt, upd, mold)
|
||||
import
|
||||
implicit none
|
||||
type(psb_zspmat_type), intent (inout) :: a
|
||||
type(psb_desc_type), intent(inout) :: desc_a
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
integer(psb_ipk_),optional, intent(in) :: dupl, upd
|
||||
integer(psb_ipk_),optional, intent(in) :: upd
|
||||
character(len=*), optional, intent(in) :: afmt
|
||||
class(psb_z_base_sparse_mat), intent(in), optional :: mold
|
||||
end subroutine psb_zspasb
|
||||
end interface
|
||||
|
||||
interface psb_remote_vect
|
||||
subroutine psb_z_remote_vect(v,desc_a, dupl, info)
|
||||
subroutine psb_z_remote_vect(v,desc_a, info)
|
||||
import
|
||||
implicit none
|
||||
type(psb_z_vect_type),Intent(inout) :: v
|
||||
type(psb_desc_type),intent(in) :: desc_a
|
||||
integer(psb_ipk_), intent(in) :: dupl
|
||||
integer(psb_ipk_), intent(out) :: info
|
||||
end subroutine psb_z_remote_vect
|
||||
end interface psb_remote_vect
|
||||
|
||||
Reference in New Issue
Block a user