DBCSR: Sparse Matrix Library#

DBCSR is a library for efficiently performing sparse matrix-matrix multiplication, with MPI/OpenMP parallelism and GPU (CUDA/HIP) acceleration.

The documentation below is generated from the DBCSR v2.9.1 source code using f:automodule. DBCSR uses a CMake-templated FORD project file. The @VAR@ placeholders are automatically substituted by sphinx-ford.

module dbcsr_config#

Uses: dbcsr_acc_device, dbcsr_kinds, dbcsr_mpiwrap, dbcsr_string_utilities

parameter moduleN = 'dbcsr_config'#

Type: CHARACTER(LEN=*)

parameter default_resize_factor = 1.2_dp#

Type: REAL (dp)

parameter max_paramter_name_len = 100#

Type: INTEGER

parameter max_paramter_value_len = 100#

Type: INTEGER

parameter mm_driver_auto = 0#

Type: INTEGER

parameter mm_driver_matmul = 1#

Type: INTEGER

parameter mm_driver_blas = 2#

Type: INTEGER

parameter mm_driver_smm = 3#

Type: INTEGER

parameter mm_driver_xsmm = 4#

Type: INTEGER

parameter mm_name_auto = "AUTO"#

Type: CHARACTER(LEN=*)

parameter mm_name_blas = "BLAS"#

Type: CHARACTER(LEN=*)

parameter mm_name_matmul = "MATMUL"#

Type: CHARACTER(LEN=*)

parameter mm_name_smm = "SMM"#

Type: CHARACTER(LEN=*)

parameter mm_name_xsmm = "XSMM"#

Type: CHARACTER(LEN=*)

parameter has_smm = .TRUE.#

Type: LOGICAL

parameter has_smm_vec = .TRUE.#

Type: LOGICAL

parameter has_xsmm = .TRUE.#

Type: LOGICAL

parameter has_acc = .TRUE.#

Type: LOGICAL

parameter has_MPI = .TRUE.#

Type: LOGICAL

parameter mm_stack_default_size_cpu = 1000#

Type: INTEGER

parameter mm_stack_default_size_gpu = 30000#

Type: INTEGER

parameter mm_stack_default_size = mm_stack_default_size_gpu#

Type: INTEGER

parameter mm_dense_default_cpu = .TRUE.#

Type: LOGICAL

parameter mm_dense_default_gpu = .FALSE.#

Type: LOGICAL

parameter mm_dense_default = mm_dense_default_gpu#

Type: LOGICAL

parameter mm_default_driver = mm_driver_xsmm#

Type: INTEGER

variable dbcsr_cfg = dbcsr_config_type()#

Type: TYPE (dbcsr_config_type), SAVE

parameter max_kernel_dim = 80#

Type: INTEGER

parameter default_accdrv_active_device_id = -1#

Type: INTEGER

variable accdrv_active_device_id = default_accdrv_active_device_id#

Type: INTEGER

type CONF_PAR#
member source = 'D'#

Type: CHARACTER(LEN=1)

member name = ""#

Type: CHARACTER(LEN=max_paramter_name_len)

procedure env_value#

Binds to: conf_par_env_value

procedure print_source#

Binds to: print_source

type CONF_PAR_INT, extends(CONF_PAR)#
member val = -1#

Type: INTEGER

member defval = -1#

Type: INTEGER

member ensure_positive = .TRUE.#

Type: LOGICAL

procedure set#

Binds to: set_conf_par_int

type CONF_PAR_MM_DRIVER, extends(CONF_PAR)#
member val = -1#

Type: INTEGER

member defval = -1#

Type: INTEGER

procedure set#

Binds to: set_conf_par_mm_driver

type CONF_PAR_LOGICAL, extends(CONF_PAR)#
member val = .FALSE.#

Type: LOGICAL

member defval = .FALSE.#

Type: LOGICAL

procedure set#

Binds to: set_conf_par_logical

type CONF_PAR_REAL, extends(CONF_PAR)#
member val = -1#

Type: REAL (real_8)

member defval = -1#

Type: REAL (real_8)

procedure set#

Binds to: set_conf_par_real

