SparseClass Module



Interfaces

interface

Please edit "src/SparseClass/SparseClass.c" for 'c_dot_product' 'crs_spmv_real32' 'crs_spmv_real64'

  • public subroutine c_dot_product(a, b, n, ret) bind(C, Name='c_dot_product')

    Arguments

    Type IntentOptional Attributes Name
    real(kind=c_double), intent(in) :: a(n)
    real(kind=c_double), intent(in) :: b(n)
    integer(kind=C_size_t), value :: n
    real(kind=c_double), intent(out) :: ret(1)

interface

  • public subroutine crs_spmv_real32(val, row_ptr, col_idx, old_vector, new_vector, n, col_size) bind(C, Name="crs_spmv_real32")

    Arguments

    Type IntentOptional Attributes Name
    real(kind=C_float), intent(in) :: val(n)
    integer(kind=C_int64_t), intent(in) :: row_ptr(n+1)
    integer(kind=C_int), intent(in) :: col_idx(col_size)
    real(kind=C_float), intent(in) :: old_vector(n)
    real(kind=C_float), intent(inout) :: new_vector(n)
    integer(kind=C_size_t), Value :: n
    integer(kind=C_size_t), Value :: col_size

interface

  • public subroutine crs_spmv_real64(val, row_ptr, col_idx, old_vector, new_vector, n, col_size) bind(C, Name="crs_spmv_real64")

    Arguments

    Type IntentOptional Attributes Name
    real(kind=C_double), intent(in) :: val(n)
    integer(kind=C_int64_t), intent(in) :: row_ptr(n+1)
    integer(kind=C_int), intent(in) :: col_idx(col_size)
    real(kind=C_double), intent(in) :: old_vector(n)
    real(kind=C_double), intent(inout) :: new_vector(n)
    integer(kind=C_size_t), Value :: n
    integer(kind=C_size_t), Value :: col_size

interface

  • public subroutine c_sparse_matvec(row_ptr, col_idx, val, x, n, n_col, ret) bind(C, Name='c_sparse_matvec')

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=c_int), intent(in) :: row_ptr(n)
    integer(kind=c_int), intent(in) :: col_idx(n_col)
    real(kind=c_double), intent(in) :: val(n-1)
    real(kind=c_double), intent(in) :: x(n-1)
    integer(kind=C_size_t), value :: n
    integer(kind=C_size_t), value :: n_col
    real(kind=c_double), intent(out) :: ret(n-1)

public interface sinc

  • public function sinc_complex64(x) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=real64), intent(in) :: x

    Return Value complex(kind=real64)

  • public function sinc_real64(x) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: x

    Return Value real(kind=real64)

  • public function sinc_real64_vec(x) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: x(:)

    Return Value real(kind=real64), allocatable, (:)

public interface operator(+)

  • public pure function addCRS_and_CRS(CRS1, CRS2) result(CRS_ret)

    $OMP parallel do private(col_2,col_1) $OMP atomic $OMP end parallel do

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: CRS1
    type(CRS_), intent(in) :: CRS2

    Return Value type(CRS_)

public interface operator(-)

  • public pure function diffCRS_and_CRS(CRS1, CRS2) result(CRS_ret)

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: CRS1
    type(CRS_), intent(in) :: CRS2

    Return Value type(CRS_)

public interface LAPACK_EIG

  • public subroutine LAPACK_EIG_DENSE(A, B, x, lambda, debug)

    INPUT INPUT/OUTPUT INPUT OUTPUT

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: A(:,:)
    real(kind=real64), intent(in) :: B(:,:)
    real(kind=real64), intent(inout), allocatable :: x(:,:)
    real(kind=real64), intent(inout), allocatable :: lambda(:)
    logical, intent(in), optional :: debug
  • public subroutine LAPACK_EIG_SPARSE(A, B, x, lambda, debug)

    INPUT INPUT/OUTPUT INPUT OUTPUT

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: A
    type(CRS_), intent(in) :: B
    real(kind=real64), intent(inout), allocatable :: x(:,:)
    real(kind=real64), intent(inout), allocatable :: lambda(:)
    logical, intent(in), optional :: debug

