Redistributes an array assuming that the input array byrow is distributed across columns and that all process rows contain the same copy of byrow.
call pslared2d(n, ia, ja, desc, byrow, byall, work, lwork)
call pdlared2d(n, ia, ja, desc, byrow, byall, work, lwork)
The p?lared2d routine redistributes a 1D array. It assumes that the input array byrow is distributed across columns and that all process rows contain the same copy of byrow. The output array byall will be identical on all processes and will contain the entire array.
np = Number of local rows in byrow()
(global) INTEGER.
The number of elements to be redistributed. n ≥ 0.
(global) INTEGER. ia, ja must be equal to 1.
(global and local) INTEGER array, DIMENSION (dlen_). A 2D array descriptor, which describes byrow.
(local).
REAL for pslared2d
DOUBLE PRECISION for pdlared2d
COMPLEX for pclared2d
COMPLEX*16 for pzlared2d.
Distributed block cyclic array global DIMENSION (n), local DIMENSION np. bycol is distributed across the process columns. All process rows are assumed to contain the same value.
(local).
REAL for pslared2d
DOUBLE PRECISION for pdlared2d
COMPLEX for pclared2d
COMPLEX*16 for pzlared2d.
DIMENSION (lwork). Used to hold the buffers sent from one process to another.
(local).INTEGER. The size of the work array. lwork ≥ numroc(n, desc( nb_ ), 0, 0, npcol).
(global). REAL for pslared2d
DOUBLE PRECISION for pdlared2d
COMPLEX for pclared2d
COMPLEX*16 for pzlared2d.
Global DIMENSION(n), local DIMENSION (n). byall is exactly duplicated on all processes. It contains the same values as bycol, but it is replicated across all processes rather than being distributed.