CP2K 2.4 (Revision 12889)
Classes | Functions | Variables

dbcsr_methods Namespace Reference

Base methods on DBCSR data structures. More...

Classes

interface  dbcsr_init
interface  dbcsr_init_p
interface  dbcsr_valid_index
interface  dbcsr_is_initialized
interface  dbcsr_get_data_size
interface  dbcsr_get_data_size_used
interface  dbcsr_get_data_size_referenced
interface  dbcsr_get_data_type
interface  dbcsr_is_real
interface  dbcsr_is_complex
interface  dbcsr_blk_row_size
interface  dbcsr_blk_column_size
interface  dbcsr_allocate_matrix_array
interface  dbcsr_array_new
interface  dbcsr_array_put
interface  dbcsr_array_get
interface  dbcsr_array_destroy
interface  dbcsr_array_hold
interface  dbcsr_array_release
interface  dbcsr_destroy_array

Functions

subroutine dbcsr_init_type (matrix)
 Initializes a DBCSR matrix but does not create it.
subroutine dbcsr_init_obj (matrix)
 Initializes a DBCSR matrix but does not allocate any memory.
subroutine dbcsr_init_obj_p (matrix, error)
 Initializes a DBCSR matrix but does not allocate any memory.
LOGICAL dbcsr_valid_index_type (matrix)
 Returns whether the index structure of the matrix is valid.
LOGICAL dbcsr_valid_index_obj (matrix)
 Returns whether the index structure of the matrix is valid.
LOGICAL dbcsr_is_initialized_type (matrix)
 Returns whether the index structure of the matrix is valid.
LOGICAL dbcsr_is_initialized_obj (matrix)
 Returns whether the index structure of the matrix is valid.
subroutine, public dbcsr_hold (matrix)
 Registers another reference for a DBCSR matrix.
recursive subroutine, public dbcsr_release (matrix)
 Releases a reference for a DBCSR matrix.
subroutine, public dbcsr_release_p (matrix, error)
 Releases a reference for a DBCSR matrix.
recursive subroutine, public dbcsr_destroy (matrix, error, force)
 Deallocates and destroys a matrix.
subroutine, public dbcsr_release_locals (matrix, error)
subroutine, public dbcsr_mp_init (mp_env)
 Initializes a new process grid.
LOGICAL, public dbcsr_mp_exists (mp_env)
 Checks whether the message passing environment exists.
LOGICAL, public dbcsr_mp_active (mp_env)
 Checks whether this process is part of the message passing environment.
subroutine, public dbcsr_mp_new (mp_env, pgrid, mp_group, mynode, numnodes, myprow, mypcol)
 Creates new process grid.
subroutine, public dbcsr_mp_grid_setup (mp_env, force)
 Sets up MPI cartesian process grid.
subroutine, public dbcsr_mp_grid_remove (mp_env)
 Removes an MPI cartesian process grid.
subroutine, public dbcsr_modify_lock (matrix)
 Locks the DBCSR data structure for modification.
subroutine, public dbcsr_modify_unlock (matrix)
 Releases the modification lock on a DBCSR data structure.
subroutine dbcsr_read_lock (matrix)
 Locks the DBCSR data structure for reading.
subroutine dbcsr_read_unlock (matrix)
 Releases the reading lock on a DBCSR data structure.
pure subroutine, public dbcsr_mp_hold (mp_env)
 Marks another use of the mp_env.
subroutine, public dbcsr_mp_release (mp_env)
 Releases and potentially destrops an mp_env.
INTEGER, public dbcsr_mp_get_process (mp_env, prow, pcol)
pure subroutine, public dbcsr_mp_get_coordinates (mp_env, node, prow, pcol)
INTEGER, dimension(:,:),
pointer, public 
dbcsr_mp_pgrid (mp_env)
INTEGER, public dbcsr_mp_numnodes (mp_env)
INTEGER, public dbcsr_mp_mynode (mp_env)
INTEGER, public dbcsr_mp_group (mp_env)
INTEGER, public dbcsr_mp_nprows (mp_env)
INTEGER, public dbcsr_mp_npcols (mp_env)
INTEGER, public dbcsr_mp_myprow (mp_env)
INTEGER, public dbcsr_mp_mypcol (mp_env)
LOGICAL, public dbcsr_mp_has_subgroups (mp_env)
INTEGER, public dbcsr_mp_my_row_group (mp_env)
INTEGER, public dbcsr_mp_my_col_group (mp_env)
LOGICAL, public dbcsr_mp_pgrid_equal (mp_env1, mp_env2)
subroutine, public dbcsr_mp_new_transposed (mp_t, mp)
 Transposes a multiprocessor environment.
subroutine, public dbcsr_distribution_new (dist, mp_env, row_dist, col_dist, local_rows, local_cols)
 Creates new distribution.
subroutine, public dbcsr_distribution_hold (dist)
 Marks another use of the distribution.
subroutine, public dbcsr_distribution_release (dist)
 Releases and potentially destrops a distribution.
subroutine, public dbcsr_dist_release_locals (dist, error)
subroutine, public dbcsr_distribution_init (dist)
subroutine, public dbcsr_distribution_add_row_map (dist, row_map)
subroutine, public dbcsr_distribution_add_col_map (dist, col_map)
subroutine, public dbcsr_distribution_del_row_map (dist)
subroutine, public dbcsr_distribution_del_col_map (dist)
TYPE(dbcsr_mp_obj), public dbcsr_distribution_mp (dist)
INTEGER, public dbcsr_distribution_nrows (dist)
INTEGER, public dbcsr_distribution_ncols (dist)
TYPE(array_i1d_obj), public dbcsr_distribution_row_dist (dist)
TYPE(array_i1d_obj), public dbcsr_distribution_col_dist (dist)
INTEGER, public dbcsr_distribution_nlocal_rows (dist)
INTEGER, public dbcsr_distribution_nlocal_cols (dist)
TYPE(array_i1d_obj), public dbcsr_distribution_local_rows (dist)
TYPE(array_i1d_obj), public dbcsr_distribution_local_cols (dist)
pure function, public dbcsr_distribution_processor (dist, row, col)
TYPE(array_i1d_obj), public dbcsr_distribution_thread_dist (dist)
LOGICAL, public dbcsr_distribution_has_threads (dist)
INTEGER, public dbcsr_distribution_num_threads (dist)
subroutine, public dbcsr_distribution_make_threads (dist, row_sizes)
 Creates a distribution for threads.
subroutine make_threads (dist, row_sizes)
 Creates a distribution for threads.
subroutine, public dbcsr_distribution_no_threads (dist)
 Removes the thread distribution from a distribution.
INTEGER, public dbcsr_nblkrows_total (matrix)
INTEGER, public dbcsr_nblkcols_total (matrix)
INTEGER, public dbcsr_nfullrows_total (matrix)
INTEGER, public dbcsr_nfullcols_total (matrix)
INTEGER, public dbcsr_nblkrows_local (matrix)
INTEGER, public dbcsr_nblkcols_local (matrix)
INTEGER, public dbcsr_nfullrows_local (matrix)
INTEGER, public dbcsr_nfullcols_local (matrix)
INTEGER, public dbcsr_max_row_size (matrix)
INTEGER, public dbcsr_max_col_size (matrix)
TYPE(dbcsr_distribution_obj),
public 
dbcsr_distribution (matrix)
CHARACTER(len=default_string_length),
public 
dbcsr_name (matrix)
LOGICAL, public dbcsr_wm_use_mutable (wm)
 Returns whether this work matrix uses the mutable type.
LOGICAL, public dbcsr_use_mutable (matrix)
 Returns whether work matrices should use the mutable data type.
TYPE(array_i1d_obj), public dbcsr_row_block_sizes (matrix)
TYPE(array_i1d_obj), public dbcsr_col_block_sizes (matrix)
TYPE(array_i1d_obj), public dbcsr_col_block_offsets (matrix)
TYPE(array_i1d_obj), public dbcsr_row_block_offsets (matrix)
subroutine, public dbcsr_get_info (matrix, nblkrows_total, nblkcols_total, nfullrows_total, nfullcols_total, nblkrows_local, nblkcols_local, nfullrows_local, nfullcols_local, my_prow, my_pcol, local_rows, local_cols, proc_row_dist, proc_col_dist, row_blk_size, col_blk_size, row_blk_offset, col_blk_offset, distribution, name, data_area, matrix_type, data_type)
 Gets information about a matrix.
