diff --git a/PW/cegterg.f90 b/PW/cegterg.f90 index 2b744c334..56cee667a 100644 --- a/PW/cegterg.f90 +++ b/PW/cegterg.f90 @@ -1315,7 +1315,11 @@ CONTAINS CALL ZGEMM( 'C', 'N', nr, nc, kdim, ONE, v( 1, 1, ir ), & kdmx, w(1,1,ii), kdmx, ZERO, vtmp, nx ) ! - CALL mp_root_sum( vtmp(:,1:nc), dm(:,icc:icc+nc-1), root, intra_pool_comm ) + IF( (desc( lambda_node_ ) > 0) .AND. (ipr-1 == desc( la_myr_ )) .AND. (ipc-1 == desc( la_myc_ )) ) THEN + CALL mp_root_sum( vtmp(:,1:nc), dm(:,icc:icc+nc-1), root, intra_pool_comm ) + ELSE + CALL mp_root_sum( vtmp(:,1:nc), dm, root, intra_pool_comm ) + END IF END DO ! diff --git a/PW/regterg.f90 b/PW/regterg.f90 index 56f63da86..33dd1145d 100644 --- a/PW/regterg.f90 +++ b/PW/regterg.f90 @@ -1290,7 +1290,12 @@ CONTAINS IF ( gstart == 2 ) & CALL DGER( nr, nc, -1.D0, v( 1, ir ), npwx2, w(1,ii), npwx2, vtmp, nx ) - CALL mp_root_sum( vtmp(:,1:nc), dm(:,icc:icc+nc-1), root, intra_pool_comm ) + IF( (desc( lambda_node_ ) > 0) .AND. (ipr-1 == desc( la_myr_ )) .AND. (ipc-1 == desc( la_myc_ )) ) THEN + CALL mp_root_sum( vtmp(:,1:nc), dm(:,icc:icc+nc-1), root, intra_pool_comm ) + ELSE + CALL mp_root_sum( vtmp(:,1:nc), dm, root, intra_pool_comm ) + END IF + END DO !