6.7 psb_spall — Allocates a sparse matrix

call psb_spall(a, desc_a, info [, nnz, dupl, bldmode])

Type:
Synchronous.
On Entry
desc_a
the communication descriptor.
Scope:local.
Type:required.
Intent: in.
Specified as: a structured data of type psb_desc_type.
nnz
An estimate of the number of nonzeroes in the local part of the assembled matrix.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value.
dupl
How to handle duplicate coefficients.
Scope: global.
Type: optional.
Intent: in.
Specified as: integer, possible values: psb_dupl_ovwrt_, psb_dupl_add_, psb_dupl_err_.
bldmode
Whether to keep track of matrix entries that do not belong to the current process.
Scope: global.
Type: optional.
Intent: in.
Specified as: an integer value psb_matbld_noremote_, psb_matbld_remote_. Default: psb_matbld_noremote_.

On Return
a
the matrix to be allocated.
Scope:local
Type:required
Intent: out.
Specified as: a structured data of type psb_Tspmat_type.
info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.

Notes

  1. On exit from this routine the sparse matrix is in the build state.
  2. The descriptor may be in either the build or assembled state.
  3. Providing a good estimate for the number of nonzeroes nnz in the assembled matrix may substantially improve performance in the matrix build phase, as it will reduce or eliminate the need for (potentially multiple) data reallocations;
  4. Using psb_matbld_remote_ is likely to cause a runtime overhead at assembly time;