dbcsr_tas_base Module

Tall-and-skinny matrices: base routines similar to DBCSR API, mostly wrappers around existing DBCSR routines.

As dbcsr_put_block As dbcsr_put_block As dbcsr_put_block As dbcsr_put_block



Contents


Variables

TypeVisibilityAttributesNameInitial
character(len=*), private, parameter:: moduleN ='dbcsr_tas_base'

Interfaces

public interface dbcsr_tas_create

  • private subroutine dbcsr_tas_create_new(matrix, name, dist, data_type, row_blk_size, col_blk_size, own_dist)

    Create new tall-and-skinny matrix. Exactly like dbcsr_create_new but with custom types for row_blk_size and col_blk_size instead of arrays.

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(out) :: matrix
    character(len=*), intent(in) :: name
    type(dbcsr_tas_distribution_type), intent(inout) :: dist
    integer, intent(in), optional :: data_type
    class(dbcsr_tas_rowcol_data), intent(in) :: row_blk_size
    class(dbcsr_tas_rowcol_data), intent(in) :: col_blk_size
    logical, intent(in), optional :: own_dist

    whether matrix should own distribution

  • private subroutine dbcsr_tas_create_template(matrix_in, matrix, name, data_type)

    Create matrix from template

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix_in
    type(dbcsr_tas_type), intent(out) :: matrix
    character(len=*), intent(in), optional :: name
    integer, intent(in), optional :: data_type

public interface dbcsr_tas_get_block_p

  • private subroutine dbcsr_tas_get_block_p_area(matrix, row, col, block, transposed, found, row_size, col_size)

    As dbcsr_get_block_p

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    type(dbcsr_data_obj), intent(inout) :: block
    logical, intent(out) :: transposed
    logical, intent(out) :: found
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size

public interface dbcsr_tas_put_block

  • private subroutine dbcsr_tas_put_block_area(matrix, row, col, block, transposed, summation, scale)

    As dbcsr_put_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    type(dbcsr_data_obj) :: block
    logical, intent(in), optional :: transposed
    logical, intent(in), optional :: summation
    type(dbcsr_scalar_type), intent(in), optional :: scale

public interface dbcsr_tas_reserve_blocks

  • private subroutine dbcsr_tas_reserve_blocks_template(matrix_in, matrix_out)

    Make sure that matrix_out has same blocks reserved as matrix_in. This assumes that both matrices have same number of block rows and block columns.

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(in) :: matrix_in
    type(dbcsr_tas_type), intent(inout) :: matrix_out
  • private subroutine dbcsr_tas_reserve_blocks_index(matrix, rows, columns)

    As dbcsr_reserve_blocks

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in), DIMENSION(:):: rows
    integer(kind=int_8), intent(in), DIMENSION(:):: columns
  • private subroutine dbcsr_tas_iterator_next_area_block(iterator, row, column, block, transposed, block_number, row_size, col_size)

    As dbcsr_iterator_next_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_iterator), intent(inout) :: iterator
    integer(kind=int_8), intent(out) :: row
    integer(kind=int_8), intent(out) :: column
    type(dbcsr_data_obj), intent(inout) :: block
    logical, intent(out) :: transposed
    integer, intent(out), optional :: block_number
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_iterator_next_block_index(iterator, row, column, block_number, transposed, blk_p, row_size, col_size)

    As dbcsr_iterator_next_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_iterator), intent(inout) :: iterator
    integer(kind=int_8), intent(out) :: row

    global block row global block column

    integer(kind=int_8), intent(out) :: column

    global block row global block column

    integer, intent(out) :: block_number
    logical, intent(out), optional :: transposed
    integer, intent(out), optional :: blk_p
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_iterator_next_block_r_dp(iterator, row, column, block, transposed, block_number, row_size, col_size)

    As dbcsr_iterator_next_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_iterator), intent(inout) :: iterator
    integer(kind=int_8), intent(out) :: row
    integer(kind=int_8), intent(out) :: column
    real(kind=real_8), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    integer, intent(out), optional :: block_number
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_iterator_next_block_r_sp(iterator, row, column, block, transposed, block_number, row_size, col_size)

    As dbcsr_iterator_next_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_iterator), intent(inout) :: iterator
    integer(kind=int_8), intent(out) :: row
    integer(kind=int_8), intent(out) :: column
    real(kind=real_4), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    integer, intent(out), optional :: block_number
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_iterator_next_block_c_dp(iterator, row, column, block, transposed, block_number, row_size, col_size)

    As dbcsr_iterator_next_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_iterator), intent(inout) :: iterator
    integer(kind=int_8), intent(out) :: row
    integer(kind=int_8), intent(out) :: column
    complex(kind=real_8), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    integer, intent(out), optional :: block_number
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_iterator_next_block_c_sp(iterator, row, column, block, transposed, block_number, row_size, col_size)

    As dbcsr_iterator_next_block

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_iterator), intent(inout) :: iterator
    integer(kind=int_8), intent(out) :: row
    integer(kind=int_8), intent(out) :: column
    complex(kind=real_4), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    integer, intent(out), optional :: block_number
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size

