diff --git a/base/comm/internals/psi_cswapdata_a.F90 b/base/comm/internals/psi_cswapdata_a.F90 index 715b674e..153fa4d1 100644 --- a/base/comm/internals/psi_cswapdata_a.F90 +++ b/base/comm/internals/psi_cswapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_cswapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_cswapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_cswaptran_a.F90 b/base/comm/internals/psi_cswaptran_a.F90 index a7f2c687..bfb192c1 100644 --- a/base/comm/internals/psi_cswaptran_a.F90 +++ b/base/comm/internals/psi_cswaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_ctranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_ctranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. complex(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_dswapdata_a.F90 b/base/comm/internals/psi_dswapdata_a.F90 index aff32517..4422597e 100644 --- a/base/comm/internals/psi_dswapdata_a.F90 +++ b/base/comm/internals/psi_dswapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_dswapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_dswapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_dswaptran_a.F90 b/base/comm/internals/psi_dswaptran_a.F90 index ed13df40..a5b3fbfc 100644 --- a/base/comm/internals/psi_dswaptran_a.F90 +++ b/base/comm/internals/psi_dswaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_dtranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_dtranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. real(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_eswapdata_a.F90 b/base/comm/internals/psi_eswapdata_a.F90 index 6a644563..74a5aea8 100644 --- a/base/comm/internals/psi_eswapdata_a.F90 +++ b/base/comm/internals/psi_eswapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_eswapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_eswapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_eswaptran_a.F90 b/base/comm/internals/psi_eswaptran_a.F90 index 78ed7d8b..e10b574c 100644 --- a/base/comm/internals/psi_eswaptran_a.F90 +++ b/base/comm/internals/psi_eswaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_etranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_etranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. integer(psb_epk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_i2swapdata_a.F90 b/base/comm/internals/psi_i2swapdata_a.F90 index 42b4498e..75e0c870 100644 --- a/base/comm/internals/psi_i2swapdata_a.F90 +++ b/base/comm/internals/psi_i2swapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_i2swapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_i2swapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_i2swaptran_a.F90 b/base/comm/internals/psi_i2swaptran_a.F90 index f94bf29e..0615e2ba 100644 --- a/base/comm/internals/psi_i2swaptran_a.F90 +++ b/base/comm/internals/psi_i2swaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_i2tranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_i2tranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. integer(psb_i2pk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_mswapdata_a.F90 b/base/comm/internals/psi_mswapdata_a.F90 index e71f3a52..01277d8e 100644 --- a/base/comm/internals/psi_mswapdata_a.F90 +++ b/base/comm/internals/psi_mswapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_mswapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_mswapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_mswaptran_a.F90 b/base/comm/internals/psi_mswaptran_a.F90 index 3a780142..ee8c1d21 100644 --- a/base/comm/internals/psi_mswaptran_a.F90 +++ b/base/comm/internals/psi_mswaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_mtranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_mtranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. integer(psb_mpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_sswapdata_a.F90 b/base/comm/internals/psi_sswapdata_a.F90 index 044dc141..47830330 100644 --- a/base/comm/internals/psi_sswapdata_a.F90 +++ b/base/comm/internals/psi_sswapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_sswapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_sswapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_sswaptran_a.F90 b/base/comm/internals/psi_sswaptran_a.F90 index 434cec4c..ae54ee21 100644 --- a/base/comm/internals/psi_sswaptran_a.F90 +++ b/base/comm/internals/psi_sswaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_stranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_stranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. real(psb_spk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_zswapdata_a.F90 b/base/comm/internals/psi_zswapdata_a.F90 index 2d265c76..49617d2d 100644 --- a/base/comm/internals/psi_zswapdata_a.F90 +++ b/base/comm/internals/psi_zswapdata_a.F90 @@ -191,7 +191,7 @@ subroutine psi_zswapidxm(ctxt,icomm,flag,n,beta,y,idx, & logical, parameter :: usersend=.false. complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -676,7 +676,7 @@ subroutine psi_zswapidxv(ctxt,icomm,flag,beta,y,idx, & logical, parameter :: usersend=.false. complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/base/comm/internals/psi_zswaptran_a.F90 b/base/comm/internals/psi_zswaptran_a.F90 index 508d4045..586fa11b 100644 --- a/base/comm/internals/psi_zswaptran_a.F90 +++ b/base/comm/internals/psi_zswaptran_a.F90 @@ -195,7 +195,7 @@ subroutine psi_ztranidxm(ctxt,icomm,flag,n,beta,y,idx,& logical, parameter :: usersend=.false. complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ @@ -688,7 +688,7 @@ subroutine psi_ztranidxv(ctxt,icomm,flag,beta,y,idx,& logical, parameter :: usersend=.false. complex(psb_dpk_), pointer, dimension(:) :: sndbuf, rcvbuf - volatile :: sndbuf, rcvbuf + !volatile :: sndbuf, rcvbuf character(len=20) :: name info=psb_success_ diff --git a/cuda/psb_c_cuda_vect_mod.F90 b/cuda/psb_c_cuda_vect_mod.F90 index 38480e34..2c2a4f61 100644 --- a/cuda/psb_c_cuda_vect_mod.F90 +++ b/cuda/psb_c_cuda_vect_mod.F90 @@ -30,7 +30,7 @@ ! -module psb_c_cuda_vect_mod +module psb_c_cuda_vect_mod use iso_c_binding use psb_const_mod use psb_error_mod diff --git a/ext/psb_c_ell_mat_mod.f90 b/ext/psb_c_ell_mat_mod.f90 index 8eaf01ba..6954946f 100644 --- a/ext/psb_c_ell_mat_mod.f90 +++ b/ext/psb_c_ell_mat_mod.f90 @@ -94,6 +94,7 @@ module psb_c_ell_mat_mod procedure, pass(a) :: print => psb_c_ell_print procedure, pass(a) :: free => c_ell_free procedure, pass(a) :: mold => psb_c_ell_mold + procedure, pass(a) :: get_nrm => c_ell_get_nrm end type psb_c_ell_sparse_mat @@ -459,6 +460,13 @@ contains res = 'ELL' end function c_ell_get_fmt + function c_ell_get_nrm(a) result(res) + implicit none + class(psb_c_ell_sparse_mat), intent(in) :: a + integer(psb_ipk_) :: res + res = size(a%val,2) + end function c_ell_get_nrm + function c_ell_get_nzeros(a) result(res) implicit none class(psb_c_ell_sparse_mat), intent(in) :: a diff --git a/ext/psb_d_ell_mat_mod.f90 b/ext/psb_d_ell_mat_mod.f90 index 3e34d63e..cc945baf 100644 --- a/ext/psb_d_ell_mat_mod.f90 +++ b/ext/psb_d_ell_mat_mod.f90 @@ -94,6 +94,7 @@ module psb_d_ell_mat_mod procedure, pass(a) :: print => psb_d_ell_print procedure, pass(a) :: free => d_ell_free procedure, pass(a) :: mold => psb_d_ell_mold + procedure, pass(a) :: get_nrm => d_ell_get_nrm end type psb_d_ell_sparse_mat @@ -459,6 +460,13 @@ contains res = 'ELL' end function d_ell_get_fmt + function d_ell_get_nrm(a) result(res) + implicit none + class(psb_d_ell_sparse_mat), intent(in) :: a + integer(psb_ipk_) :: res + res = size(a%val,2) + end function d_ell_get_nrm + function d_ell_get_nzeros(a) result(res) implicit none class(psb_d_ell_sparse_mat), intent(in) :: a diff --git a/ext/psb_s_ell_mat_mod.f90 b/ext/psb_s_ell_mat_mod.f90 index 5f09913a..9e3dd8b4 100644 --- a/ext/psb_s_ell_mat_mod.f90 +++ b/ext/psb_s_ell_mat_mod.f90 @@ -94,6 +94,7 @@ module psb_s_ell_mat_mod procedure, pass(a) :: print => psb_s_ell_print procedure, pass(a) :: free => s_ell_free procedure, pass(a) :: mold => psb_s_ell_mold + procedure, pass(a) :: get_nrm => s_ell_get_nrm end type psb_s_ell_sparse_mat @@ -459,6 +460,13 @@ contains res = 'ELL' end function s_ell_get_fmt + function s_ell_get_nrm(a) result(res) + implicit none + class(psb_s_ell_sparse_mat), intent(in) :: a + integer(psb_ipk_) :: res + res = size(a%val,2) + end function s_ell_get_nrm + function s_ell_get_nzeros(a) result(res) implicit none class(psb_s_ell_sparse_mat), intent(in) :: a diff --git a/ext/psb_z_ell_mat_mod.f90 b/ext/psb_z_ell_mat_mod.f90 index 52dc62b1..0e1f0e00 100644 --- a/ext/psb_z_ell_mat_mod.f90 +++ b/ext/psb_z_ell_mat_mod.f90 @@ -94,6 +94,7 @@ module psb_z_ell_mat_mod procedure, pass(a) :: print => psb_z_ell_print procedure, pass(a) :: free => z_ell_free procedure, pass(a) :: mold => psb_z_ell_mold + procedure, pass(a) :: get_nrm => z_ell_get_nrm end type psb_z_ell_sparse_mat @@ -459,6 +460,13 @@ contains res = 'ELL' end function z_ell_get_fmt + function z_ell_get_nrm(a) result(res) + implicit none + class(psb_z_ell_sparse_mat), intent(in) :: a + integer(psb_ipk_) :: res + res = size(a%val,2) + end function z_ell_get_nrm + function z_ell_get_nzeros(a) result(res) implicit none class(psb_z_ell_sparse_mat), intent(in) :: a