Transposes a DBCSR matrix, keeping the same distribution
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(inout) | :: | transposed | |||
type(dbcsr_type), | intent(in) | :: | normal | |||
logical, | intent(in), | optional | :: | shallow_data_copy | ||
logical, | intent(in), | optional | :: | transpose_data | ||
logical, | intent(in), | optional | :: | transpose_distribution | ||
type(dbcsr_distribution_obj), | intent(in), | optional | :: | use_distribution |
SUBROUTINE dbcsr_transposed(transposed, normal, shallow_data_copy, & !! Transposes a DBCSR matrix, keeping the same distribution transpose_data, transpose_distribution, use_distribution) TYPE(dbcsr_type), INTENT(INOUT) :: transposed TYPE(dbcsr_type), INTENT(IN) :: normal LOGICAL, INTENT(IN), OPTIONAL :: shallow_data_copy, transpose_data, & transpose_distribution TYPE(dbcsr_distribution_obj), INTENT(IN), & OPTIONAL :: use_distribution LOGICAL :: myshallow_data_copy, & mytranspose_distribution TYPE(dbcsr_distribution_obj) :: myuse_distribution ! set some defaults to make usage a bit less painful (fschiff) myshallow_data_copy = .FALSE. myuse_distribution = normal%dist mytranspose_distribution = .FALSE. IF (PRESENT(shallow_data_copy)) myshallow_data_copy = shallow_data_copy IF (PRESENT(use_distribution)) myuse_distribution = use_distribution IF (PRESENT(transpose_distribution)) mytranspose_distribution = transpose_distribution CALL dbcsr_new_transposed(transposed, normal, myshallow_data_copy, & transpose_data, mytranspose_distribution, & use_distribution=myuse_distribution) END SUBROUTINE dbcsr_transposed