# psb_spall — Allocates a sparse matrix

[next] [prev] [prev-tail] [tail] [up]

#### 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;

[next] [prev] [prev-tail] [front] [up]