private interface dbcsr_tas_put_block

  • private subroutine dbcsr_tas_put_block_r_dp(matrix, row, col, block, transposed, summation, scale)

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    real(kind=real_8), intent(in), DIMENSION(:, :):: block
    logical, intent(in), optional :: transposed
    logical, intent(in), optional :: summation
    real(kind=real_8), intent(in), optional :: scale
  • private subroutine dbcsr_tas_put_block_r_sp(matrix, row, col, block, transposed, summation, scale)

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    real(kind=real_4), intent(in), DIMENSION(:, :):: block
    logical, intent(in), optional :: transposed
    logical, intent(in), optional :: summation
    real(kind=real_4), intent(in), optional :: scale
  • private subroutine dbcsr_tas_put_block_c_dp(matrix, row, col, block, transposed, summation, scale)

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    complex(kind=real_8), intent(in), DIMENSION(:, :):: block
    logical, intent(in), optional :: transposed
    logical, intent(in), optional :: summation
    complex(kind=real_8), intent(in), optional :: scale
  • private subroutine dbcsr_tas_put_block_c_sp(matrix, row, col, block, transposed, summation, scale)

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    complex(kind=real_4), intent(in), DIMENSION(:, :):: block
    logical, intent(in), optional :: transposed
    logical, intent(in), optional :: summation
    complex(kind=real_4), intent(in), optional :: scale

private interface dbcsr_tas_get_block_p

  • private subroutine dbcsr_tas_get_block_p_r_dp(matrix, row, col, block, transposed, found, row_size, col_size)

    As dbcsr_get_block_p

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    real(kind=real_8), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    logical, intent(out) :: found
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_get_block_p_r_sp(matrix, row, col, block, transposed, found, row_size, col_size)

    As dbcsr_get_block_p

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    real(kind=real_4), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    logical, intent(out) :: found
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_get_block_p_c_dp(matrix, row, col, block, transposed, found, row_size, col_size)

    As dbcsr_get_block_p

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    complex(kind=real_8), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    logical, intent(out) :: found
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size
  • private subroutine dbcsr_tas_get_block_p_c_sp(matrix, row, col, block, transposed, found, row_size, col_size)

    As dbcsr_get_block_p

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    integer(kind=int_8), intent(in) :: row
    integer(kind=int_8), intent(in) :: col
    complex(kind=real_4), DIMENSION(:, :), POINTER:: block
    logical, intent(out) :: transposed
    logical, intent(out) :: found
    integer, intent(out), optional :: row_size
    integer, intent(out), optional :: col_size

public interface dbcsr_tas_set

  • private subroutine dbcsr_tas_set_r_dp(matrix, alpha)

    As dbcsr_set

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    real(kind=real_8), intent(in) :: alpha
  • private subroutine dbcsr_tas_set_r_sp(matrix, alpha)

    As dbcsr_set

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    real(kind=real_4), intent(in) :: alpha
  • private subroutine dbcsr_tas_set_c_dp(matrix, alpha)

    As dbcsr_set

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    complex(kind=real_8), intent(in) :: alpha
  • private subroutine dbcsr_tas_set_c_sp(matrix, alpha)

    As dbcsr_set

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    complex(kind=real_4), intent(in) :: alpha

