updated doc on psb_cdall.
psblas3-type-indexed
Salvatore Filippone 15 years ago
parent eea1d44360
commit 90397b713a

@ -104,7 +104,7 @@ sample scatter/gather routines.
.
</PRE>
</DD>
<DT><A NAME="foot6737">... follows</A><A
<DT><A NAME="foot6741">... follows</A><A
HREF="node99.html#tex2html28"><SUP>3</SUP></A></DT>
<DD>The string is case-insensitive

Binary file not shown.

Before

Width:  |  Height:  |  Size: 341 B

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 B

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 134 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 804 B

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 804 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 533 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 B

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 519 B

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 210 B

After

Width:  |  Height:  |  Size: 577 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 568 B

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 743 B

After

Width:  |  Height:  |  Size: 568 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 743 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 521 B

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 267 B

After

Width:  |  Height:  |  Size: 521 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 0 B

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 371 B

After

Width:  |  Height:  |  Size: 0 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 431 B

After

Width:  |  Height:  |  Size: 371 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 916 B

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 B

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 500 B

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 573 B

After

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 459 B

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 395 B

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 415 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 186 B

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

After

Width:  |  Height:  |  Size: 375 B

@ -73,7 +73,7 @@ err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
<IMG
WIDTH="204" HEIGHT="44" BORDER="0"
SRC="img141.png"
SRC="img142.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
@ -89,7 +89,7 @@ err = \frac{\|r_i\|}{\|b\|_2} < eps
<IMG
WIDTH="121" HEIGHT="44" BORDER="0"
SRC="img142.png"
SRC="img143.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
@ -97,11 +97,11 @@ err = \frac{\|r_i\|}{\|b\|_2} < eps
according to the value passed through the istop argument (see
later). In the above formulae, <IMG
WIDTH="19" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img143.png"
SRC="img144.png"
ALT="$x_i$"> is the tentative solution and
<IMG
WIDTH="90" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img144.png"
SRC="img145.png"
ALT="$r_i=b-Ax_i$"> the corresponding residual at the <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
@ -233,22 +233,22 @@ Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="100" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img145.png"
SRC="img146.png"
ALT="$itmax = 1000$">.
<BR>
Specified as: an integer variable <IMG
WIDTH="75" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img146.png"
SRC="img147.png"
ALT="$itmax \ge 1$">.
</DD>
<DT><STRONG>itrace</STRONG></DT>
<DD>If <IMG
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img107.png"
SRC="img108.png"
ALT="$&gt;0$"> print out an informational message about
convergence every <IMG
WIDTH="46" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img147.png"
SRC="img148.png"
ALT="$itrace$"> iterations.
<BR>
Scope: <B>global</B>
@ -268,7 +268,7 @@ Intent: <B>in</B>.
<BR>
Values: <IMG
WIDTH="59" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img148.png"
SRC="img149.png"
ALT="$irst&gt;0$">. This is employed for the BiCGSTABL or RGMRES
methods, otherwise it is ignored.
@ -329,7 +329,7 @@ Returned as: a real number.
ALT="$A$">; only
available with the <IMG
WIDTH="29" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img149.png"
SRC="img150.png"
ALT="$CG$"> method.
<BR>
Scope: <B>global</B>

@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney.
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
<P>
The translation was initiated by on 2010-05-26
The translation was initiated by on 2010-05-27
<BR><HR>
</BODY>

