IBM Books

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

PGEINS--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 PGEINS (x, blck, desc_a, ix)

On Entry

x
is a pointer to the local space for the dense vector that is produced by a preceding call to PGEALL or previous call(s) to this subroutine.

Scope: local

Type: required

Specified as: a pointer to an assumed-shape array with shape (:), containing long-precision real numbers.

blck
is the local part of the submatrix BLCK 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 Xix:ix+size(blck,1)-1. This subroutine only inserts a block of data it owns into its local part of the dense vector.

Scope: local

Type: required

Specified as: an assumed-shape array with shape (:), containing long-precision real numbers, where: 1 <= size(blck,1) <= DESC_A%MATRIX_DATA(N_ROW)

desc_a
is the array descriptor that is produced by a preceding call to PADALL or PSPINS.

Type: required

Specified as: the derived data type DESC_TYPE.

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

Scope: local

Type: optional

Specified as: a fullword integer; 1 <= ix <= DESC_A%MATRIX_DATA(M). The default value is 1.

On Return

x
is a pointer to the local space for the dense vector, updated with local data from the submatrix BLCK.

Scope: local

Type: required

Returned as: a pointer to an assumed-sized array with shape (:), containing long-precision real numbers.

Notes and Coding Rules
  1. Before you call this subroutine, you must have called PGEALL and PADALL.
  2. You do not need a separate array descriptor for a dense vector because it must conform to the size of matrix A. For details about some of the elements stored in DESC_A%MATRIX_DATA, see Derived Data Type DESC_TYPE.
  3. This subroutine must be called for:
  4. Each process has to call PGEINS as many times as necessary to insert the local elements it owns. It is also possible to call PGEINS multiple times to insert different coefficients of the same local row it owns. Duplicate coefficients are overwritten.

Error Conditions

Computational Errors

None

Resource Errors

None.

Input-Argument and Miscellaneous Errors

Stage 1 

  1. desc_a has not been initialized.

Stage 2 

  1. The BLACS context is invalid.

Stage 3 

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

Stage 4 

  1. desc_a component(s) are not valid.
  2. The process grid is not np × 1.
  3. ix < 1 or ix > DESC_A%MATRIX_DATA(M)
  4. size(x,1) < max(1,DESC_A%MATRIX_DATA(N_ROW))
  5. size(blck,1) <  1 or size(blck,1) > DESC_A%MATRIX_DATA(N_ROW)

Stage 5 

  1. One or more elements to be inserted into the dense vector does not belong to the process.


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