checks if symmetries of two matrices are compatible for copying \brief data from matrix_a(source) to matrix_b(target)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=1), | intent(in) | :: | matrix_type_a | |||
character(len=1), | intent(in) | :: | matrix_type_b |
LOGICAL FUNCTION symmetry_compatible(matrix_type_a, matrix_type_b) !! checks if symmetries of two matrices are compatible for copying !! \brief data from matrix_a(source) to matrix_b(target) CHARACTER, INTENT(IN) :: matrix_type_a, matrix_type_b symmetry_compatible = .FALSE. SELECT CASE (matrix_type_a) CASE (dbcsr_type_no_symmetry) SELECT CASE (matrix_type_b) CASE (dbcsr_type_no_symmetry) symmetry_compatible = .TRUE. END SELECT CASE (dbcsr_type_symmetric, dbcsr_type_hermitian) SELECT CASE (matrix_type_b) CASE (dbcsr_type_symmetric, dbcsr_type_hermitian) symmetry_compatible = .TRUE. END SELECT CASE (dbcsr_type_antisymmetric, dbcsr_type_antihermitian) SELECT CASE (matrix_type_b) CASE (dbcsr_type_antisymmetric, dbcsr_type_antihermitian) symmetry_compatible = .TRUE. END SELECT CASE DEFAULT DBCSR_ABORT("Invalid matrix type.") END SELECT END FUNCTION symmetry_compatible