public interface dbcsr_tas_filter

  • private subroutine dbcsr_tas_filter_r_dp(matrix, eps, method, use_absolute)

    As dbcsr_filter

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    real(kind=real_8), intent(in) :: eps
    integer, intent(in), optional :: method
    logical, intent(in), optional :: use_absolute
  • private subroutine dbcsr_tas_filter_r_sp(matrix, eps, method, use_absolute)

    As dbcsr_filter

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    real(kind=real_4), intent(in) :: eps
    integer, intent(in), optional :: method
    logical, intent(in), optional :: use_absolute
  • private subroutine dbcsr_tas_filter_c_dp(matrix, eps, method, use_absolute)

    As dbcsr_filter

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    complex(kind=real_8), intent(in) :: eps
    integer, intent(in), optional :: method
    logical, intent(in), optional :: use_absolute
  • private subroutine dbcsr_tas_filter_c_sp(matrix, eps, method, use_absolute)

    As dbcsr_filter

    Arguments

    TypeIntentOptionalAttributesName
    type(dbcsr_tas_type), intent(inout) :: matrix
    complex(kind=real_4), intent(in) :: eps
    integer, intent(in), optional :: method
    logical, intent(in), optional :: use_absolute

Functions

public function dbcsr_tas_iterator_blocks_left(iter)

As dbcsr_iterator_blocks_left

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(in) :: iter

Return Value logical

public function dbcsr_tas_info(matrix)

get info on mpi grid splitting

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value type(dbcsr_tas_split_info)

public function dbcsr_tas_nblkrows_total(matrix) result(nblkrows_total)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer(kind=int_8)

public function dbcsr_tas_nfullrows_total(matrix) result(nfullrows_total)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer(kind=int_8)

public function dbcsr_tas_nblkcols_total(matrix) result(nblkcols_total)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer(kind=int_8)

public function dbcsr_tas_nfullcols_total(matrix) result(nfullcols_total)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer(kind=int_8)

public function dbcsr_tas_nblkcols_local(matrix) result(nblkcols_local)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer

public function dbcsr_tas_nblkrows_local(matrix) result(nblkrows_local)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer

public pure function dbcsr_tas_get_num_blocks(matrix) result(num_blocks)

As dbcsr_get_num_blocks: get number of local blocks

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer

public function dbcsr_tas_get_num_blocks_total(matrix) result(num_blocks)

get total number of blocks

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer(kind=int_8)

public pure function dbcsr_tas_get_nze(matrix)

As dbcsr_get_nze: get number of local non-zero elements

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer

public function dbcsr_tas_get_nze_total(matrix)

Get total number of non-zero elements

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer(kind=int_8)

public function dbcsr_tas_get_data_type(matrix) result(data_type)

As dbcsr_get_data_type

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer

public function dbcsr_tas_get_data_size(matrix) result(data_size)

As dbcsr_get_data_size

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

Return Value integer


Subroutines

private subroutine dbcsr_tas_create_new(matrix, name, dist, data_type, row_blk_size, col_blk_size, own_dist)

Create new tall-and-skinny matrix. Exactly like dbcsr_create_new but with custom types for row_blk_size and col_blk_size instead of arrays.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(out) :: matrix
character(len=*), intent(in) :: name
type(dbcsr_tas_distribution_type), intent(inout) :: dist
integer, intent(in), optional :: data_type
class(dbcsr_tas_rowcol_data), intent(in) :: row_blk_size
class(dbcsr_tas_rowcol_data), intent(in) :: col_blk_size
logical, intent(in), optional :: own_dist

whether matrix should own distribution

private subroutine dbcsr_tas_create_template(matrix_in, matrix, name, data_type)

Create matrix from template

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix_in
type(dbcsr_tas_type), intent(out) :: matrix
character(len=*), intent(in), optional :: name
integer, intent(in), optional :: data_type

public subroutine dbcsr_tas_destroy(matrix)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix

public subroutine dbcsr_tas_copy(matrix_b, matrix_a, summation)

Copy matrix_a to matrix_b

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix_b
type(dbcsr_tas_type), intent(in) :: matrix_a
logical, intent(in), optional :: summation

