OpenACCClass Module

Thic module defines some matrix-vector operations using OpenACC. But, not tested fully, so unrecommended.

No derived types are defined in this module.



Subroutines

public subroutine acc_crs_matvec(CRS_value, CRS_col, CRS_row_ptr, Old_vector, new_vector)

x_i = A_ij b_j

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: CRS_value(:)
integer(kind=int32), intent(in) :: CRS_col(:)
integer(kind=int32), intent(in) :: CRS_row_ptr(:)
real(kind=real64), intent(in) :: Old_vector(:)
real(kind=real64), intent(inout), allocatable :: new_vector(:)

public subroutine acc_bicgstab_CRS(a, ptr_i, index_j, x, b, itrmax, er, relative_er, debug)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(inout) :: a(:)
integer(kind=int32), intent(inout) :: ptr_i(:)
integer(kind=int32), intent(inout) :: index_j(:)
real(kind=real64), intent(inout) :: x(:)
real(kind=real64), intent(inout) :: b(:)
integer(kind=int32), intent(inout) :: itrmax
real(kind=real64), intent(inout) :: er
real(kind=real64), intent(in), optional :: relative_er
logical, intent(in), optional :: debug

public subroutine acc_ref_bicgstab_real64(a, b, x, n, itrmax, er)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: a(n,n)
real(kind=real64), intent(in) :: b(n)
real(kind=real64), intent(inout) :: x(n)
integer(kind=int32), intent(in) :: n
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in) :: er