IBM Books

Parallel Engineering and Scientific Subroutine Library for AIX Version 2 Release 3: Guide and Reference

PDGEINS--Inserts Local Data into a Dense Vector

This sparse utility subroutine is used by each process to insert all blocks of data it owns into its local part of the dense vector.

Syntax

Fortran CALL PDGEINS (nx, x, ldx, ix, jx, mb, nb, blcks, ldb, desc_a)
C and C++ pdgeins (nx, x, ldx, ix, jx, mb, nb, blcks, ldb, desc_a);

On Entry

nx
is the number of columns in the local dense vector.

Scope: local

Specified as: fullword integer; nx = 1.

x
See On Return.

ldx
is the local leading dimension of the local array.

Scope: local

Specified as: fullword integer; ldx >= max(1,N_ROW).

ix
is the first global row index of the dense vector that receives data from the submatrix BLCK.

Scope: local

Specified as: a fullword integer; 1 <= ix <= M.

jx
is the first global column index of the dense vector that receives data from the submatrix BLCK.

Scope: local

Specified as: fullword integer; jx = 1.

mb
is the number of local rows to be inserted into the dense vector.

Scope: local

Specified as: fullword integer; 1 <= mb <= min(N_ROW,ldb).

nb
is the number of local columns to be inserted into the dense vector.

Scope: local

Specified as: fullword integer; nb = 1.

blcks
is the local part, referred to as BLCKS, of the submatrix BLCK, containing the coefficients to be inserted into the dense vector. Each call to this subroutine inserts one contiguous block of data into the local part of the dense vector corresponding to the global submatrix X ix:ix+mb-1, jx:jx+nb-1.

Scope: local

Specified as: an ldb by (at least) nb array, containing long-precision real numbers.

ldb
is the local leading dimension for the local array BLCKS.

Scope: local

Specified as: fullword integer; ldb >= max(1,mb).

desc_a
is the array descriptor that is produced on a preceding call to PADINIT, PDSPINIT, or PDSPINS.

Specified as: an array of length DLEN, containing fullword integers.

On Return

x
is the updated local part of the dense vector.

Scope: local

Returned as: an ldx by (at least) nx array, containing long-precision real numbers.

Notes and Coding Rules
  1. Before you call this subroutine, you must have called PADINIT.
  2. You do not need a separate array descriptor for a dense vector because it must conform to the size of matrix A. For more details about N_ROW, N_COL, and other elements of desc_a, see Table 28.
  3. This subroutine must be called for:
  4. Each process has to call PDGEINS as many times as necessary to insert the local elements it owns. It is also possible to call PDGEINS multiple times to insert different coefficients of the same local row it owns. Duplicate coefficients are overwritten.

Error Conditions

Computational Errors

None

Resource Errors
  1. None.

Input-Argument and Miscellaneous Errors

Stage 1 

  1. The BLACS context is invalid.

Stage 2 

  1. This subroutine was called from outside the process grid.

Stage 3 

  1. The process grid is not np × 1.
  2. nb <> 1
  3. nx <> 1
  4. jx <> 1
  5. desc_a is not valid.

Stage 4 

  1. ldx < max(1,N_ROW)
  2. 1 < mb or mb > N_ROW
  3. ldb < max(1,mb)
  4. ix < 1 or ix > M

Stage 5 

  1. One or more elements to be inserted into the submatrix BLCK does not belong to the process.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]