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 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)#
-
- 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:
CLASS (
CONF_PAR), INTENT(IN) :: this
Returns: CHARACTER(LEN=3)
- function conf_par_env_value(this, env_val)#
Arguments:
CLASS (
CONF_PAR), INTENT(INOUT) :: thisCLASS (
*), 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) :: thisINTEGER, INTENT(IN), OPTIONAL :: integer_val
- subroutine set_conf_par_mm_driver(this, mm_driver)#
Arguments:
CLASS (
CONF_PAR_MM_DRIVER), INTENT(INOUT) :: thisCHARACTER(LEN=*), INTENT(IN), OPTIONAL :: mm_driver
- subroutine set_conf_par_logical(this, logical_val)#
Arguments:
CLASS (
CONF_PAR_LOGICAL), INTENT(INOUT) :: thisLOGICAL, INTENT(IN), OPTIONAL :: logical_val
- subroutine set_conf_par_real(this, real_val)#
Arguments:
CLASS (
CONF_PAR_REAL), INTENT(INOUT) :: thisREAL (
real_8), INTENT(IN), OPTIONAL :: real_val
- 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_factorLOGICAL, 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_factorLOGICAL, 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
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)
- 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:
TYPE (
dbcsr_1d_array_type), INTENT(INOUT) :: marray
- subroutine dbcsr_destroy_2d_array(marray)#
Arguments:
TYPE (
dbcsr_2d_array_type), INTENT(INOUT) :: marray
- PURE function dbcsr_valid_index(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: LOGICAL
- function dbcsr_nblkrows_total(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nblkcols_total(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nfullrows_total(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nfullcols_total(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nblkrows_local(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nblkcols_local(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nfullrows_local(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_nfullcols_local(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_max_row_size(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_max_col_size(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_distribution(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: TYPE (
dbcsr_distribution_obj)
- function dbcsr_name(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: CHARACTER(LEN=default_string_length)
- PURE function dbcsr_wm_use_mutable(wm)#
Arguments:
TYPE (
dbcsr_work_type), INTENT(IN) :: wm
Returns: LOGICAL
- PURE function dbcsr_use_mutable(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: LOGICAL
- function dbcsr_row_block_sizes(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS
- function dbcsr_col_block_sizes(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS
- function dbcsr_col_block_offsets(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS
- function dbcsr_row_block_offsets(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS
- PURE function dbcsr_blk_row_size(matrix, row)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrixINTEGER, INTENT(IN) :: row
Returns: INTEGER
- PURE function dbcsr_blk_row_offset(matrix, row)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrixINTEGER, INTENT(IN) :: row
Returns: INTEGER
- PURE function dbcsr_blk_column_size(matrix, column)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrixINTEGER, INTENT(IN) :: column
Returns: INTEGER
- PURE function dbcsr_blk_col_offset(matrix, col)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrixINTEGER, INTENT(IN) :: col
Returns: INTEGER
- function dbcsr_data_area(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: TYPE (
dbcsr_data_obj)
- PURE function dbcsr_get_matrix_type(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: CHARACTER(LEN=1)
- PURE function dbcsr_has_symmetry(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: LOGICAL
- PURE function dbcsr_get_replication_type(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: CHARACTER(LEN=1)
- PURE function dbcsr_get_data_type(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_get_data_memory_type(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: TYPE (
dbcsr_memtype_type)
- function dbcsr_get_index_memory_type(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: TYPE (
dbcsr_memtype_type)
- function dbcsr_get_data_size(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- function dbcsr_get_data_size_used(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- PURE function dbcsr_get_num_blocks(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- PURE function dbcsr_get_nze(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(IN) :: matrix
Returns: INTEGER
- PURE function dbcsr_mutable_instantiated(mutable)#
Arguments:
TYPE (
dbcsr_mutable_obj), INTENT(IN) :: mutable
Returns: LOGICAL
- RECURSIVE subroutine dbcsr_release(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(INOUT) :: matrix
- RECURSIVE subroutine dbcsr_destroy(matrix, force)#
Arguments:
TYPE (
dbcsr_type), INTENT(INOUT) :: matrixLOGICAL, INTENT(IN), OPTIONAL :: force
- subroutine dbcsr_distribution_release(dist)#
Arguments:
TYPE (
dbcsr_distribution_obj), INTENT(INOUT) :: dist
- subroutine dbcsr_dist_release_locals(dist)#
Arguments:
TYPE (
dbcsr_distribution_obj), INTENT(INOUT) :: dist
- subroutine dbcsr_mp_release(mp_env)#
Arguments:
TYPE (
dbcsr_mp_obj), INTENT(INOUT) :: mp_env
- subroutine dbcsr_mp_grid_remove(mp_env)#
Arguments:
TYPE (
dbcsr_mp_obj), INTENT(INOUT) :: mp_env
- subroutine dbcsr_release_locals(matrix)#
Arguments:
TYPE (
dbcsr_type), INTENT(INOUT) :: matrix
- subroutine dbcsr_setname(matrix, newname)#
Arguments:
TYPE (
dbcsr_type), INTENT(INOUT) :: matrixCHARACTER(LEN=*), INTENT(IN) :: newname
- subroutine dbcsr_image_dist_release(imgdist)#
Arguments:
TYPE (
dbcsr_imagedistribution_obj), INTENT(INOUT) :: imgdist
- subroutine dbcsr_image_dist_hold(imgdist)#
Arguments:
TYPE (
dbcsr_imagedistribution_obj), INTENT(INOUT) :: imgdist
- subroutine dbcsr_image_dist_init(imgdist)#
Arguments:
TYPE (
dbcsr_imagedistribution_obj), INTENT(OUT) :: imgdist
- subroutine dbcsr_destroy_image_dist(imgdist)#
Arguments:
TYPE (
dbcsr_imagedistribution_type), INTENT(INOUT) :: imgdist
- subroutine dbcsr_mutable_init(mutable)#
Arguments:
TYPE (
dbcsr_mutable_obj), INTENT(OUT) :: mutable
- subroutine dbcsr_mutable_destroy(mutable)#
Arguments:
TYPE (
dbcsr_mutable_obj), INTENT(INOUT) :: mutable
- subroutine dbcsr_mutable_release(mutable)#
Arguments:
TYPE (
dbcsr_mutable_obj), INTENT(INOUT) :: mutable
- subroutine dbcsr_mutable_new(mutable, data_type)#
Arguments:
TYPE (
dbcsr_mutable_obj), INTENT(INOUT) :: mutableINTEGER, 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) :: groupINTEGER, 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) :: alphaTYPE (
dbcsr_type), INTENT(IN) :: matrix_aTYPE (
dbcsr_type), INTENT(IN) :: matrix_bTYPE (
dbcsr_scalar_type), INTENT(IN) :: betaTYPE (
dbcsr_type), INTENT(INOUT) :: matrix_cINTEGER, 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_epsINTEGER (
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) :: arrayINTEGER, DIMENSION(:), POINTER, CONTIGUOUS :: DATA
LOGICAL, INTENT(IN), OPTIONAL :: gift
- subroutine array_new_i1d_lb(array, DATA, lb)#
Arguments:
TYPE (
array_i1d_obj), INTENT(OUT) :: arrayINTEGER, INTENT(IN), DIMENSION(:) :: DATA
INTEGER, INTENT(IN) :: lb
- interface array_hold#
- subroutine array_hold_i1d(array)#
Arguments:
TYPE (
array_i1d_obj), INTENT(INOUT) :: array
- interface array_release#
- subroutine array_release_i1d(array)#
Arguments:
TYPE (
array_i1d_obj), INTENT(INOUT) :: array
- interface array_nullify#
- PURE subroutine array_nullify_i1d(array)#
Arguments:
TYPE (
array_i1d_obj), INTENT(INOUT) :: array
- interface array_exists#
- PURE function array_exists_i1d(array)#
Arguments:
TYPE (
array_i1d_obj), INTENT(IN) :: array
Returns: LOGICAL
- interface array_data#
- function array_data_i1d(array)#
Arguments:
TYPE (
array_i1d_obj), INTENT(IN) :: array
Returns: INTEGER, DIMENSION(:), POINTER, CONTIGUOUS
- interface array_size#
- PURE function array_size_i1d(array)#
Arguments:
TYPE (
array_i1d_obj), INTENT(IN) :: array
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:
TYPE (
array_i1d_obj), INTENT(IN) :: array1TYPE (
array_i1d_obj), INTENT(IN) :: array2
Returns: LOGICAL
- interface array_get#
- PURE function array_get_i1d(array, index1)#
Arguments:
TYPE (
array_i1d_obj), INTENT(IN) :: arrayINTEGER, 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