5.3 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.

glob-x ← collect(loc-xi)

where:

glob_x
is the global submatrix glob_x1:m,1:n
loc_xi
is the local portion of global dense matrix on process i.
collect
is the collect function.




xi,y Subroutine


Integer psb_gather
Short Precision Real psb_gather
Long Precision Real psb_gather
Short Precision Complexpsb_gather
Long Precision Complex psb_gather



Table 19: Data types

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 or an object of type psb_T_vect_type indicated in Table 19.
desc_a
contains data structures for communications.
Scope: local
Type: required
Intent: in.
Specified as: a structured data of type psb_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 root 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 with the ALLOCATABLE attribute.
info
Error code.
Scope: local
Type: required
Intent: out.
An integer value; 0 means no error has been detected.