Put a 2D block in a DBCSR matrix
Type  Intent  Optional  Attributes  Name  

type(dbcsr_type),  intent(inout)  ::  matrix 
DBCSR matrix 

integer,  intent(in)  ::  row 
the row the column 

integer,  intent(in)  ::  col 
the row the column 

complex(kind=real_4),  intent(in),  DIMENSION(:, :), CONTIGUOUS, TARGET  ::  block 
the block to put 

integer,  intent(inout),  optional,  DIMENSION(2)  ::  lb_row_col  
logical,  intent(in),  optional  ::  transposed 
the block is transposed if block exists, then sum the new block to the old one instead of replacing it 

logical,  intent(in),  optional  ::  summation 
the block is transposed if block exists, then sum the new block to the old one instead of replacing it 

integer(kind=int_8),  intent(inout),  optional  ::  flop  
complex(kind=real_4),  intent(in),  optional  ::  scale 
scale the block being added 
SUBROUTINE dbcsr_put_block2d_c (matrix, row, col, block, lb_row_col, transposed, &
summation, flop, scale)
!! Put a 2D block in a DBCSR matrix
TYPE(dbcsr_type), INTENT(INOUT) :: matrix
!! DBCSR matrix
INTEGER, INTENT(IN) :: row, col
!! the row
!! the column
COMPLEX(kind=real_4), DIMENSION(:, :), INTENT(IN), &
CONTIGUOUS, TARGET :: block
!! the block to put
INTEGER, DIMENSION(2), OPTIONAL, INTENT(INOUT) :: lb_row_col
LOGICAL, INTENT(IN), OPTIONAL :: transposed, summation
!! the block is transposed
!! if block exists, then sum the new block to the old one instead of replacing it
INTEGER(KIND=int_8), INTENT(INOUT), OPTIONAL :: flop
COMPLEX(kind=real_4), INTENT(IN), OPTIONAL :: scale
!! scale the block being added
COMPLEX(kind=real_4), DIMENSION(:), POINTER :: block_1d
NULLIFY (block_1d)
block_1d(1:SIZE(block)) => block
CALL dbcsr_put_block(matrix, row, col, block_1d, lb_row_col, transposed, summation, flop, scale)
END SUBROUTINE dbcsr_put_block2d_c