Sets a pointer, possibly using the buffers.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(in) | :: | matrix |
Matrix to use |
||
real(kind=real_4), | 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_s ( & matrix, pointer_any, rsize, csize, base_offset) !! Sets a pointer, possibly using the buffers. TYPE(dbcsr_type), INTENT(IN) :: matrix !! Matrix to use REAL(kind=real_4), 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_s' INTEGER :: error_handler REAL(kind=real_4), 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_s