## psb_scatter -- Scatter Global Dense Matrix

These subroutines scatters the portions of global dense matrix owned by a process to all the processes in the processes grid.

where:

  is the global matrix
  is the local portion of global dense matrix on process .
  is the scatter function.

Table 17: Data types
| Subroutine
Integer | psb_scatter
Short Precision Real | psb_scatter
Long Precision Real | psb_scatter
Short Precision Complex | psb_scatter
Long Precision Complex | psb_scatter

Type:
  Synchronous.
On Entry
glob_x
  The array that must be scattered into local pieces.
  Scope: global
  Type: required
  Intent: in.
  Specified as: a rank one or two array.
desc_a
  contains data structures for communications.
  Scope: local
  Type: required
  Intent: in.
  Specified as: a structured data of type descdata`psb_desc_type`.
root
  The process that holds the global copy. If all the processes have a copy of the global vector.
  Scope: global
  Type: optional
  Intent: in.
  Specified as: an integer variable , default `psb_root_`, i.e. process 0.
mold
  The desired dynamic type for the internal vector storage.
  Scope: local.
  Type: optional.
  Intent: in.
  Specified as: an object of a class derived from vbasedata`psb_T_base_vect_type`; this is only allowed when loc_x is of type vdata`psb_T_vect_type`.
On Return
loc_x
  the local portion of global dense matrix .
  Scope: local
  Type: required
  Intent: out.
  Specified as: a rank one or two ALLOCATABLE array or an object of type vdata`psb_T_vect_type` containing numbers of the type indicated in Table 17.
info
  Error code.
  Scope: local
  Type: required
  Intent: out.
  An integer value; 0 means no error has been detected.