# psb_cdins — Communication descriptor insert routine

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

#### 6.2 psb_cdins — Communication descriptor insert routine

call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])

This subroutine examines the edges of the graph associated with the discretization mesh (and isomorphic to the sparsity pattern of a linear system coefficient matrix), storing them as necessary into the communication descriptor. In the first form the edges are specified as pairs of indices ia(i),ja(i); the starting index ia(i) should belong to the current process. In the second form only the remote indices ja(i) are specified.

Type:
  Asynchronous.
On Entry
nz
  the number of points being inserted.
  Scope: local.
  Type: required.
  Intent: in.
  Specified as: an integer value.
ia
  the indices of the starting vertex of the edges being inserted.
  Scope: local.
  Type: required.
  Intent: in.
  Specified as: an integer array of length nz.
ja
  the indices of the end vertex of the edges being inserted.
  Scope: local.
  Type: required.
  Intent: in.
  Specified as: an integer array of length nz.
mask
  Mask entries in ja, they are inserted only when the corresponding mask entries are .true.
  Scope: local.
  Type: optional.
  Intent: in.
  Specified as: a logical array of length nz, default .true..
lidx
  User defined local indices for ja.
  Scope: local.
  Type: optional.
  Intent: in.
  Specified as: an integer array of length nz.

On Return
desc_a
  the updated communication descriptor.
  Scope:local.
  Type:required.
  Intent: inout.
  Specified as: a structured data of type psb_desc_type.
info
  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.
ila
  the local indices of the starting vertex of the edges being inserted.
  Scope: local.
  Type: optional.
  Intent: out.
  Specified as: an integer array of length nz.
jla
  the local indices of the end vertex of the edges being inserted.
  Scope: local.
  Type: optional.
  Intent: out.
  Specified as: an integer array of length nz.

Notes

1. This routine may only be called if the descriptor is in the build state;
2. This routine automatically ignores edges that do not insist on the current process, i.e. edges for which neither the starting nor the end vertex belong to the current process.
3. The second form of this routine will be useful when dealing with user-specified index mappings; see also 2.3.1.

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