@ -58,8 +58,8 @@ psb_cdall -- Allocates a communication descriptor</A>
<P>
<PRE>
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdall(icontxt, desc_a, info,vg=vg,flag=flag)
call psb_cdall(icontxt, desc_a, info,vl=vl,nl=nl,globalcheck=.true.)
call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.])
call psb_cdall(icontxt, desc_a, info,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
</PRE>
@ -153,8 +153,11 @@ Type:<B>required</B>.
Specified as: a subroutine.
</DD>
<DT><STRONG>vl</STRONG></DT>
<DD>Data allocation: the set of global indices belonging to the
calling process.
<DD>Data allocation: the set of global indices
<IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img91.png"
ALT="$vl(1:nl)$"> belonging to the calling process.
<BR>
Scope:<B>local</B>.
<BR>
@ -283,10 +286,10 @@ An integer value; 0 means no error has been detected.
-->
<IMG
WIDTH="107" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img91.png"
SRC="img92.png"
ALT="$0\le pv(i) &lt; np$">; if <IMG
WIDTH="51" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img92.png"
SRC="img93.png"
ALT="$nv&gt;1$"> we have an index assigned to multiple
processes, i.e. we have an overlap among the subdomains.
@ -295,60 +298,70 @@ An integer value; 0 means no error has been detected.
</DD>
<DT><STRONG>vg</STRONG></DT>
<DD>In this case the association between an index and a process
is specified via an integer vector; the size of the index space is
equal to the size of <code>vg</code>, and each index <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
ALT="$i$"> is assigned to
the process <IMG
is specified via an integer vector <code>vg(1:mg)</code>;
each index <!-- MATH
$i \in \{1\dots mg\}$
-->
<IMG
WIDTH="98" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img86.png"
ALT="$i\in \{1\dots mg\}$"> is assigned to process <IMG
WIDTH="39" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img87.png"
ALT="$vg(i)$">. The vector <code>vg</code> must be identical on all
ALT="$vg(i)$">.
The vector <code>vg</code> must be identical on all
calling processes; its entries may have the ranges <IMG
WIDTH="94" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img93.png"
SRC="img94.png"
ALT="$(0\dots np-1)$">
or <IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img94.png"
ALT="$(1\dots np)$"> according to the value of <code>flag</code>. Optionally,
the user may specify <code>mg</code>, in
which case the portion <code>vg(1:mg)</code> is used.
SRC="img95.png"
ALT="$(1\dots np)$"> according to the value of <code>flag</code>.
The size <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img96.png"
ALT="$mg$"> may be specified via the optional argument <code>mg</code>;
the default is to use the entire vector <code>vg</code>, thus having
<code>mg=size(vg)</code>.
</DD>
<DT><STRONG>vl</STRONG></DT>
<DD>In this case we are specifying the list of indices assigned
to the current process; thus, the global problem size <IMG
<DD>In this case we are specifying the list of indices
<code>vl(1:nl)</code> assigned to the current process; thus, the global
problem size <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
ALT="$mg$"> is given by
SRC="img96.png"
ALT="$mg$"> is given by
the range of the aggregate of the individual vectors <code>vl</code> specified
in the calling processes. If <code>globalcheck=.true.</code>
the subroutine will check how many times each entry in the global
index space <IMG
in the calling processes. The size may be specified via the optional
argument <code>nl</code>; the default is to use the entire vector <code>vl</code>, thus having
<code>nl=size(vl)</code>.
If <code>globalcheck=.true.</code> the subroutine will check how many
times each entry in the global index space <IMG
WIDTH="70" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img96.png"
ALT="$(1\dots mg)$"> is specified in the input lists
<code>vl</code>, thus allowing for the presence of overlap in the input,
and checking for ``orphan'' indices.
If <code>globalcheck=.false.</code>, the subroutine will not check for
overlap, and may be substantially faster, but
the user is implicitly guaranteeing that there are neither orphan
nor overlap indices. Optionally, the user may specify <code>nl</code>, in
which case the portion <code>vl(1:nl)</code> is used.
SRC="img97.png"
ALT="$(1\dots mg)$"> is
specified in the input lists <code>vl</code>, thus allowing for the
presence of overlap in the input, and checking for ``orphan''
indices. If <code>globalcheck=.false.</code>, the subroutine will not
check for overlap, and may be significantly faster, but the user
is implicitly guaranteeing that there are neither orphan nor
overlap indices.
</DD>
<DT><STRONG>nl</STRONG></DT>
<DD>In this case we are implying a generalized row-block
distribution in which each process <IMG
<DD>If this argument is specified alone (i.e. without <code>vl</code>)
the result is a generalized row-block distribution in which each
process <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img97.png"
ALT="$I$"> gets assigned a consecutive
chunk of <IMG
WIDTH="60" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img98.png"
ALT="$N_I=nl$"> global indices.
ALT="$I$"> gets assigned a consecutive chunk of <IMG
WIDTH="60" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img99.png"
ALT="$N_I=nl$"> global
indices.
</DD>
<DT><STRONG>repl</STRONG></DT>
<DD>In this case we are asking to replicate all indices on
<DD>This arguments specifies to replicate all indices on
all processes. This is a special purpose data allocation that is
useful in the construction of some multilevel preconditioners.
</DD>

@ -96,7 +96,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="22" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img100.png"
ALT="$nz$">.
</DD>
<DT><STRONG>ja</STRONG></DT>
@ -110,7 +110,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="22" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img100.png"
ALT="$nz$">.
</DD>
</DL>

@ -104,7 +104,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer value <IMG
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img100.png"
SRC="img101.png"
ALT="$nl\ge 0$">.
</DD>
<DT><STRONG>extype</STRONG></DT>

@ -131,7 +131,7 @@ An integer value; 0 means no error has been detected.
</LI>
<LI>Providing a good estimate for the number of nonzeroes <IMG
WIDTH="32" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img101.png"
SRC="img102.png"
ALT="$nnz$"> in
the assembled matrix may substantially improve performance in the
matrix build phase, as it will reduce or eliminate the need for

@ -91,7 +91,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer array of size <IMG
WIDTH="22" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img100.png"
ALT="$nz$">.
</DD>
<DT><STRONG>ja</STRONG></DT>
@ -105,7 +105,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer array of size <IMG
WIDTH="22" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img100.png"
ALT="$nz$">.
</DD>
<DT><STRONG>val</STRONG></DT>
@ -119,11 +119,11 @@ Intent: <B>in</B>.
<BR>
Specified as: an array of size <IMG
WIDTH="22" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img100.png"
ALT="$nz$">. Must be of the same type and kind
of the <code>aspk</code> component of the sparse matrix <IMG
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
SRC="img103.png"
ALT="$a$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>

@ -90,7 +90,7 @@ Intent: <B>in</B>.
<BR>
Specified as: Integer scalar, default <IMG
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img103.png"
SRC="img104.png"
ALT="$1$">. It is not a valid argument if <IMG
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"
@ -108,7 +108,7 @@ Intent: <B>in</B>.
<BR>
Specified as: Integer scalar, default <IMG
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img103.png"
SRC="img104.png"
ALT="$1$">. It is not a valid argument if <IMG
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"

@ -71,7 +71,7 @@ call psb_geins(m, irw, val, x, desc_a, info,dupl)
<DT><STRONG>m</STRONG></DT>
<DD>Number of rows in <IMG
WIDTH="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img104.png"
SRC="img105.png"
ALT="$val$"> to be inserted.
<BR>
Scope:<B>local</B>.
@ -89,11 +89,11 @@ Specified as: an integer value.
ALT="$i$">
of <IMG
WIDTH="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img104.png"
SRC="img105.png"
ALT="$val$"> will be inserted into the local row corresponding to the
global row index <IMG
WIDTH="47" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img105.png"
SRC="img106.png"
ALT="$irw(i)$">.
Scope:<B>local</B>.
<BR>

@ -75,7 +75,7 @@ call psb_gelp(trans, iperm, x, info)
SRC="img1.png"
ALT="$A$"> or <IMG
WIDTH="26" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img106.png"
SRC="img107.png"
ALT="$A^T$">.
<BR>
Scope: <B>local</B>
@ -89,7 +89,7 @@ Specified as: a single character with value 'N' for <IMG
SRC="img1.png"
ALT="$A$"> or 'T' for <IMG
WIDTH="26" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img106.png"
SRC="img107.png"
ALT="$A^T$">.
<BR></DD>
<DT><STRONG>iperm</STRONG></DT>

@ -80,7 +80,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer <IMG
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img107.png"
SRC="img108.png"
ALT="$&gt;0$">.
</DD>
<DT><STRONG>a</STRONG></DT>
@ -116,7 +116,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer <IMG
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img107.png"
SRC="img108.png"
ALT="$&gt;0$">. When append is true, specifies how many
entries in the output vectors are already filled.
</DD>
@ -131,10 +131,10 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer <IMG
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img107.png"
SRC="img108.png"
ALT="$&gt;0$">, default: <IMG
WIDTH="31" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img108.png"
SRC="img109.png"
ALT="$row$">.
<P>
@ -209,12 +209,12 @@ An integer value; 0 means no error has been detected.
<OL>
<LI>The output <IMG
WIDTH="22" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img99.png"
SRC="img100.png"
ALT="$nz$"> is always the size of the output generated by
the current call; thus, if <code>append=.true.</code>, the total output
size will be <IMG
WIDTH="74" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img109.png"
SRC="img110.png"
ALT="$nzin+nz$">, with the newly extracted coefficients stored in
entries <code>nzin+1:nzin+nz</code> of the array arguments;
</LI>

@ -73,7 +73,7 @@ call psb_hsort(x,ix,dir,flag)
<P>
These serial routines sort a sequence <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img110.png"
SRC="img111.png"
ALT="$X$"> into ascending or
descending order. The argument meaning is identical for the three
calls; the only difference is the algorithm used to accomplish the
@ -99,7 +99,7 @@ Type:<B>optional</B>.
<BR>
Specified as: an integer array of (at least) the same size as <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img110.png"
SRC="img111.png"
ALT="$X$">.
</DD>
<DT><STRONG>dir</STRONG></DT>
@ -123,7 +123,7 @@ default <code>psb_lsort_up_</code>.
<DT><STRONG>flag</STRONG></DT>
<DD>Whether to keep the original values in <IMG
WIDTH="27" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img111.png"
SRC="img112.png"
ALT="$IX$">.
<BR>
Type:<B>optional</B>.
@ -185,10 +185,10 @@ position as the corresponding entries in <IMG
-->
<IMG
WIDTH="180" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img112.png"
SRC="img113.png"
ALT="$flag = psb\_sort\_ovw\_idx\_$"> then the entries in <IMG
WIDTH="62" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img113.png"
SRC="img114.png"
ALT="$ix(1:n)$">
where <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
@ -202,7 +202,7 @@ position as the corresponding entries in <IMG
-->
<IMG
WIDTH="66" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img114.png"
SRC="img115.png"
ALT="$ix(i) \leftarrow
i$">; thus, upon return from the subroutine, for each
index <IMG
@ -210,10 +210,10 @@ i$">; thus, upon return from the subroutine, for each
SRC="img4.png"
ALT="$i$"> we have in <IMG
WIDTH="37" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img115.png"
SRC="img116.png"
ALT="$ix(i)$"> the position that the item <IMG
WIDTH="31" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img116.png"
SRC="img117.png"
ALT="$x(i)$">
occupied in the original data sequence;
</LI>
@ -222,16 +222,16 @@ i$">; thus, upon return from the subroutine, for each
-->
<IMG
WIDTH="185" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img117.png"
SRC="img118.png"
ALT="$flag = psb\_sort\_keep\_idx\_$"> the routine will assume that
the entries in <IMG
WIDTH="35" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img118.png"
SRC="img119.png"
ALT="$ix(:)$"> have already been initialized by the user;
</LI>
<LI>The three sorting algorithms have a similar <IMG
WIDTH="74" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img119.png"
SRC="img120.png"
ALT="$O(n \log n)$"> expected
running time; in the average case quicksort will be the
fastest and merge-sort the slowest. However note that:
@ -239,7 +239,7 @@ i$">; thus, upon return from the subroutine, for each
<OL>
<LI>The worst case running time for quicksort is <IMG
WIDTH="45" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
SRC="img120.png"
SRC="img121.png"
ALT="$O(n^2)$">; the algorithm
implemented here follows the well-known median-of-three heuristics,
but the worst case may still apply;
@ -247,7 +247,7 @@ i$">; thus, upon return from the subroutine, for each
<LI>The worst case running time for merge-sort and heap-sort is
<IMG
WIDTH="74" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img119.png"
SRC="img120.png"
ALT="$O(n \log n)$"> as the average case;
</LI>
<LI>The merge-sort algorithm is implemented to take advantage of

@ -107,7 +107,7 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer array. Default: use the indices <IMG
WIDTH="94" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img93.png"
SRC="img94.png"
ALT="$(0\dots np-1)$">.
</DD>
</DL>
@ -141,7 +141,7 @@ Specified as: an integer variable.
</LI>
<LI>It is an error to specify a value for <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img121.png"
SRC="img122.png"
ALT="$np$"> greater than the
number of processes available in the underlying base parallel
environment.

@ -104,7 +104,7 @@ Specified as: an integer value. <!-- MATH
-->
<IMG
WIDTH="139" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img122.png"
SRC="img123.png"
ALT="$-1 \le iam \le np-1$"> </DD>
<DT><STRONG>np</STRONG></DT>
<DD>Number of processes in the PSBLAS virtual parallel machine.
@ -128,14 +128,14 @@ Specified as: an integer variable. </DD>
-->
<IMG
WIDTH="128" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img123.png"
SRC="img124.png"
ALT="$0 \le iam \le np-1$">;
</LI>
<LI>If the user has requested on <code>psb_init</code> a number of
processes less than the total available in the parallel execution
environment, the remaining processes will have on return <IMG
WIDTH="73" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img124.png"
SRC="img125.png"
ALT="$iam=-1$">;
the only call involving <code>icontxt</code> that any such process may
execute is to <code>psb_exit</code>.

@ -103,7 +103,7 @@ Specified as: a logical variable, default value: true.
<LI>This routine may be called even if a previous call to
<code>psb_info</code> has returned with <IMG
WIDTH="73" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img124.png"
SRC="img125.png"
ALT="$iam=-1$">; indeed, it it is the only
routine that may be called with argument <code>icontxt</code> in this
situation.

@ -63,7 +63,7 @@ call psb_get_rank(rank, icontxt, id)
<P>
This subroutine returns the MPI rank of the PSBLAS process <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img125.png"
SRC="img126.png"
ALT="$id$">
<DL>
<DT><STRONG>Type:</STRONG></DT>
@ -98,7 +98,7 @@ Specified as: an integer value. <!-- MATH
-->
<IMG
WIDTH="113" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img126.png"
SRC="img127.png"
ALT="$0 \le id \le np-1$"> </DD>
</DL>
@ -110,7 +110,7 @@ Specified as: an integer value. <!-- MATH
<DT><STRONG>rank</STRONG></DT>
<DD>The MPI rank associated with the PSBLAS process <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img125.png"
SRC="img126.png"
ALT="$id$">.
<BR>
Scope: <B>local</B>.

@ -109,7 +109,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="153" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img127.png"
SRC="img128.png"
ALT="$0&lt;= root &lt;= np-1$">, default 0 </DD>
</DL>

@ -112,7 +112,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
SRC="img129.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1. </DD>
</DL>

@ -112,7 +112,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
SRC="img129.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>

@ -112,7 +112,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
SRC="img129.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>

@ -112,7 +112,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
SRC="img129.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>

@ -112,7 +112,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
SRC="img129.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>

@ -93,7 +93,7 @@ Intent: <B>in</B>.
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img129.png"
SRC="img130.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
@ -111,7 +111,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img130.png"
SRC="img131.png"
ALT="$0&lt;= dst &lt;= np-1$">.
<BR></DD>
<DT><STRONG>m</STRONG></DT>
@ -128,16 +128,16 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="172" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img131.png"
SRC="img132.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img132.png"
SRC="img133.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="83" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png"
SRC="img134.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
@ -157,7 +157,7 @@ same value on sending and receiving processes.
<LI>This subroutine implies a synchronization, but only between the
calling process and the destination process <IMG
WIDTH="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
SRC="img135.png"
ALT="$dst$">.
</LI>
</OL>

@ -94,7 +94,7 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png"
SRC="img136.png"
ALT="$0&lt;= src &lt;= np-1$">.
<BR></DD>
<DT><STRONG>m</STRONG></DT>
@ -111,16 +111,16 @@ Specified as: an integer value <!-- MATH
-->
<IMG
WIDTH="172" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img131.png"
SRC="img132.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img132.png"
SRC="img133.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="83" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png"
SRC="img134.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
@ -143,7 +143,7 @@ Intent: <B>inout</B>.
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img129.png"
SRC="img130.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
@ -156,7 +156,7 @@ not specified, size must agree as well.
<LI>This subroutine implies a synchronization, but only between the
calling process and the source process <IMG
WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img136.png"
SRC="img137.png"
ALT="$src$">.
</LI>
</OL>

@ -94,7 +94,7 @@ explicitly.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="6404"></A>
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="6408"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8:</STRONG>
The layout of a generic <TT>psb_foo</TT>
@ -124,7 +124,7 @@ called by <code>psb_spasb</code> ... by process 0 (i.e. the root process).
<P>
<DIV ALIGN="CENTER"><A NAME="fig:errormsg"></A><A NAME="6405"></A>
<DIV ALIGN="CENTER"><A NAME="fig:errormsg"></A><A NAME="6409"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 9:</STRONG>
A sample PSBLAS-2.0 error

@ -104,9 +104,9 @@ Error code: if no error, 0 is returned.
Legal inputs to this subroutine are interpreted depending on the
<IMG
WIDTH="42" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img139.png"
SRC="img140.png"
ALT="$ptype$"> string as follows<A NAME="tex2html28"
HREF="footnode.html#foot6737"><SUP>3</SUP></A>:
HREF="footnode.html#foot6741"><SUP>3</SUP></A>:
<DL>
<DT><STRONG>NONE</STRONG></DT>
<DD>No preconditioning, i.e. the preconditioner is just a copy
@ -129,7 +129,7 @@ Legal inputs to this subroutine are interpreted depending on the
by the data allocation boundaries for each process; requires no
communication. Only the incomplete factorization <IMG
WIDTH="56" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img140.png"
SRC="img141.png"
ALT="$ILU(0)$"> is
currently implemented.
</DD>

File diff suppressed because it is too large Load Diff

@ -10,8 +10,8 @@
\begin{verbatim}
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdall(icontxt, desc_a, info,vg=vg,flag=flag)
call psb_cdall(icontxt, desc_a, info,vl=vl,nl=nl,globalcheck=.true.)
call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.])
call psb_cdall(icontxt, desc_a, info,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
\end{verbatim}
@ -51,8 +51,8 @@ Specified as: an integer value. It is required if \verb|parts| or
Scope:{\bf global}.\\
Type:{\bf required}.\\
Specified as: a subroutine.
\item[vl] Data allocation: the set of global indices belonging to the
calling process. \\
\item[vl] Data allocation: the set of global indices
$vl(1:nl)$ belonging to the calling process. \\
Scope:{\bf local}.\\
Type:{\bf optional}.\\
Intent: {\bf in}.\\
@ -126,30 +126,34 @@ An integer value; 0 means no error has been detected.
processes, i.e. we have an overlap among the subdomains.
\end{description}
\item[vg] In this case the association between an index and a process
is specified via an integer vector; the size of the index space is
equal to the size of \verb|vg|, and each index $i$ is assigned to
the process $vg(i)$. The vector \verb|vg| must be identical on all
is specified via an integer vector \verb|vg(1:mg)|;
each index $i \in \{1\dots mg\}$ is assigned to process $vg(i)$.
The vector \verb|vg| must be identical on all
calling processes; its entries may have the ranges $(0\dots np-1)$
or $(1\dots np)$ according to the value of \verb|flag|. Optionally,
the user may specify \verb|mg|, in
which case the portion \verb|vg(1:mg)| is used.
\item[vl] In this case we are specifying the list of indices assigned
to the current process; thus, the global problem size $mg$ is given by
or $(1\dots np)$ according to the value of \verb|flag|.
The size $mg$ may be specified via the optional argument \verb|mg|;
the default is to use the entire vector \verb|vg|, thus having
\verb|mg=size(vg)|.
\item[vl] In this case we are specifying the list of indices
\verb|vl(1:nl)| assigned to the current process; thus, the global
problem size $mg$ is given by
the range of the aggregate of the individual vectors \verb|vl| specified
in the calling processes. If \verb|globalcheck=.true.|
the subroutine will check how many times each entry in the global
index space $(1\dots mg)$ is specified in the input lists
\verb|vl|, thus allowing for the presence of overlap in the input,
and checking for ``orphan'' indices.
If \verb|globalcheck=.false.|, the subroutine will not check for
overlap, and may be substantially faster, but
the user is implicitly guaranteeing that there are neither orphan
nor overlap indices. Optionally, the user may specify \verb|nl|, in
which case the portion \verb|vl(1:nl)| is used.
\item[nl] In this case we are implying a generalized row-block
distribution in which each process $I$ gets assigned a consecutive
chunk of $N_I=nl$ global indices.
\item[repl] In this case we are asking to replicate all indices on
in the calling processes. The size may be specified via the optional
argument \verb|nl|; the default is to use the entire vector \verb|vl|, thus having
\verb|nl=size(vl)|.
If \verb|globalcheck=.true.| the subroutine will check how many
times each entry in the global index space $(1\dots mg)$ is
specified in the input lists \verb|vl|, thus allowing for the
presence of overlap in the input, and checking for ``orphan''
indices. If \verb|globalcheck=.false.|, the subroutine will not
check for overlap, and may be significantly faster, but the user
is implicitly guaranteeing that there are neither orphan nor
overlap indices.
\item[nl] If this argument is specified alone (i.e. without \verb|vl|)
the result is a generalized row-block distribution in which each
process $I$ gets assigned a consecutive chunk of $N_I=nl$ global
indices.
\item[repl] This arguments specifies to replicate all indices on
all processes. This is a special purpose data allocation that is
useful in the construction of some multilevel preconditioners.
\end{description}

Loading…
Cancel
Save