Whether to sum matrices b = a + b

private subroutine dbcsr_tas_reserve_blocks_template(matrix_in, matrix_out)

Make sure that matrix_out has same blocks reserved as matrix_in. This assumes that both matrices have same number of block rows and block columns.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix_in
type(dbcsr_tas_type), intent(inout) :: matrix_out

public subroutine dbcsr_tas_finalize(matrix)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix

public subroutine dbcsr_tas_distribution_new(dist, mp_comm, row_dist, col_dist, split_info, nosplit)

create new distribution. Exactly like dbcsr_distribution_new but with custom types for row_dist and col_dist instead of arrays.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_distribution_type), intent(out) :: dist
integer, intent(in) :: mp_comm
class(dbcsr_tas_distribution), intent(in) :: row_dist
class(dbcsr_tas_distribution), intent(in) :: col_dist
type(dbcsr_tas_split_info), intent(in), optional :: split_info

Strategy of how to split process grid (optional). If not present a default split heuristic is applied.

logical, intent(in), optional :: nosplit

if .TRUE. don't split process grid (optional)

public subroutine dbcsr_tas_distribution_destroy(dist)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_distribution_type), intent(inout) :: dist

public subroutine dbcsr_tas_get_stored_coordinates(matrix, row, column, processor)

As dbcsr_get_stored_coordinates

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix
integer(kind=int_8), intent(in) :: row

global matrix blocked row global matrix blocked column

integer(kind=int_8), intent(in) :: column

global matrix blocked row global matrix blocked column

integer, intent(out) :: processor

process ID

public subroutine dbcsr_repl_get_stored_coordinates(matrix, row, column, processors)

Get all processors for a given row/col combination if matrix is replicated on each process subgroup.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix

tall-and-skinny matrix whose DBCSR submatrices are replicated matrices

integer, intent(in) :: row

row of a submatrix column of a submatrix

integer, intent(in) :: column

row of a submatrix column of a submatrix

integer, intent(out), DIMENSION(:):: processors

public subroutine dbcsr_tas_convert_to_dbcsr(matrix_rect, matrix_dbcsr)

Convert a tall-and-skinny matrix into a normal DBCSR matrix. This is not recommended for matrices with a very large dimension.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix_rect
type(dbcsr_type), intent(out) :: matrix_dbcsr

public subroutine dbcsr_tas_convert_to_tas(info, matrix_rect, matrix_dbcsr)

Converts a DBCSR matrix into the tall-and-skinny matrix type.

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_split_info), intent(in) :: info

Strategy of how to split process grid

type(dbcsr_tas_type), intent(out) :: matrix_rect
type(dbcsr_type), intent(in) :: matrix_dbcsr

public subroutine dbcsr_tas_iterator_start(iter, matrix_in)

As dbcsr_iterator_start

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iter
type(dbcsr_tas_type), intent(in) :: matrix_in

public subroutine dbcsr_tas_iterator_stop(iter)

As dbcsr_iterator_stop

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iter

private subroutine dbcsr_tas_iterator_next_area_block(iterator, row, column, block, transposed, block_number, row_size, col_size)

As dbcsr_iterator_next_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iterator
integer(kind=int_8), intent(out) :: row
integer(kind=int_8), intent(out) :: column
type(dbcsr_data_obj), intent(inout) :: block
logical, intent(out) :: transposed
integer, intent(out), optional :: block_number
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_iterator_next_block_index(iterator, row, column, block_number, transposed, blk_p, row_size, col_size)

As dbcsr_iterator_next_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iterator
integer(kind=int_8), intent(out) :: row

global block row global block column

integer(kind=int_8), intent(out) :: column

global block row global block column

integer, intent(out) :: block_number
logical, intent(out), optional :: transposed
integer, intent(out), optional :: blk_p
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_reserve_blocks_index(matrix, rows, columns)

As dbcsr_reserve_blocks

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in), DIMENSION(:):: rows
integer(kind=int_8), intent(in), DIMENSION(:):: columns

private subroutine dbcsr_tas_put_block_area(matrix, row, col, block, transposed, summation, scale)

