mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-24 14:51:49 +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
|
||||
|
||||
Reference in New Issue
Block a user