SUBROUTINE setup_buffer_matrix_image(matrix, imgdist, &
template_matrix, data_buffer, &
meta_buffer)
TYPE(dbcsr_type), INTENT(INOUT) :: matrix
TYPE(dbcsr_imagedistribution_obj), INTENT(INOUT) :: imgdist
TYPE(dbcsr_type), INTENT(IN) :: template_matrix
TYPE(dbcsr_data_obj), INTENT(INOUT) :: data_buffer
INTEGER, DIMENSION(:), INTENT(IN), TARGET, CONTIGUOUS :: meta_buffer
matrix = dbcsr_type()
CALL dbcsr_create(matrix, &
"Buffer image of "//template_matrix%name, &
imgdist%i%main, &
dbcsr_type_no_symmetry, &
row_blk_size_obj=template_matrix%row_blk_size, &
col_blk_size_obj=template_matrix%col_blk_size, &
data_type=dbcsr_data_get_type(data_buffer), &
data_buffer=data_buffer, &
max_rbs=template_matrix%max_rbs, max_cbs=template_matrix%max_cbs, &
row_blk_offset=template_matrix%row_blk_offset, &
col_blk_offset=template_matrix%col_blk_offset, &
index_memory_type=memtype_mpi_buffer, &
make_index=.FALSE.)
matrix%index => meta_buffer
matrix%negate_real = template_matrix%negate_real
matrix%negate_imaginary = template_matrix%negate_imaginary
matrix%local_indexing = .TRUE.
matrix%list_indexing = .TRUE.
END SUBROUTINE setup_buffer_matrix_image