|
|
|
@ -40,8 +40,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end type psb_d_oacc_csr_sparse_mat
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_mold(a,b,info)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_d_base_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_mold(a,b,info)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(in) :: a
|
|
|
|
|
class(psb_d_base_sparse_mat), intent(inout), allocatable :: b
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
@ -49,8 +48,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_cp_from_fmt(a,b,info)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_d_base_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_cp_from_fmt(a,b,info)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
class(psb_d_base_sparse_mat), intent(in) :: b
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
@ -58,8 +56,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_mv_from_coo(a,b,info)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_d_coo_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_mv_from_coo(a,b,info)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
class(psb_d_coo_sparse_mat), intent(inout) :: b
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
@ -67,8 +64,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_mv_from_fmt(a,b,info)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_d_base_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_mv_from_fmt(a,b,info)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
class(psb_d_base_sparse_mat), intent(inout) :: b
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
@ -76,8 +72,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_vect_mv(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_dpk_, psb_d_base_vect_type, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_vect_mv(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(in) :: a
|
|
|
|
|
real(psb_dpk_), intent(in) :: alpha, beta
|
|
|
|
|
class(psb_d_base_vect_type), intent(inout) :: x, y
|
|
|
|
@ -87,8 +82,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_inner_vect_sv(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_dpk_, psb_d_base_vect_type, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_inner_vect_sv(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(in) :: a
|
|
|
|
|
real(psb_dpk_), intent(in) :: alpha, beta
|
|
|
|
|
class(psb_d_base_vect_type), intent(inout) :: x,y
|
|
|
|
@ -98,8 +92,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_csmm(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_dpk_, psb_d_base_vect_type, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_csmm(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(in) :: a
|
|
|
|
|
real(psb_dpk_), intent(in) :: alpha, beta, x(:,:)
|
|
|
|
|
real(psb_dpk_), intent(inout) :: y(:,:)
|
|
|
|
@ -109,8 +102,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_csmv(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_dpk_, psb_d_base_vect_type, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_csmv(alpha, a, x, beta, y, info, trans)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(in) :: a
|
|
|
|
|
real(psb_dpk_), intent(in) :: alpha, beta, x(:)
|
|
|
|
|
real(psb_dpk_), intent(inout) :: y(:)
|
|
|
|
@ -120,8 +112,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_scals(d, a, info)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_dpk_, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_scals(d, a, info)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
real(psb_dpk_), intent(in) :: d
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
@ -129,8 +120,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_scal(d,a,info,side)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_dpk_, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_scal(d,a,info,side)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
real(psb_dpk_), intent(in) :: d(:)
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
@ -139,16 +129,14 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_reallocate_nz(nz,a)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_reallocate_nz(nz,a)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
integer(psb_ipk_), intent(in) :: nz
|
|
|
|
|
end subroutine psb_d_oacc_csr_reallocate_nz
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_allocate_mnnz(m,n,a,nz)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_allocate_mnnz(m,n,a,nz)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
integer(psb_ipk_), intent(in) :: m,n
|
|
|
|
|
integer(psb_ipk_), intent(in), optional :: nz
|
|
|
|
@ -156,8 +144,7 @@ module psb_d_oacc_csr_mat_mod
|
|
|
|
|
end interface
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
subroutine psb_d_oacc_csr_cp_from_coo(a,b,info)
|
|
|
|
|
import :: psb_d_oacc_csr_sparse_mat, psb_d_coo_sparse_mat, psb_ipk_
|
|
|
|
|
module subroutine psb_d_oacc_csr_cp_from_coo(a,b,info)
|
|
|
|
|
class(psb_d_oacc_csr_sparse_mat), intent(inout) :: a
|
|
|
|
|
class(psb_d_coo_sparse_mat), intent(in) :: b
|
|
|
|
|
integer(psb_ipk_), intent(out) :: info
|
|
|
|
|