LOGICAL, public dbcsr_may_be_dense (matrix, occ_thresh)
 Returns whether the matrix could be represeneted in a dense form.
INTEGER dbcsr_blk_row_size_type (matrix, row)
 Returns the blocked row size of a row.
INTEGER dbcsr_blk_row_size_obj (matrix, row)
INTEGER, public dbcsr_blk_row_offset (matrix, row)
INTEGER dbcsr_blk_column_size_type (matrix, column)
 Returns the blocked column size of a column.
INTEGER dbcsr_blk_column_size_obj (matrix, column)
INTEGER, public dbcsr_blk_col_offset (matrix, col)
TYPE(dbcsr_data_obj), public dbcsr_data_area (matrix)
 Returns the data area.
subroutine, public dbcsr_switch_data_area (matrix, data_area, previous_data_area, error)
 Sets the data area of a matrix.
CHARACTER, public dbcsr_get_matrix_type (matrix)
 Returns the matrix type.
LOGICAL, public dbcsr_has_symmetry (matrix)
 Whether matrix has symmetry.
CHARACTER, public dbcsr_get_replication_type (matrix)
 Whether matrix is (logically) transposed.
INTEGER dbcsr_get_data_type_obj (matrix)
 Returns the data type stored in the matrix.
INTEGER data_get_data_type (area)
 Returns data type of a data area.
LOGICAL dbcsr_is_real_obj (matrix)
 Returns true if the data type of the matrix is real.
LOGICAL dbcsr_is_complex_obj (matrix)
 Returns true if the data type of the matrix is complex.
pure function, public dbcsr_get_data_memory_type (matrix)
 Returns the type of memory used for data in the matrix.
INTEGER, public dbcsr_get_index_memory_type (matrix)
 Returns the type of memory used for the index in the matrix.
LOGICAL uses_special_memory_matrix (matrix)
 Returns whether the matrix uses specially-allocated memory.
LOGICAL uses_special_memory_area (area)
 Returns whether the data area uses speciall-allocated memory.
INTEGER get_data_size_area (area)
 Returns the allocated data size.
INTEGER data_data_get_type (area)
 Returns data type of a data area.
INTEGER get_data_size_matrix (matrix)
 Returns the allocated data size of a DBCSR matrix.
INTEGER get_data_size_ref_matrix (matrix)
 Get actual data storage used for matrix.
INTEGER get_data_size_ref_area (area)
 Get actual data storage used for matrix.
pure subroutine set_data_size_ref_area (data_area, referenced_size)
 Sets the referenced size of the data area.
INTEGER, public dbcsr_get_data_size_used (matrix, error)
 Count actual data storage used for matrix data.
INTEGER, public dbcsr_get_num_blocks (matrix)
 Returns the number of blocks in the matrix.
INTEGER, public dbcsr_get_nze (matrix)
 Returns the number of non-zero elements in the matrix.
REAL(KIND=real_8), public dbcsr_get_occupation (matrix)
 Returns the occupation of the matrix.
subroutine array_init_1d (array, n)
 Initializes a 1-d array of DBCSR matrices.
subroutine array_init_2d (array, n)
 Initializes a 2-d array of DBCSR matrices.
subroutine array_new_1d (array, n)
 Allocates a 1-d array of DBCSR matrices.
subroutine array_new_2d (array, n)
 Allocates a 2-d array of DBCSR matrices.
subroutine array_put_1d (array, position, matrix)
 Inserts a DBCSR matrix into the array.
subroutine array_put_2d (array, position, matrix)
 Inserts a DBCSR matrix into the array.
