diff --git a/base/modules/psb_c_base_mat_mod.f90 b/base/modules/psb_c_base_mat_mod.f90 index 90db864c..f7eea771 100644 --- a/base/modules/psb_c_base_mat_mod.f90 +++ b/base/modules/psb_c_base_mat_mod.f90 @@ -127,11 +127,11 @@ module psb_c_base_mat_mod !> Number of nonzeros. integer(psb_ipk_) :: nnz !> Row indices. - integer(psb_ipk_), allocatable :: ia(:) + integer(psb_ipk_), allocatable, accelerated :: ia(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - complex(psb_spk_), allocatable :: val(:) + complex(psb_spk_), allocatable, accelerated :: val(:) integer, private :: sort_status=psb_unsorted_ diff --git a/base/modules/psb_c_base_vect_mod.f90 b/base/modules/psb_c_base_vect_mod.f90 index 697200b9..647e38d2 100644 --- a/base/modules/psb_c_base_vect_mod.f90 +++ b/base/modules/psb_c_base_vect_mod.f90 @@ -61,7 +61,7 @@ module psb_c_base_vect_mod !! type psb_c_base_vect_type !> Values. - complex(psb_spk_), allocatable :: v(:) + complex(psb_spk_), allocatable, accelerated :: v(:) contains ! ! Constructors/allocators @@ -398,7 +398,7 @@ contains class(psb_c_base_vect_type), intent(inout) :: x if (allocated(x%v)) x%v=czero - + call x%set_host() end subroutine c_base_zero @@ -614,7 +614,7 @@ contains integer(psb_ipk_) :: info if (.not.allocated(x%v)) return - call x%sync() + if (.not.x%is_host()) call x%sync() allocate(res(x%get_nrows()),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') @@ -637,8 +637,10 @@ contains complex(psb_spk_), intent(in) :: val integer(psb_ipk_) :: info + x%v = val - + call x%set_host() + end subroutine c_base_set_scal ! @@ -675,6 +677,7 @@ contains else x%v = val end if + call x%set_host() end subroutine c_base_set_vect diff --git a/base/modules/psb_c_csr_mat_mod.f90 b/base/modules/psb_c_csr_mat_mod.f90 index 730eafa4..ac88b979 100644 --- a/base/modules/psb_c_csr_mat_mod.f90 +++ b/base/modules/psb_c_csr_mat_mod.f90 @@ -54,11 +54,11 @@ module psb_c_csr_mat_mod type, extends(psb_c_base_sparse_mat) :: psb_c_csr_sparse_mat !> Pointers to beginning of rows in JA and VAL. - integer(psb_ipk_), allocatable :: irp(:) + integer(psb_ipk_), allocatable, accelerated :: irp(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - complex(psb_spk_), allocatable :: val(:) + complex(psb_spk_), allocatable, accelerated :: val(:) contains procedure, pass(a) :: is_by_rows => c_csr_is_by_rows diff --git a/base/modules/psb_d_base_mat_mod.f90 b/base/modules/psb_d_base_mat_mod.f90 index 304b02b3..9f2e1c4b 100644 --- a/base/modules/psb_d_base_mat_mod.f90 +++ b/base/modules/psb_d_base_mat_mod.f90 @@ -127,11 +127,11 @@ module psb_d_base_mat_mod !> Number of nonzeros. integer(psb_ipk_) :: nnz !> Row indices. - integer(psb_ipk_), allocatable :: ia(:) + integer(psb_ipk_), allocatable, accelerated :: ia(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - real(psb_dpk_), allocatable :: val(:) + real(psb_dpk_), allocatable, accelerated :: val(:) integer, private :: sort_status=psb_unsorted_ diff --git a/base/modules/psb_d_base_vect_mod.f90 b/base/modules/psb_d_base_vect_mod.f90 index 44fae99a..e55b34f4 100644 --- a/base/modules/psb_d_base_vect_mod.f90 +++ b/base/modules/psb_d_base_vect_mod.f90 @@ -61,7 +61,7 @@ module psb_d_base_vect_mod !! type psb_d_base_vect_type !> Values. - real(psb_dpk_), allocatable :: v(:) + real(psb_dpk_), allocatable, accelerated :: v(:) contains ! ! Constructors/allocators @@ -398,7 +398,7 @@ contains class(psb_d_base_vect_type), intent(inout) :: x if (allocated(x%v)) x%v=dzero - + call x%set_host() end subroutine d_base_zero @@ -614,7 +614,7 @@ contains integer(psb_ipk_) :: info if (.not.allocated(x%v)) return - call x%sync() + if (.not.x%is_host()) call x%sync() allocate(res(x%get_nrows()),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') @@ -637,8 +637,10 @@ contains real(psb_dpk_), intent(in) :: val integer(psb_ipk_) :: info + x%v = val - + call x%set_host() + end subroutine d_base_set_scal ! @@ -675,6 +677,7 @@ contains else x%v = val end if + call x%set_host() end subroutine d_base_set_vect diff --git a/base/modules/psb_d_csr_mat_mod.f90 b/base/modules/psb_d_csr_mat_mod.f90 index de1c8955..91c1f6e7 100644 --- a/base/modules/psb_d_csr_mat_mod.f90 +++ b/base/modules/psb_d_csr_mat_mod.f90 @@ -54,11 +54,11 @@ module psb_d_csr_mat_mod type, extends(psb_d_base_sparse_mat) :: psb_d_csr_sparse_mat !> Pointers to beginning of rows in JA and VAL. - integer(psb_ipk_), allocatable :: irp(:) + integer(psb_ipk_), allocatable, accelerated :: irp(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - real(psb_dpk_), allocatable :: val(:) + real(psb_dpk_), allocatable, accelerated :: val(:) contains procedure, pass(a) :: is_by_rows => d_csr_is_by_rows diff --git a/base/modules/psb_realloc_mod.F90 b/base/modules/psb_realloc_mod.F90 index e00e8176..a956fa8e 100644 --- a/base/modules/psb_realloc_mod.F90 +++ b/base/modules/psb_realloc_mod.F90 @@ -156,8 +156,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - integer(psb_ipk_),allocatable, intent(in) :: vin(:) - integer(psb_ipk_),allocatable, intent(out) :: vout(:) + integer(psb_ipk_),allocatable, accelerated, intent(in) :: vin(:) + integer(psb_ipk_),allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -201,8 +201,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - integer(psb_ipk_), allocatable, intent(in) :: vin(:,:) - integer(psb_ipk_), allocatable, intent(out) :: vout(:,:) + integer(psb_ipk_), allocatable, accelerated, intent(in) :: vin(:,:) + integer(psb_ipk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -247,8 +247,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - real(psb_spk_), allocatable, intent(in) :: vin(:) - real(psb_spk_), allocatable, intent(out) :: vout(:) + real(psb_spk_), allocatable, accelerated, intent(in) :: vin(:) + real(psb_spk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -291,8 +291,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - real(psb_spk_), allocatable, intent(in) :: vin(:,:) - real(psb_spk_), allocatable, intent(out) :: vout(:,:) + real(psb_spk_), allocatable, accelerated, intent(in) :: vin(:,:) + real(psb_spk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -337,8 +337,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - real(psb_dpk_), allocatable, intent(in) :: vin(:) - real(psb_dpk_), allocatable, intent(out) :: vout(:) + real(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:) + real(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -381,8 +381,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - real(psb_dpk_), allocatable, intent(in) :: vin(:,:) - real(psb_dpk_), allocatable, intent(out) :: vout(:,:) + real(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:,:) + real(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -427,8 +427,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - complex(psb_spk_), allocatable, intent(in) :: vin(:) - complex(psb_spk_), allocatable, intent(out) :: vout(:) + complex(psb_spk_), allocatable, accelerated, intent(in) :: vin(:) + complex(psb_spk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -471,8 +471,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - complex(psb_spk_), allocatable, intent(in) :: vin(:,:) - complex(psb_spk_), allocatable, intent(out) :: vout(:,:) + complex(psb_spk_), allocatable, accelerated, intent(in) :: vin(:,:) + complex(psb_spk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -517,8 +517,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - complex(psb_dpk_), allocatable, intent(in) :: vin(:) - complex(psb_dpk_), allocatable, intent(out) :: vout(:) + complex(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:) + complex(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -560,8 +560,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments - complex(psb_dpk_), allocatable, intent(in) :: vin(:,:) - complex(psb_dpk_), allocatable, intent(out) :: vout(:,:) + complex(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:,:) + complex(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -607,7 +607,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_), intent(in) :: vin(:) - integer(psb_ipk_), allocatable, intent(out) :: vout(:) + integer(psb_ipk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -648,7 +648,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_), intent(in) :: vin(:,:) - integer(psb_ipk_), allocatable, intent(out) :: vout(:,:) + integer(psb_ipk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -692,7 +692,7 @@ Contains ! ...Subroutine Arguments real(psb_spk_), intent(in) :: vin(:) - real(psb_spk_), allocatable, intent(out) :: vout(:) + real(psb_spk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -734,7 +734,7 @@ Contains ! ...Subroutine Arguments real(psb_spk_), intent(in) :: vin(:,:) - real(psb_spk_), allocatable, intent(out) :: vout(:,:) + real(psb_spk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -778,7 +778,7 @@ Contains ! ...Subroutine Arguments real(psb_dpk_), intent(in) :: vin(:) - real(psb_dpk_), allocatable, intent(out) :: vout(:) + real(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -819,7 +819,7 @@ Contains ! ...Subroutine Arguments real(psb_dpk_), intent(in) :: vin(:,:) - real(psb_dpk_), allocatable, intent(out) :: vout(:,:) + real(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -863,7 +863,7 @@ Contains ! ...Subroutine Arguments complex(psb_spk_), intent(in) :: vin(:) - complex(psb_spk_), allocatable, intent(out) :: vout(:) + complex(psb_spk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -905,7 +905,7 @@ Contains ! ...Subroutine Arguments complex(psb_spk_), intent(in) :: vin(:,:) - complex(psb_spk_), allocatable, intent(out) :: vout(:,:) + complex(psb_spk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -949,7 +949,7 @@ Contains ! ...Subroutine Arguments complex(psb_dpk_), intent(in) :: vin(:) - complex(psb_dpk_), allocatable, intent(out) :: vout(:) + complex(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:) integer(psb_ipk_) :: info ! ...Local Variables @@ -990,7 +990,7 @@ Contains ! ...Subroutine Arguments complex(psb_dpk_), intent(in) :: vin(:,:) - complex(psb_dpk_), allocatable, intent(out) :: vout(:,:) + complex(psb_dpk_), allocatable, accelerated, intent(out) :: vout(:,:) integer(psb_ipk_) :: info ! ...Local Variables @@ -1032,7 +1032,7 @@ Contains function psb_isize1d(vin) integer(psb_ipk_) :: psb_isize1d - integer(psb_ipk_), allocatable, intent(in) :: vin(:) + integer(psb_ipk_), allocatable, accelerated, intent(in) :: vin(:) if (.not.allocated(vin)) then psb_isize1d = 0 @@ -1043,7 +1043,7 @@ Contains function psb_isize2d(vin,dim) integer(psb_ipk_) :: psb_isize2d - integer(psb_ipk_), allocatable, intent(in) :: vin(:,:) + integer(psb_ipk_), allocatable, accelerated, intent(in) :: vin(:,:) integer(psb_ipk_), optional :: dim integer(psb_ipk_) :: dim_ @@ -1062,7 +1062,7 @@ Contains #if !defined(LONG_INTEGERS) function psb_i8size1d(vin) integer(psb_ipk_) :: psb_i8size1d - integer(psb_long_int_k_), allocatable, intent(in) :: vin(:) + integer(psb_long_int_k_), allocatable, accelerated, intent(in) :: vin(:) if (.not.allocated(vin)) then psb_i8size1d = 0 @@ -1073,7 +1073,7 @@ Contains function psb_i8size2d(vin,dim) integer(psb_ipk_) :: psb_i8size2d - integer(psb_long_int_k_), allocatable, intent(in) :: vin(:,:) + integer(psb_long_int_k_), allocatable, accelerated, intent(in) :: vin(:,:) integer(psb_ipk_), optional :: dim integer(psb_ipk_) :: dim_ @@ -1092,7 +1092,7 @@ Contains function psb_ssize1d(vin) integer(psb_ipk_) :: psb_ssize1d - real(psb_spk_), allocatable, intent(in) :: vin(:) + real(psb_spk_), allocatable, accelerated, intent(in) :: vin(:) if (.not.allocated(vin)) then psb_ssize1d = 0 @@ -1103,7 +1103,7 @@ Contains function psb_ssize2d(vin,dim) integer(psb_ipk_) :: psb_ssize2d - real(psb_spk_), allocatable, intent(in) :: vin(:,:) + real(psb_spk_), allocatable, accelerated, intent(in) :: vin(:,:) integer(psb_ipk_), optional :: dim integer(psb_ipk_) :: dim_ @@ -1122,7 +1122,7 @@ Contains function psb_dsize1d(vin) integer(psb_ipk_) :: psb_dsize1d - real(psb_dpk_), allocatable, intent(in) :: vin(:) + real(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:) if (.not.allocated(vin)) then psb_dsize1d = 0 @@ -1133,7 +1133,7 @@ Contains function psb_dsize2d(vin,dim) integer(psb_ipk_) :: psb_dsize2d - real(psb_dpk_), allocatable, intent(in) :: vin(:,:) + real(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:,:) integer(psb_ipk_), optional :: dim integer(psb_ipk_) :: dim_ @@ -1153,7 +1153,7 @@ Contains function psb_csize1d(vin) integer(psb_ipk_) :: psb_csize1d - complex(psb_spk_), allocatable, intent(in) :: vin(:) + complex(psb_spk_), allocatable, accelerated, intent(in) :: vin(:) if (.not.allocated(vin)) then psb_csize1d = 0 @@ -1164,7 +1164,7 @@ Contains function psb_csize2d(vin,dim) integer(psb_ipk_) :: psb_csize2d - complex(psb_spk_), allocatable, intent(in) :: vin(:,:) + complex(psb_spk_), allocatable, accelerated, intent(in) :: vin(:,:) integer(psb_ipk_), optional :: dim integer(psb_ipk_) :: dim_ @@ -1182,7 +1182,7 @@ Contains function psb_zsize1d(vin) integer(psb_ipk_) :: psb_zsize1d - complex(psb_dpk_), allocatable, intent(in) :: vin(:) + complex(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:) if (.not.allocated(vin)) then psb_zsize1d = 0 @@ -1193,7 +1193,7 @@ Contains function psb_zsize2d(vin,dim) integer(psb_ipk_) :: psb_zsize2d - complex(psb_dpk_), allocatable, intent(in) :: vin(:,:) + complex(psb_dpk_), allocatable, accelerated, intent(in) :: vin(:,:) integer(psb_ipk_), optional :: dim integer(psb_ipk_) :: dim_ @@ -1215,7 +1215,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: v(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: v(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: addsz,newsz @@ -1268,7 +1268,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - Integer(psb_long_int_k_),allocatable, intent(inout) :: v(:) + Integer(psb_long_int_k_),allocatable, accelerated, intent(inout) :: v(:) integer(psb_ipk_) :: info integer(psb_long_int_k_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: addsz,newsz @@ -1320,7 +1320,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - real(psb_spk_),allocatable, intent(inout) :: v(:) + real(psb_spk_),allocatable, accelerated, intent(inout) :: v(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: addsz,newsz real(psb_spk_), optional, intent(in) :: pad @@ -1372,7 +1372,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - real(psb_dpk_),allocatable, intent(inout) :: v(:) + real(psb_dpk_),allocatable, accelerated, intent(inout) :: v(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: addsz,newsz real(psb_dpk_), optional, intent(in) :: pad @@ -1425,7 +1425,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - complex(psb_spk_),allocatable, intent(inout) :: v(:) + complex(psb_spk_),allocatable, accelerated, intent(inout) :: v(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: addsz,newsz complex(psb_spk_), optional, intent(in) :: pad @@ -1477,7 +1477,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - complex(psb_dpk_),allocatable, intent(inout) :: v(:) + complex(psb_dpk_),allocatable, accelerated, intent(inout) :: v(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: addsz,newsz complex(psb_dpk_), optional, intent(in) :: pad @@ -1529,12 +1529,12 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: lb ! ...Local Variables - integer(psb_ipk_),allocatable :: tmp(:) + integer(psb_ipk_),allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: dim, err_act, err,lb_, lbi, ub_ character(len=20) :: name logical, parameter :: debug=.false. @@ -1610,13 +1610,13 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - Real(psb_spk_),allocatable, intent(inout) :: rrax(:) + Real(psb_spk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info real(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: lb ! ...Local Variables - Real(psb_spk_),allocatable :: tmp(:) + Real(psb_spk_),allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: dim,err_act,err, lb_, lbi,ub_ character(len=20) :: name logical, parameter :: debug=.false. @@ -1681,13 +1681,13 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - Real(psb_dpk_),allocatable, intent(inout) :: rrax(:) + Real(psb_dpk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info real(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: lb ! ...Local Variables - Real(psb_dpk_),allocatable :: tmp(:) + Real(psb_dpk_),allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: dim,err_act,err, lb_, lbi,ub_ character(len=20) :: name logical, parameter :: debug=.false. @@ -1753,13 +1753,13 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - complex(psb_spk_),allocatable, intent(inout):: rrax(:) + complex(psb_spk_),allocatable, accelerated, intent(inout):: rrax(:) integer(psb_ipk_) :: info complex(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: lb ! ...Local Variables - complex(psb_spk_),allocatable :: tmp(:) + complex(psb_spk_),allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: dim,err_act,err,lb_,ub_,lbi character(len=20) :: name logical, parameter :: debug=.false. @@ -1823,13 +1823,13 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - complex(psb_dpk_),allocatable, intent(inout):: rrax(:) + complex(psb_dpk_),allocatable, accelerated, intent(inout):: rrax(:) integer(psb_ipk_) :: info complex(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: lb ! ...Local Variables - complex(psb_dpk_),allocatable :: tmp(:) + complex(psb_dpk_),allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: dim,err_act,err,lb_,ub_,lbi character(len=20) :: name logical, parameter :: debug=.false. @@ -1894,14 +1894,14 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len1,len2 - Real(psb_spk_),allocatable :: rrax(:,:) + Real(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - Real(psb_spk_),allocatable :: tmp(:,:) + Real(psb_spk_),allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: dim,err_act,err, dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 character(len=20) :: name @@ -1984,14 +1984,14 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len1,len2 - Real(psb_dpk_),allocatable :: rrax(:,:) + Real(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - Real(psb_dpk_),allocatable :: tmp(:,:) + Real(psb_dpk_),allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: dim,err_act,err, dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 character(len=20) :: name @@ -2074,14 +2074,14 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len1,len2 - complex(psb_spk_),allocatable :: rrax(:,:) + complex(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - complex(psb_spk_),allocatable :: tmp(:,:) + complex(psb_spk_),allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: dim,err_act,err,dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 character(len=20) :: name @@ -2164,14 +2164,14 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len1,len2 - complex(psb_dpk_),allocatable :: rrax(:,:) + complex(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - complex(psb_dpk_),allocatable :: tmp(:,:) + complex(psb_dpk_),allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: dim,err_act,err,dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 character(len=20) :: name @@ -2255,13 +2255,13 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len1,len2 - integer(psb_ipk_),allocatable :: rrax(:,:) + integer(psb_ipk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - integer(psb_ipk_),allocatable :: tmp(:,:) + integer(psb_ipk_),allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: dim,err_act,err, dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 character(len=20) :: name @@ -2346,12 +2346,12 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - Integer(psb_long_int_k_),allocatable, intent(inout) :: rrax(:) + Integer(psb_long_int_k_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info integer(psb_long_int_k_), optional, intent(in) :: pad integer(psb_ipk_), optional, intent(in) :: lb ! ...Local Variables - Integer(psb_long_int_k_),allocatable :: tmp(:) + Integer(psb_long_int_k_),allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: dim, err_act, err,lb_, lbi, ub_ character(len=20) :: name logical, parameter :: debug=.false. @@ -2425,13 +2425,13 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len1,len2 - integer(psb_long_int_k_),allocatable :: rrax(:,:) + integer(psb_long_int_k_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info integer(psb_long_int_k_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - integer(psb_long_int_k_),allocatable :: tmp(:,:) + integer(psb_long_int_k_),allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: dim,err_act,err, dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 character(len=20) :: name @@ -2515,7 +2515,7 @@ Contains ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:),y(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:),y(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad character(len=20) :: name @@ -2558,8 +2558,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:),y(:) - Real(psb_spk_),allocatable, intent(inout) :: z(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:),y(:) + Real(psb_spk_),allocatable, accelerated, intent(inout) :: z(:) integer(psb_ipk_) :: info character(len=20) :: name integer(psb_ipk_) :: err_act, err @@ -2601,8 +2601,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:),y(:) - Real(psb_dpk_),allocatable, intent(inout) :: z(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:),y(:) + Real(psb_dpk_),allocatable, accelerated, intent(inout) :: z(:) integer(psb_ipk_) :: info character(len=20) :: name integer(psb_ipk_) :: err_act, err @@ -2644,8 +2644,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:),y(:) - complex(psb_spk_),allocatable, intent(inout) :: z(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:),y(:) + complex(psb_spk_),allocatable, accelerated, intent(inout) :: z(:) integer(psb_ipk_) :: info character(len=20) :: name integer(psb_ipk_) :: err_act, err @@ -2685,8 +2685,8 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_ipk_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:),y(:) - complex(psb_dpk_),allocatable, intent(inout) :: z(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:),y(:) + complex(psb_dpk_),allocatable, accelerated, intent(inout) :: z(:) integer(psb_ipk_) :: info character(len=20) :: name integer(psb_ipk_) :: err_act, err @@ -2723,7 +2723,7 @@ Contains Subroutine psb_smove_alloc1d(vin,vout,info) use psb_error_mod - real(psb_spk_), allocatable, intent(inout) :: vin(:),vout(:) + real(psb_spk_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2746,7 +2746,7 @@ Contains Subroutine psb_smove_alloc2d(vin,vout,info) use psb_error_mod - real(psb_spk_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + real(psb_spk_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2771,7 +2771,7 @@ Contains Subroutine psb_dmove_alloc1d(vin,vout,info) use psb_error_mod - real(psb_dpk_), allocatable, intent(inout) :: vin(:),vout(:) + real(psb_dpk_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2794,7 +2794,7 @@ Contains Subroutine psb_dmove_alloc2d(vin,vout,info) use psb_error_mod - real(psb_dpk_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + real(psb_dpk_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2819,7 +2819,7 @@ Contains Subroutine psb_cmove_alloc1d(vin,vout,info) use psb_error_mod - complex(psb_spk_), allocatable, intent(inout) :: vin(:),vout(:) + complex(psb_spk_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2842,7 +2842,7 @@ Contains Subroutine psb_cmove_alloc2d(vin,vout,info) use psb_error_mod - complex(psb_spk_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + complex(psb_spk_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2867,7 +2867,7 @@ Contains Subroutine psb_zmove_alloc1d(vin,vout,info) use psb_error_mod - complex(psb_dpk_), allocatable, intent(inout) :: vin(:),vout(:) + complex(psb_dpk_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2890,7 +2890,7 @@ Contains Subroutine psb_zmove_alloc2d(vin,vout,info) use psb_error_mod - complex(psb_dpk_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + complex(psb_dpk_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2915,7 +2915,7 @@ Contains Subroutine psb_imove_alloc1d(vin,vout,info) use psb_error_mod - integer(psb_ipk_), allocatable, intent(inout) :: vin(:),vout(:) + integer(psb_ipk_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2938,7 +2938,7 @@ Contains Subroutine psb_imove_alloc2d(vin,vout,info) use psb_error_mod - integer(psb_ipk_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + integer(psb_ipk_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2964,7 +2964,7 @@ Contains #if !defined(LONG_INTEGERS) Subroutine psb_i8move_alloc1d(vin,vout,info) use psb_error_mod - integer(psb_long_int_k_), allocatable, intent(inout) :: vin(:),vout(:) + integer(psb_long_int_k_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_ipk_), intent(out) :: info ! ! @@ -2987,7 +2987,7 @@ Contains Subroutine psb_i8move_alloc2d(vin,vout,info) use psb_error_mod - integer(psb_long_int_k_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + integer(psb_long_int_k_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_ipk_), intent(out) :: info ! ! @@ -3014,7 +3014,7 @@ Contains Subroutine psb_i4move_alloc1d(vin,vout,info) use psb_error_mod - integer(psb_mpik_), allocatable, intent(inout) :: vin(:),vout(:) + integer(psb_mpik_), allocatable, accelerated, intent(inout) :: vin(:),vout(:) integer(psb_mpik_), intent(out) :: info ! ! @@ -3037,7 +3037,7 @@ Contains Subroutine psb_i4move_alloc2d(vin,vout,info) use psb_error_mod - integer(psb_mpik_), allocatable, intent(inout) :: vin(:,:),vout(:,:) + integer(psb_mpik_), allocatable, accelerated, intent(inout) :: vin(:,:),vout(:,:) integer(psb_mpik_), intent(out) :: info ! ! @@ -3068,12 +3068,12 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len - Integer(psb_mpik_),allocatable, intent(inout) :: rrax(:) + Integer(psb_mpik_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_mpik_) :: info integer(psb_mpik_), optional, intent(in) :: pad integer(psb_mpik_), optional, intent(in) :: lb ! ...Local Variables - Integer(psb_mpik_),allocatable :: tmp(:) + Integer(psb_mpik_),allocatable, accelerated :: tmp(:) integer(psb_mpik_) :: dim, lb_, lbi, ub_ integer(psb_ipk_) :: err, err_act, ierr(5) character(len=20) :: name @@ -3145,13 +3145,13 @@ Contains use psb_error_mod ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1,len2 - integer(psb_mpik_),allocatable :: rrax(:,:) + integer(psb_mpik_),allocatable, accelerated :: rrax(:,:) integer(psb_mpik_) :: info integer(psb_mpik_), optional, intent(in) :: pad integer(psb_mpik_),Intent(in), optional :: lb1,lb2 ! ...Local Variables - integer(psb_mpik_),allocatable :: tmp(:,:) + integer(psb_mpik_),allocatable, accelerated :: tmp(:,:) integer(psb_mpik_) :: dim, dim2,lb1_, lb2_, ub1_, ub2_,& & lbi1, lbi2 integer(psb_ipk_) :: err,err_act, ierr(5) @@ -3230,7 +3230,7 @@ Contains Subroutine psb_rp1i1(len,rrax,info,pad,lb) ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len - integer(psb_ipk_),allocatable, intent(inout) :: rrax(:) + integer(psb_ipk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_mpik_), optional, intent(in) :: lb @@ -3252,7 +3252,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_ipk_),Intent(in) :: len2 - integer(psb_ipk_),allocatable :: rrax(:,:) + integer(psb_ipk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3266,7 +3266,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len2 integer(psb_ipk_),Intent(in) :: len1 - integer(psb_ipk_),allocatable :: rrax(:,:) + integer(psb_ipk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3280,7 +3280,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_mpik_),Intent(in) :: len2 - integer(psb_ipk_),allocatable :: rrax(:,:) + integer(psb_ipk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info integer(psb_ipk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3294,7 +3294,7 @@ Contains Subroutine psb_rp1s1(len,rrax,info,pad,lb) ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len - real(psb_spk_),allocatable, intent(inout) :: rrax(:) + real(psb_spk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info real(psb_spk_), optional, intent(in) :: pad integer(psb_mpik_), optional, intent(in) :: lb @@ -3315,7 +3315,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_ipk_),Intent(in) :: len2 - real(psb_spk_),allocatable :: rrax(:,:) + real(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3329,7 +3329,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len2 integer(psb_ipk_),Intent(in) :: len1 - real(psb_spk_),allocatable :: rrax(:,:) + real(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3343,7 +3343,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_mpik_),Intent(in) :: len2 - real(psb_spk_),allocatable :: rrax(:,:) + real(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3359,7 +3359,7 @@ Contains Subroutine psb_rp1d1(len,rrax,info,pad,lb) ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len - Real(psb_dpk_),allocatable, intent(inout) :: rrax(:) + Real(psb_dpk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info real(psb_dpk_), optional, intent(in) :: pad integer(psb_mpik_), optional, intent(in) :: lb @@ -3381,7 +3381,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_ipk_),Intent(in) :: len2 - Real(psb_dpk_),allocatable :: rrax(:,:) + Real(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3395,7 +3395,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len2 integer(psb_ipk_),Intent(in) :: len1 - Real(psb_dpk_),allocatable :: rrax(:,:) + Real(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3409,7 +3409,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_mpik_),Intent(in) :: len2 - Real(psb_dpk_),allocatable :: rrax(:,:) + Real(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info real(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3425,7 +3425,7 @@ Contains Subroutine psb_rp1c1(len,rrax,info,pad,lb) ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len - complex(psb_spk_),allocatable, intent(inout) :: rrax(:) + complex(psb_spk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info complex(psb_spk_), optional, intent(in) :: pad integer(psb_mpik_), optional, intent(in) :: lb @@ -3446,7 +3446,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_ipk_),Intent(in) :: len2 - complex(psb_spk_),allocatable :: rrax(:,:) + complex(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3460,7 +3460,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len2 integer(psb_ipk_),Intent(in) :: len1 - complex(psb_spk_),allocatable :: rrax(:,:) + complex(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3474,7 +3474,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_mpik_),Intent(in) :: len2 - complex(psb_spk_),allocatable :: rrax(:,:) + complex(psb_spk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_spk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3489,7 +3489,7 @@ Contains Subroutine psb_rp1z1(len,rrax,info,pad,lb) ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len - Complex(psb_dpk_),allocatable, intent(inout) :: rrax(:) + Complex(psb_dpk_),allocatable, accelerated, intent(inout) :: rrax(:) integer(psb_ipk_) :: info complex(psb_dpk_), optional, intent(in) :: pad integer(psb_mpik_), optional, intent(in) :: lb @@ -3510,7 +3510,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_ipk_),Intent(in) :: len2 - Complex(psb_dpk_),allocatable :: rrax(:,:) + Complex(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3524,7 +3524,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len2 integer(psb_ipk_),Intent(in) :: len1 - Complex(psb_dpk_),allocatable :: rrax(:,:) + Complex(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3538,7 +3538,7 @@ Contains ! ...Subroutine Arguments integer(psb_mpik_),Intent(in) :: len1 integer(psb_mpik_),Intent(in) :: len2 - Complex(psb_dpk_),allocatable :: rrax(:,:) + Complex(psb_dpk_),allocatable, accelerated :: rrax(:,:) integer(psb_ipk_) :: info complex(psb_dpk_), optional, intent(in) :: pad integer(psb_ipk_),Intent(in), optional :: lb1,lb2 @@ -3556,7 +3556,7 @@ Contains implicit none integer(psb_ipk_) :: nr,nc integer(psb_ipk_) :: a(:,:) - integer(psb_ipk_), allocatable, intent(out) :: at(:,:) + integer(psb_ipk_), allocatable, accelerated, intent(out) :: at(:,:) integer(psb_ipk_) :: i,j,ib, ii integer(psb_ipk_), parameter :: nb=32 @@ -3577,7 +3577,7 @@ Contains implicit none integer(psb_ipk_) :: nr,nc real(psb_dpk_) :: a(:,:) - real(psb_dpk_), allocatable, intent(out) :: at(:,:) + real(psb_dpk_), allocatable, accelerated, intent(out) :: at(:,:) integer(psb_ipk_) :: i,j,ib, ii integer(psb_ipk_), parameter :: nb=32 diff --git a/base/modules/psb_s_base_mat_mod.f90 b/base/modules/psb_s_base_mat_mod.f90 index 10d4e40b..afc9c598 100644 --- a/base/modules/psb_s_base_mat_mod.f90 +++ b/base/modules/psb_s_base_mat_mod.f90 @@ -127,11 +127,11 @@ module psb_s_base_mat_mod !> Number of nonzeros. integer(psb_ipk_) :: nnz !> Row indices. - integer(psb_ipk_), allocatable :: ia(:) + integer(psb_ipk_), allocatable, accelerated :: ia(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - real(psb_spk_), allocatable :: val(:) + real(psb_spk_), allocatable, accelerated :: val(:) integer, private :: sort_status=psb_unsorted_ diff --git a/base/modules/psb_s_base_vect_mod.f90 b/base/modules/psb_s_base_vect_mod.f90 index fffff342..9298c1c6 100644 --- a/base/modules/psb_s_base_vect_mod.f90 +++ b/base/modules/psb_s_base_vect_mod.f90 @@ -61,7 +61,7 @@ module psb_s_base_vect_mod !! type psb_s_base_vect_type !> Values. - real(psb_spk_), allocatable :: v(:) + real(psb_spk_), allocatable, accelerated :: v(:) contains ! ! Constructors/allocators @@ -398,7 +398,7 @@ contains class(psb_s_base_vect_type), intent(inout) :: x if (allocated(x%v)) x%v=szero - + call x%set_host() end subroutine s_base_zero @@ -614,7 +614,7 @@ contains integer(psb_ipk_) :: info if (.not.allocated(x%v)) return - call x%sync() + if (.not.x%is_host()) call x%sync() allocate(res(x%get_nrows()),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') @@ -637,8 +637,10 @@ contains real(psb_spk_), intent(in) :: val integer(psb_ipk_) :: info + x%v = val - + call x%set_host() + end subroutine s_base_set_scal ! @@ -675,6 +677,7 @@ contains else x%v = val end if + call x%set_host() end subroutine s_base_set_vect diff --git a/base/modules/psb_s_csr_mat_mod.f90 b/base/modules/psb_s_csr_mat_mod.f90 index d1e14658..ce70ce8b 100644 --- a/base/modules/psb_s_csr_mat_mod.f90 +++ b/base/modules/psb_s_csr_mat_mod.f90 @@ -54,11 +54,11 @@ module psb_s_csr_mat_mod type, extends(psb_s_base_sparse_mat) :: psb_s_csr_sparse_mat !> Pointers to beginning of rows in JA and VAL. - integer(psb_ipk_), allocatable :: irp(:) + integer(psb_ipk_), allocatable, accelerated :: irp(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - real(psb_spk_), allocatable :: val(:) + real(psb_spk_), allocatable, accelerated :: val(:) contains procedure, pass(a) :: is_by_rows => s_csr_is_by_rows diff --git a/base/modules/psb_s_tools_mod.f90 b/base/modules/psb_s_tools_mod.f90 index b0612cc8..99ebdf53 100644 --- a/base/modules/psb_s_tools_mod.f90 +++ b/base/modules/psb_s_tools_mod.f90 @@ -22,7 +22,7 @@ !!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS !!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR !!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSIESS +!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS !!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN !!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) !!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE diff --git a/base/modules/psb_z_base_mat_mod.f90 b/base/modules/psb_z_base_mat_mod.f90 index fcc375fe..190b356f 100644 --- a/base/modules/psb_z_base_mat_mod.f90 +++ b/base/modules/psb_z_base_mat_mod.f90 @@ -127,11 +127,11 @@ module psb_z_base_mat_mod !> Number of nonzeros. integer(psb_ipk_) :: nnz !> Row indices. - integer(psb_ipk_), allocatable :: ia(:) + integer(psb_ipk_), allocatable, accelerated :: ia(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - complex(psb_dpk_), allocatable :: val(:) + complex(psb_dpk_), allocatable, accelerated :: val(:) integer, private :: sort_status=psb_unsorted_ diff --git a/base/modules/psb_z_base_vect_mod.f90 b/base/modules/psb_z_base_vect_mod.f90 index d351d308..7100f6f0 100644 --- a/base/modules/psb_z_base_vect_mod.f90 +++ b/base/modules/psb_z_base_vect_mod.f90 @@ -61,7 +61,7 @@ module psb_z_base_vect_mod !! type psb_z_base_vect_type !> Values. - complex(psb_dpk_), allocatable :: v(:) + complex(psb_dpk_), allocatable, accelerated :: v(:) contains ! ! Constructors/allocators @@ -398,7 +398,7 @@ contains class(psb_z_base_vect_type), intent(inout) :: x if (allocated(x%v)) x%v=zzero - + call x%set_host() end subroutine z_base_zero @@ -614,7 +614,7 @@ contains integer(psb_ipk_) :: info if (.not.allocated(x%v)) return - call x%sync() + if (.not.x%is_host()) call x%sync() allocate(res(x%get_nrows()),stat=info) if (info /= 0) then call psb_errpush(psb_err_alloc_dealloc_,'base_get_vect') @@ -637,8 +637,10 @@ contains complex(psb_dpk_), intent(in) :: val integer(psb_ipk_) :: info + x%v = val - + call x%set_host() + end subroutine z_base_set_scal ! @@ -675,6 +677,7 @@ contains else x%v = val end if + call x%set_host() end subroutine z_base_set_vect diff --git a/base/modules/psb_z_csr_mat_mod.f90 b/base/modules/psb_z_csr_mat_mod.f90 index 20fde4c9..a1d3a38c 100644 --- a/base/modules/psb_z_csr_mat_mod.f90 +++ b/base/modules/psb_z_csr_mat_mod.f90 @@ -54,11 +54,11 @@ module psb_z_csr_mat_mod type, extends(psb_z_base_sparse_mat) :: psb_z_csr_sparse_mat !> Pointers to beginning of rows in JA and VAL. - integer(psb_ipk_), allocatable :: irp(:) + integer(psb_ipk_), allocatable, accelerated :: irp(:) !> Column indices. - integer(psb_ipk_), allocatable :: ja(:) + integer(psb_ipk_), allocatable, accelerated :: ja(:) !> Coefficient values. - complex(psb_dpk_), allocatable :: val(:) + complex(psb_dpk_), allocatable, accelerated :: val(:) contains procedure, pass(a) :: is_by_rows => z_csr_is_by_rows diff --git a/base/serial/impl/psb_c_base_mat_impl.F90 b/base/serial/impl/psb_c_base_mat_impl.F90 index 2d388290..24c08185 100644 --- a/base/serial/impl/psb_c_base_mat_impl.F90 +++ b/base/serial/impl/psb_c_base_mat_impl.F90 @@ -1186,7 +1186,7 @@ subroutine psb_c_base_cssm(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale complex(psb_spk_), intent(in), optional :: d(:) - complex(psb_spk_), allocatable :: tmp(:,:) + complex(psb_spk_), allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1322,7 +1322,7 @@ subroutine psb_c_base_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale complex(psb_spk_), intent(in), optional :: d(:) - complex(psb_spk_), allocatable :: tmp(:) + complex(psb_spk_), allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1558,7 +1558,7 @@ function psb_c_base_csnmi(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnmi' - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1597,7 +1597,7 @@ function psb_c_base_csnm1(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnm1' - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1791,7 +1791,7 @@ subroutine psb_c_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale class(psb_c_base_vect_type), intent(inout),optional :: d - complex(psb_spk_), allocatable :: tmp(:) + complex(psb_spk_), allocatable, accelerated :: tmp(:) class(psb_c_base_vect_type), allocatable :: tmpv integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ diff --git a/base/serial/impl/psb_c_coo_impl.f90 b/base/serial/impl/psb_c_coo_impl.f90 index 55bcd171..bfd7f925 100644 --- a/base/serial/impl/psb_c_coo_impl.f90 +++ b/base/serial/impl/psb_c_coo_impl.f90 @@ -519,7 +519,7 @@ subroutine psb_c_coo_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: tmp(:,:) + complex(psb_spk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -629,7 +629,7 @@ contains integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - complex(psb_spk_), allocatable :: acc(:) + complex(psb_spk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -875,7 +875,7 @@ subroutine psb_c_coo_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: tmp(:) + complex(psb_spk_), allocatable, accelerated :: tmp(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1413,7 +1413,7 @@ subroutine psb_c_coo_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - complex(psb_spk_), allocatable :: acc(:) + complex(psb_spk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1639,7 +1639,7 @@ function psb_c_coo_csnmi(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra, is_unit integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1700,7 +1700,7 @@ function psb_c_coo_csnm1(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1738,7 +1738,7 @@ subroutine psb_c_coo_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: vt(:) + complex(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1786,7 +1786,7 @@ subroutine psb_c_coo_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1833,7 +1833,7 @@ subroutine psb_c_coo_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: vt(:) + complex(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1881,7 +1881,7 @@ subroutine psb_c_coo_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -3242,7 +3242,6 @@ subroutine psb_c_fix_coo(a,info,idir) class(psb_c_coo_sparse_mat), intent(inout) :: a integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(in), optional :: idir - integer(psb_ipk_), allocatable :: iaux(:) !locals integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_, nra, nca integer(psb_ipk_) :: i,j, irw, icl, err_act @@ -3305,8 +3304,8 @@ subroutine psb_c_fix_coo_inner(nr,nc,nzin,dupl,ia,ja,val,nzout,info,idir) integer(psb_ipk_), intent(out) :: nzout, info integer(psb_ipk_), intent(in), optional :: idir !locals - integer(psb_ipk_), allocatable :: iaux(:), ias(:),jas(:), ix2(:) - complex(psb_spk_), allocatable :: vs(:) + integer(psb_ipk_), allocatable, accelerated :: iaux(:), ias(:),jas(:), ix2(:) + complex(psb_spk_), allocatable, accelerated :: vs(:) integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_ integer(psb_ipk_) :: i,j, irw, icl, err_act, ip,is, imx, k, ii integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/serial/impl/psb_c_csr_impl.f90 b/base/serial/impl/psb_c_csr_impl.f90 index e8097ba9..013d5b47 100644 --- a/base/serial/impl/psb_c_csr_impl.f90 +++ b/base/serial/impl/psb_c_csr_impl.f90 @@ -400,7 +400,7 @@ subroutine psb_c_csr_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - complex(psb_spk_), allocatable :: acc(:) + complex(psb_spk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -749,7 +749,7 @@ subroutine psb_c_csr_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: tmp(:) + complex(psb_spk_), allocatable, accelerated :: tmp(:) logical :: tra,ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1012,7 +1012,7 @@ subroutine psb_c_csr_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: tmp(:,:) + complex(psb_spk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1107,7 +1107,7 @@ contains complex(psb_spk_), intent(out) :: y(ldy,*) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - complex(psb_spk_), allocatable :: acc(:) + complex(psb_spk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -1316,7 +1316,7 @@ subroutine psb_c_csr_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: vt(:) + complex(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1365,7 +1365,7 @@ subroutine psb_c_csr_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1414,7 +1414,7 @@ subroutine psb_c_csr_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_spk_) :: acc - complex(psb_spk_), allocatable :: vt(:) + complex(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1466,7 +1466,7 @@ subroutine psb_c_csr_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -2661,7 +2661,7 @@ subroutine psb_c_cp_csr_from_coo(a,b,info) integer(psb_ipk_), intent(out) :: info type(psb_c_coo_sparse_mat) :: tmp - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k,ip,irw, err_act, ncl @@ -2736,7 +2736,7 @@ subroutine psb_c_cp_csr_to_coo(a,b,info) class(psb_c_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,irw, err_act @@ -2778,7 +2778,7 @@ subroutine psb_c_mv_csr_to_coo(a,b,info) class(psb_c_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,k,irw, err_act @@ -2823,7 +2823,7 @@ subroutine psb_c_mv_csr_from_coo(a,b,info) class(psb_c_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k, ip,irw, err_act, ncl @@ -3083,8 +3083,8 @@ contains type(psb_c_csr_sparse_mat), intent(inout) :: c integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: ma,na,mb,nb - integer(psb_ipk_), allocatable :: irow(:), idxs(:) - complex(psb_spk_), allocatable :: row(:) + integer(psb_ipk_), allocatable, accelerated :: irow(:), idxs(:) + complex(psb_spk_), allocatable, accelerated :: row(:) type(psb_int_heap) :: heap integer(psb_ipk_) :: i,j,k,irw,icl,icf, iret, & & nzc,nnzre, isz, ipb, irwsz, nrc, nze diff --git a/base/serial/impl/psb_d_base_mat_impl.F90 b/base/serial/impl/psb_d_base_mat_impl.F90 index 804372cc..a27e02ca 100644 --- a/base/serial/impl/psb_d_base_mat_impl.F90 +++ b/base/serial/impl/psb_d_base_mat_impl.F90 @@ -1186,7 +1186,7 @@ subroutine psb_d_base_cssm(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale real(psb_dpk_), intent(in), optional :: d(:) - real(psb_dpk_), allocatable :: tmp(:,:) + real(psb_dpk_), allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1322,7 +1322,7 @@ subroutine psb_d_base_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale real(psb_dpk_), intent(in), optional :: d(:) - real(psb_dpk_), allocatable :: tmp(:) + real(psb_dpk_), allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1558,7 +1558,7 @@ function psb_d_base_csnmi(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnmi' - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1597,7 +1597,7 @@ function psb_d_base_csnm1(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnm1' - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1791,7 +1791,7 @@ subroutine psb_d_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale class(psb_d_base_vect_type), intent(inout),optional :: d - real(psb_dpk_), allocatable :: tmp(:) + real(psb_dpk_), allocatable, accelerated :: tmp(:) class(psb_d_base_vect_type), allocatable :: tmpv integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ diff --git a/base/serial/impl/psb_d_coo_impl.f90 b/base/serial/impl/psb_d_coo_impl.f90 index fd874173..8d4f9f53 100644 --- a/base/serial/impl/psb_d_coo_impl.f90 +++ b/base/serial/impl/psb_d_coo_impl.f90 @@ -519,7 +519,7 @@ subroutine psb_d_coo_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: tmp(:,:) + real(psb_dpk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -629,7 +629,7 @@ contains integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - real(psb_dpk_), allocatable :: acc(:) + real(psb_dpk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -875,7 +875,7 @@ subroutine psb_d_coo_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: tmp(:) + real(psb_dpk_), allocatable, accelerated :: tmp(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1413,7 +1413,7 @@ subroutine psb_d_coo_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - real(psb_dpk_), allocatable :: acc(:) + real(psb_dpk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1639,7 +1639,7 @@ function psb_d_coo_csnmi(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra, is_unit integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1700,7 +1700,7 @@ function psb_d_coo_csnm1(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1738,7 +1738,7 @@ subroutine psb_d_coo_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1786,7 +1786,7 @@ subroutine psb_d_coo_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1833,7 +1833,7 @@ subroutine psb_d_coo_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1881,7 +1881,7 @@ subroutine psb_d_coo_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -3242,7 +3242,6 @@ subroutine psb_d_fix_coo(a,info,idir) class(psb_d_coo_sparse_mat), intent(inout) :: a integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(in), optional :: idir - integer(psb_ipk_), allocatable :: iaux(:) !locals integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_, nra, nca integer(psb_ipk_) :: i,j, irw, icl, err_act @@ -3305,8 +3304,8 @@ subroutine psb_d_fix_coo_inner(nr,nc,nzin,dupl,ia,ja,val,nzout,info,idir) integer(psb_ipk_), intent(out) :: nzout, info integer(psb_ipk_), intent(in), optional :: idir !locals - integer(psb_ipk_), allocatable :: iaux(:), ias(:),jas(:), ix2(:) - real(psb_dpk_), allocatable :: vs(:) + integer(psb_ipk_), allocatable, accelerated :: iaux(:), ias(:),jas(:), ix2(:) + real(psb_dpk_), allocatable, accelerated :: vs(:) integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_ integer(psb_ipk_) :: i,j, irw, icl, err_act, ip,is, imx, k, ii integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/serial/impl/psb_d_csr_impl.f90 b/base/serial/impl/psb_d_csr_impl.f90 index e83790f5..4616becd 100644 --- a/base/serial/impl/psb_d_csr_impl.f90 +++ b/base/serial/impl/psb_d_csr_impl.f90 @@ -400,7 +400,7 @@ subroutine psb_d_csr_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - real(psb_dpk_), allocatable :: acc(:) + real(psb_dpk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -749,7 +749,7 @@ subroutine psb_d_csr_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: tmp(:) + real(psb_dpk_), allocatable, accelerated :: tmp(:) logical :: tra,ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1012,7 +1012,7 @@ subroutine psb_d_csr_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: tmp(:,:) + real(psb_dpk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1107,7 +1107,7 @@ contains real(psb_dpk_), intent(out) :: y(ldy,*) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - real(psb_dpk_), allocatable :: acc(:) + real(psb_dpk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -1316,7 +1316,7 @@ subroutine psb_d_csr_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1365,7 +1365,7 @@ subroutine psb_d_csr_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1414,7 +1414,7 @@ subroutine psb_d_csr_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1466,7 +1466,7 @@ subroutine psb_d_csr_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -2661,7 +2661,7 @@ subroutine psb_d_cp_csr_from_coo(a,b,info) integer(psb_ipk_), intent(out) :: info type(psb_d_coo_sparse_mat) :: tmp - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k,ip,irw, err_act, ncl @@ -2736,7 +2736,7 @@ subroutine psb_d_cp_csr_to_coo(a,b,info) class(psb_d_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,irw, err_act @@ -2778,7 +2778,7 @@ subroutine psb_d_mv_csr_to_coo(a,b,info) class(psb_d_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,k,irw, err_act @@ -2823,7 +2823,7 @@ subroutine psb_d_mv_csr_from_coo(a,b,info) class(psb_d_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k, ip,irw, err_act, ncl @@ -3083,8 +3083,8 @@ contains type(psb_d_csr_sparse_mat), intent(inout) :: c integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: ma,na,mb,nb - integer(psb_ipk_), allocatable :: irow(:), idxs(:) - real(psb_dpk_), allocatable :: row(:) + integer(psb_ipk_), allocatable, accelerated :: irow(:), idxs(:) + real(psb_dpk_), allocatable, accelerated :: row(:) type(psb_int_heap) :: heap integer(psb_ipk_) :: i,j,k,irw,icl,icf, iret, & & nzc,nnzre, isz, ipb, irwsz, nrc, nze diff --git a/base/serial/impl/psb_s_base_mat_impl.F90 b/base/serial/impl/psb_s_base_mat_impl.F90 index 288ae128..1b849cac 100644 --- a/base/serial/impl/psb_s_base_mat_impl.F90 +++ b/base/serial/impl/psb_s_base_mat_impl.F90 @@ -1186,7 +1186,7 @@ subroutine psb_s_base_cssm(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale real(psb_spk_), intent(in), optional :: d(:) - real(psb_spk_), allocatable :: tmp(:,:) + real(psb_spk_), allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1322,7 +1322,7 @@ subroutine psb_s_base_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale real(psb_spk_), intent(in), optional :: d(:) - real(psb_spk_), allocatable :: tmp(:) + real(psb_spk_), allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1558,7 +1558,7 @@ function psb_s_base_csnmi(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnmi' - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1597,7 +1597,7 @@ function psb_s_base_csnm1(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnm1' - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1791,7 +1791,7 @@ subroutine psb_s_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale class(psb_s_base_vect_type), intent(inout),optional :: d - real(psb_spk_), allocatable :: tmp(:) + real(psb_spk_), allocatable, accelerated :: tmp(:) class(psb_s_base_vect_type), allocatable :: tmpv integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ diff --git a/base/serial/impl/psb_s_coo_impl.f90 b/base/serial/impl/psb_s_coo_impl.f90 index e06fc148..e96ace8d 100644 --- a/base/serial/impl/psb_s_coo_impl.f90 +++ b/base/serial/impl/psb_s_coo_impl.f90 @@ -519,7 +519,7 @@ subroutine psb_s_coo_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: tmp(:,:) + real(psb_spk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -629,7 +629,7 @@ contains integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - real(psb_spk_), allocatable :: acc(:) + real(psb_spk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -875,7 +875,7 @@ subroutine psb_s_coo_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: tmp(:) + real(psb_spk_), allocatable, accelerated :: tmp(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1413,7 +1413,7 @@ subroutine psb_s_coo_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - real(psb_spk_), allocatable :: acc(:) + real(psb_spk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1639,7 +1639,7 @@ function psb_s_coo_csnmi(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra, is_unit integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1700,7 +1700,7 @@ function psb_s_coo_csnm1(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1738,7 +1738,7 @@ subroutine psb_s_coo_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1786,7 +1786,7 @@ subroutine psb_s_coo_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1833,7 +1833,7 @@ subroutine psb_s_coo_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1881,7 +1881,7 @@ subroutine psb_s_coo_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -3242,7 +3242,6 @@ subroutine psb_s_fix_coo(a,info,idir) class(psb_s_coo_sparse_mat), intent(inout) :: a integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(in), optional :: idir - integer(psb_ipk_), allocatable :: iaux(:) !locals integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_, nra, nca integer(psb_ipk_) :: i,j, irw, icl, err_act @@ -3305,8 +3304,8 @@ subroutine psb_s_fix_coo_inner(nr,nc,nzin,dupl,ia,ja,val,nzout,info,idir) integer(psb_ipk_), intent(out) :: nzout, info integer(psb_ipk_), intent(in), optional :: idir !locals - integer(psb_ipk_), allocatable :: iaux(:), ias(:),jas(:), ix2(:) - real(psb_spk_), allocatable :: vs(:) + integer(psb_ipk_), allocatable, accelerated :: iaux(:), ias(:),jas(:), ix2(:) + real(psb_spk_), allocatable, accelerated :: vs(:) integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_ integer(psb_ipk_) :: i,j, irw, icl, err_act, ip,is, imx, k, ii integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/serial/impl/psb_s_csr_impl.f90 b/base/serial/impl/psb_s_csr_impl.f90 index bfdcee1f..f6de8687 100644 --- a/base/serial/impl/psb_s_csr_impl.f90 +++ b/base/serial/impl/psb_s_csr_impl.f90 @@ -400,7 +400,7 @@ subroutine psb_s_csr_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - real(psb_spk_), allocatable :: acc(:) + real(psb_spk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -749,7 +749,7 @@ subroutine psb_s_csr_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: tmp(:) + real(psb_spk_), allocatable, accelerated :: tmp(:) logical :: tra,ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1012,7 +1012,7 @@ subroutine psb_s_csr_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: tmp(:,:) + real(psb_spk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1107,7 +1107,7 @@ contains real(psb_spk_), intent(out) :: y(ldy,*) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - real(psb_spk_), allocatable :: acc(:) + real(psb_spk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -1316,7 +1316,7 @@ subroutine psb_s_csr_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1365,7 +1365,7 @@ subroutine psb_s_csr_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1414,7 +1414,7 @@ subroutine psb_s_csr_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1466,7 +1466,7 @@ subroutine psb_s_csr_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_spk_) :: acc - real(psb_spk_), allocatable :: vt(:) + real(psb_spk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -2661,7 +2661,7 @@ subroutine psb_s_cp_csr_from_coo(a,b,info) integer(psb_ipk_), intent(out) :: info type(psb_s_coo_sparse_mat) :: tmp - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k,ip,irw, err_act, ncl @@ -2736,7 +2736,7 @@ subroutine psb_s_cp_csr_to_coo(a,b,info) class(psb_s_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,irw, err_act @@ -2778,7 +2778,7 @@ subroutine psb_s_mv_csr_to_coo(a,b,info) class(psb_s_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,k,irw, err_act @@ -2823,7 +2823,7 @@ subroutine psb_s_mv_csr_from_coo(a,b,info) class(psb_s_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k, ip,irw, err_act, ncl @@ -3083,8 +3083,8 @@ contains type(psb_s_csr_sparse_mat), intent(inout) :: c integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: ma,na,mb,nb - integer(psb_ipk_), allocatable :: irow(:), idxs(:) - real(psb_spk_), allocatable :: row(:) + integer(psb_ipk_), allocatable, accelerated :: irow(:), idxs(:) + real(psb_spk_), allocatable, accelerated :: row(:) type(psb_int_heap) :: heap integer(psb_ipk_) :: i,j,k,irw,icl,icf, iret, & & nzc,nnzre, isz, ipb, irwsz, nrc, nze diff --git a/base/serial/impl/psb_z_base_mat_impl.F90 b/base/serial/impl/psb_z_base_mat_impl.F90 index 42e72e5d..f3cd76aa 100644 --- a/base/serial/impl/psb_z_base_mat_impl.F90 +++ b/base/serial/impl/psb_z_base_mat_impl.F90 @@ -1186,7 +1186,7 @@ subroutine psb_z_base_cssm(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale complex(psb_dpk_), intent(in), optional :: d(:) - complex(psb_dpk_), allocatable :: tmp(:,:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:,:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1322,7 +1322,7 @@ subroutine psb_z_base_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale complex(psb_dpk_), intent(in), optional :: d(:) - complex(psb_dpk_), allocatable :: tmp(:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:) integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ integer(psb_ipk_) :: ierr(5) @@ -1558,7 +1558,7 @@ function psb_z_base_csnmi(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnmi' - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1597,7 +1597,7 @@ function psb_z_base_csnm1(a) result(res) integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) character(len=20) :: name='csnm1' - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical, parameter :: debug=.false. @@ -1791,7 +1791,7 @@ subroutine psb_z_base_vect_cssv(alpha,a,x,beta,y,info,trans,scale,d) character, optional, intent(in) :: trans, scale class(psb_z_base_vect_type), intent(inout),optional :: d - complex(psb_dpk_), allocatable :: tmp(:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:) class(psb_z_base_vect_type), allocatable :: tmpv integer(psb_ipk_) :: err_act, nar,nac,nc, i character(len=1) :: scale_ diff --git a/base/serial/impl/psb_z_coo_impl.f90 b/base/serial/impl/psb_z_coo_impl.f90 index cd926959..79b1ef63 100644 --- a/base/serial/impl/psb_z_coo_impl.f90 +++ b/base/serial/impl/psb_z_coo_impl.f90 @@ -519,7 +519,7 @@ subroutine psb_z_coo_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: tmp(:,:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -629,7 +629,7 @@ contains integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - complex(psb_dpk_), allocatable :: acc(:) + complex(psb_dpk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -875,7 +875,7 @@ subroutine psb_z_coo_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: tmp(:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1413,7 +1413,7 @@ subroutine psb_z_coo_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - complex(psb_dpk_), allocatable :: acc(:) + complex(psb_dpk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1639,7 +1639,7 @@ function psb_z_coo_csnmi(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra, is_unit integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1700,7 +1700,7 @@ function psb_z_coo_csnm1(a) result(res) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc, info real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1738,7 +1738,7 @@ subroutine psb_z_coo_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: vt(:) + complex(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1786,7 +1786,7 @@ subroutine psb_z_coo_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1833,7 +1833,7 @@ subroutine psb_z_coo_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: vt(:) + complex(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1881,7 +1881,7 @@ subroutine psb_z_coo_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -3242,7 +3242,6 @@ subroutine psb_z_fix_coo(a,info,idir) class(psb_z_coo_sparse_mat), intent(inout) :: a integer(psb_ipk_), intent(out) :: info integer(psb_ipk_), intent(in), optional :: idir - integer(psb_ipk_), allocatable :: iaux(:) !locals integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_, nra, nca integer(psb_ipk_) :: i,j, irw, icl, err_act @@ -3305,8 +3304,8 @@ subroutine psb_z_fix_coo_inner(nr,nc,nzin,dupl,ia,ja,val,nzout,info,idir) integer(psb_ipk_), intent(out) :: nzout, info integer(psb_ipk_), intent(in), optional :: idir !locals - integer(psb_ipk_), allocatable :: iaux(:), ias(:),jas(:), ix2(:) - complex(psb_dpk_), allocatable :: vs(:) + integer(psb_ipk_), allocatable, accelerated :: iaux(:), ias(:),jas(:), ix2(:) + complex(psb_dpk_), allocatable, accelerated :: vs(:) integer(psb_ipk_) :: nza, nzl,iret,idir_, dupl_ integer(psb_ipk_) :: i,j, irw, icl, err_act, ip,is, imx, k, ii integer(psb_ipk_) :: debug_level, debug_unit diff --git a/base/serial/impl/psb_z_csr_impl.f90 b/base/serial/impl/psb_z_csr_impl.f90 index 62b3bb65..6c386232 100644 --- a/base/serial/impl/psb_z_csr_impl.f90 +++ b/base/serial/impl/psb_z_csr_impl.f90 @@ -400,7 +400,7 @@ subroutine psb_z_csr_csmm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc - complex(psb_dpk_), allocatable :: acc(:) + complex(psb_dpk_), allocatable, accelerated :: acc(:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -749,7 +749,7 @@ subroutine psb_z_csr_cssv(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: tmp(:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:) logical :: tra,ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1012,7 +1012,7 @@ subroutine psb_z_csr_cssm(alpha,a,x,beta,y,info,trans) character :: trans_ integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: tmp(:,:) + complex(psb_dpk_), allocatable, accelerated :: tmp(:,:) logical :: tra, ctra integer(psb_ipk_) :: err_act integer(psb_ipk_) :: ierr(5) @@ -1107,7 +1107,7 @@ contains complex(psb_dpk_), intent(out) :: y(ldy,*) integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: i,j,k,m, ir, jc - complex(psb_dpk_), allocatable :: acc(:) + complex(psb_dpk_), allocatable, accelerated :: acc(:) info = psb_success_ allocate(acc(nc), stat=info) @@ -1316,7 +1316,7 @@ subroutine psb_z_csr_rowsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: vt(:) + complex(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1365,7 +1365,7 @@ subroutine psb_z_csr_arwsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1414,7 +1414,7 @@ subroutine psb_z_csr_colsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc complex(psb_dpk_) :: acc - complex(psb_dpk_), allocatable :: vt(:) + complex(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -1466,7 +1466,7 @@ subroutine psb_z_csr_aclsum(d,a) integer(psb_ipk_) :: i,j,k,m,n, nnz, ir, jc, nc real(psb_dpk_) :: acc - real(psb_dpk_), allocatable :: vt(:) + real(psb_dpk_), allocatable, accelerated :: vt(:) logical :: tra integer(psb_ipk_) :: err_act, info integer(psb_ipk_) :: ierr(5) @@ -2661,7 +2661,7 @@ subroutine psb_z_cp_csr_from_coo(a,b,info) integer(psb_ipk_), intent(out) :: info type(psb_z_coo_sparse_mat) :: tmp - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k,ip,irw, err_act, ncl @@ -2736,7 +2736,7 @@ subroutine psb_z_cp_csr_to_coo(a,b,info) class(psb_z_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,irw, err_act @@ -2778,7 +2778,7 @@ subroutine psb_z_mv_csr_to_coo(a,b,info) class(psb_z_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc,i,j,k,irw, err_act @@ -2823,7 +2823,7 @@ subroutine psb_z_mv_csr_from_coo(a,b,info) class(psb_z_coo_sparse_mat), intent(inout) :: b integer(psb_ipk_), intent(out) :: info - integer(psb_ipk_), allocatable :: itemp(:) + integer(psb_ipk_), allocatable, accelerated :: itemp(:) !locals logical :: rwshr_ integer(psb_ipk_) :: nza, nr, nc, i,j,k, ip,irw, err_act, ncl @@ -3083,8 +3083,8 @@ contains type(psb_z_csr_sparse_mat), intent(inout) :: c integer(psb_ipk_), intent(out) :: info integer(psb_ipk_) :: ma,na,mb,nb - integer(psb_ipk_), allocatable :: irow(:), idxs(:) - complex(psb_dpk_), allocatable :: row(:) + integer(psb_ipk_), allocatable, accelerated :: irow(:), idxs(:) + complex(psb_dpk_), allocatable, accelerated :: row(:) type(psb_int_heap) :: heap integer(psb_ipk_) :: i,j,k,irw,icl,icf, iret, & & nzc,nnzre, isz, ipb, irwsz, nrc, nze