SUBROUTINE dbcsr_add_z(matrix_a, matrix_b, alpha_scalar, beta_scalar)
TYPE(dbcsr_type), INTENT(INOUT) :: matrix_a
TYPE(dbcsr_type), INTENT(IN) :: matrix_b
COMPLEX(real_8), INTENT(IN) :: alpha_scalar, beta_scalar
CHARACTER(len=*), PARAMETER :: routineN = 'dbcsr_add_z'
INTEGER :: handle
CALL timeset(routineN, handle)
IF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_8 .AND. &
dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_8) THEN
CALL dbcsr_add_anytype(matrix_a, matrix_b, &
alpha_scalar=dbcsr_scalar(alpha_scalar), &
beta_scalar=dbcsr_scalar(beta_scalar))
ELSEIF (dbcsr_get_data_type(matrix_a) .EQ. dbcsr_type_complex_4 .AND. &
dbcsr_get_data_type(matrix_b) .EQ. dbcsr_type_complex_4) THEN
CALL dbcsr_add_anytype(matrix_a, matrix_b, &
alpha_scalar=dbcsr_scalar(CMPLX(alpha_scalar, KIND=real_4)), &
beta_scalar=dbcsr_scalar(CMPLX(beta_scalar, KIND=real_4)))
ELSE
DBCSR_ABORT("Invalid combination of data type, NYI")
END IF
CALL timestop(handle)
END SUBROUTINE dbcsr_add_z