TYPE(dbcsr_objarray_get_1d (array, position)
 Gets a DBCSR matrix from the array.
TYPE(dbcsr_objarray_get_2d (array, position)
 Gets a DBCSR matrix from the array.
subroutine array_destroy_1d (array)
 Destroys a 1-d array and releases all held resources.
subroutine array_destroy_2d (array)
 Destroys a 2-d array and releases all held resources.
subroutine array_hold_1d (array)
 Registers another reference for a 1-d array.
subroutine array_hold_2d (array)
 Registers another reference for a 2-d array.
subroutine array_release_1d (array)
 Releases a reference for a 1-d array.
subroutine array_release_2d (array)
 Releases a reference for a 2-d array.
subroutine dbcsr_destroy_1d_array (marray, error)
 Releases all matrices in a 1-d arrray.
subroutine dbcsr_destroy_2d_array (marray, error)
 Releases all matrices in 2-d arrray.
subroutine, public dbcsr_image_dist_release (imgdist, error)
 Releases a reference to and possible deallocates an image.
subroutine, public dbcsr_image_dist_hold (imgdist, error)
 Retains a reference to an image distribution.
subroutine, public dbcsr_image_dist_init (imgdist, error)
 Initialized an image distribution.
subroutine dbcsr_destroy_image_dist (imgdist)
 Destroys a DBCSR distribution for a matrix multiplication based on the right matrix.
subroutine, public dbcsr_mutable_init (mutable)
 Initializes a mutable data type.
subroutine, public dbcsr_mutable_destroy (mutable)
 Destroys a mutable data type.
subroutine, public dbcsr_mutable_hold (mutable)
 Registers another reference to the mutable data type.
subroutine, public dbcsr_mutable_release (mutable)
 Deregisters a reference to the mutable data type.
subroutine, public dbcsr_mutable_new (mutable, data_type)
 Creates a new mutable instance.
LOGICAL, public dbcsr_mutable_instantiated (mutable)
 Deregisters a reference to the mutable data type.

Variables

CHARACTER(len=*), parameter,
private 
moduleN = 'dbcsr_methods'
INTEGER, save, public dbcsr_matrix_counter = 111111

Detailed Description

Base methods on DBCSR data structures.

Author:
Urban Borstnik
Date:
2009-05-12
Version:
0.95

Modification history:


Function Documentation

subroutine dbcsr_methods::array_destroy_1d ( TYPE(dbcsr_1d_array_obj),intent(inout)  array) [private]

Destroys a 1-d array and releases all held resources.

Parameters:
[in,out]arraythe array of matrices

Definition at line 2419 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, dbcsr_error_handling::dbcsr_fatal_level, dbcsr_release(), and dbcsr_error_handling::dbcsr_warning_level.

Here is the call graph for this function:

subroutine dbcsr_methods::array_destroy_2d ( TYPE(dbcsr_2d_array_obj),intent(inout)  array) [private]

Destroys a 2-d array and releases all held resources.

Parameters:
[in,out]arraythe array of matrices

Definition at line 2449 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, dbcsr_error_handling::dbcsr_fatal_level, dbcsr_release(), and dbcsr_error_handling::dbcsr_warning_level.

Here is the call graph for this function:

TYPE(dbcsr_obj) dbcsr_methods::array_get_1d ( TYPE(dbcsr_1d_array_obj),intent(in)  array,
INTEGER,intent(in)  position 
) [private]

Gets a DBCSR matrix from the array.

Parameters:
[in]arraythe array of matrices
[in]positionarray position into which matrix is inserted
matrixmatrix (no new reference is registered)

Definition at line 2365 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, and dbcsr_error_handling::dbcsr_fatal_level.

TYPE(dbcsr_obj) dbcsr_methods::array_get_2d ( TYPE(dbcsr_2d_array_obj),intent(in)  array,
INTEGER,dimension(2),intent(in)  position 
) [private]

Gets a DBCSR matrix from the array.

Parameters:
[in]arraythe array of matrices
[in]positionarray position into which matrix is inserted
matrixmatrix (no new reference is registered)

Definition at line 2392 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, and dbcsr_error_handling::dbcsr_fatal_level.

subroutine dbcsr_methods::array_hold_1d ( TYPE(dbcsr_1d_array_obj),intent(inout)  array) [private]

Registers another reference for a 1-d array.

Parameters:
[in,out]arraythe array of matrices

Definition at line 2482 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_failure_level.

subroutine dbcsr_methods::array_hold_2d ( TYPE(dbcsr_2d_array_obj),intent(inout)  array) [private]

Registers another reference for a 2-d array.

Parameters:
[in,out]arraythe array of matrices

Definition at line 2502 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_failure_level.

subroutine dbcsr_methods::array_init_1d ( TYPE(dbcsr_1d_array_obj),intent(out)  array,
INTEGER,intent(in),optional  n 
) [private]

Initializes a 1-d array of DBCSR matrices.

Parameters:
[out]arraythe array of matrices
[in]n(optional) number of matrices to be included

Definition at line 2227 of file dbcsr_methods.f90.

subroutine dbcsr_methods::array_init_2d ( TYPE(dbcsr_2d_array_obj),intent(out)  array,
INTEGER,dimension(2),intent(in),optional  n 
) [private]

Initializes a 2-d array of DBCSR matrices.

Parameters:
[out]arraythe array of matrices
[in]n(optional) number of matrices to be included

Definition at line 2240 of file dbcsr_methods.f90.

subroutine dbcsr_methods::array_new_1d ( TYPE(dbcsr_1d_array_obj),intent(inout)  array,
INTEGER,intent(in)  n 
) [private]

Allocates a 1-d array of DBCSR matrices.

Parameters:
[in,out]arraythe array of matrices
[in]nnumber of matrices to be included

Definition at line 2254 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_warning_level.

subroutine dbcsr_methods::array_new_2d ( TYPE(dbcsr_2d_array_obj),intent(inout)  array,
INTEGER,dimension(2),intent(in)  n 
) [private]

Allocates a 2-d array of DBCSR matrices.

Parameters:
[in,out]arraythe array of matrices
[in]nnumber of matrices to be included

Definition at line 2278 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_warning_level.

subroutine dbcsr_methods::array_put_1d ( TYPE(dbcsr_1d_array_obj),intent(inout)  array,
INTEGER,intent(in)  position,
TYPE(dbcsr_obj),intent(in)  matrix 
) [private]

Inserts a DBCSR matrix into the array.

The matrix is inserted into the array and its reference is registered.

Parameters:
[in,out]arraythe array of matrices
[in]positionarray position into which matrix is inserted
[in]matrixmatrices to be included

Definition at line 2305 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, dbcsr_error_handling::dbcsr_fatal_level, and dbcsr_hold().

Here is the call graph for this function:

subroutine dbcsr_methods::array_put_2d ( TYPE(dbcsr_2d_array_obj),intent(inout)  array,
INTEGER,dimension(2),intent(in)  position,
TYPE(dbcsr_obj),intent(in)  matrix 
) [private]

Inserts a DBCSR matrix into the array.

The matrix is inserted into the array and its reference is registered.

Parameters:
[in,out]arraythe array of matrices
[in]positionarray position into which matrix is inserted
[in]matrixmatrices to be included

Definition at line 2335 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, dbcsr_error_handling::dbcsr_fatal_level, and dbcsr_hold().

Here is the call graph for this function:

subroutine dbcsr_methods::array_release_1d ( TYPE(dbcsr_1d_array_obj),intent(inout)  array) [private]

Releases a reference for a 1-d array.

If there are no references left, the array is destroyed.

Parameters:
[in,out]arraythe array of matrices

Definition at line 2525 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_failure_level.

subroutine dbcsr_methods::array_release_2d ( TYPE(dbcsr_2d_array_obj),intent(inout)  array) [private]

Releases a reference for a 2-d array.

If there are no references left, the array is destroyed.

Parameters:
[in,out]arraythe array of matrices

Definition at line 2550 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_failure_level.

INTEGER dbcsr_methods::data_data_get_type ( TYPE(dbcsr_data_obj),intent(in)  area) [private]

Returns data type of a data area.

Parameters:
[in]areadata area
Returns:
data_type data type of the data area

Definition at line 2033 of file dbcsr_methods.f90.

INTEGER dbcsr_methods::data_get_data_type ( TYPE(dbcsr_data_obj),intent(in)  area) [private]

Returns data type of a data area.

Parameters:
[in]areadata area
Returns:
data_type data type of the data area

Definition at line 1909 of file dbcsr_methods.f90.

INTEGER,public dbcsr_methods::dbcsr_blk_col_offset ( TYPE(dbcsr_obj),intent(in)  matrix,
INTEGER,intent(in)  col 
)

Definition at line 1765 of file dbcsr_methods.f90.

Referenced by dbcsr_util::dbcsr_checksum(), and cp_dbcsr_interface::fill_sizes().

Here is the caller graph for this function:

INTEGER dbcsr_methods::dbcsr_blk_column_size_obj ( TYPE(dbcsr_obj),intent(in)  matrix,
INTEGER,intent(in)  column 
) [private]

Definition at line 1758 of file dbcsr_methods.f90.

INTEGER dbcsr_methods::dbcsr_blk_column_size_type ( TYPE(dbcsr_type),intent(in)  matrix,
INTEGER,intent(in)  column 
) [private]

Returns the blocked column size of a column.

This routine is optimized for speed and no checks are performed.

Parameters:
[in]matrixDBCSR matrix
[in]columncolumn number
Return values:
column_sizeblocked row size

Definition at line 1751 of file dbcsr_methods.f90.

INTEGER,public dbcsr_methods::dbcsr_blk_row_offset ( TYPE(dbcsr_obj),intent(in)  matrix,
INTEGER,intent(in)  row 
)

Definition at line 1734 of file dbcsr_methods.f90.

Referenced by dbcsr_util::dbcsr_checksum(), and cp_dbcsr_interface::fill_sizes().

Here is the caller graph for this function:

INTEGER dbcsr_methods::dbcsr_blk_row_size_obj ( TYPE(dbcsr_obj),intent(in)  matrix,
INTEGER,intent(in)  row 
) [private]

Definition at line 1727 of file dbcsr_methods.f90.

INTEGER dbcsr_methods::dbcsr_blk_row_size_type ( TYPE(dbcsr_type),intent(in)  matrix,
INTEGER,intent(in)  row 
) [private]

Returns the blocked row size of a row.

This routine is optimized for speed and no checks are performed.

Parameters:
[in]matrixDBCSR matrix
[in]rowrow number
Return values:
row_sizeblocked row size

Definition at line 1720 of file dbcsr_methods.f90.

TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_col_block_offsets ( TYPE(dbcsr_obj),intent(in)  matrix)
TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_col_block_sizes ( TYPE(dbcsr_obj),intent(in)  matrix)
TYPE(dbcsr_data_obj),public dbcsr_methods::dbcsr_data_area ( TYPE(dbcsr_type),intent(in)  matrix)

Returns the data area.

Parameters:
matrixmatrix from which to get data
areadata area

Definition at line 1778 of file dbcsr_methods.f90.

Referenced by dbcsr_io::dbcsr_binary_write().

Here is the caller graph for this function:

recursive subroutine,public dbcsr_methods::dbcsr_destroy ( TYPE(dbcsr_obj),intent(inout)  matrix,
TYPE(dbcsr_error_type),intent(inout)  error,
LOGICAL,intent(in),optional  force 
)

Deallocates and destroys a matrix.

Parameters:
[in,out]matrixmatrix
[in,out]errorcp2k error
[in]force(optional) force deallocation

Definition at line 467 of file dbcsr_methods.f90.

References dbcsr_block_buffers::dbcsr_buffers_2d_needed, dbcsr_error_handling::dbcsr_caller_error, dbcsr_distribution_release(), dbcsr_error_handling::dbcsr_error_set(), dbcsr_error_handling::dbcsr_error_stop(), dbcsr_error_handling::dbcsr_fatal_level, dbcsr_error_handling::dbcsr_internal_error, dbcsr_release_locals(), and dbcsr_error_handling::dbcsr_warning_level.

Referenced by dbcsr_destroy_1d_array(), dbcsr_destroy_2d_array(), dbcsr_release(), and dbcsr_release_p().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine dbcsr_methods::dbcsr_destroy_1d_array ( TYPE(dbcsr_array_type),intent(inout)  marray,
TYPE(dbcsr_error_type),intent(inout)  error 
) [private]

Releases all matrices in a 1-d arrray.

Parameters:
[in]sourceinput matrix
[in,out]marraymatrix array

Definition at line 2574 of file dbcsr_methods.f90.

References dbcsr_destroy().

Here is the call graph for this function:

subroutine dbcsr_methods::dbcsr_destroy_2d_array ( TYPE(dbcsr_2d_array_type),intent(inout)  marray,
TYPE(dbcsr_error_type),intent(inout)  error 
) [private]

Releases all matrices in 2-d arrray.

Parameters:
[in]sourceinput matrix
[in,out]marraymatrix array

Definition at line 2598 of file dbcsr_methods.f90.

References dbcsr_destroy(), and dbcsr_image_dist_release().

Here is the call graph for this function:

subroutine dbcsr_methods::dbcsr_destroy_image_dist ( TYPE(dbcsr_imagedistribution_type),intent(inout)  imgdist) [private]

Destroys a DBCSR distribution for a matrix multiplication based on the right matrix.

Parameters:
inout]imgdist_product product distribution repetition

Definition at line 2666 of file dbcsr_methods.f90.

References dbcsr_distribution_release().

Referenced by dbcsr_image_dist_release().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_dist_release_locals ( TYPE(dbcsr_distribution_obj),intent(inout)  dist,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Definition at line 1085 of file dbcsr_methods.f90.

Referenced by dbcsr_distribution_release().

Here is the caller graph for this function:

TYPE(dbcsr_distribution_obj),public dbcsr_methods::dbcsr_distribution ( TYPE(dbcsr_obj),intent(in)  matrix)
subroutine,public dbcsr_methods::dbcsr_distribution_add_col_map ( TYPE(dbcsr_distribution_obj),intent(inout)  dist,
TYPE(array_i1d_obj),intent(in)  col_map 
)

Definition at line 1135 of file dbcsr_methods.f90.

subroutine,public dbcsr_methods::dbcsr_distribution_add_row_map ( TYPE(dbcsr_distribution_obj),intent(inout)  dist,
TYPE(array_i1d_obj),intent(in)  row_map 
)

Definition at line 1127 of file dbcsr_methods.f90.

TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_distribution_col_dist ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
subroutine,public dbcsr_methods::dbcsr_distribution_del_col_map ( TYPE(dbcsr_distribution_obj),intent(inout)  dist)

Definition at line 1150 of file dbcsr_methods.f90.

subroutine,public dbcsr_methods::dbcsr_distribution_del_row_map ( TYPE(dbcsr_distribution_obj),intent(inout)  dist)

Definition at line 1143 of file dbcsr_methods.f90.

LOGICAL,public dbcsr_methods::dbcsr_distribution_has_threads ( TYPE(dbcsr_distribution_obj),intent(in)  dist)

Definition at line 1252 of file dbcsr_methods.f90.

Referenced by dbcsr_dist_operations::dbcsr_make_dists_dense(), and dbcsr_operations::dbcsr_multiply_anytype().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_distribution_hold ( TYPE(dbcsr_distribution_obj),intent(inout)  dist)

Marks another use of the distribution.

Parameters:
[in,out]mp_envmultiprocessor environment

Definition at line 1045 of file dbcsr_methods.f90.

Referenced by dbcsr_work_operations::dbcsr_create_new(), dbcsr_dist_operations::dbcsr_make_dists_dense(), dbcsr_test_methods::dbcsr_make_random_matrix(), dbcsr_operations::dbcsr_multiply_anytype(), dbcsr_dist_operations::dbcsr_new_image_dist(), and dbcsr_transformations::dbcsr_new_transposed().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_distribution_init ( TYPE(dbcsr_distribution_obj),intent(out)  dist)
TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_distribution_local_cols ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_distribution_local_rows ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
subroutine,public dbcsr_methods::dbcsr_distribution_make_threads ( TYPE(dbcsr_distribution_obj),intent(inout),target  dist,
INTEGER,dimension(:),intent(in),optional  row_sizes 
)

Creates a distribution for threads.

Parameters:
[in,out]distAdd thread distribution to this distribution
[in]row_sizes(optional) row block sizes

Definition at line 1275 of file dbcsr_methods.f90.

References make_threads().

Referenced by dbcsr_dist_operations::dbcsr_make_dists_dense(), and dbcsr_operations::dbcsr_multiply_anytype().

Here is the call graph for this function:

Here is the caller graph for this function:

TYPE(dbcsr_mp_obj),public dbcsr_methods::dbcsr_distribution_mp ( TYPE(dbcsr_distribution_obj),intent(in)  dist)

Definition at line 1158 of file dbcsr_methods.f90.

Referenced by preconditioner::apply_sparse_single(), qs_initial_guess::calculate_first_density_matrix(), cp_dbcsr_operations::copy_cfm_to_dbcsr(), cp_dbcsr_operations::copy_dbcsr_to_cfm(), cp_dbcsr_operations::copy_dbcsr_to_fm(), cp_dbcsr_operations::copy_fm_to_dbcsr(), cp_dbcsr_operations::cp_dbcsr_add_block_node(), cp_dbcsr_operations::cp_dbcsr_multiply_vec(), cp_dbcsr_operations::cp_dbcsr_plus_fm_fm_t_native(), cp_dbcsr_operations::cp_dbcsr_sm_fm_multiply(), cp_dbcsr_operations::cp_dbcsr_unpack_vec(), dbcsr_operations::dbcsr_add_on_diag_anytype(), dbcsr_io::dbcsr_binary_read(), dbcsr_io::dbcsr_binary_write(), dbcsr_util::dbcsr_checksum(), dbcsr_transformations::dbcsr_complete_redistribute(), dbcsr_dist_operations::dbcsr_create_dist_l_rot(), dbcsr_dist_operations::dbcsr_create_dist_l_unrot(), dbcsr_dist_operations::dbcsr_create_dist_r_rot(), dbcsr_dist_operations::dbcsr_create_dist_r_unrot(), dbcsr_dist_operations::dbcsr_create_image_dist(), dbcsr_transformations::dbcsr_datablock_redistribute(), dbcsr_transformations::dbcsr_desymmetrize_deep(), dbcsr_transformations::dbcsr_distribute(), dbcsr_example_2(), dbcsr_example_3(), dbcsr_operations::dbcsr_frobenius_norm_r8(), dbcsr_operations::dbcsr_gershgorin_norm_r8(), dbcsr_dist_operations::dbcsr_get_global_col_map(), dbcsr_dist_operations::dbcsr_get_global_row_map(), dbcsr_dist_operations::dbcsr_get_global_vcol_map(), dbcsr_dist_operations::dbcsr_get_global_vrow_map(), dbcsr_get_info(), dbcsr_dist_operations::dbcsr_get_local_cols(), dbcsr_dist_operations::dbcsr_get_local_rows(), dbcsr_dist_operations::dbcsr_get_local_vcols(), dbcsr_dist_operations::dbcsr_get_local_vrows(), dbcsr_get_occupation(), dbcsr_operations::dbcsr_init_random(), dbcsr_operations::dbcsr_lanczos_extremal_eig(), dbcsr_test_methods::dbcsr_make_random_matrix(), dbcsr_operations::dbcsr_maxabs_r8(), dbcsr_may_be_dense(), dbcsr_mm_cannon::dbcsr_mm_cannon_multiply(), dbcsr_operations::dbcsr_multiply_anytype(), dbcsr_operations::dbcsr_norm_anytype(), dbcsr_dist_operations::dbcsr_print_dist(), dbcsr_transformations::dbcsr_redistribute(), dbcsr_operations::dbcsr_reduce(), dbcsr_transformations::dbcsr_replicate(), dbcsr_dist_operations::dbcsr_reset_locals(), dbcsr_operations::dbcsr_sum_replicated(), dbcsr_dist_operations::dbcsr_transpose_dims(), dbcsr_dist_operations::dbcsr_transpose_distribution(), dbcsr_util::dbcsr_verify_matrix(), qs_scf_block_davidson::generate_extended_space_sparse(), dbcsr_dist_operations::make_image_distribution_dense(), dbcsr_transformations::make_images(), preconditioner::make_sparse_inverse_bif(), dbcsr_dist_operations::match_sizes_to_dist(), cp_dbcsr_interface::matrix_match_sizes(), dbcsr_util::meta_from_dist(), mp2_gpw::mp2_gpw_compute(), mp2_ri_gpw::mp2_ri_gpw_compute_in(), qs_ot_eigensolver::ot_eigensolver(), qs_ot_scf::ot_scf_init(), qs_ot_types::qs_ot_allocate(), qs_ot::qs_ot_on_the_fly_localize(), mp2_gpw::replicate_mat_to_subgroup(), qs_scf::scf_env_check_i_alloc(), qs_mo_methods::subspace_eigenvalues_ks_dbcsr(), and dbcsr_tests::test_multiplies_multiproc().

INTEGER,public dbcsr_methods::dbcsr_distribution_ncols ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
subroutine,public dbcsr_methods::dbcsr_distribution_new ( TYPE(dbcsr_distribution_obj),intent(out)  dist,
TYPE(dbcsr_mp_obj),intent(in)  mp_env,
TYPE(array_i1d_obj),intent(in)  row_dist,
TYPE(array_i1d_obj),intent(in)  col_dist,
TYPE(array_i1d_obj),intent(in),optional  local_rows,
TYPE(array_i1d_obj),intent(in),optional  local_cols 
)

Creates new distribution.

Parameters:
[out]distdistribution
[in]mp_envmultiprocessing environment
[in]row_dist,col_distrow and column distributions

Definition at line 951 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_fatal_level, dbcsr_mp_hold(), dbcsr_mp_mypcol(), dbcsr_mp_myprow(), dbcsr_mp_npcols(), dbcsr_mp_nprows(), and dbcsr_error_handling::dbcsr_wrong_args_error.

Referenced by preconditioner::apply_sparse_single(), cp_dbcsr_operations::cp_dbcsr_dist2d_to_dist(), cp_dbcsr_operations::cp_dbcsr_plus_fm_fm_t_native(), cp_dbcsr_operations::cp_dbcsr_sm_fm_multiply(), dbcsr_tests::cp_test_multiplies(), dbcsr_dist_operations::dbcsr_create_dist_block_cyclic(), dbcsr_dist_operations::dbcsr_create_dist_elemental(), dbcsr_dist_operations::dbcsr_create_dist_fullest(), dbcsr_dist_operations::dbcsr_create_dist_l_rot(), dbcsr_dist_operations::dbcsr_create_dist_l_unrot(), dbcsr_dist_operations::dbcsr_create_dist_r_rot(), dbcsr_dist_operations::dbcsr_create_dist_r_unrot(), dbcsr_dist_operations::dbcsr_create_image_dist(), dbcsr_example_1(), dbcsr_example_2(), dbcsr_example_3(), dbcsr_operations::dbcsr_lanczos_extremal_eig(), dbcsr_dist_operations::dbcsr_make_dists_dense(), dbcsr_test_methods::dbcsr_make_null_dist(), dbcsr_performance_multiply::dbcsr_perf_multiply_low(), dbcsr_dist_operations::dbcsr_transpose_dims(), dbcsr_dist_operations::dbcsr_transpose_distribution(), cp_dbcsr_interface::matrix_match_sizes(), dbcsr_performance_multiply::perf_multiply(), dbcsr_test_add::test_add(), dbcsr_tests::test_multiplies_multiproc(), and dbcsr_test_multiply::test_multiply().

Here is the call graph for this function:

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_distribution_nlocal_cols ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
INTEGER,public dbcsr_methods::dbcsr_distribution_nlocal_rows ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
subroutine,public dbcsr_methods::dbcsr_distribution_no_threads ( TYPE(dbcsr_distribution_obj),intent(inout)  dist)

Removes the thread distribution from a distribution.

Definition at line 1444 of file dbcsr_methods.f90.

Referenced by dbcsr_dist_operations::dbcsr_make_dists_dense(), and dbcsr_operations::dbcsr_multiply_anytype().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_distribution_nrows ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
INTEGER,public dbcsr_methods::dbcsr_distribution_num_threads ( TYPE(dbcsr_distribution_obj),intent(in)  dist)

Definition at line 1261 of file dbcsr_methods.f90.

pure function,public dbcsr_methods::dbcsr_distribution_processor ( TYPE(dbcsr_distribution_obj),intent(in)  dist,
INTEGER,intent(in)  row,
INTEGER,intent(in)  col 
)

Definition at line 1220 of file dbcsr_methods.f90.

Referenced by dbcsr_dist_operations::get_stored_canonical(), and dbcsr_dist_operations::get_stored_coordinates_type().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_distribution_release ( TYPE(dbcsr_distribution_obj),intent(inout)  dist)
TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_distribution_row_dist ( TYPE(dbcsr_distribution_obj),intent(in)  dist)
TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_distribution_thread_dist ( TYPE(dbcsr_distribution_obj),intent(in)  dist)

Definition at line 1242 of file dbcsr_methods.f90.

Referenced by dbcsr_dist_operations::dbcsr_make_dists_dense(), and dbcsr_index_operations::dbcsr_make_index_list().

Here is the caller graph for this function:

pure function,public dbcsr_methods::dbcsr_get_data_memory_type ( TYPE(dbcsr_obj),intent(in)  matrix)

Returns the type of memory used for data in the matrix.

Note:
It returns the declared data type, not the actually used type
Parameters:
[in]matrixquery this matrix
[out]same_as_actual(optional) whether the data actually uses the declared memory type
Returns:
memory_type memory type used for data

Definition at line 1960 of file dbcsr_methods.f90.

Referenced by dbcsr_work_operations::dbcsr_create_template().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_get_data_size_used ( TYPE(dbcsr_obj),intent(in)  matrix,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Count actual data storage used for matrix data.

Parameters:
[in]matrixCount data of this matrix
[in,out]errorError
Returns:
data_size Data size used by matrix

Definition at line 2124 of file dbcsr_methods.f90.

References dbcsr_col_block_sizes(), dbcsr_error_handling::dbcsr_error_set(), dbcsr_error_handling::dbcsr_error_stop(), and dbcsr_row_block_sizes().

Referenced by dbcsr_work_operations::dbcsr_finalize().

Here is the call graph for this function:

Here is the caller graph for this function:

INTEGER dbcsr_methods::dbcsr_get_data_type_obj ( TYPE(dbcsr_obj),intent(in)  matrix) [private]

Returns the data type stored in the matrix.

Parameters:
matrixquery this matrix
data_typedata_type (see dbcsr_types.F for possible values)

Definition at line 1897 of file dbcsr_methods.f90.

INTEGER,public dbcsr_methods::dbcsr_get_index_memory_type ( TYPE(dbcsr_obj),intent(in)  matrix)

Returns the type of memory used for the index in the matrix.

Parameters:
[in]matrixquery this matrix
Returns:
memory_type memory type used for the index

Definition at line 1973 of file dbcsr_methods.f90.

Referenced by dbcsr_operations::dbcsr_copy(), dbcsr_work_operations::dbcsr_create_template(), dbcsr_index_operations::dbcsr_index_compact(), dbcsr_operations::dbcsr_reduce(), and dbcsr_mm_cannon::setup_buffer_matrices().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_get_info ( TYPE(dbcsr_obj),intent(in)  matrix,
INTEGER,intent(out),optional  nblkrows_total,
INTEGER,intent(out),optional  nblkcols_total,
INTEGER,intent(out),optional  nfullrows_total,
INTEGER,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  my_prow,
INTEGER,intent(out),optional  my_pcol,
INTEGER,dimension(:),optional,pointer  local_rows,
INTEGER,dimension(:),optional,pointer  local_cols,
INTEGER,dimension(:),optional,pointer  proc_row_dist,
INTEGER,dimension(:),optional,pointer  proc_col_dist,
TYPE(array_i1d_obj),intent(out),optional  row_blk_size,
TYPE(array_i1d_obj),intent(out),optional  col_blk_size,
TYPE(array_i1d_obj),intent(out),optional  row_blk_offset,
TYPE(array_i1d_obj),intent(out),optional  col_blk_offset,
TYPE(dbcsr_distribution_obj),intent(out),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 
)

Gets information about a matrix.

Parameters:
[in]matrixmatrix to query
[out]nblkrows_total
[out]nblkcols_total
[out]nfullrows_total
[out]nfullcols_total
[out]nblkrows_local
[out]nblkrows_local
[out]nfullrows_local
[out]nfullrows_local
[out]my_prow,my_pcol
[out]local_rows,local_cols
[out]proc_row_dist,proc_col_dist
[out]row_blk_size
[out]col_blk_size
[out]row_blk_offset
[out]col_blk_offset
[out]distributionthe data distribution of the matrix
[out]namematrix name
[out]data_areadata_area
[out]matrix_typematrix type (regular, symmetric, see dbcsr_types.F for values)
[out]data_typedata type (single/double precision real/complex)
[in,out]errorcp2k error

Definition at line 1618 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_distribution_col_dist(), dbcsr_distribution_local_cols(), dbcsr_distribution_local_rows(), dbcsr_distribution_mp(), dbcsr_distribution_row_dist(), dbcsr_error_handling::dbcsr_failure_level, dbcsr_error_handling::dbcsr_fatal_level, dbcsr_get_matrix_type(), dbcsr_types::dbcsr_magic_number, dbcsr_mp_mypcol(), dbcsr_mp_myprow(), and dbcsr_types::dbcsr_type_invalid.

Referenced by cp_dbcsr_interface::cp_dbcsr_get_info(), and dbcsr_operations::dbcsr_lanczos_extremal_eig().

Here is the call graph for this function:

Here is the caller graph for this function:

CHARACTER,public dbcsr_methods::dbcsr_get_matrix_type ( TYPE(dbcsr_obj),intent(in)  matrix)
INTEGER,public dbcsr_methods::dbcsr_get_num_blocks ( TYPE(dbcsr_obj),intent(in)  matrix)

Returns the number of blocks in the matrix.

Parameters:
matrixmatrix from which to get data
areadata area

Definition at line 2165 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_interface::cp_dbcsr_get_num_blocks(), dbcsr_operations::dbcsr_add_reserved(), dbcsr_io::dbcsr_binary_write(), dbcsr_operations::dbcsr_copy_submatrix(), dbcsr_operations::dbcsr_insert_blocks(), and dbcsr_block_access::dbcsr_reserve_blocks().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_get_nze ( TYPE(dbcsr_obj),intent(in)  matrix)

Returns the number of non-zero elements in the matrix.

Parameters:
matrixmatrix from which to get data
areadata area

Definition at line 2177 of file dbcsr_methods.f90.

REAL(KIND=real_8),public dbcsr_methods::dbcsr_get_occupation ( TYPE(dbcsr_obj),intent(in)  matrix)

Returns the occupation of the matrix.

Parameters:
matrixmatrix from which to get the occupation

Definition at line 2188 of file dbcsr_methods.f90.

References dbcsr_distribution_mp(), dbcsr_has_symmetry(), dbcsr_mp_group(), dbcsr_nfullcols_total(), and dbcsr_nfullrows_total().

Referenced by cp_dbcsr_interface::cp_dbcsr_get_occupation(), dbcsr_may_be_dense(), dbcsr_test_add::test_add(), and dbcsr_test_multiply::test_multiply().

Here is the call graph for this function:

Here is the caller graph for this function:

CHARACTER,public dbcsr_methods::dbcsr_get_replication_type ( TYPE(dbcsr_obj),intent(in)  matrix)

Whether matrix is (logically) transposed.

Parameters:
matrixquery this matrix
Returns:
transposed matrix is transposed Returns the data type stored in the matrix
Parameters:
matrixquery this matrix
data_typerepl_type (see dbcsr_types.F for possible values)

Definition at line 1884 of file dbcsr_methods.f90.

Referenced by dbcsr_operations::dbcsr_copy(), and dbcsr_work_operations::dbcsr_create_template().

Here is the caller graph for this function:

LOGICAL,public dbcsr_methods::dbcsr_has_symmetry ( TYPE(dbcsr_obj),intent(in)  matrix)
subroutine,public dbcsr_methods::dbcsr_hold ( TYPE(dbcsr_obj),intent(inout)  matrix)

Registers another reference for a DBCSR matrix.

Parameters:
[in,out]matrixDBCSR matrix

Definition at line 387 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_failure_level, and dbcsr_types::dbcsr_magic_number.

Referenced by array_put_1d(), and array_put_2d().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_image_dist_hold ( TYPE(dbcsr_imagedistribution_obj),intent(inout)  imgdist,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Retains a reference to an image distribution.

Definition at line 2641 of file dbcsr_methods.f90.

Referenced by dbcsr_transformations::dbcsr_make_images(), dbcsr_transformations::dbcsr_make_images_dense(), and dbcsr_operations::dbcsr_multiply_anytype().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_image_dist_init ( TYPE(dbcsr_imagedistribution_obj),intent(out)  imgdist,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Initialized an image distribution.

Akin to nullify.

Definition at line 2653 of file dbcsr_methods.f90.

Referenced by dbcsr_mm_cannon::setup_buffer_matrices().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_image_dist_release ( TYPE(dbcsr_imagedistribution_obj),intent(inout)  imgdist,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Releases a reference to and possible deallocates an image.

Definition at line 2623 of file dbcsr_methods.f90.

References dbcsr_destroy_image_dist().

Referenced by dbcsr_destroy_2d_array(), dbcsr_transformations::dbcsr_make_images_dense(), and dbcsr_operations::dbcsr_multiply_anytype().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine dbcsr_methods::dbcsr_init_obj ( TYPE(dbcsr_obj),intent(out)  matrix) [private]

Initializes a DBCSR matrix but does not allocate any memory.

Parameters:
[out]matrixuninitialized matrix
[in,out]errorcp2k error

Definition at line 280 of file dbcsr_methods.f90.

subroutine dbcsr_methods::dbcsr_init_obj_p ( TYPE(dbcsr_obj),pointer  matrix,
TYPE(dbcsr_error_type),intent(inout)  error 
) [private]

Initializes a DBCSR matrix but does not allocate any memory.

Parameters:
[out]matrixuninitialized matrix
[in,out]errorcp2k error

Definition at line 299 of file dbcsr_methods.f90.

References dbcsr_release_p().

Here is the call graph for this function:

subroutine dbcsr_methods::dbcsr_init_type ( TYPE(dbcsr_type),intent(out)  matrix) [private]

Initializes a DBCSR matrix but does not create it.

Parameters:
[out]matrixuninitialized matrix
[in,out]errorcp2k error

Definition at line 246 of file dbcsr_methods.f90.

References dbcsr_distribution_init(), and dbcsr_types::dbcsr_magic_number.

Here is the call graph for this function:

LOGICAL dbcsr_methods::dbcsr_is_complex_obj ( TYPE(dbcsr_obj),intent(in)  matrix) [private]

Returns true if the data type of the matrix is complex.

Parameters:
[in]matrixquery this matrix
[out]is_complex

Definition at line 1939 of file dbcsr_methods.f90.

References dbcsr_types::dbcsr_type_complex_4, and dbcsr_types::dbcsr_type_complex_8.

LOGICAL dbcsr_methods::dbcsr_is_initialized_obj ( TYPE(dbcsr_obj),intent(in)  matrix) [private]

Returns whether the index structure of the matrix is valid.

Parameters:
[in]matrixverify index validity of this matrix
Return values:
initializedthe matrix is initialized

Definition at line 373 of file dbcsr_methods.f90.

References dbcsr_is_initialized_type().

Here is the call graph for this function:

LOGICAL dbcsr_methods::dbcsr_is_initialized_type ( TYPE(dbcsr_type),intent(in)  matrix) [private]

Returns whether the index structure of the matrix is valid.

Parameters:
[in]matrixverify index validity of this matrix
Return values:
initializedthe matrix is initialized

Definition at line 359 of file dbcsr_methods.f90.

References dbcsr_types::dbcsr_magic_number.

Referenced by dbcsr_is_initialized_obj().

Here is the caller graph for this function:

LOGICAL dbcsr_methods::dbcsr_is_real_obj ( TYPE(dbcsr_obj),intent(in)  matrix) [private]

Returns true if the data type of the matrix is real.

Parameters:
[in]matrixquery this matrix
[out]is_real

Definition at line 1922 of file dbcsr_methods.f90.

References dbcsr_types::dbcsr_type_real_4, and dbcsr_types::dbcsr_type_real_8.

INTEGER,public dbcsr_methods::dbcsr_max_col_size ( TYPE(dbcsr_obj),intent(in)  matrix)
INTEGER,public dbcsr_methods::dbcsr_max_row_size ( TYPE(dbcsr_obj),intent(in)  matrix)
LOGICAL,public dbcsr_methods::dbcsr_may_be_dense ( TYPE(dbcsr_obj),intent(in)  matrix,
REAL(real_8),intent(in)  occ_thresh 
)

Returns whether the matrix could be represeneted in a dense form.

Parameters:
[in]matrixmatrix
Returns:
may_be_dense use the mutable and not append-only working structures

Definition at line 1697 of file dbcsr_methods.f90.

References dbcsr_distribution_mp(), dbcsr_get_occupation(), and dbcsr_mp_group().

Referenced by dbcsr_operations::dbcsr_multiply_anytype().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_modify_lock ( TYPE(dbcsr_obj),intent(inout)  matrix)

Locks the DBCSR data structure for modification.

Parameters:
[in,out]matrixthe matrix to lock

Definition at line 747 of file dbcsr_methods.f90.

subroutine,public dbcsr_methods::dbcsr_modify_unlock ( TYPE(dbcsr_obj),intent(inout)  matrix)

Releases the modification lock on a DBCSR data structure.

Parameters:
[in,out]matrixthe matrix to lock

Definition at line 758 of file dbcsr_methods.f90.

LOGICAL,public dbcsr_methods::dbcsr_mp_active ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)

Checks whether this process is part of the message passing environment.

Definition at line 600 of file dbcsr_methods.f90.

Referenced by dbcsr_tests::test_multiplies_multiproc().

Here is the caller graph for this function:

LOGICAL,public dbcsr_methods::dbcsr_mp_exists ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)

Checks whether the message passing environment exists.

Definition at line 590 of file dbcsr_methods.f90.

pure subroutine,public dbcsr_methods::dbcsr_mp_get_coordinates ( TYPE(dbcsr_mp_obj),intent(in)  mp_env,
INTEGER,intent(in)  node,
INTEGER,intent(out)  prow,
INTEGER,intent(out)  pcol 
)

Definition at line 827 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_operations::cp_dbcsr_multiply_vec().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_mp_get_process ( TYPE(dbcsr_mp_obj),intent(in)  mp_env,
INTEGER,intent(in)  prow,
INTEGER,intent(in)  pcol 
)

Definition at line 819 of file dbcsr_methods.f90.

Referenced by most_point_to_point(), and remainder_point_to_point().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mp_grid_remove ( TYPE(dbcsr_mp_obj),intent(inout)  mp_env)

Removes an MPI cartesian process grid.

Parameters:
[in,out]mp_envmultiprocessor environment

Definition at line 734 of file dbcsr_methods.f90.

Referenced by dbcsr_mp_release(), and dbcsr_transformations::dbcsr_replicate().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mp_grid_setup ( TYPE(dbcsr_mp_obj),intent(inout)  mp_env,
LOGICAL,intent(in),optional  force 
)

Sets up MPI cartesian process grid.

Parameters:
[in,out]mp_envmultiprocessor environment
[in]force(optional) force creation of subcommunicators

Definition at line 684 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_fatal_level, dbcsr_error_handling::dbcsr_internal_error, and dbcsr_message_passing::mp_cart_create().

Referenced by dbcsr_mm_cannon::dbcsr_mm_cannon_multiply(), dbcsr_operations::dbcsr_reduce(), dbcsr_transformations::dbcsr_replicate(), and dbcsr_mp_operations::hybrid_alltoall_i1().

Here is the call graph for this function:

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_mp_group ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
LOGICAL,public dbcsr_methods::dbcsr_mp_has_subgroups ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
pure subroutine,public dbcsr_methods::dbcsr_mp_hold ( TYPE(dbcsr_mp_obj),intent(inout)  mp_env)

Marks another use of the mp_env.

Parameters:
[in,out]mp_envmultiprocessor environment

Definition at line 789 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_operations::cp_dbcsr_dist2d_to_dist(), and dbcsr_distribution_new().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mp_init ( TYPE(dbcsr_mp_obj),intent(out)  mp_env)

Initializes a new process grid.

Definition at line 581 of file dbcsr_methods.f90.

Referenced by dbcsr_dist_operations::dbcsr_mp_make_env().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_mp_my_col_group ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,public dbcsr_methods::dbcsr_mp_my_row_group ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,public dbcsr_methods::dbcsr_mp_mynode ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,public dbcsr_methods::dbcsr_mp_mypcol ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,public dbcsr_methods::dbcsr_mp_myprow ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
subroutine,public dbcsr_methods::dbcsr_mp_new ( TYPE(dbcsr_mp_obj),intent(out)  mp_env,
INTEGER,dimension(0:, 0:),intent(in)  pgrid,
INTEGER,intent(in)  mp_group,
INTEGER,intent(in)  mynode,
INTEGER,intent(in),optional  numnodes,
INTEGER,intent(in),optional  myprow,
INTEGER,intent(in),optional  mypcol 
)

Creates new process grid.

Parameters:
[out]mp_envmultiprocessor environment
[in]pgridprocess grid
[in]mynodemy processor number
[in]numnodestotal number of processors (processes)
History
UB (2010-02-04) Duplicates own communicator and sets up cartesian grid

Definition at line 618 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_operations::cp_dbcsr_dist2d_to_dist(), cp_dbcsr_interface::cp_dbcsr_mp_new(), dbcsr_example_1(), dbcsr_example_2(), dbcsr_example_3(), dbcsr_test_methods::dbcsr_make_null_mp(), dbcsr_dist_operations::dbcsr_mp_make_env(), and dbcsr_mp_new_transposed().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mp_new_transposed ( TYPE(dbcsr_mp_obj),intent(out)  mp_t,
TYPE(dbcsr_mp_obj),intent(in)  mp 
)

Transposes a multiprocessor environment.

Parameters:
[out]mp_ttransposed multiprocessor environment
[in]mporiginal multiprocessor environment

Definition at line 932 of file dbcsr_methods.f90.

References dbcsr_mp_group(), dbcsr_mp_mynode(), dbcsr_mp_mypcol(), dbcsr_mp_myprow(), dbcsr_mp_new(), dbcsr_mp_numnodes(), and dbcsr_mp_pgrid().

Referenced by dbcsr_dist_operations::dbcsr_create_dist_l_rot(), dbcsr_dist_operations::dbcsr_create_dist_r_rot(), and dbcsr_dist_operations::dbcsr_transpose_distribution().

Here is the call graph for this function:

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_mp_npcols ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,public dbcsr_methods::dbcsr_mp_nprows ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,public dbcsr_methods::dbcsr_mp_numnodes ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
INTEGER,dimension(:, :),pointer,public dbcsr_methods::dbcsr_mp_pgrid ( TYPE(dbcsr_mp_obj),intent(in)  mp_env)
LOGICAL,public dbcsr_methods::dbcsr_mp_pgrid_equal ( TYPE(dbcsr_mp_obj),intent(in)  mp_env1,
TYPE(dbcsr_mp_obj),intent(in)  mp_env2 
)

Definition at line 907 of file dbcsr_methods.f90.

References dbcsr_mp_nprows(), and dbcsr_mp_pgrid().

Here is the call graph for this function:

subroutine,public dbcsr_methods::dbcsr_mp_release ( TYPE(dbcsr_mp_obj),intent(inout)  mp_env)
subroutine,public dbcsr_methods::dbcsr_mutable_destroy ( TYPE(dbcsr_mutable_obj),intent(inout)  mutable)

Destroys a mutable data type.

Parameters:
[in,out]mutablemutable data

Definition at line 2730 of file dbcsr_methods.f90.

Referenced by dbcsr_mutable_release(), and dbcsr_work_operations::dbcsr_work_destroy().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mutable_hold ( TYPE(dbcsr_mutable_obj),intent(inout)  mutable)

Registers another reference to the mutable data type.

Parameters:
[in,out]mutablemutable data

Definition at line 2755 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, and dbcsr_error_handling::dbcsr_fatal_level.

subroutine,public dbcsr_methods::dbcsr_mutable_init ( TYPE(dbcsr_mutable_obj),intent(out)  mutable)

Initializes a mutable data type.

Parameters:
[out]mutablemutable data

Definition at line 2715 of file dbcsr_methods.f90.

Referenced by dbcsr_work_operations::dbcsr_init_wm().

Here is the caller graph for this function:

LOGICAL,public dbcsr_methods::dbcsr_mutable_instantiated ( TYPE(dbcsr_mutable_obj),intent(in)  mutable)

Deregisters a reference to the mutable data type.

The object is destroy when there is no reference to it left.

Parameters:
[in]mutablemutable data
[out]instantiatedwhether the object is instantiated

Definition at line 2835 of file dbcsr_methods.f90.

Referenced by dbcsr_work_operations::dbcsr_fill_wm_from_matrix(), dbcsr_block_access::dbcsr_get_block_p_area(), and dbcsr_wm_use_mutable().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mutable_new ( TYPE(dbcsr_mutable_obj),intent(inout)  mutable,
INTEGER,intent(in)  data_type 
)

Creates a new mutable instance.

Parameters:
[in,out]mutablemutable data
[in]data_typedata type to be stored here (see dbcsr_types for possibilities)

Definition at line 2801 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_fatal_level, dbcsr_types::dbcsr_type_complex_4, dbcsr_types::dbcsr_type_complex_8, dbcsr_types::dbcsr_type_real_4, dbcsr_types::dbcsr_type_real_8, and dbcsr_error_handling::dbcsr_wrong_args_error.

Referenced by dbcsr_work_operations::dbcsr_fill_wm_from_matrix(), and dbcsr_work_operations::dbcsr_work_create().

Here is the caller graph for this function:

subroutine,public dbcsr_methods::dbcsr_mutable_release ( TYPE(dbcsr_mutable_obj),intent(inout)  mutable)

Deregisters a reference to the mutable data type.

The object is destroy when there is no reference to it left.

Parameters:
[in,out]mutablemutable data

Definition at line 2776 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_error_handling::dbcsr_fatal_level, and dbcsr_mutable_destroy().

Here is the call graph for this function:

CHARACTER(len=default_string_length),public dbcsr_methods::dbcsr_name ( TYPE(dbcsr_obj),intent(in)  matrix)
INTEGER,public dbcsr_methods::dbcsr_nblkcols_local ( TYPE(dbcsr_obj),intent(in)  matrix)

Definition at line 1488 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_interface::cp_dbcsr_nblkcols_local(), and dbcsr_mm_cannon::setup_rec_index().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_nblkcols_total ( TYPE(dbcsr_obj),intent(in)  matrix)
INTEGER,public dbcsr_methods::dbcsr_nblkrows_local ( TYPE(dbcsr_obj),intent(in)  matrix)

Definition at line 1482 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_interface::cp_dbcsr_nblkrows_local(), dbcsr_mm_cannon::dbcsr_mm_cannon_multiply(), and dbcsr_mm_cannon::setup_rec_index().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_nblkrows_total ( TYPE(dbcsr_obj),intent(in)  matrix)
INTEGER,public dbcsr_methods::dbcsr_nfullcols_local ( TYPE(dbcsr_obj),intent(in)  matrix)

Definition at line 1500 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_interface::cp_dbcsr_nfullcols_local(), and dbcsr_mm_cannon::dbcsr_mm_cannon_multiply().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_nfullcols_total ( TYPE(dbcsr_obj),intent(in)  matrix)
INTEGER,public dbcsr_methods::dbcsr_nfullrows_local ( TYPE(dbcsr_obj),intent(in)  matrix)

Definition at line 1494 of file dbcsr_methods.f90.

Referenced by cp_dbcsr_interface::cp_dbcsr_nfullrows_local(), and dbcsr_mm_cannon::dbcsr_mm_cannon_multiply().

Here is the caller graph for this function:

INTEGER,public dbcsr_methods::dbcsr_nfullrows_total ( TYPE(dbcsr_obj),intent(in)  matrix)
subroutine dbcsr_methods::dbcsr_read_lock ( TYPE(dbcsr_obj),intent(inout)  matrix) [private]

Locks the DBCSR data structure for reading.

Parameters:
[in,out]matrixthe matrix to lock

Definition at line 768 of file dbcsr_methods.f90.

subroutine dbcsr_methods::dbcsr_read_unlock ( TYPE(dbcsr_obj),intent(inout)  matrix) [private]

Releases the reading lock on a DBCSR data structure.

Parameters:
[in,out]matrixthe matrix to lock

Definition at line 778 of file dbcsr_methods.f90.

recursive subroutine,public dbcsr_methods::dbcsr_release ( TYPE(dbcsr_obj),intent(inout)  matrix)
subroutine,public dbcsr_methods::dbcsr_release_locals ( TYPE(dbcsr_obj),intent(inout)  matrix,
TYPE(dbcsr_error_type),intent(inout)  error 
)
subroutine,public dbcsr_methods::dbcsr_release_p ( TYPE(dbcsr_obj),pointer  matrix,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Releases a reference for a DBCSR matrix.

If there are no references left, the matrix is destroyed.

Parameters:
[in,out]setDBCSR matrix

Definition at line 438 of file dbcsr_methods.f90.

References dbcsr_error_handling::dbcsr_caller_error, dbcsr_destroy(), dbcsr_types::dbcsr_magic_number, and dbcsr_error_handling::dbcsr_warning_level.

Referenced by dbcsr_init_obj_p().

Here is the call graph for this function:

Here is the caller graph for this function:

TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_row_block_offsets ( TYPE(dbcsr_obj),intent(in)  matrix)
TYPE(array_i1d_obj),public dbcsr_methods::dbcsr_row_block_sizes ( TYPE(dbcsr_obj),intent(in)  matrix)
subroutine,public dbcsr_methods::dbcsr_switch_data_area ( TYPE(dbcsr_obj),intent(inout)  matrix,
TYPE(dbcsr_data_obj),intent(in)  data_area,
TYPE(dbcsr_data_obj),intent(out),optional  previous_data_area,
TYPE(dbcsr_error_type),intent(inout)  error 
)

Sets the data area of a matrix.

Parameters:
[in,out]matrixmatrix for which to set the data area
[in]data_areadata area to set
[out]previous_data_area(optional) previous data area
[in,out]errorerror

Definition at line 1792 of file dbcsr_methods.f90.

References dbcsr_block_buffers::dbcsr_buffers_2d_needed, dbcsr_error_handling::dbcsr_error_set(), dbcsr_error_handling::dbcsr_error_stop(), and error.

Referenced by dbcsr_operations::dbcsr_copy(), dbcsr_operations::dbcsr_copy_submatrix(), dbcsr_transformations::dbcsr_distribute(), dbcsr_transformations::dbcsr_make_undense(), dbcsr_transformations::dbcsr_new_transposed(), dbcsr_transformations::dbcsr_replicate(), dbcsr_transformations::make_dense(), and dbcsr_work_operations::quick_finalize().

Here is the call graph for this function:

Here is the caller graph for this function:

LOGICAL,public dbcsr_methods::dbcsr_use_mutable ( TYPE(dbcsr_type),intent(in)  matrix)

Returns whether work matrices should use the mutable data type.

Parameters:
[in]matrixmatrix
[out]use_mutableuse the mutable and not append-only working structures

Definition at line 1554 of file dbcsr_methods.f90.

Referenced by dbcsr_work_operations::dbcsr_create_template(), and dbcsr_block_access::dbcsr_get_block_p_area().

Here is the caller graph for this function:

LOGICAL dbcsr_methods::dbcsr_valid_index_obj ( TYPE(dbcsr_obj),intent(in)  matrix) [private]

Returns whether the index structure of the matrix is valid.

Parameters:
[in]matrixverify index validity of this matrix
Return values:
valid_indexindex validity

Definition at line 337 of file dbcsr_methods.f90.

References dbcsr_valid_index_type().

Here is the call graph for this function:

LOGICAL dbcsr_methods::dbcsr_valid_index_type ( TYPE(dbcsr_type),intent(in)  matrix) [private]

Returns whether the index structure of the matrix is valid.

Parameters:
[in]matrixverify index validity of this matrix
Return values:
valid_indexindex validity

Definition at line 319 of file dbcsr_methods.f90.

Referenced by dbcsr_valid_index_obj().

Here is the caller graph for this function:

LOGICAL,public dbcsr_methods::dbcsr_wm_use_mutable ( TYPE(dbcsr_work_type),intent(in)  wm)

Returns whether this work matrix uses the mutable type.

Parameters:
[in]wmwork matrix
[out]use_mutableuse the mutable and not append-only working structures

Definition at line 1539 of file dbcsr_methods.f90.

References dbcsr_mutable_instantiated().

Referenced by dbcsr_work_operations::can_quickly_finalize(), cp_dbcsr_operations::cp_dbcsr_add_block_node(), dbcsr_work_operations::dbcsr_fill_wm_from_matrix(), dbcsr_work_operations::dbcsr_finalize(), dbcsr_work_operations::dbcsr_merge_all(), dbcsr_work_operations::dbcsr_merge_single_wm(), and dbcsr_index_operations::dbcsr_sort_many_indices().

Here is the call graph for this function:

Here is the caller graph for this function: