## psb_cdbldext -- Build an extended communication descriptor

    call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)

This subroutine builds an extended communication descriptor, based on the input descriptor `desc_a` and on the stencil specified through the input sparse matrix `a`.

Type:
  Synchronous.
On Entry
a
  A sparse matrix Scope:local.
  Type:required.
  Intent: in.
  Specified as: a structured data type.
desc_a
  the communication descriptor.
  Scope:local.
  Type:required.
  Intent: in.
  Specified as: a structured data of type spdata`psb_Tspmat_type`.
nl
  the number of additional layers desired.
  Scope:global.
  Type:required.
  Intent: in.
  Specified as: an integer value .
extype
  the kind of estension required.
  Scope:global.
  Type:optional .
  Intent: in.
  Specified as: an integer value `psb_ovt_xhal_`, `psb_ovt_asov_`, default: `psb_ovt_xhal_`

On Return
desc_out
  the extended communication descriptor.
  Scope:local.
  Type:required.
  Intent: inout.
  Specified as: a structured data 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. Specifying `psb_ovt_xhal_` for the `extype` argument the user will obtain a descriptor for a domain partition in which the additional layers are fetched as part of an (extended) halo; however the index-to-process mapping is identical to that of the base descriptor;
2. Specifying `psb_ovt_asov_` for the `extype` argument the user will obtain a descriptor with an overlapped decomposition: the additional layer is aggregated to the local subdomain (and thus is an overlap), and a new halo extending beyond the last additional layer is formed.