type dbcsr_config_type#
member MM_DRIVER = CONF_PAR_MM_DRIVER(name="MM_DRIVER", val=mm_default_driver,...#

Type: TYPE (CONF_PAR_MM_DRIVER)

member MM_STACK_SIZE = CONF_PAR_INT(name="MM_STACK_SIZE", val=mm_stack_default_size...#

Type: TYPE (CONF_PAR_INT)

member ACCDRV_AVOID_AFTER_BUSY = CONF_PAR_LOGICAL(name="ACCDRV_AVOID_AFTER_BUSY", val=.FALSE....#

Type: TYPE (CONF_PAR_LOGICAL)

member ACCDRV_DO_INHOMOGENOUS = CONF_PAR_LOGICAL(name="ACCDRV_DO_INHOMOGENOUS", val=.TRUE.,...#

Type: TYPE (CONF_PAR_LOGICAL)

function print_source(this)#

Arguments:

Returns: CHARACTER(LEN=3)

function conf_par_env_value(this, env_val)#

Arguments:

  • CLASS (CONF_PAR), INTENT(INOUT) :: this

  • CLASS (*), INTENT(OUT) :: env_val

Returns: LOGICAL

function get_accdrv_active_device_id()#

Returns: INTEGER

PURE function use_acc()#

Returns: LOGICAL

subroutine set_conf_par_int(this, integer_val)#

Arguments:

  • CLASS (CONF_PAR_INT), INTENT(INOUT) :: this

  • INTEGER, INTENT(IN), OPTIONAL :: integer_val

subroutine set_conf_par_mm_driver(this, mm_driver)#

Arguments:

  • CLASS (CONF_PAR_MM_DRIVER), INTENT(INOUT) :: this

  • CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: mm_driver

subroutine set_conf_par_logical(this, logical_val)#

Arguments:

  • CLASS (CONF_PAR_LOGICAL), INTENT(INOUT) :: this

  • LOGICAL, INTENT(IN), OPTIONAL :: logical_val

subroutine set_conf_par_real(this, real_val)#

Arguments:

subroutine dbcsr_set_config(mm_driver, use_mpi_allocator, mm_stack_size, avg_elements_images, num_mult_images, nstacks, use_mpi_rma, num_layers_3D, use_comm_thread, comm_thread_load, mm_dense, multrec_limit, run_on_gpu, accdrv_thread_buffers, accdrv_avoid_after_busy, accdrv_min_flop_process, accdrv_stack_sort, accdrv_min_flop_sort, accdrv_do_inhomogenous, accdrv_binning_nbins, accdrv_binning_binsize, use_mempools_cpu, tas_split_factor, use_acc_g2g)#

Arguments:

  • CHARACTER(LEN=*), INTENT(IN), OPTIONAL :: mm_driver

  • LOGICAL, INTENT(IN), OPTIONAL :: use_mpi_allocator

  • INTEGER, INTENT(IN), OPTIONAL :: mm_stack_size

  • INTEGER, INTENT(IN), OPTIONAL :: avg_elements_images

  • INTEGER, INTENT(IN), OPTIONAL :: num_mult_images

  • INTEGER, INTENT(IN), OPTIONAL :: nstacks

  • LOGICAL, INTENT(IN), OPTIONAL :: use_mpi_rma

  • INTEGER, INTENT(IN), OPTIONAL :: num_layers_3D

  • LOGICAL, INTENT(IN), OPTIONAL :: use_comm_thread

  • INTEGER, INTENT(IN), OPTIONAL :: comm_thread_load

  • LOGICAL, INTENT(IN), OPTIONAL :: mm_dense

  • INTEGER, INTENT(IN), OPTIONAL :: multrec_limit

  • LOGICAL, INTENT(IN), OPTIONAL :: run_on_gpu

  • INTEGER, INTENT(IN), OPTIONAL :: accdrv_thread_buffers

  • LOGICAL, INTENT(IN), OPTIONAL :: accdrv_avoid_after_busy

  • INTEGER, INTENT(IN), OPTIONAL :: accdrv_min_flop_process

  • LOGICAL, INTENT(IN), OPTIONAL :: accdrv_stack_sort

  • INTEGER, INTENT(IN), OPTIONAL :: accdrv_min_flop_sort

  • LOGICAL, INTENT(IN), OPTIONAL :: accdrv_do_inhomogenous

  • INTEGER, INTENT(IN), OPTIONAL :: accdrv_binning_nbins

  • INTEGER, INTENT(IN), OPTIONAL :: accdrv_binning_binsize

  • LOGICAL, INTENT(IN), OPTIONAL :: use_mempools_cpu

  • REAL (real_8), INTENT(IN), OPTIONAL :: tas_split_factor

  • LOGICAL, INTENT(IN), OPTIONAL :: use_acc_g2g

subroutine dbcsr_get_default_config(use_mpi_allocator, mm_stack_size, avg_elements_images, num_mult_images, nstacks, use_mpi_rma, num_layers_3D, use_comm_thread, comm_thread_load, mm_dense, run_on_gpu, multrec_limit, accdrv_thread_buffers, accdrv_avoid_after_busy, accdrv_min_flop_process, accdrv_stack_sort, accdrv_min_flop_sort, accdrv_do_inhomogenous, accdrv_binning_nbins, accdrv_binning_binsize, use_mempools_cpu, tas_split_factor, use_acc_g2g)#

Arguments:

  • LOGICAL, INTENT(OUT), OPTIONAL :: use_mpi_allocator

  • INTEGER, INTENT(OUT), OPTIONAL :: mm_stack_size

  • INTEGER, INTENT(OUT), OPTIONAL :: avg_elements_images

  • INTEGER, INTENT(OUT), OPTIONAL :: num_mult_images

  • INTEGER, INTENT(OUT), OPTIONAL :: nstacks

  • LOGICAL, INTENT(OUT), OPTIONAL :: use_mpi_rma

  • INTEGER, INTENT(OUT), OPTIONAL :: num_layers_3D

  • LOGICAL, INTENT(OUT), OPTIONAL :: use_comm_thread

  • INTEGER, INTENT(OUT), OPTIONAL :: comm_thread_load

  • LOGICAL, INTENT(OUT), OPTIONAL :: mm_dense

  • LOGICAL, INTENT(OUT), OPTIONAL :: run_on_gpu

  • INTEGER, INTENT(OUT), OPTIONAL :: multrec_limit

  • INTEGER, INTENT(OUT), OPTIONAL :: accdrv_thread_buffers

  • LOGICAL, INTENT(OUT), OPTIONAL :: accdrv_avoid_after_busy

  • INTEGER, INTENT(OUT), OPTIONAL :: accdrv_min_flop_process

  • LOGICAL, INTENT(OUT), OPTIONAL :: accdrv_stack_sort

  • INTEGER, INTENT(OUT), OPTIONAL :: accdrv_min_flop_sort

  • LOGICAL, INTENT(OUT), OPTIONAL :: accdrv_do_inhomogenous

  • INTEGER, INTENT(OUT), OPTIONAL :: accdrv_binning_nbins

  • INTEGER, INTENT(OUT), OPTIONAL :: accdrv_binning_binsize

  • LOGICAL, INTENT(OUT), OPTIONAL :: use_mempools_cpu

  • REAL (real_8), INTENT(OUT), OPTIONAL :: tas_split_factor

  • LOGICAL, INTENT(OUT), OPTIONAL :: use_acc_g2g

subroutine dbcsr_print_config(unit_nr)#

Arguments:

  • INTEGER, INTENT(IN) :: unit_nr

subroutine set_accdrv_active_device_id(in_accdrv_active_device_id)#

Arguments:

  • INTEGER, INTENT(IN) :: in_accdrv_active_device_id

subroutine reset_accdrv_active_device_id()#
module dbcsr_types#

Uses: dbcsr_array_types, dbcsr_btree, dbcsr_data_types, dbcsr_kinds, dbcsr_mpiwrap

parameter moduleN = 'dbcsr_types'#

Type: CHARACTER(LEN=*)

parameter dbcsr_filter_frobenius = 1#

Type: INTEGER

parameter dbcsr_norm_frobenius = 1#

Type: INTEGER

parameter dbcsr_norm_maxabsnorm = 2#

Type: INTEGER

parameter dbcsr_norm_gershgorin = 3#

Type: INTEGER

parameter dbcsr_norm_column = 4#

Type: INTEGER

parameter dbcsr_type_invalid = '0'#

Type: CHARACTER(LEN=1)

parameter dbcsr_type_no_symmetry = 'N'#

Type: CHARACTER(LEN=1)

parameter dbcsr_type_symmetric = 'S'#

Type: CHARACTER(LEN=1)

parameter dbcsr_type_antisymmetric = 'A'#

Type: CHARACTER(LEN=1)

parameter dbcsr_type_hermitian = 'H'#

Type: CHARACTER(LEN=1)

parameter dbcsr_type_antihermitian = 'K'#

Type: CHARACTER(LEN=1)

parameter dbcsr_no_transpose = 'N'#

Type: CHARACTER(LEN=1)

parameter dbcsr_transpose = 'T'#

Type: CHARACTER(LEN=1)

parameter dbcsr_conjugate_transpose = 'C'#

Type: CHARACTER(LEN=1)

parameter dbcsr_repl_none = 'N'#

Type: CHARACTER(LEN=1)

parameter dbcsr_repl_row = 'R'#

Type: CHARACTER(LEN=1)

parameter dbcsr_repl_col = 'C'#

Type: CHARACTER(LEN=1)

parameter dbcsr_repl_full = 'A'#

Type: CHARACTER(LEN=1)

parameter dbcsr_func_inverse = 0#

Type: INTEGER

parameter dbcsr_func_tanh = 1#

Type: INTEGER

parameter dbcsr_func_dtanh = 2#

Type: INTEGER

parameter dbcsr_func_ddtanh = 3#

Type: INTEGER

parameter dbcsr_func_artanh = 4#

Type: INTEGER

parameter dbcsr_func_inverse_special = 5#

Type: INTEGER

parameter dbcsr_func_spread_from_zero = 6#

Type: INTEGER

parameter dbcsr_func_sin = 7#

Type: INTEGER

parameter dbcsr_func_dsin = 8#

Type: INTEGER

parameter dbcsr_func_ddsin = 9#

Type: INTEGER

parameter dbcsr_func_asin = 10#

Type: INTEGER

parameter dbcsr_func_cos = 11#

Type: INTEGER

parameter dbcsr_func_truncate = 12#

Type: INTEGER

parameter dbcsr_slot_size = 1#

Type: INTEGER

parameter dbcsr_slot_nblks = 2#

Type: INTEGER

parameter dbcsr_slot_nze = 3#

Type: INTEGER

parameter dbcsr_slot_dense = 4#

Type: INTEGER

parameter dbcsr_slot_nblkrows_total = 5#

Type: INTEGER

parameter dbcsr_slot_nblkcols_total = 6#

Type: INTEGER

parameter dbcsr_slot_nfullrows_total = 7#

Type: INTEGER

parameter dbcsr_slot_nfullcols_total = 8#

Type: INTEGER

parameter dbcsr_slot_nblkrows_local = 9#

Type: INTEGER

parameter dbcsr_slot_nblkcols_local = 10#

Type: INTEGER

parameter dbcsr_slot_nfullrows_local = 11#

Type: INTEGER

parameter dbcsr_slot_nfullcols_local = 12#

Type: INTEGER

parameter dbcsr_slot_type = 13#

Type: INTEGER

parameter dbcsr_slot_home_prow = 14#

Type: INTEGER

parameter dbcsr_slot_home_pcol = 15#

Type: INTEGER

parameter dbcsr_slot_home_rowi = 16#

Type: INTEGER

parameter dbcsr_slot_home_coli = 17#

Type: INTEGER

parameter dbcsr_slot_home_vprow = 18#

Type: INTEGER

parameter dbcsr_slot_home_vpcol = 19#

Type: INTEGER

parameter dbcsr_meta_size = 19#

Type: INTEGER

parameter dbcsr_slot_row_p = dbcsr_meta_size+2#

Type: INTEGER

parameter dbcsr_slot_col_i = dbcsr_meta_size+4#

Type: INTEGER

parameter dbcsr_slot_blk_p = dbcsr_meta_size+6#

Type: INTEGER

parameter dbcsr_slot_thr_c = dbcsr_meta_size+8#

Type: INTEGER

parameter dbcsr_slot_coo_l = dbcsr_meta_size+10#

Type: INTEGER

parameter dbcsr_num_slots = dbcsr_meta_size+11#

Type: INTEGER

parameter dbcsr_mpi_size_limits = (/2**7, 2**13, 2**15, 2**17, 2**22, 2**24/)#

Type: INTEGER (int_8), DIMENSION(6)

type dbcsr_mp_type#
member mynode = -1#

Type: INTEGER

member numnodes = -1#

Type: INTEGER

member myprow = -1#

Type: INTEGER

member mypcol = -1#

Type: INTEGER

member mp_group = mp_comm_null#

Type: TYPE (mp_comm_type)

member pgrid = Null()#

Type: INTEGER, DIMENSION(:, :), POINTER, CONTIGUOUS

member refcount = 0#

Type: INTEGER

member subgroups_defined = .FALSE.#

Type: LOGICAL

member prow_group = mp_comm_null#

Type: TYPE (mp_comm_type)

member pcol_group = mp_comm_null#

Type: TYPE (mp_comm_type)

member source = -1#

Type: INTEGER

type dbcsr_mp_obj#
member mp = Null()#

Type: TYPE (dbcsr_mp_type), POINTER

type dbcsr_distribution_type#
member row_dist_block = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member col_dist_block = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member local_rows = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member local_cols = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member max_row_dist = -1#

Type: INTEGER

member max_col_dist = -1#

Type: INTEGER

member other_l_rows = Null()#

Type: TYPE (array_i1d_obj), DIMENSION(:), POINTER

member other_l_cols = Null()#

Type: TYPE (array_i1d_obj), DIMENSION(:), POINTER

member has_other_l_rows = .FALSE.#

Type: LOGICAL

member has_other_l_cols = .FALSE.#

Type: LOGICAL

member global_row_map = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member global_col_map = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member has_global_row_map = .FALSE.#

Type: LOGICAL

member has_global_col_map = .FALSE.#

Type: LOGICAL

member row_map = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member col_map = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member has_thread_dist = .FALSE.#

Type: LOGICAL

member thread_dist = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member num_threads = -1#

Type: INTEGER

member mp_env = dbcsr_mp_obj()#

Type: TYPE (dbcsr_mp_obj)

member refcount = 0#

Type: INTEGER

type dbcsr_distribution_obj#
member d = Null()#

Type: TYPE (dbcsr_distribution_type), POINTER

type dbcsr_imagedistribution_type#
member main = dbcsr_distribution_obj()#

Type: TYPE (dbcsr_distribution_obj)

member row_image = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member col_image = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member row_decimation = -1#

Type: INTEGER

member col_decimation = -1#

Type: INTEGER

member row_multiplicity = -1#

Type: INTEGER

member col_multiplicity = -1#

Type: INTEGER

member vrow_dist = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member vcol_dist = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member other_vl_rows = Null()#

Type: TYPE (array_i1d_obj), DIMENSION(:), POINTER

member other_vl_cols = Null()#

Type: TYPE (array_i1d_obj), DIMENSION(:), POINTER

member global_vrow_map = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member global_vcol_map = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member has_other_vl_rows = .FALSE.#

Type: LOGICAL

member has_other_vl_cols = .FALSE.#

Type: LOGICAL

member has_global_vrow_map = .FALSE.#

Type: LOGICAL

member has_global_vcol_map = .FALSE.#

Type: LOGICAL

member id = -1#

Type: INTEGER

member refcount = 0#

Type: INTEGER

type dbcsr_imagedistribution_obj#
member i = Null()#

Type: TYPE (dbcsr_imagedistribution_type), POINTER

type dbcsr_block_buffer_type#
member refcount = 0#

Type: INTEGER

member dirty = Null()#

Type: LOGICAL, DIMENSION(:), POINTER

member buffers = Null()#

Type: TYPE (dbcsr_data_obj), DIMENSION(:), POINTER

member rcb = Null()#

Type: INTEGER, DIMENSION(:, :), POINTER

member main = dbcsr_data_obj()#

Type: TYPE (dbcsr_data_obj)

member backing = Null()#

Type: TYPE (dbcsr_data_obj), DIMENSION(:), POINTER

member data_type = -1#

Type: INTEGER

type dbcsr_block_buffer_obj#
member b = Null()#

Type: TYPE (dbcsr_block_buffer_type), POINTER

type dbcsr_iterator#
member matrix = Null()#

Type: TYPE (dbcsr_type), POINTER

member buffer_2d = dbcsr_block_buffer_obj()#

Type: TYPE (dbcsr_block_buffer_obj)

member pos = -1#

Type: INTEGER

member row = -1#

Type: INTEGER

member row_size = -1#

Type: INTEGER

member row_offset = -1#

Type: INTEGER

member rbs = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member cbs = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member roff = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member coff = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member local_indexing = .FALSE.#

Type: LOGICAL

member contiguous_pointers = .FALSE.#

Type: LOGICAL

member transpose = .FALSE.#

Type: LOGICAL

member read_only = .FALSE.#

Type: LOGICAL

member shared = .FALSE.#

Type: LOGICAL

member dynamic = .FALSE.#

Type: LOGICAL

member dynamic_byrows = .FALSE.#

Type: LOGICAL

member common_pos = Null()#

Type: INTEGER, POINTER

member nblks = -1#

Type: INTEGER

member nblkrows_total = -1#

Type: INTEGER

member row_p = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member col_i = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member blk_p = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member tdist = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member local_rows = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member global_rows = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member data_area = dbcsr_data_obj()#

Type: TYPE (dbcsr_data_obj)

type dbcsr_mutable_type#
member btree_s = btree_i8_sp2d()#

Type: TYPE (btree_i8_sp2d)

member btree_d = btree_i8_dp2d()#

Type: TYPE (btree_i8_dp2d)

member btree_c = btree_i8_cp2d()#

Type: TYPE (btree_i8_cp2d)

member btree_z = btree_i8_zp2d()#

Type: TYPE (btree_i8_zp2d)

member refcount = 0#

Type: INTEGER

member data_type = -1#

Type: INTEGER

type dbcsr_mutable_obj#
member m = Null()#

Type: TYPE (dbcsr_mutable_type), POINTER

type dbcsr_work_type#
member data_area = dbcsr_data_obj()#

Type: TYPE (dbcsr_data_obj)

member row_i = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member col_i = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member blk_p = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member lastblk = -1#

Type: INTEGER

member datasize = -1#

Type: INTEGER

member datasize_after_filtering = -1#

Type: INTEGER

member mutable = dbcsr_mutable_obj()#

Type: TYPE (dbcsr_mutable_obj)

type dbcsr_type#
member serial_number = -1#

Type: INTEGER

member valid = .FALSE.#

Type: LOGICAL

member name = ""#

Type: CHARACTER(LEN=default_string_length)

member data_area = dbcsr_data_obj()#

Type: TYPE (dbcsr_data_obj)

member index = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member row_p = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member col_i = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member blk_p = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member thr_c = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member coo_l = Null()#

Type: INTEGER, DIMENSION(:), POINTER

member row_blk_size = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member col_blk_size = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member row_blk_offset = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member col_blk_offset = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member local_rows = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member global_rows = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member local_cols = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member global_cols = array_i1d_obj()#

Type: TYPE (array_i1d_obj)

member has_local_rows = .FALSE.#

Type: LOGICAL

member has_global_rows = .FALSE.#

Type: LOGICAL

member has_local_cols = .FALSE.#

Type: LOGICAL

member has_global_cols = .FALSE.#

Type: LOGICAL

member max_rbs = -1#

Type: INTEGER

member max_cbs = -1#

Type: INTEGER

member sparsity_id = -1#

Type: INTEGER

member id_nr = -1#

Type: INTEGER

member nblks = -1#

Type: INTEGER

member nze = -1#

Type: INTEGER

member nblkrows_total = -1#

Type: INTEGER

member nblkcols_total = -1#

Type: INTEGER

member nfullrows_total = -1#

Type: INTEGER

member nfullcols_total = -1#

Type: INTEGER

member nblkrows_local = -1#

Type: INTEGER

member nblkcols_local = -1#

Type: INTEGER

member nfullrows_local = -1#

Type: INTEGER

member nfullcols_local = -1#

Type: INTEGER

member data_type = -1#

Type: INTEGER

member replication_type = ""#

Type: CHARACTER(LEN=1)

member symmetry = .FALSE.#

Type: LOGICAL

member negate_real = .FALSE.#

Type: LOGICAL

member negate_imaginary = .FALSE.#

Type: LOGICAL

member bcsc = .FALSE.#

Type: LOGICAL

member local_indexing = .FALSE.#

Type: LOGICAL

member list_indexing = .FALSE.#

Type: LOGICAL

member data_memory_type = dbcsr_memtype_type()#

Type: TYPE (dbcsr_memtype_type)

member index_memory_type = dbcsr_memtype_type()#

Type: TYPE (dbcsr_memtype_type)

member buffers = dbcsr_block_buffer_obj()#

Type: TYPE (dbcsr_block_buffer_obj)

member wms = Null()#

Type: TYPE (dbcsr_work_type), DIMENSION(:), POINTER

member dist = dbcsr_distribution_obj()#

Type: TYPE (dbcsr_distribution_obj)

member refcount = 0#

Type: INTEGER

member work_mutable = .FALSE.#

Type: LOGICAL

type dbcsr_work_type_p#
member w = Null()#

Type: TYPE (dbcsr_work_type), POINTER

type dbcsr_type_p#
member matrix = Null()#

Type: TYPE (dbcsr_type), POINTER

type dbcsr_1d_array_obj#
member mats = Null()#

Type: TYPE (dbcsr_type_p), DIMENSION(:), POINTER

type dbcsr_2d_array_obj#
member mats = Null()#

Type: TYPE (dbcsr_type_p), DIMENSION(:, :), POINTER

type dbcsr_1d_array_type#
member mats = Null()#

Type: TYPE (dbcsr_type), DIMENSION(:), POINTER

member image_dist = dbcsr_imagedistribution_obj()#

Type: TYPE (dbcsr_imagedistribution_obj)

type dbcsr_2d_array_type#
member mats = Null()#

Type: TYPE (dbcsr_type), DIMENSION(:, :), POINTER

member image_dist = dbcsr_imagedistribution_obj()#

Type: TYPE (dbcsr_imagedistribution_obj)

type dbcsr_mpi_statistics_type#
member last_mpi_ranks_used = -1#

Type: INTEGER

member nimages = -1#

Type: INTEGER

member nexchanged = -1#

Type: INTEGER

member nfiltered = -1#

Type: INTEGER

member data_size = 0.0#

Type: REAL, DIMENSION(2, 3)

member data_size_breakdown = -1#

Type: INTEGER (int_8), DIMENSION(SIZE(DBCSR_MPI_SIZE_LIMITS) + 1, 2, 2)

module dbcsr_methods#

Uses: dbcsr_array_types, dbcsr_btree, dbcsr_data_methods, dbcsr_kinds, dbcsr_mpiwrap, dbcsr_ptr_util, dbcsr_types

parameter moduleN = 'dbcsr_methods'#

Type: CHARACTER(LEN=*)

variable dbcsr_matrix_counter = 111111#

Type: INTEGER, SAVE

interface dbcsr_destroy_array#
subroutine dbcsr_destroy_1d_array(marray)#

Arguments:

subroutine dbcsr_destroy_2d_array(marray)#

Arguments:

PURE function dbcsr_valid_index(matrix)#

Arguments:

Returns: LOGICAL

function dbcsr_nblkrows_total(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nblkcols_total(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nfullrows_total(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nfullcols_total(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nblkrows_local(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nblkcols_local(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nfullrows_local(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_nfullcols_local(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_max_row_size(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_max_col_size(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_distribution(matrix)#

Arguments:

Returns: TYPE (dbcsr_distribution_obj)

function dbcsr_name(matrix)#

Arguments:

Returns: CHARACTER(LEN=default_string_length)

PURE function dbcsr_wm_use_mutable(wm)#

Arguments:

Returns: LOGICAL

PURE function dbcsr_use_mutable(matrix)#

Arguments:

Returns: LOGICAL

function dbcsr_row_block_sizes(matrix)#

Arguments:

Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

function dbcsr_col_block_sizes(matrix)#

Arguments:

Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

function dbcsr_col_block_offsets(matrix)#

Arguments:

Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

function dbcsr_row_block_offsets(matrix)#

Arguments:

Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

PURE function dbcsr_blk_row_size(matrix, row)#

Arguments:

  • TYPE (dbcsr_type), INTENT(IN) :: matrix

  • INTEGER, INTENT(IN) :: row

Returns: INTEGER

PURE function dbcsr_blk_row_offset(matrix, row)#

Arguments:

  • TYPE (dbcsr_type), INTENT(IN) :: matrix

  • INTEGER, INTENT(IN) :: row

Returns: INTEGER

PURE function dbcsr_blk_column_size(matrix, column)#

Arguments:

  • TYPE (dbcsr_type), INTENT(IN) :: matrix

  • INTEGER, INTENT(IN) :: column

Returns: INTEGER

PURE function dbcsr_blk_col_offset(matrix, col)#

Arguments:

  • TYPE (dbcsr_type), INTENT(IN) :: matrix

  • INTEGER, INTENT(IN) :: col

Returns: INTEGER

function dbcsr_data_area(matrix)#

Arguments:

Returns: TYPE (dbcsr_data_obj)

PURE function dbcsr_get_matrix_type(matrix)#

Arguments:

Returns: CHARACTER(LEN=1)

PURE function dbcsr_has_symmetry(matrix)#

Arguments:

Returns: LOGICAL

PURE function dbcsr_get_replication_type(matrix)#

Arguments:

Returns: CHARACTER(LEN=1)

PURE function dbcsr_get_data_type(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_get_data_memory_type(matrix)#

Arguments:

Returns: TYPE (dbcsr_memtype_type)

function dbcsr_get_index_memory_type(matrix)#

Arguments:

Returns: TYPE (dbcsr_memtype_type)

function dbcsr_get_data_size(matrix)#

Arguments:

Returns: INTEGER

function dbcsr_get_data_size_used(matrix)#

Arguments:

Returns: INTEGER

PURE function dbcsr_get_num_blocks(matrix)#

Arguments:

Returns: INTEGER

PURE function dbcsr_get_nze(matrix)#

Arguments:

Returns: INTEGER

PURE function dbcsr_mutable_instantiated(mutable)#

Arguments:

Returns: LOGICAL

RECURSIVE subroutine dbcsr_release(matrix)#

Arguments:

RECURSIVE subroutine dbcsr_destroy(matrix, force)#

Arguments:

  • TYPE (dbcsr_type), INTENT(INOUT) :: matrix

  • LOGICAL, INTENT(IN), OPTIONAL :: force

subroutine dbcsr_distribution_release(dist)#

Arguments:

subroutine dbcsr_dist_release_locals(dist)#

Arguments:

subroutine dbcsr_mp_release(mp_env)#

Arguments:

subroutine dbcsr_mp_grid_remove(mp_env)#

Arguments:

subroutine dbcsr_release_locals(matrix)#

Arguments:

subroutine dbcsr_setname(matrix, newname)#

Arguments:

  • TYPE (dbcsr_type), INTENT(INOUT) :: matrix

  • CHARACTER(LEN=*), INTENT(IN) :: newname

subroutine dbcsr_image_dist_release(imgdist)#

Arguments:

subroutine dbcsr_image_dist_hold(imgdist)#

Arguments:

subroutine dbcsr_image_dist_init(imgdist)#

Arguments:

subroutine dbcsr_destroy_image_dist(imgdist)#

Arguments:

subroutine dbcsr_mutable_init(mutable)#

Arguments:

subroutine dbcsr_mutable_destroy(mutable)#

Arguments:

subroutine dbcsr_mutable_release(mutable)#

Arguments:

subroutine dbcsr_mutable_new(mutable, data_type)#

Arguments:

  • TYPE (dbcsr_mutable_obj), INTENT(INOUT) :: mutable

  • INTEGER, INTENT(IN) :: data_type

module dbcsr_mm#

Uses: dbcsr_acc_device, dbcsr_acc_stream, dbcsr_array_types, dbcsr_config, dbcsr_data_methods, dbcsr_dist_methods, dbcsr_dist_util, dbcsr_index_operations, dbcsr_io, dbcsr_kinds, dbcsr_machine, dbcsr_mem_methods, dbcsr_methods, dbcsr_mm_3D, dbcsr_mm_cannon, dbcsr_mm_common, dbcsr_mm_dist_operations, dbcsr_mm_multrec, dbcsr_mp_methods, dbcsr_mpiwrap, dbcsr_operations, dbcsr_string_utilities, dbcsr_transformations, dbcsr_types, dbcsr_work_operations, dbcsr_mm_sched

parameter moduleN = 'dbcsr_mm'#

Type: CHARACTER(LEN=*)

parameter debug_mod = .FALSE.#

Type: LOGICAL

parameter careful_mod = .FALSE.#

Type: LOGICAL

variable marketing_flops = 0#

Type: REAL, SAVE

subroutine dbcsr_multiply_lib_init()#
subroutine dbcsr_multiply_lib_finalize()#
subroutine dbcsr_multiply_print_statistics(group, output_unit)#

Arguments:

  • TYPE (mp_comm_type), INTENT(IN) :: group

  • INTEGER, INTENT(IN) :: output_unit

subroutine dbcsr_multiply_clear_mempools()#
subroutine dbcsr_multiply_generic(transa, transb, alpha, matrix_a, matrix_b, beta, matrix_c, first_row, last_row, first_column, last_column, first_k, last_k, retain_sparsity, filter_eps, flop)#

Arguments:

  • CHARACTER(LEN=1), INTENT(IN) :: transa

  • CHARACTER(LEN=1), INTENT(IN) :: transb

  • TYPE (dbcsr_scalar_type), INTENT(IN) :: alpha

  • TYPE (dbcsr_type), INTENT(IN) :: matrix_a

  • TYPE (dbcsr_type), INTENT(IN) :: matrix_b

  • TYPE (dbcsr_scalar_type), INTENT(IN) :: beta

  • TYPE (dbcsr_type), INTENT(INOUT) :: matrix_c

  • INTEGER, INTENT(IN), OPTIONAL :: first_row

  • INTEGER, INTENT(IN), OPTIONAL :: last_row

  • INTEGER, INTENT(IN), OPTIONAL :: first_column

  • INTEGER, INTENT(IN), OPTIONAL :: last_column

  • INTEGER, INTENT(IN), OPTIONAL :: first_k

  • INTEGER, INTENT(IN), OPTIONAL :: last_k

  • LOGICAL, INTENT(IN), OPTIONAL :: retain_sparsity

  • REAL (real_8), INTENT(IN), OPTIONAL :: filter_eps

  • INTEGER (int_8), INTENT(OUT), OPTIONAL :: flop

subroutine check_openmpi_rma()#
module dbcsr_array_types#

Uses: libxsmm

type array_i1d_type#
member DATA = Null()#

Type: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

member refcount = 0#

Type: INTEGER

type array_i1d_obj#
member low = Null()#

Type: TYPE (array_i1d_type), POINTER

interface array_new#
subroutine array_new_i1d(array, DATA, gift)#

Arguments:

  • TYPE (array_i1d_obj), INTENT(OUT) :: array

  • INTEGER, DIMENSION(:), POINTER, CONTIGUOUS :: DATA

  • LOGICAL, INTENT(IN), OPTIONAL :: gift

subroutine array_new_i1d_lb(array, DATA, lb)#

Arguments:

  • TYPE (array_i1d_obj), INTENT(OUT) :: array

  • INTEGER, INTENT(IN), DIMENSION(:) :: DATA

  • INTEGER, INTENT(IN) :: lb

interface array_hold#
subroutine array_hold_i1d(array)#

Arguments:

interface array_release#
subroutine array_release_i1d(array)#

Arguments:

interface array_nullify#
PURE subroutine array_nullify_i1d(array)#

Arguments:

interface array_exists#
PURE function array_exists_i1d(array)#

Arguments:

Returns: LOGICAL

interface array_data#
function array_data_i1d(array)#

Arguments:

Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS

interface array_size#
PURE function array_size_i1d(array)#

Arguments:

Returns: INTEGER

interface array_equality#
PURE function array_equality_i1(array1, array2)#

Arguments:

  • INTEGER, DIMENSION(:), POINTER, CONTIGUOUS :: array1

  • INTEGER, DIMENSION(:), POINTER, CONTIGUOUS :: array2

Returns: LOGICAL

PURE function array_equality_i1d(array1, array2)#

Arguments:

Returns: LOGICAL

interface array_get#
PURE function array_get_i1d(array, index1)#

Arguments:

  • TYPE (array_i1d_obj), INTENT(IN) :: array

  • INTEGER, INTENT(IN) :: index1

Returns: INTEGER

PURE function array_get_i1(array, index1)#

Arguments:

  • INTEGER, INTENT(IN), DIMENSION(:), POINTER :: array

  • INTEGER, INTENT(IN) :: index1

Returns: INTEGER

module dbcsr_acc_device#

Uses: ISO_C_BINDING

parameter moduleN = 'dbcsr_acc_device'#

Type: CHARACTER(LEN=*)

interface acc_get_ndevices_cu#
interface acc_set_active_device_cu#
interface acc_device_synchronize_cu#
interface acc_clear_errors_cu#
function dbcsr_acc_get_ndevices()#

Returns: INTEGER

subroutine dbcsr_acc_set_active_device(device_id)#

Arguments:

  • INTEGER :: device_id

subroutine dbcsr_acc_clear_errors()#
subroutine acc_device_synchronize()#
module dbcsr_kinds#
parameter sp = SELECTED_REAL_KIND(6, 30)#

Type: INTEGER

parameter dp = SELECTED_REAL_KIND(14, 200)#

Type: INTEGER

parameter dp_size = 8#

Type: INTEGER

parameter int_size = BIT_SIZE(0)/8#

Type: INTEGER

parameter sp_size = 4#

Type: INTEGER

parameter real_4 = SELECTED_REAL_KIND(6, 30)#

Type: INTEGER

parameter real_8 = SELECTED_REAL_KIND(14, 200)#

Type: INTEGER

parameter real_4_size = 4#

Type: INTEGER

parameter real_8_size = 8#

Type: INTEGER

parameter int_1 = SELECTED_INT_KIND(2)#

Type: INTEGER

parameter int_1_size = BIT_SIZE(INT(0, int_1))/8#

Type: INTEGER

parameter int_2 = SELECTED_INT_KIND(4)#

Type: INTEGER

parameter int_2_size = BIT_SIZE(INT(0, int_2))/8#

Type: INTEGER

parameter int_4 = SELECTED_INT_KIND(5)#

Type: INTEGER

parameter int_4_size = BIT_SIZE(INT(0, int_4))/8#

Type: INTEGER

parameter int_8 = SELECTED_INT_KIND(10)#

Type: INTEGER

parameter int_8_size = BIT_SIZE(INT(0, int_8))/8#

Type: INTEGER

parameter default_string_length = 80#

Type: INTEGER

parameter default_path_length = 1024#

Type: INTEGER

parameter max_line_length = 2*default_path_length#

Type: INTEGER

parameter default_blank_character = (/" ", CHAR(9)/)#

Type: CHARACTER(LEN=1)

subroutine print_kind_info(iw)#

Arguments:

  • INTEGER, INTENT(IN) :: iw

module dbcsr_string_utilities#

Uses: dbcsr_kinds

interface stringify#
function integer_to_string(inumber)#

Arguments:

  • INTEGER, INTENT(IN) :: inumber

Returns: CHARACTER(LEN=:), ALLOCATABLE

subroutine compress(string, full)#

Arguments:

  • CHARACTER(LEN=*), INTENT(INOUT) :: string

  • LOGICAL, INTENT(IN), OPTIONAL :: full

subroutine uppercase(string)#

Arguments:

  • CHARACTER(LEN=*), INTENT(INOUT) :: string

ELEMENTAL subroutine str2int(str, int, stat)#

Arguments:

  • CHARACTER(LEN=*), INTENT(IN) :: str

  • INTEGER, INTENT(OUT) :: int

  • INTEGER, INTENT(OUT) :: stat