As dbcsr_put_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
type(dbcsr_data_obj) :: block
logical, intent(in), optional :: transposed
logical, intent(in), optional :: summation
type(dbcsr_scalar_type), intent(in), optional :: scale

private subroutine dbcsr_tas_get_block_p_area(matrix, row, col, block, transposed, found, row_size, col_size)

As dbcsr_get_block_p

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
type(dbcsr_data_obj), intent(inout) :: block
logical, intent(out) :: transposed
logical, intent(out) :: found
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_copy_distribution(dist_in, dist_out, own_dist)

Copy a distribution

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_distribution_type), intent(inout) :: dist_in
type(dbcsr_tas_distribution_type), intent(out) :: dist_out
logical, intent(in), optional :: own_dist

Whether distribution should be owned by dist_out

public subroutine dbcsr_tas_blk_sizes(matrix, row, col, row_size, col_size)

Get block size for a given row & column

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
integer, intent(out) :: row_size
integer, intent(out) :: col_size

public subroutine dbcsr_tas_clear(matrix)

Clear matrix (erase all data)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix

public subroutine dbcsr_tas_get_info(matrix, nblkrows_total, nblkcols_total, nfullrows_total, nfullcols_total, nblkrows_local, nblkcols_local, nfullrows_local, nfullcols_local, nprow, npcol, my_prow, my_pcol, local_rows, local_cols, proc_row_dist, proc_col_dist, row_blk_size, col_blk_size, distribution, name, data_area, matrix_type, data_type)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(in) :: matrix
integer(kind=int_8), intent(out), optional :: nblkrows_total
integer(kind=int_8), intent(out), optional :: nblkcols_total
integer(kind=int_8), intent(out), optional :: nfullrows_total
integer(kind=int_8), intent(out), optional :: nfullcols_total
integer, intent(out), optional :: nblkrows_local
integer, intent(out), optional :: nblkcols_local
integer, intent(out), optional :: nfullrows_local
integer, intent(out), optional :: nfullcols_local
integer, intent(out), optional :: nprow
integer, intent(out), optional :: npcol
integer, intent(out), optional :: my_prow
integer, intent(out), optional :: my_pcol
integer(kind=int_8), optional DIMENSION(:), ALLOCATABLE:: local_rows
integer(kind=int_8), optional DIMENSION(:), ALLOCATABLE:: local_cols
class(dbcsr_tas_distribution), intent(out), optional ALLOCATABLE:: proc_row_dist
class(dbcsr_tas_distribution), intent(out), optional ALLOCATABLE:: proc_col_dist
class(dbcsr_tas_rowcol_data), intent(out), optional ALLOCATABLE:: row_blk_size
class(dbcsr_tas_rowcol_data), intent(out), optional ALLOCATABLE:: col_blk_size
type(dbcsr_tas_distribution_type), optional :: distribution
character(len=*), intent(out), optional :: name
type(dbcsr_data_obj), intent(out), optional :: data_area
character, optional :: matrix_type
integer, optional :: data_type

private subroutine dbcsr_tas_iterator_next_block_r_dp(iterator, row, column, block, transposed, block_number, row_size, col_size)

As dbcsr_iterator_next_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iterator
integer(kind=int_8), intent(out) :: row
integer(kind=int_8), intent(out) :: column
real(kind=real_8), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
integer, intent(out), optional :: block_number
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_iterator_next_block_r_sp(iterator, row, column, block, transposed, block_number, row_size, col_size)

As dbcsr_iterator_next_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iterator
integer(kind=int_8), intent(out) :: row
integer(kind=int_8), intent(out) :: column
real(kind=real_4), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
integer, intent(out), optional :: block_number
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_iterator_next_block_c_dp(iterator, row, column, block, transposed, block_number, row_size, col_size)

As dbcsr_iterator_next_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iterator
integer(kind=int_8), intent(out) :: row
integer(kind=int_8), intent(out) :: column
complex(kind=real_8), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
integer, intent(out), optional :: block_number
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_iterator_next_block_c_sp(iterator, row, column, block, transposed, block_number, row_size, col_size)