public interface operator(*)

  • public function multReal64_and_CRS(scalar64, CRS1) result(CRS_ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: scalar64
    type(CRS_), intent(in) :: CRS1

    Return Value type(CRS_)

  • public function multCRS_and_Real64(CRS1, scalar64) result(CRS_ret)

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: CRS1
    real(kind=real64), intent(in) :: scalar64

    Return Value type(CRS_)

  • public function multReal64_and_BCRS(scalar64, BCRS1) result(BCRS_ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: scalar64
    type(BCRS_), intent(in) :: BCRS1

    Return Value type(BCRS_)

  • public function multBCRS_and_Real64(BCRS1, scalar64) result(BCRS_ret)

    Arguments

    Type IntentOptional Attributes Name
    type(BCRS_), intent(in) :: BCRS1
    real(kind=real64), intent(in) :: scalar64

    Return Value type(BCRS_)

public interface matmul

  • public function matmul_CRS_CRS(A, B) result(CRS)

    $OMP parallel do $OMP atomic $OMP end parallel do

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: A
    type(CRS_), intent(in) :: B

    Return Value type(CRS_)

  • public function matmul_CRS_vec(A, b) result(vec)

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: A
    real(kind=real64), intent(in) :: b(:)

    Return Value real(kind=real64), allocatable, (:)

public interface LOBPCG

  • public subroutine LOBPCG_CRS(A, B, lambda, X, m, MAX_ITR, TOL, debug)

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: A
    type(CRS_), intent(in) :: B
    real(kind=real64), intent(out), allocatable :: lambda(:)
    real(kind=real64), intent(out), allocatable :: X(:,:)
    integer(kind=int32), intent(in) :: m
    integer(kind=int32), intent(in) :: MAX_ITR
    real(kind=real64), intent(in) :: TOL
    logical, intent(in), optional :: debug
  • public subroutine LOBPCG_single_CRS(A, B, lambda, X, alpha, tol, debug)

    Arguments

    Type IntentOptional Attributes Name
    type(CRS_), intent(in) :: A
    type(CRS_), intent(in) :: B
    real(kind=real64), intent(inout), allocatable :: lambda
    real(kind=real64), intent(inout), allocatable :: X(:)
    real(kind=real64), intent(in) :: alpha
    real(kind=real64), intent(in) :: tol
    logical, intent(in), optional :: debug

public interface to_diag

  • public function to_diag_vector_to_CRS(diag_vec) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: diag_vec(:)

    Return Value type(CRS_)

public interface allocated

  • public function allocated_CRS(this) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    class(CRS_), intent(in) :: this

    Return Value logical

public interface speye

  • public function speyeCOO(n) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: n

    Return Value type(COO_)

public interface imag_I

  • public function imag_ICOO(n) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: n

    Return Value type(COO_)

public interface to_COO

  • public function to_COO_from_DenseMatrix(dense_matrix) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: dense_matrix(:,:)

    Return Value type(COO_)

  • public function to_COO_from_ArrayObject(arrayobject) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    type(Array_), intent(in) :: arrayobject

    Return Value type(COO_)

public interface to_CRS

  • public function to_CRS_from_DenseMatrix(dense_matrix) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: dense_matrix(:,:)

    Return Value type(CRS_)

  • public function to_CRS_from_ArrayObject(arrayobject) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    type(Array_), intent(in) :: arrayobject

    Return Value type(CRS_)


Derived Types

type, public ::  COO_Row_

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, allocatable :: val(:)
complex(kind=real64), public, allocatable :: val_complex64(:)
integer(kind=int32), public, allocatable :: col(:)

type, public ::  COO_

Components

Type Visibility Attributes Name Initial
type(COO_Row_), public, allocatable :: row(:)

Type-Bound Procedures

procedure, public :: init => initCOO
procedure, public :: update => updateCOO
procedure, public :: set => updateCOO
procedure, public, pass :: addCOO
procedure, public, pass :: add_complexCOO
generic, public :: add => addCOO, add_complexCOO
procedure, public :: getDenseMatrix => getDenseMatrixCOO
procedure, public :: to_dense => getDenseMatrixCOO
procedure, public :: remove => removeCOO
procedure, public :: getAllCol => getAllColCOO
procedure, public :: DOF => DOFCOO
procedure, public :: to_CRS => to_CRSCOO
procedure, public :: get => getCOO
procedure, public :: ne => neCOO
procedure, public :: maxval => maxvalCOO
procedure, public :: random => randomCOO
procedure, public :: eyes => eyesCOO
procedure, public :: poisson => poissonCOO

type, public ::  CCS_

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: col_ptr(:)
integer(kind=int32), public, allocatable :: row_idx(:)
real(kind=real64), public, allocatable :: val(:)

Type-Bound Procedures

procedure, public :: get_column => get_column_CCS

type, public ::  CRS_

Components

Type Visibility Attributes Name Initial
integer(kind=int32), public, allocatable :: col_idx(:)
integer(kind=int64), public, allocatable :: row_ptr(:)
real(kind=real64), public, allocatable :: val(:)
real(kind=real32), public, allocatable :: val_real32(:)
complex(kind=real64), public, allocatable :: val_complex64(:)
integer(kind=int32), public :: dtype = real64

Type-Bound Procedures

procedure, public :: init => initCRS
procedure, public :: eyes => eyesCRS
procedure, public :: poisson => poissonCRS
procedure, public :: Lanczos => LanczosCRS
procedure, public, pass :: matmulCRS
procedure, public, pass :: matmul_c_CRS
procedure, public, pass :: matmul_c_real32_CRS
procedure, public, pass :: matmul_real32_CRS
procedure, public, pass :: matmul_complex_CRS
generic, public :: matmul => matmulCRS, matmul_complex_CRS, matmul_real32_CRS, matmul_c_CRS, matmul_c_real32_CRS
procedure, public :: to_real32 => to_real32_CRS
procedure, public :: SpMV => spmv_as_subroutine_CRS
procedure, public :: eig => eigCRS
procedure, public :: to_dense => to_denseCRS
procedure, public :: DOF => DOFCRS
procedure, public :: remove => removeCRS
procedure, public :: size => sizeCRS
procedure, public :: shape => shapeCRS
procedure, public :: update => updateCRS
procedure, public :: add => addCRS
procedure, public :: fillSymmetric => fillSymmetric_CRS
procedure, public :: get => getCRS
procedure, public :: is_nonzero => is_nonzeroCRS
procedure, public :: diag => diagCRS
procedure, public :: lumped => lumpedCRS
procedure, public :: divide_by => divide_by_CRS
procedure, public :: divide_by_vector => divide_by_vector_CRS
procedure, public :: mult_by => mult_by_CRS
procedure, public :: to_CCS => to_CCSCRS
procedure, public :: load => loadCRS
procedure, public :: ILU => ILUCRS
procedure, public :: ILU_matvec => ILU_matvecCRS
procedure, public :: BICGSTAB => BICGSTAB_CRSSparse
procedure, public, pass :: tensor_exponential_crs
procedure, public, pass :: tensor_sqrt_crs
procedure, public, pass :: tensor_exp_sqrt_crs
procedure, public, pass :: tensor_log_crs
procedure, public :: tensor_log_crs_modified => tensor_log_crs_modified_Sparse
procedure, public, pass :: fixCRS
procedure, public, pass :: fix_zeroCRS
procedure, public, pass :: tensor_exponential_complex64_crs
procedure, public, pass :: tensor_exp_sqrt_complex64_crs
procedure, public, pass :: tensor_cos_sqrt_complex64_crs
procedure, public, pass :: tensor_cos_sqrt_real64_crs
procedure, public, pass :: tensor_cos_sqrt_LPF_real64_crs
procedure, public, pass :: tensor_sinc_sqrt_complex64_crs
procedure, public, pass :: tensor_sinc_sqrt_real64_crs
procedure, public, pass :: tensor_t_sinc_sqrt_LPF_real64_crs
procedure, public, pass :: tensor_sqrt_complex64_crs
procedure, public, pass :: tensor_log_complex64_crs
procedure, public, pass :: fix_complex64_CRS
procedure, public, pass :: tensor_d1_wave_kernel_complex64_crs
procedure, public, pass :: tensor_wave_kernel_complex_64_crs
procedure, public, pass :: tensor_wave_kernel_real_64_crs
procedure, public, pass :: tensor_wave_kernel_LPF_real_64_crs
procedure, public, pass :: tensor_wave_kernel_RHS_real_64_crs
procedure, public, pass :: tensor_wave_kernel_RHS_LPF_real_64_crs
procedure, public, pass :: tensor_wave_kernel_RHS_complex_64_crs
procedure, public, pass :: tensor_cos_sqrt_cos_sqrt_complex64_crs
procedure, public, pass :: tensor_cos_sqrt_sinc_sqrt_complex64_crs
procedure, public, pass :: tensor_sinc_sqrt_cos_sqrt_complex64_crs
procedure, public, pass :: tensor_sinc_sqrt_sinc_sqrt_complex64_crs
generic, public :: tensor_exponential => tensor_exponential_complex64_crs, tensor_exponential_crs
generic, public :: tensor_exp => tensor_exponential_complex64_crs, tensor_exponential_crs
generic, public :: tensor_exp_sqrt => tensor_exp_sqrt_complex64_crs, tensor_exp_sqrt_crs
generic, public :: tensor_cos_sqrt => tensor_cos_sqrt_complex64_crs, tensor_cos_sqrt_real64_crs
generic, public :: tensor_sinc_sqrt => tensor_sinc_sqrt_complex64_crs, tensor_sinc_sqrt_real64_crs
generic, public :: tensor_cos_sqrt_LPF => tensor_cos_sqrt_LPF_real64_crs
generic, public :: tensor_t_sinc_sqrt_LPF => tensor_t_sinc_sqrt_LPF_real64_crs
generic, public :: tensor_sqrt => tensor_sqrt_complex64_crs, tensor_sqrt_crs
generic, public :: tensor_log => tensor_log_complex64_crs, tensor_log_crs
generic, public :: tensor_cos_sqrt_cos_sqrt => tensor_cos_sqrt_cos_sqrt_complex64_crs

not verified.

Read more…
generic, public :: tensor_cos_sqrt_sinc_sqrt => tensor_cos_sqrt_sinc_sqrt_complex64_crs
generic, public :: tensor_sinc_sqrt_cos_sqrt => tensor_sinc_sqrt_cos_sqrt_complex64_crs
generic, public :: tensor_sinc_sqrt_sinc_sqrt => tensor_sinc_sqrt_sinc_sqrt_complex64_crs
generic, public :: tensor_wave_kernel => tensor_wave_kernel_complex_64_crs, tensor_wave_kernel_real_64_crs
generic, public :: tensor_wave_kernel_LPF => tensor_wave_kernel_LPF_real_64_crs
generic, public :: tensor_wave_kernel_RHS => tensor_wave_kernel_RHS_real_64_crs, tensor_wave_kernel_RHS_complex_64_crs, tensor_wave_kernel_RHS_LPF_real_64_crs
generic, public :: tensor_d1_wave_kernel => tensor_d1_wave_kernel_complex64_crs
generic, public :: fix => fix_complex64_CRS, fixCRS, fix_zeroCRS

type, public ::  BCRS_

Components

Type Visibility Attributes Name Initial
type(CRS_), public, allocatable :: CRS(:,:)

Type-Bound Procedures

procedure, public :: set => setBCRS
procedure, public :: add => addBCRS
procedure, public :: showShape => showShapeBCRS
procedure, public :: shape => shapeBCRS
procedure, public :: row_range => row_range_BCRS
procedure, public :: col_range => col_range_BCRS
procedure, public :: matmul => matmulBCRS
procedure, public :: to_dense => to_dense_BCRS
procedure, public :: exp => expBCRS

type, public ::  Sparse_

Components

Type Visibility Attributes Name Initial
type(COO_), public :: COO
type(CRS_), public :: CRS
type(CCS_), public :: CCS

Functions

public function to_CRSCOO(this, remove_coo) result(CRS_version)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this
logical, intent(in), optional :: remove_coo

Return Value type(CRS_)

public function getDenseMatrixCOO(this) result(dense_matrix)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(in) :: this

Return Value real(kind=real64), allocatable, (:,:)

public function getAllColCOO(this) result(cols)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(in) :: this

Return Value integer(kind=int32), allocatable, (:)

public function matmulCRS(CRS, Old_vector, run_mode, cache_size) result(new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: CRS
real(kind=real64), intent(in) :: Old_vector(:)
integer(kind=int32), intent(in), optional :: run_mode
integer(kind=int32), intent(in), optional :: cache_size

Return Value real(kind=real64), allocatable, (:)

public function matmul_c_CRS(CRS, Old_vector, c_routine) result(new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: CRS
real(kind=real64), intent(in) :: Old_vector(:)
character(len=*), intent(in) :: c_routine

Return Value real(kind=real64), allocatable, (:)

public function matmul_c_real32_CRS(CRS, Old_vector, c_routine) result(new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: CRS
real(kind=real32), intent(in) :: Old_vector(:)
character(len=*), intent(in) :: c_routine

Return Value real(kind=real32), allocatable, (:)

public function matmul_real32_CRS(CRS, Old_vector) result(new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: CRS
real(kind=real32), intent(in) :: Old_vector(:)

Return Value real(kind=real32), allocatable, (:)

public function matmul_complex_CRS(CRS, Old_vector) result(new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: CRS
complex(kind=real64), intent(in) :: Old_vector(:)

Return Value complex(kind=real64), allocatable, (:)

public function crs_matvec_generic_SparseClass(CRS_value, CRS_col, CRS_row_ptr, Old_vector, cache_size) result(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=int64), intent(in) :: CRS_row_ptr(:)
real(kind=real64), intent(in) :: Old_vector(:)
integer(kind=int32), intent(in), optional :: cache_size

Return Value real(kind=real64), allocatable, (:)

public function crs_matvec_generic_elemental_SparseClass(CRS_value, CRS_col, CRS_row_ptr, Old_vector) result(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=int64), intent(in) :: CRS_row_ptr(:)
real(kind=real64), intent(in) :: Old_vector(:)

Return Value real(kind=real64), allocatable, (:)

public function crs_matvec_generic_real32_SparseClass(CRS_value, CRS_col, CRS_row_ptr, Old_vector) result(new_vector)

x_i = A_ij b_j

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: CRS_value(:)
integer(kind=int32), intent(in) :: CRS_col(:)
integer(kind=int64), intent(in) :: CRS_row_ptr(:)
real(kind=real32), intent(in) :: Old_vector(:)

Return Value real(kind=real32), allocatable, (:)

public function crs_matvec_generic_complex_SparseClass(CRS_value, CRS_col, CRS_row_ptr, Old_vector) result(new_vector)

x_i = A_ij b_j

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(in) :: CRS_value(:)
integer(kind=int32), intent(in) :: CRS_col(:)
integer(kind=int64), intent(in) :: CRS_row_ptr(:)
complex(kind=real64), intent(in) :: Old_vector(:)

Return Value complex(kind=real64), allocatable, (:)

public function to_denseCRS(this) result(dense_mat)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value real(kind=real64), allocatable, (:,:)

public pure function addCRS_and_CRS(CRS1, CRS2) result(CRS_ret)

$OMP parallel do private(col_2,col_1) $OMP atomic $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: CRS1
type(CRS_), intent(in) :: CRS2

Return Value type(CRS_)

public pure function diffCRS_and_CRS(CRS1, CRS2) result(CRS_ret)

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: CRS1
type(CRS_), intent(in) :: CRS2

Return Value type(CRS_)

public function multReal64_and_CRS(scalar64, CRS1) result(CRS_ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: scalar64
type(CRS_), intent(in) :: CRS1

Return Value type(CRS_)

public function multReal64_and_BCRS(scalar64, BCRS1) result(BCRS_ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: scalar64
type(BCRS_), intent(in) :: BCRS1

Return Value type(BCRS_)

public function multBCRS_and_Real64(BCRS1, scalar64) result(BCRS_ret)

Arguments

Type IntentOptional Attributes Name
type(BCRS_), intent(in) :: BCRS1
real(kind=real64), intent(in) :: scalar64

Return Value type(BCRS_)

public function multCRS_and_Real64(CRS1, scalar64) result(CRS_ret)

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: CRS1
real(kind=real64), intent(in) :: scalar64

Return Value type(CRS_)

public pure function DOFCOO(this) result(Degree_of_freedom)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(in) :: this

Return Value integer(kind=int32)

public pure function DOFCRS(this) result(Degree_of_freedom)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value integer(kind=int32)

public pure function getCOO(this, row, col) result(ret)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(in) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col

Return Value real(kind=real64)

public pure function neCOO(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(in) :: this

Return Value real(kind=real64)

public pure function maxvalCOO(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(in) :: this

Return Value real(kind=real64)

public function sizeCRS(this) result(n)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value integer(kind=int32)

public function shapeCRS(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value integer(kind=int32), (1:2)

public function getCRS(this, row, col) result(val)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col

Return Value real(kind=real64)

public function is_nonzeroCRS(this, row, col)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col

Return Value logical

public function lumpedCRS(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value real(kind=real64), allocatable, (:)

public function diagCRS(this, cell_centered) result(diag_vec)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
logical, intent(in), optional :: cell_centered

Return Value real(kind=real64), allocatable, (:)

public function to_CCSCRS(this) result(CCS)

[2,5,8,11,13, 13] [2,2,5, 8,11, 13]

Read more…

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value type(CCS_)

public function to_UpperTriangle(A) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: A(:,:)

Return Value real(kind=real64), allocatable, (:)

public function divide_by_CRS(this, diag_vector) result(ret_crs)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: diag_vector(:)

Return Value type(CRS_)

public function mult_by_CRS(this, diag_vector) result(ret_crs)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: diag_vector(:)

Return Value type(CRS_)

public function matmul_CRS_vec(A, b) result(vec)

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: A
real(kind=real64), intent(in) :: b(:)

Return Value real(kind=real64), allocatable, (:)

public function matmul_CRS_CRS(A, B) result(CRS)

$OMP parallel do $OMP atomic $OMP end parallel do

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: A
type(CRS_), intent(in) :: B

Return Value type(CRS_)

public function get_column_CCS(this, col) result(ret)

Arguments

Type IntentOptional Attributes Name
class(CCS_), intent(in) :: this
integer(kind=int32), intent(in) :: col

Return Value real(kind=real64), allocatable, (:)

public function tensor_exponential_crs(this, itr_tol, tol, x, dt, fix_idx, fix_val) result(expA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
integer(kind=int32), intent(in) :: itr_tol
real(kind=real64), intent(in) :: tol
real(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in), optional :: dt
integer(kind=int32), intent(in), optional :: fix_idx(:)
real(kind=real64), intent(in), optional :: fix_val(:)

Return Value real(kind=real64), allocatable, (:)

public function tensor_exp_sqrt_crs(this, v, tol, coeff, itrmax, binomial) result(exp_sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
complex(kind=real64), intent(in), optional :: coeff
integer(kind=int32), intent(in) :: itrmax
logical, intent(in), optional :: binomial

Return Value real(kind=real64), allocatable, (:)

public function tensor_sqrt_crs(this, v, tol, itrmax, binomial, r) result(sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
logical, intent(in), optional :: binomial
real(kind=real64), intent(in), optional :: r

Return Value real(kind=real64), allocatable, (:)

public function tensor_log_crs_modified_Sparse(this, v, tol, itrmax, r) result(sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in), optional :: r

Return Value real(kind=real64), allocatable, (:)

public function tensor_log_crs(this, v, tol, itrmax, r) result(sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in), optional :: r

Return Value real(kind=real64), allocatable, (:)

public function tensor_exponential_complex64_crs(this, itr_tol, tol, x, dt, fix_idx, fix_val) result(expA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
integer(kind=int32), intent(in) :: itr_tol
real(kind=real64), intent(in) :: tol
complex(kind=real64), intent(in) :: x(:)
real(kind=real64), intent(in), optional :: dt
integer(kind=int32), intent(in), optional :: fix_idx(:)
complex(kind=real64), intent(in), optional :: fix_val(:)

Return Value complex(kind=real64), allocatable, (:)

public function tensor_exp_sqrt_complex64_crs(this, v, tol, itrmax, coeff, fix_idx, binomial, r) result(exp_sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in), optional :: coeff
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: binomial
real(kind=real64), intent(in), optional :: r

Return Value complex(kind=real64), allocatable, (:)

public function tensor_sqrt_complex64_crs(this, v, tol, itrmax, binomial, r) result(sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
logical, intent(in), optional :: binomial
real(kind=real64), intent(in), optional :: r

Return Value complex(kind=real64), allocatable, (:)

public function tensor_log_complex64_crs(this, v, tol, itrmax) result(sqrtA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax

Return Value complex(kind=real64), allocatable, (:)

public function tensor_sinc_sqrt_complex64_crs(this, v, tol, itrmax, coeff, debug, fix_idx) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in), optional :: coeff
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: fix_idx(:)

Return Value complex(kind=real64), allocatable, (:)

public function tensor_sinc_sqrt_real64_crs(this, v, tol, itrmax, coeff, debug, fix_idx) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in), optional :: coeff
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: fix_idx(:)

Return Value real(kind=real64), allocatable, (:)

public function tensor_wave_kernel_complex_64_crs(this, u0, v0, tol, itrmax, h, t, fix_idx, debug) result(u)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: u0(:)
complex(kind=real64), intent(in) :: v0(:)
real(kind=real64), intent(in), optional :: tol
integer(kind=int32), intent(in), optional :: itrmax
real(kind=real64), intent(in) :: h
real(kind=real64), intent(in) :: t
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: debug

Return Value complex(kind=real64), allocatable, (:)

public function tensor_wave_kernel_real_64_crs(this, u0, v0, tol, itrmax, h, t, fix_idx, debug) result(u)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
real(kind=real64), intent(in) :: u0(:)
real(kind=real64), intent(in) :: v0(:)
real(kind=real64), intent(in), optional :: tol
integer(kind=int32), intent(in), optional :: itrmax
real(kind=real64), intent(in) :: h
real(kind=real64), intent(in) :: t
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: debug

Return Value real(kind=real64), allocatable, (:)

public function tensor_wave_kernel_LPF_real_64_crs(this, u0, v0, tol, itrmax, h, t, fix_idx, debug, cutoff_frequency) result(u)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: u0(:)
real(kind=real64), intent(in) :: v0(:)
real(kind=real64), intent(in), optional :: tol
integer(kind=int32), intent(in), optional :: itrmax
real(kind=real64), intent(in) :: h
real(kind=real64), intent(in) :: t
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: debug
real(kind=real64), intent(in) :: cutoff_frequency

Return Value real(kind=real64), allocatable, (:)

public function tensor_wave_kernel_RHS_real_64_crs(this, RHS, t, tol, itrmax, fix_idx, debug) result(u)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: RHS(:)
real(kind=real64), intent(in) :: t
real(kind=real64), intent(in), optional :: tol
integer(kind=int32), intent(in), optional :: itrmax
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: debug

Return Value real(kind=real64), allocatable, (:)

public function tensor_wave_kernel_RHS_LPF_real_64_crs(this, RHS, t, tol, itrmax, fix_idx, debug, cutoff_frequency, weights) result(u)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: RHS(:)
real(kind=real64), intent(in) :: t
real(kind=real64), intent(in), optional :: tol
integer(kind=int32), intent(in), optional :: itrmax
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: debug
real(kind=real64), intent(in) :: cutoff_frequency
real(kind=real64), intent(in), optional :: weights(:)

Return Value real(kind=real64), allocatable, (:)

public function tensor_wave_kernel_RHS_complex_64_crs(this, RHS, t, tol, itrmax, fix_idx, debug) result(u)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: RHS(:)
real(kind=real64), intent(in) :: t
real(kind=real64), intent(in), optional :: tol
integer(kind=int32), intent(in), optional :: itrmax
integer(kind=int32), intent(in), optional :: fix_idx(:)
logical, intent(in), optional :: debug

Return Value complex(kind=real64), allocatable, (:)

public function tensor_d1_wave_kernel_complex64_crs(this, u, v, tol, itrmax, coeff) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: u(:)
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in), optional :: coeff

Return Value complex(kind=real64), allocatable, (:)

public function tensor_cos_sqrt_complex64_crs(this, v, tol, itrmax, coeff, debug, fix_idx) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in), optional :: coeff
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: fix_idx(:)

Return Value complex(kind=real64), allocatable, (:)

public function wave_kernel_hanning_coefficient(dt, num_sample, t_power) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: dt
integer, intent(in) :: num_sample
integer, intent(in) :: t_power

Return Value real(kind=real64)

public function tensor_cos_sqrt_real64_crs(this, v, tol, itrmax, coeff, debug, fix_idx) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in), optional :: coeff
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: fix_idx(:)

Return Value real(kind=real64), allocatable, (:)

public function tensor_cos_sqrt_LPF_real64_crs(this, v, tol, itrmax, coeff, debug, fix_idx, cutoff_frequency) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in), optional :: coeff
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: fix_idx(:)
real(kind=real64), intent(in) :: cutoff_frequency

Return Value real(kind=real64), allocatable, (:)

public function tensor_t_sinc_sqrt_LPF_real64_crs(this, v, tol, itrmax, coeff, debug, fix_idx, cutoff_frequency) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
real(kind=real64), intent(in), optional :: coeff
logical, intent(in), optional :: debug
integer(kind=int32), intent(in), optional :: fix_idx(:)
real(kind=real64), intent(in) :: cutoff_frequency

Return Value real(kind=real64), allocatable, (:)

public function sum_sum(a, b, a_params, b_params, i_plus_j, ir, jr) result(ret)

Arguments

Type IntentOptional Attributes Name
public function a(k, params) result(ret)
Arguments
Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: k
complex(kind=real64), intent(in) :: params(:)
Return Value complex(kind=real64)
public function b(k, params) result(ret)
Arguments
Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: k
complex(kind=real64), intent(in) :: params(:)
Return Value complex(kind=real64)
complex(kind=real64), intent(in) :: a_params(:)
complex(kind=real64), intent(in) :: b_params(:)
integer(kind=int32), intent(in) :: i_plus_j
integer(kind=int32), intent(in) :: ir(1:2)
integer(kind=int32), intent(in) :: jr(1:2)

Return Value complex(kind=real64)

public function tensor_cos_sqrt_cos_sqrt_complex64_crs(this, v, tol, itrmax, coeff_1, coeff_2) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in) :: coeff_1
complex(kind=real64), intent(in) :: coeff_2

Return Value complex(kind=real64), allocatable, (:)

public function tensor_sinc_sqrt_cos_sqrt_complex64_crs(this, v, tol, itrmax, coeff_1, coeff_2, debug) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in) :: coeff_1
complex(kind=real64), intent(in) :: coeff_2
logical, intent(in), optional :: debug

Return Value complex(kind=real64), allocatable, (:)

public function tensor_cos_sqrt_sinc_sqrt_complex64_crs(this, v, tol, itrmax, coeff_1, coeff_2) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in) :: coeff_1
complex(kind=real64), intent(in) :: coeff_2

Return Value complex(kind=real64), allocatable, (:)

public function tensor_sinc_sqrt_sinc_sqrt_complex64_crs(this, v, tol, itrmax, coeff_1, coeff_2) result(retA_v)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
complex(kind=real64), intent(in) :: v(:)
real(kind=real64), intent(in) :: tol
integer(kind=int32), intent(in) :: itrmax
complex(kind=real64), intent(in) :: coeff_1
complex(kind=real64), intent(in) :: coeff_2

Return Value complex(kind=real64), allocatable, (:)

public function cos_sqrt_Taylor(k, params) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: k
complex(kind=real64), intent(in) :: params(:)

Return Value complex(kind=real64)

public function sinc_sqrt_Taylor(k, params) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: k
complex(kind=real64), intent(in) :: params(:)

Return Value complex(kind=real64)

public function sinc_complex64(x) result(ret)

Arguments

Type IntentOptional Attributes Name
complex(kind=real64), intent(in) :: x

Return Value complex(kind=real64)

public function sinc_real64(x) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: x

Return Value real(kind=real64)

public function sinc_real64_vec(x) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: x(:)

Return Value real(kind=real64), allocatable, (:)

public function to_diag_vector_to_CRS(diag_vec) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: diag_vec(:)

Return Value type(CRS_)

public function to_COO_from_DenseMatrix(dense_matrix) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: dense_matrix(:,:)

Return Value type(COO_)

public function to_COO_from_ArrayObject(arrayobject) result(ret)

Arguments

Type IntentOptional Attributes Name
type(Array_), intent(in) :: arrayobject

Return Value type(COO_)

public function to_CRS_from_DenseMatrix(dense_matrix) result(ret)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: dense_matrix(:,:)

Return Value type(CRS_)

public function to_CRS_from_ArrayObject(arrayobject) result(ret)

Arguments

Type IntentOptional Attributes Name
type(Array_), intent(in) :: arrayobject

Return Value type(CRS_)

public function imag_ICOO(n) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: n

Return Value type(COO_)

public function speyeCOO(n) result(ret)

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: n

Return Value type(COO_)

public function allocated_CRS(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

Return Value logical

public function matmulBCRS(this, vec) result(ret)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this
real(kind=real64), intent(in) :: vec(:)

Return Value real(kind=real64), allocatable, (:)

public function row_range_BCRS(this, box_row, box_col) result(ret)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this
integer(kind=int32), intent(in) :: box_row
integer(kind=int32), intent(in) :: box_col

Return Value integer(kind=int32), (1:2)

public function col_range_BCRS(this, box_row, box_col) result(ret)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this
integer(kind=int32), intent(in) :: box_row
integer(kind=int32), intent(in) :: box_col

Return Value integer(kind=int32), (1:2)

public function shapeBCRS(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this

Return Value integer(kind=int32), (1:2)

public function to_dense_BCRS(this) result(ret)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this

Return Value real(kind=real64), allocatable, (:,:)

public function expBCRS(this, vec, max_itr, fix_idx) result(b)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this
real(kind=real64), intent(in) :: vec(:)
integer(kind=int32), intent(in), optional :: max_itr
integer(kind=int32), intent(in), optional :: fix_idx(:)

Return Value real(kind=real64), allocatable, (:)


Subroutines

public subroutine initCOO(this, num_row)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this
integer(kind=int32), intent(in) :: num_row

public subroutine updateCOO(this, row, col, val)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col
real(kind=real64), intent(in) :: val

public subroutine addCOO(this, row, col, val)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col
real(kind=real64), intent(in) :: val

public subroutine add_complexCOO(this, row, col, val)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col
complex(kind=real64), intent(in) :: val

public subroutine removeCOO(this)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this

public subroutine LanczosCRS(this, DiagonalVector, subDiagonalVector, V)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(inout), allocatable :: DiagonalVector(:)
real(kind=real64), intent(inout), allocatable :: subDiagonalVector(:)
real(kind=real64), intent(inout), allocatable :: V(:,:)

public subroutine spmv_as_subroutine_CRS(this, old_vector, new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: old_vector(:)
real(kind=real64), intent(out) :: new_vector(:)

public subroutine eigCRS(this, Eigen_vectors, eigen_values)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(inout), allocatable :: Eigen_vectors(:,:)
real(kind=real64), intent(inout), allocatable :: eigen_values(:)

public subroutine initCRS(this, val, col_idx, row_ptr)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
real(kind=real64), intent(in) :: val(:)
integer(kind=int32), intent(in) :: col_idx(:)
integer(kind=int64), intent(in) :: row_ptr(:)

public subroutine updateCRS(this, row, col, val)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col
real(kind=real64), intent(in) :: val

public subroutine addCRS(this, row, col, val)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: row
integer(kind=int32), intent(in) :: col
real(kind=real64), intent(in) :: val

public recursive subroutine ILUCRS(this, fill_in_order, RHS, debug)

$OMP parallel do

Read more…

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: fill_in_order
real(kind=real64), intent(inout), optional :: RHS(:)
logical, intent(in), optional :: debug

public subroutine ILU_matvecCRS(this, old_vector, new_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this
real(kind=real64), intent(in) :: old_vector(:)
real(kind=real64), intent(inout), allocatable :: new_vector(:)

public subroutine loadCRS(this, CCS, Position)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
type(CCS_), intent(in), optional :: CCS
character(len=*), intent(in), optional :: Position

public subroutine eyesCOO(this, n)

Arguments

Type IntentOptional Attributes Name
class(COO_) :: this
integer(kind=int32), intent(in) :: n

public subroutine poissonCOO(this, n)

Arguments

Type IntentOptional Attributes Name
class(COO_) :: this
integer(kind=int32), intent(in) :: n

public subroutine LOBPCG_single_CRS(A, B, lambda, X, alpha, tol, debug)

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: A
type(CRS_), intent(in) :: B
real(kind=real64), intent(inout), allocatable :: lambda
real(kind=real64), intent(inout), allocatable :: X(:)
real(kind=real64), intent(in) :: alpha
real(kind=real64), intent(in) :: tol
logical, intent(in), optional :: debug

public subroutine LOBPCG_CRS(A, B, lambda, X, m, MAX_ITR, TOL, debug)

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: A
type(CRS_), intent(in) :: B
real(kind=real64), intent(out), allocatable :: lambda(:)
real(kind=real64), intent(out), allocatable :: X(:,:)
integer(kind=int32), intent(in) :: m
integer(kind=int32), intent(in) :: MAX_ITR
real(kind=real64), intent(in) :: TOL
logical, intent(in), optional :: debug

public subroutine GramSchmidt(mat_v, m, n, mat_v_out)

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: mat_v(1:m,1:n)
integer, intent(in) :: m
integer, intent(in) :: n
real(kind=real64), intent(inout) :: mat_v_out(1:m,1:n)

public subroutine LAPACK_EIG_DENSE(A, B, x, lambda, debug)

INPUT INPUT/OUTPUT INPUT OUTPUT

Read more…

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: A(:,:)
real(kind=real64), intent(in) :: B(:,:)
real(kind=real64), intent(inout), allocatable :: x(:,:)
real(kind=real64), intent(inout), allocatable :: lambda(:)
logical, intent(in), optional :: debug

public subroutine LAPACK_EIG_SPARSE(A, B, x, lambda, debug)

INPUT INPUT/OUTPUT INPUT OUTPUT

Read more…

Arguments

Type IntentOptional Attributes Name
type(CRS_), intent(in) :: A
type(CRS_), intent(in) :: B
real(kind=real64), intent(inout), allocatable :: x(:,:)
real(kind=real64), intent(inout), allocatable :: lambda(:)
logical, intent(in), optional :: debug

public subroutine BICGSTAB_CRSSparse(this, x, b, debug, tol)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
real(kind=real64), intent(inout), allocatable :: x(:)
real(kind=real64), intent(in) :: b(:)
logical, intent(in), optional :: debug
real(kind=real64), intent(in), optional :: tol

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

Arguments

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

public subroutine SpMV_CRS_Sparse(CRS_value, CRS_col, CRS_row_ptr, Old_vector, new_vector, precondition)

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=int64), intent(in) :: CRS_row_ptr(:)
real(kind=real64), intent(in) :: Old_vector(:)
real(kind=real64), intent(inout), allocatable :: new_vector(:)
type(CRS_), intent(in), optional :: precondition

public subroutine divide_by_vector_CRS(this, diag_vector)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
real(kind=real64), intent(in) :: diag_vector(:)

public subroutine randomCOO(this, n, percent)

Arguments

Type IntentOptional Attributes Name
class(COO_), intent(inout) :: this
integer(kind=int32), intent(in) :: n
real(kind=real32), intent(in), optional :: percent

public subroutine eyesCRS(This, n)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: This
integer(kind=int32), intent(in) :: n

public subroutine poissonCRS(this, n)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: n

public subroutine fixCRS(this, idx, val, RHS, only_row)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: idx(:)
real(kind=real64), intent(in) :: val(:)
real(kind=real64), intent(inout), optional :: RHS(:)
logical, intent(in), optional :: only_row

public subroutine fix_zeroCRS(this, idx)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: idx(:)

public subroutine fix_complex64_CRS(this, idx, val, RHS, only_row)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in) :: idx(:)
complex(kind=real64), intent(in) :: val(:)
complex(kind=real64), intent(inout), optional :: RHS(:)
logical, intent(in), optional :: only_row

public subroutine removeCRS(this, idx)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this
integer(kind=int32), intent(in), optional :: idx(:)

public subroutine to_real32_CRS(this)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(inout) :: this

public subroutine fillSymmetric_CRS(this)

Arguments

Type IntentOptional Attributes Name
class(CRS_), intent(in) :: this

public subroutine setBCRS(this, block_position, CRS)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(inout) :: this
integer(kind=int32) :: block_position(1:2)
type(CRS_), intent(in) :: CRS

public subroutine addBCRS(this, block_position, CRS)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(inout) :: this
integer(kind=int32) :: block_position(1:2)
type(CRS_), intent(in) :: CRS

public subroutine showShapeBCRS(this)

Arguments

Type IntentOptional Attributes Name
class(BCRS_), intent(in) :: this