You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psblas3/docs/html/node63.html

767 lines
27 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!--Converted with LaTeX2HTML 2008 (1.71)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_ovrl -- Overlap Update</TITLE>
<META NAME="description" CONTENT="psb_ovrl -- Overlap Update">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2008">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node64.html">
<LINK REL="previous" HREF="node62.html">
<LINK REL="up" HREF="node61.html">
<LINK REL="next" HREF="node64.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1008"
HREF="node64.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1004"
HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html998"
HREF="node62.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1006"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1009"
HREF="node64.html">psb_gather Gather</A>
<B> Up:</B> <A NAME="tex2html1005"
HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html999"
HREF="node62.html">psb_halo Halo</A>
&nbsp; <B> <A NAME="tex2html1007"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00062000000000000000">
psb_ovrl -- Overlap Update</A>
</H2>
<P>
These subroutines applies an overlap operator to the input vector:
<P>
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
x \leftarrow Q x
\end{displaymath}
-->
<IMG
WIDTH="55" HEIGHT="27" BORDER="0"
SRC="img60.png"
ALT="\begin{displaymath}x \leftarrow Q x \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
where:
<DL>
<DT><STRONG><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></STRONG></DT>
<DD>is the global dense submatrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">
</DD>
<DT><STRONG><IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img61.png"
ALT="$Q$"></STRONG></DT>
<DD>is the overlap operator; it is the composition of two
operators <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img62.png"
ALT="$ P_a$"> and <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img63.png"
ALT="$ P^{T}$">.
</DD>
</DL>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="3208"></A>
<TABLE>
<CAPTION><STRONG>Table 15:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_ovrl</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_ovrl</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_ovrl</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_ovrl</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR>
<P>
<BR>
<IMG
WIDTH="576" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img64.png"
ALT="\begin{lstlisting}
call psb_ovrl(x, desc_a, info)
call psb_ovrl(x, desc_a, info, update=update_type, work=work)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>global dense matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90ovrl">15</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>update</STRONG></DT>
<DD>Update operator.
<BR><DL>
<DT><STRONG>update = psb_none_</STRONG></DT>
<DD>Do nothing;
</DD>
<DT><STRONG>update = psb_add_</STRONG></DT>
<DD>Sum overlap entries, i.e. apply <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img65.png"
ALT="$P^T$">;
</DD>
<DT><STRONG>update = psb_avg_</STRONG></DT>
<DD>Average overlap entries, i.e. apply <IMG
WIDTH="44" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
SRC="img66.png"
ALT="$P_aP^T$">;
</DD>
</DL>
Scope: <B>global</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <!-- MATH
$update\_type = psb\_avg\_$
-->
<IMG
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img67.png"
ALT="$update\_type = psb\_avg\_ $">
<BR>
Scope: <B>global</B>
<BR>
Specified as: a integer variable.
</DD>
<DT><STRONG>work</STRONG></DT>
<DD>the work array.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a one dimensional array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<P>
</DD>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>global dense result matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an array of rank one or two
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90ovrl">15</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>If there is no overlap in the data distribution associated with
the descriptor, no operations are performed;
</LI>
<LI>The operator <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img63.png"
ALT="$ P^{T}$"> performs the reduction sum of overlap
elements; it is a ``prolongation'' operator <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img65.png"
ALT="$P^T$"> that
replicates overlap elements, accounting for the physical replication
of data;
</LI>
<LI>The operator <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img62.png"
ALT="$ P_a$"> performs a scaling on the overlap elements by
the amount of replication; thus, when combined with the reduction
operator, it implements the average of replicated elements over all of
their instances.
</LI>
</OL>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:try8x8_ov"></A><A NAME="3210"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8:</STRONG>
Sample discretization mesh.</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<IMG
WIDTH="533" HEIGHT="453" ALIGN="BOTTOM" BORDER="0"
SRC="img69.png"
ALT="\includegraphics[scale=0.65]{figures/try8x8_ov.eps}">
<!-- MATH
$\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}$
-->
<IMG
WIDTH="76" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
SRC="img68.png"
ALT="\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}">
</DIV></TD></TR>
</TABLE>
</DIV>
<FONT SIZE="+1"><B>Example of use</B></FONT>
Consider the discretization mesh depicted in fig.&nbsp;<A HREF="#fig:try8x8_ov">8</A>,
partitioned among two processes as shown by the dashed lines, with an
overlap of 1 extra layer with respect to the partition of
fig.&nbsp;<A HREF="node62.html#fig:try8x8">7</A>; the data
distribution is such that each process will own 40 entries in the
index space, with an overlap of 16 entries placed at local indices 25
through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries
in the <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> vector, and process 1 assigns a value of 2, then after a
call to <code>psb_ovrl</code> with <code>psb_avg_</code> and a call to
<code>psb_halo_</code> the contents of the local vectors will be the
following (showing a transition among the two subdomains)
<P>
<BR>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 ALIGN="CENTER">
<TR><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
Process 0</FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
Process 1</FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
I </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> I </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 49 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 50 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 51 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 52 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 53 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 54 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 55 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 56 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 57 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 58 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 59 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 60 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 61 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 62 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 63 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 64 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
</TABLE></DIV>
<BR>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1008"
HREF="node64.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1004"
HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html998"
HREF="node62.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1006"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1009"
HREF="node64.html">psb_gather Gather</A>
<B> Up:</B> <A NAME="tex2html1005"
HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html999"
HREF="node62.html">psb_halo Halo</A>
&nbsp; <B> <A NAME="tex2html1007"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>