Next: psb_spasb Sparse Up: Data management routines Previous: psb_spall Allocates Contents

## psb_spins -- Insert a cloud of elements into a sparse matrix

    call psb_spins(nz, ia, ja, val, a, desc_a, info)

Type:
  Asynchronous.
On Entry
nz
  the number of elements to be inserted.
  Scope:local.
  Type:required.
  Intent: in.
  Specified as: an integer scalar.
ia
  the row indices of the elements to be inserted.
  Scope:local.
  Type:required.
  Intent: in.
  Specified as: an integer array of size .
ja
  the column indices of the elements to be inserted.
  Scope:local.
  Type:required.
  Intent: in.
  Specified as: an integer array of size .
val
  the elements to be inserted.
  Scope:local.
  Type:required.
  Intent: in.
  Specified as: an array of size . Must be of the same type and kind of the `aspk` component of the sparse matrix .
desc_a
  The communication descriptor.
  Scope: local.
  Type: required.
  Intent: inout.
  Specified as: a variable of type descdata`psb_desc_type`.

On Return
a
  the matrix into which elements will be inserted.
  Scope:local
  Type:required
  Intent: inout.
  Specified as: a structured data of type spdata`psb_Tspmat_type`.
desc_a
  The communication descriptor.
  Scope: local.
  Type: required.
  Intent: inout.
  Specified as: a variable of type descdata`psb_desc_type`.
info
  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.

Notes

1. On entry to this routine the descriptor may be in either the build or assembled state.
2. On entry to this routine the sparse matrix may be in either the build or update state.
3. If the descriptor is in the build state, then the sparse matrix must also be in the build state; the action of the routine is to (implicitly) call `psb_cdins` to add entries to the sparsity pattern; each sparse matrix entry implicitly defines a graph edge, that is passed to the descriptor routine for the appropriate processing.
4. Any coefficients from matrix rows not assigned to the calling process are silently ignored;
5. If the descriptor is in the assembled state, then any entries in the sparse matrix that would generate additional communication requirements will be ignored;
6. If the matrix is in the update state, any entries in positions that were not present in the original matrix will be ignored.

Next: psb_spasb Sparse Up: Data management routines Previous: psb_spall Allocates Contents