Sets a pointer, possibly using the buffers.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(in) | :: | matrix |
Matrix to use |
||
complex(kind=real_8), | DIMENSION(:, :), POINTER | :: | pointer_any |
The pointer to set |
||
integer, | intent(in) | :: | rsize |
Row size of block to point to Column size of block to point to |
||
integer, | intent(in) | :: | csize |
Row size of block to point to Column size of block to point to |
||
integer, | intent(in) | :: | base_offset |
The block pointer |
SUBROUTINE dbcsr_set_block_pointer_2d_z ( &
matrix, pointer_any, rsize, csize, base_offset)
!! Sets a pointer, possibly using the buffers.
TYPE(dbcsr_type), INTENT(IN) :: matrix
!! Matrix to use
COMPLEX(kind=real_8), DIMENSION(:, :), POINTER :: pointer_any
!! The pointer to set
INTEGER, INTENT(IN) :: rsize, csize
!! Row size of block to point to
!! Column size of block to point to
INTEGER, INTENT(IN) :: base_offset
!! The block pointer
CHARACTER(len=*), PARAMETER :: &
routineN = 'dbcsr_set_block_pointer_2d_z'
INTEGER :: error_handler
COMPLEX(kind=real_8), DIMENSION(:), POINTER :: lin_blk_p
! ---------------------------------------------------------------------------
IF (careful_mod) CALL timeset(routineN, error_handler)
CALL dbcsr_get_data(matrix%data_area, lin_blk_p, &
lb=base_offset, ub=base_offset + rsize*csize - 1)
CALL pointer_rank_remap2(pointer_any, rsize, csize, &
lin_blk_p)
IF (careful_mod) CALL timestop(error_handler)
END SUBROUTINE dbcsr_set_block_pointer_2d_z