As dbcsr_iterator_next_block

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_iterator), intent(inout) :: iterator
integer(kind=int_8), intent(out) :: row
integer(kind=int_8), intent(out) :: column
complex(kind=real_4), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
integer, intent(out), optional :: block_number
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_put_block_r_dp(matrix, row, col, block, transposed, summation, scale)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
real(kind=real_8), intent(in), DIMENSION(:, :):: block
logical, intent(in), optional :: transposed
logical, intent(in), optional :: summation
real(kind=real_8), intent(in), optional :: scale

private subroutine dbcsr_tas_put_block_r_sp(matrix, row, col, block, transposed, summation, scale)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
real(kind=real_4), intent(in), DIMENSION(:, :):: block
logical, intent(in), optional :: transposed
logical, intent(in), optional :: summation
real(kind=real_4), intent(in), optional :: scale

private subroutine dbcsr_tas_put_block_c_dp(matrix, row, col, block, transposed, summation, scale)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
complex(kind=real_8), intent(in), DIMENSION(:, :):: block
logical, intent(in), optional :: transposed
logical, intent(in), optional :: summation
complex(kind=real_8), intent(in), optional :: scale

private subroutine dbcsr_tas_put_block_c_sp(matrix, row, col, block, transposed, summation, scale)

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
complex(kind=real_4), intent(in), DIMENSION(:, :):: block
logical, intent(in), optional :: transposed
logical, intent(in), optional :: summation
complex(kind=real_4), intent(in), optional :: scale

private subroutine dbcsr_tas_get_block_p_r_dp(matrix, row, col, block, transposed, found, row_size, col_size)

As dbcsr_get_block_p

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
real(kind=real_8), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
logical, intent(out) :: found
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_get_block_p_r_sp(matrix, row, col, block, transposed, found, row_size, col_size)

As dbcsr_get_block_p

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
real(kind=real_4), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
logical, intent(out) :: found
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_get_block_p_c_dp(matrix, row, col, block, transposed, found, row_size, col_size)

As dbcsr_get_block_p

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
complex(kind=real_8), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
logical, intent(out) :: found
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_get_block_p_c_sp(matrix, row, col, block, transposed, found, row_size, col_size)

As dbcsr_get_block_p

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
integer(kind=int_8), intent(in) :: row
integer(kind=int_8), intent(in) :: col
complex(kind=real_4), DIMENSION(:, :), POINTER:: block
logical, intent(out) :: transposed
logical, intent(out) :: found
integer, intent(out), optional :: row_size
integer, intent(out), optional :: col_size

private subroutine dbcsr_tas_set_r_dp(matrix, alpha)

As dbcsr_set

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
real(kind=real_8), intent(in) :: alpha

private subroutine dbcsr_tas_set_r_sp(matrix, alpha)

As dbcsr_set

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
real(kind=real_4), intent(in) :: alpha

private subroutine dbcsr_tas_set_c_dp(matrix, alpha)

As dbcsr_set

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
complex(kind=real_8), intent(in) :: alpha

private subroutine dbcsr_tas_set_c_sp(matrix, alpha)

As dbcsr_set

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
complex(kind=real_4), intent(in) :: alpha

private subroutine dbcsr_tas_filter_r_dp(matrix, eps, method, use_absolute)

As dbcsr_filter

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
real(kind=real_8), intent(in) :: eps
integer, intent(in), optional :: method
logical, intent(in), optional :: use_absolute

private subroutine dbcsr_tas_filter_r_sp(matrix, eps, method, use_absolute)

As dbcsr_filter

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
real(kind=real_4), intent(in) :: eps
integer, intent(in), optional :: method
logical, intent(in), optional :: use_absolute

private subroutine dbcsr_tas_filter_c_dp(matrix, eps, method, use_absolute)

As dbcsr_filter

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
complex(kind=real_8), intent(in) :: eps
integer, intent(in), optional :: method
logical, intent(in), optional :: use_absolute

private subroutine dbcsr_tas_filter_c_sp(matrix, eps, method, use_absolute)

As dbcsr_filter

Arguments

TypeIntentOptionalAttributesName
type(dbcsr_tas_type), intent(inout) :: matrix
complex(kind=real_4), intent(in) :: eps
integer, intent(in), optional :: method
logical, intent(in), optional :: use_absolute