For a detailed description of MPI Requirements see “Using ScaLAPACK Enhanced Routines” in the Introduction of this manual.
This routine maps array data from a global array to local arrays in the two-dimensional block-cyclic form required by ScaLAPACK routines.
All processors in the BLACS context call the routine.
A — Global rank-1 or rank-2 array which is to be mapped to the processor grid. The data type for A is any of five Fortran intrinsic types: integer; single precision, real; double precision, real; single precision, complex; double precision, complex. Normally, the user defines A to be valid only on the MP_RANK = 0 processor. (Input)
DESC_A — An integer vector containing the nine parameters associated with the ScaLAPACK matrix descriptor for array A. See “Usage Notes for ScaLAPACK Utilities” for a description of the nine parameters. (Input)
A0 — This is a local rank-1 or rank-2 array that will contain this processor's piece of the block-cyclic array. The data type for A0 is any of five Fortran intrinsic types: integer; single precision, real; double precision, real; single precision, complex; and double precision, complex. (Output)
LDA — Leading dimension of A as specified in the calling program. If this argument is not present, size(A,1) is used. (Input)
COLMAP — Input logical which indicates whether the global array should be mapped in column major form or row major form. COLMAP set to .TRUE. will result in the array being mapped in column- major form while setting COLMAP to .FALSE. will result in the array being mapped in row major form. The default value of COLMAP is .TRUE. (Input)
Generic: CALL ScaLAPACK_MAP (A, DESC_A, A0 [,…])
Subroutine ScaLAPACK_MAP
maps columns or rows of a global array on
MP_RANK
=
0
to local distributed arrays so that the problem array is usable by a
ScaLAPACK routine. It uses the two-dimensional block-cyclic array
descriptor for the matrix to place the data in the desired assumed-size arrays
on the processors. The block sizes, contained in the array
descriptor, determine the data set size for each blocking send and receive pair.
The number of these synchronization points is proportional to. A temporary local buffer is
allocated for staging the array data. It is of size M
by NB,
when mapping by columns, or N
by MB,
when mapping by rows.
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |