# p?lared1d

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

## Syntax

call pslared1d(n, ia, ja, desc, bycol, byall, work, lwork)

call pdlared1d(n, ia, ja, desc, bycol, byall, work, lwork)

## Description

This routine redistributes a 1D array. It assumes that the input array bycol is distributed across rows and that all process column contain the same copy of bycol. The output array byall is identical on all processes and contains the entire array.

## Input Parameters

np = Number of local rows in bycol()

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 8. A 2D array descirptor, which describes bycol.

bycol

  (local).

  REAL for pslared1d

  DOUBLE PRECISION for pdlared1d

  COMPLEX for pclared1d

  COMPLEX*16 for pzlared1d.

  Distributed block cyclic array global DIMENSION (n), local DIMENSION np. bycol is distributed across the process rows. All process columns are assumed to contain the same value.

work

  (local).

  REAL for pslared1d

  DOUBLE PRECISION for pdlared1d

  COMPLEX for pclared1d

  COMPLEX*16 for pzlared1d.

  DIMENSION (lwork). Used to hold the buffers sent from one process to another.

lwork

  (local)

  INTEGER. The size of the work array. `lwork ≥ numroc(n, desc( nb_), 0, 0, npcol)`.

## Output Parameters

byall

  (global). REAL for pslared1d

  DOUBLE PRECISION for pdlared1d

  COMPLEX for pclared1d

  COMPLEX*16 for pzlared1d.

  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.

Parent topic: Auxiliary Routines