next up previous contents
Next: psb_scatter Scatter Up: Communication routines Previous: psb_ovrl Overlap   Contents

psb_gather -- Gather Global Dense Matrix

These subroutines collect the portions of global dense matrix distributed over all process into one single array stored on one process.


\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}

where:
$glob\_x$
is the global submatrix $glob\_x_{1:m,1:n}$
$loc\_x_i$
is the local portion of global dense matrix on process $i$.
$collect$
is the collect function.


Table 15: Data types
$x_i, y$ Subroutine
Integer psb_gather
Short Precision Real psb_gather
Long Precision Real psb_gather
Short Precision Complex psb_gather
Long Precision Complex psb_gather


call psb_gather(glob_x, loc_x, desc_a, info, root)
call psb_gather(glob_x, loc_x, desc_a, info, root)

Type:
Synchronous.
On Entry
loc_x
the local portion of global dense matrix $glob\_x$.
Scope: local
Type: required
Intent: in.
Specified as: a rank one or two array containing numbers of the type indicated in Table 15.
desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
root
The process that holds the global copy. If $root=-1$ all the processes will have a copy of the global vector.
Scope: global
Type: optional
Intent: in.
Specified as: an integer variable $-1\le root\le np-1$, default $-1$.
On Return
glob_x
The array where the local parts must be gathered.
Scope: global
Type: required
Intent: out.
Specified as: a rank one or two array.
info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.


next up previous contents
Next: psb_scatter Scatter Up: Communication routines Previous: psb_ovrl Overlap   Contents