Creates row and column images of a matrix.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(dbcsr_type), | intent(in) | :: | source |
input matrix |
||
type(dbcsr_2d_array_type), | intent(out) | :: | normalized |
image array of the normalized matrix |
||
type(dbcsr_imagedistribution_obj), | intent(in) | :: | target_image_dist |
normalize to this image distribution |
||
character(len=1), | intent(in), | optional | :: | predistribute |
predistribute data for multiplication |
|
logical, | intent(in), | optional | :: | no_copy_data |
try to not merge data at the end |
|
type(dbcsr_scalar_type), | intent(in), | optional | :: | scale_value |
scale with this value |
SUBROUTINE dbcsr_make_images(source, normalized, target_image_dist, & predistribute, no_copy_data, scale_value) !! Creates row and column images of a matrix. TYPE(dbcsr_type), INTENT(IN) :: source !! input matrix TYPE(dbcsr_2d_array_type), INTENT(OUT) :: normalized !! image array of the normalized matrix TYPE(dbcsr_imagedistribution_obj), INTENT(IN) :: target_image_dist !! normalize to this image distribution CHARACTER, INTENT(IN), OPTIONAL :: predistribute !! predistribute data for multiplication LOGICAL, INTENT(IN), OPTIONAL :: no_copy_data !! try to not merge data at the end TYPE(dbcsr_scalar_type), INTENT(IN), OPTIONAL :: scale_value !! scale with this value ! --------------------------------------------------------------------------- IF (dbcsr_cfg%use_mpi_rma%val) & DBCSR_ABORT("RMA algo not supported here!") IF (.NOT. dbcsr_valid_index(source)) & DBCSR_ABORT("Matrix not initialized.") CALL make_images(source, normalized, & target_image_dist, desymmetrize=dbcsr_has_symmetry(source), & predistribute=predistribute, & no_copy_data=no_copy_data, & scale_value=scale_value) normalized%image_dist = target_image_dist CALL dbcsr_image_dist_hold(normalized%image_dist) END SUBROUTINE dbcsr_make_images