p?lared2d

Redistributes an array assuming that the input array byrow is distributed across columns and that all process rows contain the same copy of byrow.

Syntax

call pslared2d(n, ia, ja, desc, byrow, byall, work, lwork)

call pdlared2d(n, ia, ja, desc, byrow, byall, work, lwork)

Include Files

Description

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.

Input Parameters

np = Number of local rows in byrow()

n

(global) INTEGER.

The number of elements to be redistributed. n 0.

ia, ja

(global) INTEGER. ia, ja must be equal to 1.

desc

(global and local) INTEGER array, DIMENSION (dlen_). A 2D array descriptor, which describes byrow.

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.

work

(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.

lwork

(local).INTEGER. The size of the work array. lworknumroc(n, desc( nb_ ), 0, 0, npcol).

Output Parameters

byall

(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.


Submit feedback on this help topic