Changed guide to new style

newG2L
Cirdans-Home 4 years ago
parent 10bdde008b
commit a2db4b8b5c

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

After

Width:  |  Height:  |  Size: 289 B

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 76--><p class="noindent" ><span
<!--l. 90--><p class="noindent" ><span
class="cmbx-12x-x-144">PSBLAS</span><br
class="newline" /> <span
class="cmbx-12x-x-144">User&#8217;s and Reference Guide</span><br

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

@ -8,11 +8,13 @@
.cmbx-12x-x-144{font-size:172%; font-weight: bold;}
.cmbx-12x-x-144{ font-weight: bold;}
.cmbx-12x-x-144{ font-weight: bold;}
.cmbx-12x-x-144{ font-weight: bold;}
.cmti-10{ font-style: italic;}
.cmti-12{font-size:120%; font-style: italic;}
.cmbx-10{ font-weight: bold;}
.cmbx-10{ font-weight: bold;}
.cmbx-10{ font-weight: bold;}
.cmbx-10{ font-weight: bold;}
.cmtt-10{font-family: monospace;}
.cmtt-10{font-family: monospace;}
.cmtt-10{font-family: monospace;}
@ -21,6 +23,7 @@
.cmbx-12{font-size:120%; font-weight: bold;}
.cmbx-12{ font-weight: bold;}
.cmbx-12{ font-weight: bold;}
.cmbx-12{ font-weight: bold;}
.cmtt-8{font-size:80%;font-family: monospace;}
.cmtt-8{font-family: monospace;}
.cmtt-8{font-family: monospace;}
@ -28,6 +31,10 @@
.cmtt-9{font-family: monospace;}
.cmtt-9{font-family: monospace;}
.cmmi-8{font-size:80%;font-style: italic;}
.cmbx-9{font-size:90%; font-weight: bold;}
.cmbx-9{ font-weight: bold;}
.cmbx-9{ font-weight: bold;}
.cmbx-9{ font-weight: bold;}
p.noindent { text-indent: 0em }
td p.noindent { text-indent: 0em; margin-top:0em; }
p.nopar { text-indent: 0em; }
@ -97,9 +104,8 @@ span.LATEX span.TEX{ position:relative; left: -0.4em; }
div.float, div.figure {margin-left: auto; margin-right: auto;}
div.float img {text-align:center;}
div.figure img {text-align:center;}
.marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;}
.reversemarginpar{float:left;}
.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
table.equation {width:100%;}
.equation td{text-align:center; }
td.equation { margin-top:1em; margin-bottom:1em; }
@ -142,7 +148,6 @@ div.abstract {width:100%;}
.Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; }
.shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; }
.doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; }
.rotatebox{display: inline-block;}
.figure img.graphics {margin-left:10%;}
.lstlisting .label{margin-right:0.5em; }
div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 76--><p class="noindent" ><span
<!--l. 90--><p class="noindent" ><span
class="cmbx-12x-x-144">PSBLAS</span><br
class="newline" /> <span
class="cmbx-12x-x-144">User&#8217;s and Reference Guide</span><br

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 763 B

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 91--><div class="crosslinks"><p class="noindent">[<a
<!--l. 105--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse1.html" >next</a>] [<a
href="#tailuserhtmlli1.html">tail</a>] [<a
href="userhtml.html#userhtmlli1.html" >up</a>] </p></div>

@ -176,11 +176,11 @@ class="cmti-10">MPI: The Complete Reference. Volume 1 - The MPI Core</span>, sec
<!--l. 114--><div class="crosslinks"><p class="noindent">[<a
<!--l. 128--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse11.html" >prev</a>] [<a
href="userhtmlse11.html#tailuserhtmlse11.html" >prev-tail</a>] [<a
href="userhtmlli2.html" >front</a>] [<a
href="userhtml.html# " >up</a>] </p></div>
<!--l. 114--><p class="indent" > <a
<!--l. 128--><p class="indent" > <a
id="tailuserhtmlli2.html"></a>
</body></html>

@ -27,7 +27,7 @@ based on the serial sparse BLAS, so that any extension made to the data structur
of the serial kernels is available to the parallel version. The overall design and
parallelization strategy have been influenced by the structure of the ScaLAPACK
parallel library. The layered structure of the PSBLAS library is shown in figure&#x00A0;<a
href="#x4-30011">1<!--tex4ht:ref: fig:psblas --></a>;
href="#x4-3001r1">1<!--tex4ht:ref: fig:psblas --></a>;
lower layers of the library indicate an encapsulation relationship with upper
layers. The ongoing discussion focuses on the Fortran&#x00A0;2003 layer immediately
below the application layer. The serial parts of the computation on each
@ -46,7 +46,7 @@ href="userhtmlse7.html#x68-1050007">7<!--tex4ht:ref: sec:parenv --></a>.
<a
id="x4-30011"></a>
id="x4-3001r1"></a>
@ -58,7 +58,7 @@ src="psblas.png" alt="PIC"
></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;1: </span><span
class="content">PSBLAS library components hierarchy.</span></div><!--tex4ht:label?: x4-30011 -->
class="content">PSBLAS library components hierarchy.</span></div><!--tex4ht:label?: x4-3001r1 -->

@ -22,11 +22,11 @@ href="userhtml.html#userhtmlsu7.html" >up</a>] </p></div>
interfaces. They include data structures for sparse matrices, communication
descriptors and preconditioners.
<!--l. 11--><p class="indent" > All the data types and the basic subroutine interfaces related to descriptors and
sparse matrices are defined in the module <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_base_mod</span></span></span>; this will have to be
sparse matrices are defined in the module <span class="lstinline"></span><span
class="cmtt-10">psb_base_mod</span>; this will have to be
included by every user subroutine that makes use of the library. The preconditioners
are defined in the module <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_prec_mod</span></span></span>
are defined in the module <span class="lstinline"></span><span
class="cmtt-10">psb_prec_mod</span>
<!--l. 17--><p class="indent" > Integer, real and complex data types are parametrized with a kind type defined in
the library as follows:
<dl class="description"><dt class="description">
@ -35,17 +35,18 @@ class="cmbx-10">psb</span><span
class="cmbx-10">_spk</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Kind parameter for short precision real and complex data;
corresponds to a <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">REAL</span></span></span> declaration and is normally 4 bytes;
corresponds to a <span class="lstinline"></span><span
class="cmtt-10">REAL</span> declaration and is normally 4 bytes;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span
class="cmbx-10">_dpk</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Kind parameter for long precision real and complex data;
corresponds to a <span class="obeylines-h"><span class="verb"><span
corresponds to a <span class="lstinline"></span><span
class="cmtt-10">DOUBLE</span><span
class="cmtt-10">&#x00A0;PRECISION</span></span></span> declaration and is normally 8 bytes;
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">PRECISION</span> declaration and is normally 8 bytes;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span
@ -58,8 +59,8 @@ class="cmbx-10">psb</span><span
class="cmbx-10">_epk</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Kind parameter for 8-bytes integer data, as is always used by the
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">sizeof</span></span></span> methods;
<span class="lstinline"></span><span
class="cmtt-10">sizeof</span> methods;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span

@ -36,7 +36,7 @@ zero, an error condition is raised. This process continues on all the levels of
nested calls until the level where the user decides to abort the program
execution.
<!--l. 23--><p class="indent" > Figure&#x00A0;<a
href="#x86-1230259">9<!--tex4ht:ref: fig:routerr --></a> shows the layout of a generic <span class="obeylines-h"><span class="verb"><span
href="#x86-123025r5">5<!--tex4ht:ref: fig:routerr --></a> shows the layout of a generic <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_foo</span></span></span> routine with respect to the
PSBLAS-2.0 error handling policy. It is possible to see how, whenever an error
condition is detected, the <span class="obeylines-h"><span class="verb"><span
@ -54,284 +54,293 @@ made by the user with <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_set_erraction</span></span></span>. The default is to print the error
and terminate the program, but the user may choose to handle the error
explicitly.
<!--l. 40--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x86-1230259"></a>
<!--l. 40--><p class="indent" > <a
id="x86-123025r5"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 73--><p class="noindent" >
<div class="fbox"><div class="minipage"><!--l. 44-->
<div class="lstlisting" id="listing-9"><span class="label"><a
<!--l. 101--><p class="noindent" >
<div class="fbox"><div class="minipage"><!--l. 72-->
<div class="lstlisting" id="listing-5"><span class="label"><a
id="x86-123001r1"></a></span><span
class="cmtt-9">subroutine</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">psb_foo</span><span
class="cmtt-9">(</span><span
class="cmtt-9">some</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">args</span><span
class="cmtt-9">,</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">info</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmbx-9">subroutine</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_foo</span><span
class="cmr-9">(</span><span
class="cmr-9">some</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">args</span><span
class="cmr-9">,</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">info</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123002r2"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">...</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">...</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123003r3"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">if</span><span
class="cmtt-9">(</span><span
class="cmtt-9">error</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">detected</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">then</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">if</span><span
class="cmr-9">(</span><span
class="cmr-9">error</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">detected</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">then</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123004r4"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">info</span><span
class="cmtt-9">=</span><span
class="cmtt-9">errcode1</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">info</span><span
class="cmr-9">=</span><span
class="cmr-9">errcode1</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123005r5"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">call</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">psb_errpush</span><span
class="cmtt-9">(</span><span
class="cmtt-9">&#8217;</span><span
class="cmtt-9">psb_foo</span><span
class="cmtt-9">&#8217;</span><span
class="cmtt-9">,</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">errcode1</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">call</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_errpush</span><span
class="cmr-9">(</span><span
class="cmr-9">&#8217;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_foo</span><span
class="cmr-9">&#8217;</span><span
class="cmr-9">,</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">errcode1</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123006r6"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">goto</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">9999</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">goto</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">9999</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123007r7"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">end</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">if</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">end</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">if</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123008r8"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">...</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">...</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123009r9"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">call</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">psb_bar</span><span
class="cmtt-9">(</span><span
class="cmtt-9">some</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">args</span><span
class="cmtt-9">,</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">info</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">call</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_bar</span><span
class="cmr-9">(</span><span
class="cmr-9">some</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">args</span><span
class="cmr-9">,</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">info</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123010r10"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">if</span><span
class="cmtt-9">(</span><span
class="cmtt-9">info</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">.</span><span
class="cmtt-9">ne</span><span
class="cmtt-9">.</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">zero</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">then</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">if</span><span
class="cmr-9">(</span><span
class="cmr-9">info</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">.</span><span
class="cmbx-9">ne</span><span
class="cmr-9">.</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">zero</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">then</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123011r11"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">info</span><span
class="cmtt-9">=</span><span
class="cmtt-9">errcode2</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">info</span><span
class="cmr-9">=</span><span
class="cmr-9">errcode2</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123012r12"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">call</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">psb_errpush</span><span
class="cmtt-9">(</span><span
class="cmtt-9">&#8217;</span><span
class="cmtt-9">psb_foo</span><span
class="cmtt-9">&#8217;</span><span
class="cmtt-9">,</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">errcode2</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">call</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_errpush</span><span
class="cmr-9">(</span><span
class="cmr-9">&#8217;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_foo</span><span
class="cmr-9">&#8217;</span><span
class="cmr-9">,</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">errcode2</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123013r13"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">goto</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">9999</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">goto</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">9999</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123014r14"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">end</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">if</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">end</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">if</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123015r15"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">...</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">...</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123016r16"></a></span><span
class="cmtt-9">9999</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">continue</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">9999</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">continue</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123017r17"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">if</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">(</span><span
class="cmtt-9">err_act</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">.</span><span
class="cmtt-9">eq</span><span
class="cmtt-9">.</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">act_abort</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">then</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">if</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">(</span><span
class="cmr-9">err</span><span
class="cmr-9">_act</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">.</span><span
class="cmbx-9">eq</span><span
class="cmr-9">.</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">act</span><span
class="cmr-9">_abort</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">then</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123018r18"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">call</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">psb_error</span><span
class="cmtt-9">(</span><span
class="cmtt-9">icontxt</span><span
class="cmtt-9">)</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">call</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_error</span><span
class="cmr-9">(</span><span
class="cmr-9">icontxt</span><span
class="cmr-9">)</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123019r19"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">return</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">return</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123020r20"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">else</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">else</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123021r21"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">return</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">return</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123022r22"></a></span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">end</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">if</span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">end</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">if</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123023r23"></a></span><span
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123024r24"></a></span><span
class="cmtt-9">end</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">subroutine</span><span
class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">psb_foo</span>
class="cmbx-9">end</span><span
class="cmr-9">&#x00A0;</span><span
class="cmbx-9">subroutine</span><span
class="cmr-9">&#x00A0;</span><span
class="cmr-9">psb</span><span
class="cmr-9">_foo</span>
</div> </div> </div>
</div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;9: </span><span
><span class="id">Listing 5: </span><span
class="content">The layout of a generic <span
class="cmtt-10">psb</span><span
class="cmtt-10">_foo </span>routine with respect to PSBLAS-2.0
error handling policy.</span></div><!--tex4ht:label?: x86-1230259 -->
error handling policy.</span></div><!--tex4ht:label?: x86-123025r5 -->
<!--l. 78--><p class="indent" > </div><hr class="endfigure">
<!--l. 83--><p class="indent" > Figure&#x00A0;<a
href="#x86-12302610">10<!--tex4ht:ref: fig:errormsg --></a> reports a sample error message generated by the PSBLAS-2.0
</div><hr class="endfloat" />
<!--l. 112--><p class="indent" > Figure&#x00A0;<a
href="#x86-123026r6">6<!--tex4ht:ref: fig:errormsg --></a> reports a sample error message generated by the PSBLAS-2.0
library. This error has been generated by the fact that the user has chosen the
invalid &#8220;FOO&#8221; storage format to represent the sparse matrix. From this
error message it is possible to see that the error has been detected inside
@ -339,20 +348,19 @@ the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_cest</span></span></span> subroutine called by <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_spasb</span></span></span> ... by process 0 (i.e. the root
process).
<!--l. 91--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x86-12302610"></a>
<!--l. 120--><p class="indent" > <a
id="x86-123026r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 113--><p class="noindent" >
<div class="fbox"><div class="minipage"><div class="verbatim" id="verbatim-101">
<!--l. 160--><p class="noindent" >
<div class="fbox"><div class="minipage"><div class="verbatim" id="verbatim-78">
==========================================================
&#x00A0;<br />Process:&#x00A0;0.&#x00A0;&#x00A0;PSBLAS&#x00A0;Error&#x00A0;(4010)&#x00A0;in&#x00A0;subroutine:&#x00A0;df_sample
&#x00A0;<br />Error&#x00A0;from&#x00A0;call&#x00A0;to&#x00A0;subroutine&#x00A0;mat&#x00A0;dist
@ -368,16 +376,16 @@ process).
&#x00A0;<br />==========================================================
&#x00A0;<br />Aborting...
</div>
<!--l. 109--><p class="nopar" > </div> </div>
<!--l. 156--><p class="nopar" > </div> </div>
</div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;10: </span><span
class="content">A sample PSBLAS-2.0 error message. Process 0 detected an error
condition inside the psb_cest subroutine</span></div><!--tex4ht:label?: x86-12302610 -->
><span class="id">Listing 6: </span><span
class="content">A sample PSBLAS-3.0 error message. Process 0 detected an error
condition inside the psb_cest subroutine</span></div><!--tex4ht:label?: x86-123026r6 -->
<!--l. 119--><p class="indent" > </div><hr class="endfigure">
</div><hr class="endfloat" />

@ -116,7 +116,7 @@ class="cmsy-10">|</span>.
<a
id="x6-40022"></a>
id="x6-4002r2"></a>
@ -128,7 +128,7 @@ src="points.png" alt="PIC"
></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;2: </span><span
class="content">Point classfication.</span></div><!--tex4ht:label?: x6-40022 -->
class="content">Point classfication.</span></div><!--tex4ht:label?: x6-4002r2 -->

@ -23,26 +23,41 @@ sum:
src="userhtml1x.png" alt="y &#x2190; &#x03B1; x+ &#x03B2;y
" class="math-display" ></center>
<!--l. 12--><p class="nopar" >
<div class="verbatim" id="verbatim-40">
call&#x00A0;psb_geaxpby(alpha,&#x00A0;x,&#x00A0;beta,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 21--><p class="nopar" >
<!--l. 19--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geaxpby</span><span
class="cmtt-10">(</span><span
class="cmtt-10">alpha</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">beta</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 25--><p class="indent" > <a
id="x19-560011"></a><hr class="float"><div class="float"
<!--l. 23--><p class="indent" > <a
id="x19-56001r1"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 26--><p class="noindent" >
<!--l. 24--><p class="noindent" >
<div class="tabular"> <table id="TBL-1" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-1-1g"><col
@ -80,7 +95,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;1: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x19-560011 -->
class="content">Data types</span></div><!--tex4ht:label?: x19-56001r1 -->
@ -106,7 +121,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
</dd><dt class="description">
<span
class="cmbx-10">x</span> </dt><dd
@ -125,7 +140,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>. The
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>. The
rank of <span
class="cmmi-10">x </span>must be the same of <span
class="cmmi-10">y</span>.
@ -141,7 +156,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
</dd><dt class="description">
<span
class="cmbx-10">y</span> </dt><dd
@ -160,7 +175,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of the type indicated in Table&#x00A0;<a
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
The rank of <span
class="cmmi-10">y </span>must be the same of <span
class="cmmi-10">x</span>.
@ -206,7 +221,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of the type indicated in Table&#x00A0;<a
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -224,10 +239,10 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 113--><div class="crosslinks"><p class="noindent">[<a
<!--l. 111--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu14.html" >next</a>] [<a
href="userhtmlsu10.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu13.html" >up</a>] </p></div>
<!--l. 113--><p class="indent" > <a
<!--l. 111--><p class="indent" > <a
id="tailuserhtmlsu10.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 113--><div class="crosslinks"><p class="noindent">[<a
<!--l. 111--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu15.html" >next</a>] [<a
href="userhtmlsu10.html" >prev</a>] [<a
href="userhtmlsu10.html#tailuserhtmlsu10.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu9.html#tailuserhtmlsu11.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu14.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
id="x20-570004.2"></a>psb_gedot &#8212; Dot Product</h4>
<!--l. 115--><p class="noindent" >This function computes dot product between two vectors <span
<!--l. 113--><p class="noindent" >This function computes dot product between two vectors <span
class="cmmi-10">x </span>and <span
class="cmmi-10">y</span>.<br
class="newline" />If <span
@ -29,33 +29,43 @@ class="cmmi-10">y </span>are real vectors it computes dot-product as:
src="userhtml2x.png" alt=" T
dot &#x2190; x y
" class="math-display" ></center>
<!--l. 119--><p class="nopar" > Else if <span
<!--l. 117--><p class="nopar" > Else if <span
class="cmmi-10">x </span>and <span
class="cmmi-10">y </span>are complex vectors then it computes dot-product as:
<center class="math-display" >
<img
src="userhtml3x.png" alt="dot &#x2190; xHy
" class="math-display" ></center>
<!--l. 121--><p class="nopar" >
<div class="verbatim" id="verbatim-41">
psb_gedot(x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
</div>
<!--l. 130--><p class="nopar" > <div class="table">
<!--l. 119--><p class="nopar" >
<!--l. 126--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_gedot</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span> <div class="table">
<!--l. 132--><p class="indent" > <a
id="x20-570012"></a><hr class="float"><div class="float"
<!--l. 128--><p class="indent" > <a
id="x20-57001r2"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 133--><p class="noindent" >
<!--l. 129--><p class="noindent" >
<div class="tabular"> <table id="TBL-2" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-2-1g"><col
@ -92,7 +102,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;2: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x20-570012 -->
class="content">Data types</span></div><!--tex4ht:label?: x20-57001r2 -->
@ -124,7 +134,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>. The
href="#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>. The
rank of <span
class="cmmi-10">x </span>must be the same of <span
class="cmmi-10">y</span>.
@ -146,7 +156,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>. The
href="#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>. The
rank of <span
class="cmmi-10">y </span>must be the same of <span
class="cmmi-10">x</span>.
@ -177,8 +187,11 @@ class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.true.</span></span></span><br
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span><br
class="newline" />
</dd><dt class="description">
<span
@ -191,11 +204,14 @@ class="description">is the dot product of vectors <span
class="cmmi-10">x </span>and <span
class="cmmi-10">y</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.false.</span></span></span> has been
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.</span> has been
specified<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
@ -210,7 +226,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 207--><p class="noindent" ><span
<!--l. 203--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
@ -218,95 +234,19 @@ class="cmbx-12">Notes</span>
entails a significant overhead. It may be necessary and/or advisable to
compute multiple dot products at the same time; in this case, it is
possible to improve the runtime efficiency by using the following scheme:
<!--l. 214-->
<!--l. 218-->
<div class="lstlisting" id="listing-1"><span class="label"><a
id="x20-57004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gedot</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x1</span><span
class="cmtt-10">,</span><span
class="cmtt-10">y1</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x20-57005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(2)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gedot</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x2</span><span
class="cmtt-10">,</span><span
class="cmtt-10">y2</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x20-57006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(3)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gedot</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x3</span><span
class="cmtt-10">,</span><span
class="cmtt-10">y3</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x20-57007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_sum</span><span
class="cmtt-10">(</span><span
class="cmtt-10">ictxt</span><span
class="cmtt-10">,</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1:3))</span>
id="x20-57004r1"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(1)&#x00A0;=&#x00A0;psb_gedot(x1,y1,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x20-57005r2"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(2)&#x00A0;=&#x00A0;psb_gedot(x2,y2,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x20-57006r3"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(3)&#x00A0;=&#x00A0;psb_gedot(x3,y3,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x20-57007r4"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
class="cmbx-10">call</span>&#x00A0;psb_sum(ctxt,vres(1:3))
</div>
<!--l. 220--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
<!--l. 225--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
operation, is invoked only once.</li></ol>
@ -314,12 +254,12 @@ class="cmtt-10">(1:3))</span>
<!--l. 230--><div class="crosslinks"><p class="noindent">[<a
<!--l. 235--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu15.html" >next</a>] [<a
href="userhtmlsu10.html" >prev</a>] [<a
href="userhtmlsu10.html#tailuserhtmlsu10.html" >prev-tail</a>] [<a
href="userhtmlsu11.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu14.html" >up</a>] </p></div>
<!--l. 230--><p class="indent" > <a
<!--l. 235--><p class="indent" > <a
id="tailuserhtmlsu11.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 230--><div class="crosslinks"><p class="noindent">[<a
<!--l. 235--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu16.html" >next</a>] [<a
href="userhtmlsu11.html" >prev</a>] [<a
href="userhtmlsu11.html#tailuserhtmlsu11.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlse4.html#tailuserhtmlsu12.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu15.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
id="x21-580004.3"></a>psb_gedots &#8212; Generalized Dot Product</h4>
<!--l. 232--><p class="noindent" >This subroutine computes a series of dot products among the columns of two dense
<!--l. 237--><p class="noindent" >This subroutine computes a series of dot products among the columns of two dense
matrices <span
class="cmmi-10">x </span>and <span
class="cmmi-10">y</span>:
@ -27,32 +27,45 @@ class="cmmi-10">y</span>:
src="userhtml4x.png" alt=" T
res(i) &#x2190; x(:,i) y(:,i)
" class="math-display" ></center>
<!--l. 234--><p class="nopar" > If the matrices are complex, then the usual convention applies, i.e. the conjugate
<!--l. 239--><p class="nopar" > If the matrices are complex, then the usual convention applies, i.e. the conjugate
transpose of <span
class="cmmi-10">x </span>is used. If <span
class="cmmi-10">x </span>and <span
class="cmmi-10">y </span>are of rank one, then <span
class="cmmi-10">res </span>is a scalar, else it is a rank
one array.
<div class="verbatim" id="verbatim-42">
call&#x00A0;psb_gedots(res,&#x00A0;x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 242--><p class="nopar" > <div class="table">
<!--l. 243--><p class="indent" > <a
id="x21-580013"></a><hr class="float"><div class="float"
<!--l. 245--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gedots</span><span
class="cmtt-10">(</span><span
class="cmtt-10">res</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 247--><p class="indent" > <a
id="x21-58001r3"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 244--><p class="noindent" >
<!--l. 248--><p class="noindent" >
<div class="tabular"> <table id="TBL-3" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-3-1g"><col
@ -89,7 +102,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;3: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x21-580013 -->
class="content">Data types</span></div><!--tex4ht:label?: x21-58001r3 -->
@ -121,7 +134,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x21-580013">3<!--tex4ht:ref: tab:f90mdot --></a>. The
href="#x21-58001r3">3<!--tex4ht:ref: tab:f90mdot --></a>. The
rank of <span
class="cmmi-10">x </span>must be the same of <span
class="cmmi-10">y</span>.
@ -143,7 +156,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x21-580013">3<!--tex4ht:ref: tab:f90mdot --></a>. The
href="#x21-58001r3">3<!--tex4ht:ref: tab:f90mdot --></a>. The
rank of <span
class="cmmi-10">y </span>must be the same of <span
class="cmmi-10">x</span>.
@ -179,7 +192,7 @@ class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Specified as: a number or a rank-one array of the data type indicated in
Table&#x00A0;<a
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -197,12 +210,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 303--><div class="crosslinks"><p class="noindent">[<a
<!--l. 307--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu16.html" >next</a>] [<a
href="userhtmlsu11.html" >prev</a>] [<a
href="userhtmlsu11.html#tailuserhtmlsu11.html" >prev-tail</a>] [<a
href="userhtmlsu12.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu15.html" >up</a>] </p></div>
<!--l. 303--><p class="indent" > <a
<!--l. 307--><p class="indent" > <a
id="tailuserhtmlsu12.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 303--><div class="crosslinks"><p class="noindent">[<a
<!--l. 307--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu17.html" >next</a>] [<a
href="userhtmlsu12.html" >prev</a>] [<a
href="userhtmlsu12.html#tailuserhtmlsu12.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu10.html#tailuserhtmlsu13.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu16.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
id="x22-590004.4"></a>psb_normi &#8212; Infinity-Norm of Vector</h4>
<!--l. 305--><p class="noindent" >This function computes the infinity-norm of a vector <span
<!--l. 309--><p class="noindent" >This function computes the infinity-norm of a vector <span
class="cmmi-10">x</span>.<br
class="newline" />If <span
class="cmmi-10">x </span>is a real vector it computes infinity norm as:
@ -26,34 +26,54 @@ class="cmmi-10">x </span>is a real vector it computes infinity norm as:
<img
src="userhtml5x.png" alt="amax &#x2190; maxi |xi|
" class="math-display" ></center>
<!--l. 309--><p class="nopar" > else if <span
<!--l. 313--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes the infinity-norm as:
<center class="math-display" >
<img
src="userhtml6x.png" alt="amax &#x2190; maxi (|re(xi)|+ |im(xi)|)
" class="math-display" ></center>
<!--l. 311--><p class="nopar" >
<div class="verbatim" id="verbatim-43">
psb_geamax(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
&#x00A0;<br />psb_normi(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
</div>
<!--l. 320--><p class="nopar" >
<!--l. 315--><p class="nopar" >
<!--l. 321--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_geamax</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span><br
class="newline" /><span class="lstinline"></span><span
class="cmtt-10">psb_normi</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span>
<div class="table">
<!--l. 323--><p class="indent" > <a
id="x22-590014"></a><hr class="float"><div class="float"
<!--l. 325--><p class="indent" > <a
id="x22-59001r4"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 324--><p class="noindent" >
<!--l. 326--><p class="noindent" >
<div class="tabular"> <table id="TBL-4" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-4-1g"><col
@ -94,7 +114,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;4: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x22-590014 -->
class="content">Data types</span></div><!--tex4ht:label?: x22-59001r4 -->
@ -126,7 +146,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x22-590014">4<!--tex4ht:ref: tab:f90amax --></a>.
href="#x22-59001r4">4<!--tex4ht:ref: tab:f90amax --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -154,8 +174,11 @@ class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.true.</span></span></span><br
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span><br
class="newline" />
</dd><dt class="description">
<span
@ -167,8 +190,11 @@ class="cmbx-10">Function value</span> </dt><dd
class="description">is the infinity norm of vector <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.false.</span></span></span> has been
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.</span> has been
specified<br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
@ -182,7 +208,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 383--><p class="noindent" ><span
<!--l. 385--><p class="noindent" ><span
class="cmbx-12">Notes</span>
@ -192,89 +218,19 @@ class="cmbx-12">Notes</span>
class="enumerate" id="x22-59003x1">The computation of a global result requires a global communication, which
entails a significant overhead. It may be necessary and/or advisable to compute
multiple norms at the same time; in this case, it is possible to improve the
runtime efficiency by using the following scheme: <!--l. 390-->
runtime efficiency by using the following scheme: <!--l. 400-->
<div class="lstlisting" id="listing-2"><span class="label"><a
id="x22-59004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geamax</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x1</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x22-59005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(2)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geamax</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x2</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x22-59006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(3)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geamax</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x3</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x22-59007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_amx</span><span
class="cmtt-10">(</span><span
class="cmtt-10">ictxt</span><span
class="cmtt-10">,</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1:3))</span>
id="x22-59004r1"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(1)&#x00A0;=&#x00A0;psb_geamax(x1,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x22-59005r2"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(2)&#x00A0;=&#x00A0;psb_geamax(x2,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x22-59006r3"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(3)&#x00A0;=&#x00A0;psb_geamax(x3,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x22-59007r4"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
class="cmbx-10">call</span>&#x00A0;psb_amx(ctxt,vres(1:3))
</div>
<!--l. 396--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
<!--l. 407--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
operation, is invoked only once.</li></ol>
@ -282,12 +238,12 @@ class="cmtt-10">(1:3))</span>
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
<!--l. 417--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu17.html" >next</a>] [<a
href="userhtmlsu12.html" >prev</a>] [<a
href="userhtmlsu12.html#tailuserhtmlsu12.html" >prev-tail</a>] [<a
href="userhtmlsu13.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu16.html" >up</a>] </p></div>
<!--l. 406--><p class="indent" > <a
<!--l. 417--><p class="indent" > <a
id="tailuserhtmlsu13.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
<!--l. 417--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu18.html" >next</a>] [<a
href="userhtmlsu13.html" >prev</a>] [<a
href="userhtmlsu13.html#tailuserhtmlsu13.html" >prev-tail</a>] [<a
@ -18,34 +18,43 @@ href="userhtmlsu11.html#tailuserhtmlsu14.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu17.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
id="x23-600004.5"></a>psb_geamaxs &#8212; Generalized Infinity Norm</h4>
<!--l. 408--><p class="noindent" >This subroutine computes a series of infinity norms on the columns of a dense matrix
<!--l. 419--><p class="noindent" >This subroutine computes a series of infinity norms on the columns of a dense matrix
<span
class="cmmi-10">x</span>:
<center class="math-display" >
<img
src="userhtml7x.png" alt="res(i) &#x2190; makx|x(k,i)|
" class="math-display" ></center>
<!--l. 410--><p class="nopar" >
<div class="verbatim" id="verbatim-44">
call&#x00A0;psb_geamaxs(res,&#x00A0;x,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 414--><p class="nopar" >
<!--l. 421--><p class="nopar" >
<!--l. 423--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geamaxs</span><span
class="cmtt-10">(</span><span
class="cmtt-10">res</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 416--><p class="indent" > <a
id="x23-600015"></a><hr class="float"><div class="float"
<!--l. 425--><p class="indent" > <a
id="x23-60001r5"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 417--><p class="noindent" >
<!--l. 426--><p class="noindent" >
<div class="tabular"> <table id="TBL-5" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-5-1g"><col
@ -86,7 +95,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;5: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x23-600015 -->
class="content">Data types</span></div><!--tex4ht:label?: x23-60001r5 -->
@ -118,7 +127,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x23-600015">5<!--tex4ht:ref: tab:f90mamax --></a>.
href="#x23-60001r5">5<!--tex4ht:ref: tab:f90mamax --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -166,12 +175,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 467--><div class="crosslinks"><p class="noindent">[<a
<!--l. 476--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu18.html" >next</a>] [<a
href="userhtmlsu13.html" >prev</a>] [<a
href="userhtmlsu13.html#tailuserhtmlsu13.html" >prev-tail</a>] [<a
href="userhtmlsu14.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu17.html" >up</a>] </p></div>
<!--l. 467--><p class="indent" > <a
<!--l. 476--><p class="indent" > <a
id="tailuserhtmlsu14.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 467--><div class="crosslinks"><p class="noindent">[<a
<!--l. 476--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu19.html" >next</a>] [<a
href="userhtmlsu14.html" >prev</a>] [<a
href="userhtmlsu14.html#tailuserhtmlsu14.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu12.html#tailuserhtmlsu15.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu18.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
id="x24-610004.6"></a>psb_norm1 &#8212; 1-Norm of Vector</h4>
<!--l. 469--><p class="noindent" >This function computes the 1-norm of a vector <span
<!--l. 478--><p class="noindent" >This function computes the 1-norm of a vector <span
class="cmmi-10">x</span>.<br
class="newline" />If <span
class="cmmi-10">x </span>is a real vector it computes 1-norm as:
@ -26,35 +26,54 @@ class="cmmi-10">x </span>is a real vector it computes 1-norm as:
<img
src="userhtml8x.png" alt="asum &#x2190; &#x2225;xi&#x2225;
" class="math-display" ></center>
<!--l. 472--><p class="nopar" > else if <span
<!--l. 481--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
<center class="math-display" >
<img
src="userhtml9x.png" alt="asum &#x2190; &#x2225;re(x)&#x2225; + &#x2225;im (x)&#x2225;
1 1
" class="math-display" ></center>
<!--l. 474--><p class="nopar" >
<div class="verbatim" id="verbatim-45">
psb_geasum(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
&#x00A0;<br />psb_norm1(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
</div>
<!--l. 480--><p class="nopar" >
<!--l. 483--><p class="nopar" >
<!--l. 486--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_geasum</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span> <span class="lstinline"></span><span
class="cmtt-10">psb_norm1</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span>
<div class="table">
<!--l. 482--><p class="indent" > <a
id="x24-610016"></a><hr class="float"><div class="float"
<!--l. 489--><p class="indent" > <a
id="x24-61001r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 483--><p class="noindent" >
<!--l. 490--><p class="noindent" >
<div class="tabular"> <table id="TBL-6" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-6-1g"><col
@ -95,7 +114,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;6: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x24-610016 -->
class="content">Data types</span></div><!--tex4ht:label?: x24-61001r6 -->
@ -127,7 +146,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x24-610016">6<!--tex4ht:ref: tab:f90asum --></a>.
href="#x24-61001r6">6<!--tex4ht:ref: tab:f90asum --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -155,8 +174,11 @@ class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.true.</span></span></span><br
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span><br
class="newline" />
</dd><dt class="description">
<span
@ -168,8 +190,11 @@ class="cmbx-10">Function value</span> </dt><dd
class="description">is the 1-norm of vector <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.false.</span></span></span> has been
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.</span> has been
specified<br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
@ -183,7 +208,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 536--><p class="noindent" ><span
<!--l. 543--><p class="noindent" ><span
class="cmbx-12">Notes</span>
@ -193,89 +218,19 @@ class="cmbx-12">Notes</span>
class="enumerate" id="x24-61003x1">The computation of a global result requires a global communication, which
entails a significant overhead. It may be necessary and/or advisable to compute
multiple norms at the same time; in this case, it is possible to improve the
runtime efficiency by using the following scheme: <!--l. 543-->
runtime efficiency by using the following scheme: <!--l. 558-->
<div class="lstlisting" id="listing-3"><span class="label"><a
id="x24-61004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geasum</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x1</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x24-61005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(2)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geasum</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x2</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x24-61006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(3)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geasum</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x3</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x24-61007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_sum</span><span
class="cmtt-10">(</span><span
class="cmtt-10">ictxt</span><span
class="cmtt-10">,</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1:3))</span>
id="x24-61004r1"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(1)&#x00A0;=&#x00A0;psb_geasum(x1,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x24-61005r2"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(2)&#x00A0;=&#x00A0;psb_geasum(x2,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x24-61006r3"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(3)&#x00A0;=&#x00A0;psb_geasum(x3,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x24-61007r4"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
class="cmbx-10">call</span>&#x00A0;psb_sum(ctxt,vres(1:3))
</div>
<!--l. 549--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
<!--l. 565--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
operation, is invoked only once.</li></ol>
@ -283,12 +238,12 @@ class="cmtt-10">(1:3))</span>
<!--l. 554--><div class="crosslinks"><p class="noindent">[<a
<!--l. 570--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu19.html" >next</a>] [<a
href="userhtmlsu14.html" >prev</a>] [<a
href="userhtmlsu14.html#tailuserhtmlsu14.html" >prev-tail</a>] [<a
href="userhtmlsu15.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu18.html" >up</a>] </p></div>
<!--l. 554--><p class="indent" > <a
<!--l. 570--><p class="indent" > <a
id="tailuserhtmlsu15.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 554--><div class="crosslinks"><p class="noindent">[<a
<!--l. 570--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu20.html" >next</a>] [<a
href="userhtmlsu15.html" >prev</a>] [<a
href="userhtmlsu15.html#tailuserhtmlsu15.html" >prev-tail</a>] [<a
@ -18,14 +18,14 @@ href="userhtmlsu13.html#tailuserhtmlsu16.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu19.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
id="x25-620004.7"></a>psb_geasums &#8212; Generalized 1-Norm of Vector</h4>
<!--l. 556--><p class="noindent" >This subroutine computes a series of 1-norms on the columns of a dense matrix
<!--l. 572--><p class="noindent" >This subroutine computes a series of 1-norms on the columns of a dense matrix
<span
class="cmmi-10">x</span>:
<center class="math-display" >
<img
src="userhtml10x.png" alt="res(i) &#x2190; makx|x(k,i)|
" class="math-display" ></center>
<!--l. 558--><p class="nopar" > This function computes the 1-norm of a vector <span
<!--l. 574--><p class="nopar" > This function computes the 1-norm of a vector <span
class="cmmi-10">x</span>.<br
class="newline" />If <span
class="cmmi-10">x </span>is a real vector it computes 1-norm as:
@ -33,33 +33,42 @@ class="cmmi-10">x </span>is a real vector it computes 1-norm as:
<img
src="userhtml11x.png" alt="res(i) &#x2190; &#x2225;xi&#x2225;
" class="math-display" ></center>
<!--l. 562--><p class="nopar" > else if <span
<!--l. 578--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
<center class="math-display" >
<img
src="userhtml12x.png" alt="res(i) &#x2190; &#x2225;re(x )&#x2225;1 +&#x2225;im (x )&#x2225;1
" class="math-display" ></center>
<!--l. 564--><p class="nopar" >
<div class="verbatim" id="verbatim-46">
call&#x00A0;psb_geasums(res,&#x00A0;x,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 569--><p class="nopar" >
<!--l. 580--><p class="nopar" >
<!--l. 583--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_geasums</span><span
class="cmtt-10">(</span><span
class="cmtt-10">res</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 571--><p class="indent" > <a
id="x25-620017"></a><hr class="float"><div class="float"
<!--l. 585--><p class="indent" > <a
id="x25-62001r7"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 572--><p class="noindent" >
<!--l. 586--><p class="noindent" >
<div class="tabular"> <table id="TBL-7" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-7-1g"><col
@ -100,7 +109,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;7: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x25-620017 -->
class="content">Data types</span></div><!--tex4ht:label?: x25-62001r7 -->
@ -132,7 +141,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x25-620017">7<!--tex4ht:ref: tab:f90asums --></a>.
href="#x25-62001r7">7<!--tex4ht:ref: tab:f90asums --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -181,12 +190,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 627--><div class="crosslinks"><p class="noindent">[<a
<!--l. 641--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu20.html" >next</a>] [<a
href="userhtmlsu15.html" >prev</a>] [<a
href="userhtmlsu15.html#tailuserhtmlsu15.html" >prev-tail</a>] [<a
href="userhtmlsu16.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu19.html" >up</a>] </p></div>
<!--l. 627--><p class="indent" > <a
<!--l. 641--><p class="indent" > <a
id="tailuserhtmlsu16.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 627--><div class="crosslinks"><p class="noindent">[<a
<!--l. 641--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu21.html" >next</a>] [<a
href="userhtmlsu16.html" >prev</a>] [<a
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu14.html#tailuserhtmlsu17.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
id="x26-630004.8"></a>psb_norm2 &#8212; 2-Norm of Vector</h4>
<!--l. 629--><p class="noindent" >This function computes the 2-norm of a vector <span
<!--l. 643--><p class="noindent" >This function computes the 2-norm of a vector <span
class="cmmi-10">x</span>.<br
class="newline" />If <span
class="cmmi-10">x </span>is a real vector it computes 2-norm as:
@ -27,27 +27,27 @@ class="cmmi-10">x </span>is a real vector it computes 2-norm as:
src="userhtml13x.png" alt=" &#x221A; -T--
nrm2 &#x2190; x x
" class="math-display" ></center>
<!--l. 632--><p class="nopar" > else if <span
<!--l. 646--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes 2-norm as:
<center class="math-display" >
<img
src="userhtml14x.png" alt=" &#x221A;----
nrm2 &#x2190; xHx
" class="math-display" ></center>
<!--l. 634--><p class="nopar" >
<!--l. 648--><p class="nopar" >
<div class="table">
<!--l. 640--><p class="indent" > <a
id="x26-630018"></a><hr class="float"><div class="float"
<!--l. 654--><p class="indent" > <a
id="x26-63001r8"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 641--><p class="noindent" >
<!--l. 655--><p class="noindent" >
<div class="tabular"> <table id="TBL-8" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-8-1g"><col
@ -88,20 +88,41 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;8: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x26-630018 -->
class="content">Data types</span></div><!--tex4ht:label?: x26-63001r8 -->
</div><hr class="endfloat" />
</div>
<div class="verbatim" id="verbatim-47">
psb_genrm2(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
&#x00A0;<br />psb_norm2(x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,global])
</div>
<!--l. 659--><p class="nopar" >
<!--l. 670--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_genrm2</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span><br
class="newline" /><span class="lstinline"></span><span
class="cmtt-10">psb_norm2</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">])</span><br
class="newline" />
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -128,7 +149,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x26-630018">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
href="#x26-63001r8">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -156,8 +177,11 @@ class="newline" />Type: <span
class="cmbx-10">optional</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.true.</span></span></span><br
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span><br
class="newline" />
</dd><dt class="description">
<span
@ -169,8 +193,11 @@ class="cmbx-10">Function Value</span> </dt><dd
class="description">is the 2-norm of vector <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">global=.false.</span></span></span> has been
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.</span> has been
specified<br
class="newline" />Type: <span
class="cmbx-10">required </span><br
@ -189,96 +216,26 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 706--><p class="noindent" ><span
<!--l. 718--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x26-63003x1">The computation of a global result requires a global communication, which
entails a significant overhead. It may be necessary and/or advisable to compute
multiple norms at the same time; in this case, it is possible to improve the
runtime efficiency by using the following scheme: <!--l. 713-->
runtime efficiency by using the following scheme: <!--l. 725-->
<div class="lstlisting" id="listing-4"><span class="label"><a
id="x26-63004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_genrm2</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x1</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x26-63005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(2)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_genrm2</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x2</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x26-63006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(3)</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">=</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_genrm2</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x3</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">global</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x26-63007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_nrm2</span><span
class="cmtt-10">(</span><span
class="cmtt-10">ictxt</span><span
class="cmtt-10">,</span><span
class="cmtt-10">vres</span><span
class="cmtt-10">(1:3))</span>
id="x26-63004r1"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(1)&#x00A0;=&#x00A0;psb_genrm2(x1,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x26-63005r2"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(2)&#x00A0;=&#x00A0;psb_genrm2(x2,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x26-63006r3"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;vres(3)&#x00A0;=&#x00A0;psb_genrm2(x3,desc_a,info,global=.<span
class="cmbx-10">false</span>.)&#x00A0;<br /><span class="label"><a
id="x26-63007r4"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;<span
class="cmbx-10">call</span>&#x00A0;psb_nrm2(ctxt,vres(1:3))
</div>
<!--l. 719--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
<!--l. 731--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
operation, is invoked only once.</li></ol>
@ -286,12 +243,12 @@ class="cmtt-10">(1:3))</span>
<!--l. 725--><div class="crosslinks"><p class="noindent">[<a
<!--l. 737--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu21.html" >next</a>] [<a
href="userhtmlsu16.html" >prev</a>] [<a
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a
href="userhtmlsu17.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
<!--l. 725--><p class="indent" > <a
<!--l. 737--><p class="indent" > <a
id="tailuserhtmlsu17.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 725--><div class="crosslinks"><p class="noindent">[<a
<!--l. 737--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu22.html" >next</a>] [<a
href="userhtmlsu17.html" >prev</a>] [<a
href="userhtmlsu17.html#tailuserhtmlsu17.html" >prev-tail</a>] [<a
@ -18,34 +18,43 @@ href="userhtmlsu15.html#tailuserhtmlsu18.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu21.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.9 </span> <a
id="x27-640004.9"></a>psb_genrm2s &#8212; Generalized 2-Norm of Vector</h4>
<!--l. 727--><p class="noindent" >This subroutine computes a series of 2-norms on the columns of a dense matrix
<!--l. 739--><p class="noindent" >This subroutine computes a series of 2-norms on the columns of a dense matrix
<span
class="cmmi-10">x</span>:
<center class="math-display" >
<img
src="userhtml15x.png" alt="res(i) &#x2190; &#x2225;x(:,i)&#x2225;2
" class="math-display" ></center>
<!--l. 729--><p class="nopar" >
<div class="verbatim" id="verbatim-48">
call&#x00A0;psb_genrm2s(res,&#x00A0;x,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 734--><p class="nopar" >
<!--l. 741--><p class="nopar" >
<!--l. 744--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_genrm2s</span><span
class="cmtt-10">(</span><span
class="cmtt-10">res</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 736--><p class="indent" > <a
id="x27-640019"></a><hr class="float"><div class="float"
<!--l. 746--><p class="indent" > <a
id="x27-64001r9"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 737--><p class="noindent" >
<!--l. 747--><p class="noindent" >
<div class="tabular"> <table id="TBL-9" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-9-1g"><col
@ -86,7 +95,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;9: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x27-640019 -->
class="content">Data types</span></div><!--tex4ht:label?: x27-64001r9 -->
@ -118,7 +127,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x27-640019">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
href="#x27-64001r9">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -166,12 +175,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 792--><div class="crosslinks"><p class="noindent">[<a
<!--l. 802--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu22.html" >next</a>] [<a
href="userhtmlsu17.html" >prev</a>] [<a
href="userhtmlsu17.html#tailuserhtmlsu17.html" >prev-tail</a>] [<a
href="userhtmlsu18.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu21.html" >up</a>] </p></div>
<!--l. 792--><p class="indent" > <a
<!--l. 802--><p class="indent" > <a
id="tailuserhtmlsu18.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 792--><div class="crosslinks"><p class="noindent">[<a
<!--l. 802--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu23.html" >next</a>] [<a
href="userhtmlsu18.html" >prev</a>] [<a
href="userhtmlsu18.html#tailuserhtmlsu18.html" >prev-tail</a>] [<a
@ -18,14 +18,14 @@ href="userhtmlsu16.html#tailuserhtmlsu19.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu22.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.10 </span> <a
id="x28-650004.10"></a>psb_norm1 &#8212; 1-Norm of Sparse Matrix</h4>
<!--l. 794--><p class="noindent" >This function computes the 1-norm of a matrix <span
<!--l. 804--><p class="noindent" >This function computes the 1-norm of a matrix <span
class="cmmi-10">A</span>:<br
class="newline" />
<center class="par-math-display" >
<img
src="userhtml16x.png" alt="nrm1 &#x2190; &#x2225;A &#x2225;1
" class="par-math-display" ></center>
<!--l. 796--><p class="nopar" > where:
<!--l. 806--><p class="nopar" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">A</span> </dt><dd
@ -35,15 +35,15 @@ class="cmmi-10">A</span></dd></dl>
<!--l. 802--><p class="indent" > <a
id="x28-6500110"></a><hr class="float"><div class="float"
<!--l. 812--><p class="indent" > <a
id="x28-65001r10"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 803--><p class="noindent" >
<!--l. 813--><p class="noindent" >
<div class="tabular"> <table id="TBL-10" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-10-1g"><col
@ -77,7 +77,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;10: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x28-6500110 -->
class="content">Data types</span></div><!--tex4ht:label?: x28-65001r10 -->
@ -86,11 +86,11 @@ class="content">Data types</span></div><!--tex4ht:label?: x28-6500110 -->
<div class="verbatim" id="verbatim-49">
<div class="verbatim" id="verbatim-31">
psb_spnrm1(A,&#x00A0;desc_a,&#x00A0;info)
&#x00A0;<br />psb_norm1(A,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 821--><p class="nopar" >
<!--l. 831--><p class="nopar" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -160,12 +160,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 856--><div class="crosslinks"><p class="noindent">[<a
<!--l. 866--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu23.html" >next</a>] [<a
href="userhtmlsu18.html" >prev</a>] [<a
href="userhtmlsu18.html#tailuserhtmlsu18.html" >prev-tail</a>] [<a
href="userhtmlsu19.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu22.html" >up</a>] </p></div>
<!--l. 856--><p class="indent" > <a
<!--l. 866--><p class="indent" > <a
id="tailuserhtmlsu19.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 856--><div class="crosslinks"><p class="noindent">[<a
<!--l. 866--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu24.html" >next</a>] [<a
href="userhtmlsu19.html" >prev</a>] [<a
href="userhtmlsu19.html#tailuserhtmlsu19.html" >prev-tail</a>] [<a
@ -18,14 +18,14 @@ href="userhtmlsu17.html#tailuserhtmlsu20.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu23.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.11 </span> <a
id="x29-660004.11"></a>psb_normi &#8212; Infinity Norm of Sparse Matrix</h4>
<!--l. 858--><p class="noindent" >This function computes the infinity-norm of a matrix <span
<!--l. 868--><p class="noindent" >This function computes the infinity-norm of a matrix <span
class="cmmi-10">A</span>:<br
class="newline" />
<center class="par-math-display" >
<img
src="userhtml17x.png" alt="nrmi &#x2190; &#x2225;A&#x2225;&#x221E;
" class="par-math-display" ></center>
<!--l. 860--><p class="nopar" > where:
<!--l. 870--><p class="nopar" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">A</span> </dt><dd
@ -35,15 +35,15 @@ class="cmmi-10">A</span></dd></dl>
<!--l. 866--><p class="indent" > <a
id="x29-6600111"></a><hr class="float"><div class="float"
<!--l. 876--><p class="indent" > <a
id="x29-66001r11"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 867--><p class="noindent" >
<!--l. 877--><p class="noindent" >
<div class="tabular"> <table id="TBL-11" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-11-1g"><col
@ -77,7 +77,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;11: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x29-6600111 -->
class="content">Data types</span></div><!--tex4ht:label?: x29-66001r11 -->
@ -86,11 +86,11 @@ class="content">Data types</span></div><!--tex4ht:label?: x29-6600111 -->
<div class="verbatim" id="verbatim-50">
<div class="verbatim" id="verbatim-32">
psb_spnrmi(A,&#x00A0;desc_a,&#x00A0;info)
&#x00A0;<br />psb_normi(A,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 885--><p class="nopar" >
<!--l. 895--><p class="nopar" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -160,12 +160,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 920--><div class="crosslinks"><p class="noindent">[<a
<!--l. 930--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu24.html" >next</a>] [<a
href="userhtmlsu19.html" >prev</a>] [<a
href="userhtmlsu19.html#tailuserhtmlsu19.html" >prev-tail</a>] [<a
href="userhtmlsu20.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu23.html" >up</a>] </p></div>
<!--l. 920--><p class="indent" > <a
<!--l. 930--><p class="indent" > <a
id="tailuserhtmlsu20.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 921--><div class="crosslinks"><p class="noindent">[<a
<!--l. 931--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu25.html" >next</a>] [<a
href="userhtmlsu20.html" >prev</a>] [<a
href="userhtmlsu20.html#tailuserhtmlsu20.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu18.html#tailuserhtmlsu21.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu24.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.12 </span> <a
id="x30-670004.12"></a>psb_spmm &#8212; Sparse Matrix by Dense Matrix Product</h4>
<!--l. 923--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
<!--l. 933--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
<table
class="equation"><tr><td>
<center class="math-display" >
@ -26,7 +26,7 @@ class="equation"><tr><td>
src="userhtml18x.png" alt="y &#x2190; &#x03B1;Ax + &#x03B2;y
" class="math-display" ><a
id="x30-67001r1"></a></center></td><td class="equation-label">(1)</td></tr></table>
<!--l. 928--><p class="nopar" >
<!--l. 938--><p class="nopar" >
<table
class="equation"><tr><td>
<center class="math-display" >
@ -34,7 +34,7 @@ class="equation"><tr><td>
src="userhtml19x.png" alt="y &#x2190; &#x03B1;AT x+ &#x03B2;y
" class="math-display" ><a
id="x30-67002r2"></a></center></td><td class="equation-label">(2)</td></tr></table>
<!--l. 932--><p class="nopar" >
<!--l. 942--><p class="nopar" >
<table
class="equation"><tr><td>
<center class="math-display" >
@ -46,8 +46,8 @@ y &#x2190; &#x03B1;A x+ &#x03B2;y
" class="math-display" ><a
id="x30-67003r3"></a></center></td><td class="equation-label">(3)</td></tr></table>
<!--l. 936--><p class="nopar" >
<!--l. 938--><p class="indent" > where:
<!--l. 946--><p class="nopar" >
<!--l. 948--><p class="indent" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">x</span> </dt><dd
@ -73,15 +73,15 @@ class="cmmi-10">A</span></dd></dl>
<!--l. 945--><p class="indent" > <a
id="x30-6700412"></a><hr class="float"><div class="float"
<!--l. 955--><p class="indent" > <a
id="x30-67004r12"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 946--><p class="noindent" >
<!--l. 956--><p class="noindent" >
<div class="tabular"> <table id="TBL-12" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-12-1g"><col
@ -120,21 +120,67 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;12: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x30-6700412 -->
class="content">Data types</span></div><!--tex4ht:label?: x30-67004r12 -->
</div><hr class="endfloat" />
</div>
<div class="verbatim" id="verbatim-51">
call&#x00A0;psb_spmm(alpha,&#x00A0;a,&#x00A0;x,&#x00A0;beta,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info)
&#x00A0;<br />call&#x00A0;psb_spmm(alpha,&#x00A0;a,&#x00A0;x,&#x00A0;beta,&#x00A0;y,desc_a,&#x00A0;info,&#x00A0;&amp;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;trans,&#x00A0;work)
</div>
<!--l. 965--><p class="nopar" >
<!--l. 971--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_spmm</span><span
class="cmtt-10">(</span><span
class="cmtt-10">alpha</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">beta</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span><br
class="newline" /><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_spmm</span><span
class="cmtt-10">(</span><span
class="cmtt-10">alpha</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">beta</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">trans</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">work</span><span
class="cmtt-10">)</span>
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -155,7 +201,7 @@ class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>.
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">a</span> </dt><dd
@ -190,7 +236,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>. The
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>. The
rank of <span
class="cmmi-10">x </span>must be the same of <span
class="cmmi-10">y</span>.
@ -206,7 +252,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>.
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">y</span> </dt><dd
@ -225,13 +271,10 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>. The
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>. The
rank of <span
class="cmmi-10">y </span>must be the same of <span
class="cmmi-10">x</span>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -267,7 +310,7 @@ href="#x30-67002r2">2<!--tex4ht:ref: eq:f90spmm_tra --></a>
class="cmbx-10">trans = C</span> </dt><dd
class="description">the operation is specified by equation <a
href="#x30-67003r3">3<!--tex4ht:ref: eq:f90spmm_con --></a></dd></dl>
<!--l. 1020--><p class="noindent" >Scope: <span
<!--l. 1027--><p class="noindent" >Scope: <span
class="cmbx-10">global </span><br
class="newline" />Type: <span
class="cmbx-10">optional</span><br
@ -308,7 +351,7 @@ class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
in Table&#x00A0;<a
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>.
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -326,12 +369,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 1072--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1079--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu25.html" >next</a>] [<a
href="userhtmlsu20.html" >prev</a>] [<a
href="userhtmlsu20.html#tailuserhtmlsu20.html" >prev-tail</a>] [<a
href="userhtmlsu21.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu24.html" >up</a>] </p></div>
<!--l. 1072--><p class="indent" > <a
<!--l. 1079--><p class="indent" > <a
id="tailuserhtmlsu21.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1072--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1079--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse5.html" >next</a>] [<a
href="userhtmlsu21.html" >prev</a>] [<a
href="userhtmlsu21.html#tailuserhtmlsu21.html" >prev-tail</a>] [<a
@ -18,8 +18,8 @@ href="userhtmlsu19.html#tailuserhtmlsu22.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu25.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.13 </span> <a
id="x31-680004.13"></a>psb_spsm &#8212; Triangular System Solve</h4>
<!--l. 1074--><p class="noindent" >This subroutine computes the Triangular System Solve:
<!--l. 1076--><p class="indent" > <div class="eqnarray">
<!--l. 1081--><p class="noindent" >This subroutine computes the Triangular System Solve:
<!--l. 1083--><p class="indent" > <div class="eqnarray">
<center class="math-display" >
<img
src="userhtml21x.png" alt="y &#x2190; &#x03B1;T- 1x + &#x03B2;y
@ -35,7 +35,7 @@ y &#x2190; &#x03B1;DT -Hx + &#x03B2;y
y &#x2190; &#x03B1;T- HDx + &#x03B2;y
" class="math-display" ></center>
</div>
<!--l. 1089--><p class="indent" > where:
<!--l. 1096--><p class="indent" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">x</span> </dt><dd
@ -61,28 +61,85 @@ class="cmmi-10">T</span>
<span
class="cmmi-10">D</span> </dt><dd
class="description">is the scaling diagonal matrix.</dd></dl>
<div class="verbatim" id="verbatim-52">
call&#x00A0;psb_spsm(alpha,&#x00A0;t,&#x00A0;x,&#x00A0;beta,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info)
&#x00A0;<br />call&#x00A0;psb_spsm(alpha,&#x00A0;t,&#x00A0;x,&#x00A0;beta,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info,&amp;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;trans,&#x00A0;unit,&#x00A0;choice,&#x00A0;diag,&#x00A0;work)
</div>
<!--l. 1101--><p class="nopar" >
<!--l. 1104--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_spsm</span><span
class="cmtt-10">(</span><span
class="cmtt-10">alpha</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">t</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">beta</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span><br
class="newline" /><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_spsm</span><span
class="cmtt-10">(</span><span
class="cmtt-10">alpha</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">t</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">beta</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">trans</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">unit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">choice</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">diag</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">work</span><span
class="cmtt-10">)</span><br
class="newline" />
<div class="table">
<!--l. 1103--><p class="indent" > <a
id="x31-6800213"></a><hr class="float"><div class="float"
<!--l. 1107--><p class="indent" > <a
id="x31-68002r13"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1104--><p class="noindent" >
<!--l. 1108--><p class="noindent" >
<div class="tabular"> <table id="TBL-13" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-13-1g"><col
@ -122,7 +179,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;13: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x31-6800213 -->
class="content">Data types</span></div><!--tex4ht:label?: x31-68002r13 -->
@ -148,7 +205,7 @@ class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">t</span> </dt><dd
@ -181,7 +238,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>. The
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>. The
rank of <span
class="cmmi-10">x </span>must be the same of <span
class="cmmi-10">y</span>.
@ -197,7 +254,7 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">y</span> </dt><dd
@ -216,7 +273,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>. The
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>. The
rank of <span
class="cmmi-10">y </span>must be the same of <span
class="cmmi-10">x</span>.
@ -256,7 +313,7 @@ class="description">the operation is with transposed matrix.
<span
class="cmbx-10">trans = &#8217;C&#8217;</span> </dt><dd
class="description">the operation is with conjugate transposed matrix.</dd></dl>
<!--l. 1173--><p class="noindent" >Scope: <span
<!--l. 1177--><p class="noindent" >Scope: <span
class="cmbx-10">global </span><br
class="newline" />Type: <span
class="cmbx-10">optional</span><br
@ -283,7 +340,7 @@ class="description">the operation is with left scaling
<span
class="cmbx-10">unitd = &#8217;R&#8217;</span> </dt><dd
class="description">the operation is with right scaling.</dd></dl>
<!--l. 1184--><p class="noindent" >Scope: <span
<!--l. 1188--><p class="noindent" >Scope: <span
class="cmbx-10">global </span><br
class="newline" />Type: <span
class="cmbx-10">optional</span><br
@ -299,28 +356,28 @@ class="cmbx-10">choice</span> </dt><dd
class="description">specifies the update of overlap elements to be performed on exit:
<dl class="description"><dt class="description">
</dt><dd
class="description"><span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_none_</span></span></span>
class="description"><span class="lstinline"></span><span
class="cmtt-10">psb_none_</span>
</dd><dt class="description">
</dt><dd
class="description"><span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_sum_</span></span></span>
class="description"><span class="lstinline"></span><span
class="cmtt-10">psb_sum_</span>
</dd><dt class="description">
</dt><dd
class="description"><span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_avg_</span></span></span>
class="description"><span class="lstinline"></span><span
class="cmtt-10">psb_avg_</span>
</dd><dt class="description">
</dt><dd
class="description"><span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_square_root_</span></span></span></dd></dl>
<!--l. 1197--><p class="noindent" >Scope: <span
class="description"><span class="lstinline"></span><span
class="cmtt-10">psb_square_root_</span></dd></dl>
<!--l. 1201--><p class="noindent" >Scope: <span
class="cmbx-10">global </span><br
class="newline" />Type: <span
class="cmbx-10">optional</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_avg_</span></span></span><br
class="newline" />Default: <span class="lstinline"></span><span
class="cmtt-10">psb_avg_</span><br
class="newline" />Specified as: an integer variable.
@ -340,7 +397,7 @@ class="cmmi-10">diag</span>(1) = 1(<span
class="cmmi-10">noscaling</span>)<br
class="newline" />Specified as: a rank one array containing numbers of the type indicated in
Table&#x00A0;<a
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">work</span> </dt><dd
@ -371,7 +428,7 @@ class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
in Table&#x00A0;<a
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -389,12 +446,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 1241--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1245--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse5.html" >next</a>] [<a
href="userhtmlsu21.html" >prev</a>] [<a
href="userhtmlsu21.html#tailuserhtmlsu21.html" >prev-tail</a>] [<a
href="userhtmlsu22.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu25.html" >up</a>] </p></div>
<!--l. 1241--><p class="indent" > <a
<!--l. 1245--><p class="indent" > <a
id="tailuserhtmlsu22.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1241--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1245--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu26.html" >next</a>] [<a
href="userhtmlsu22.html" >prev</a>] [<a
href="userhtmlsu22.html#tailuserhtmlsu22.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu20.html#tailuserhtmlsu23.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlse5.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.14 </span> <a
id="x32-690004.14"></a>psb_gemlt &#8212; Entrywise Product</h4>
<!--l. 1243--><p class="noindent" >This function computes the entrywise product between two vectors <span
<!--l. 1247--><p class="noindent" >This function computes the entrywise product between two vectors <span
class="cmmi-10">x </span>and
<span
class="cmmi-10">y</span>
@ -26,26 +26,34 @@ class="cmmi-10">y</span>
<img
src="userhtml22x.png" alt="dot &#x2190; x(i)y(i).
" class="math-display" ></center>
<!--l. 1245--><p class="nopar" >
<div class="verbatim" id="verbatim-53">
psb_gemlt(x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 1249--><p class="nopar" > <div class="table">
<!--l. 1251--><p class="indent" > <a
id="x32-6900114"></a><hr class="float"><div class="float"
<!--l. 1249--><p class="nopar" >
<!--l. 1251--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_gemlt</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 1254--><p class="indent" > <a
id="x32-69001r14"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1252--><p class="noindent" >
<!--l. 1255--><p class="noindent" >
<div class="tabular"> <table id="TBL-14" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-14-1g"><col
@ -82,7 +90,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;14: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x32-6900114 -->
class="content">Data types</span></div><!--tex4ht:label?: x32-69001r14 -->
@ -114,7 +122,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<span
class="cmbx-10">y</span> </dt><dd
@ -133,7 +141,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -172,7 +180,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
the type indicated in Table&#x00A0;<a
href="#x32-6900114">14<!--tex4ht:ref: tab:f90mlt --></a>.
href="#x32-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -190,12 +198,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 1309--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1312--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu26.html" >next</a>] [<a
href="userhtmlsu22.html" >prev</a>] [<a
href="userhtmlsu22.html#tailuserhtmlsu22.html" >prev-tail</a>] [<a
href="userhtmlsu23.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlse5.html" >up</a>] </p></div>
<!--l. 1309--><p class="indent" > <a
<!--l. 1312--><p class="indent" > <a
id="tailuserhtmlsu23.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1309--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1312--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu27.html" >next</a>] [<a
href="userhtmlsu23.html" >prev</a>] [<a
href="userhtmlsu23.html#tailuserhtmlsu23.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlsu21.html#tailuserhtmlsu24.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu26.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.15 </span> <a
id="x33-700004.15"></a>psb_gediv &#8212; Entrywise Division</h4>
<!--l. 1311--><p class="noindent" >This function computes the entrywise division between two vectors <span
<!--l. 1314--><p class="noindent" >This function computes the entrywise division between two vectors <span
class="cmmi-10">x </span>and
<span
class="cmmi-10">y</span>
@ -26,26 +26,38 @@ class="cmmi-10">y</span>
<img
src="userhtml23x.png" alt="&#x2215; &#x2190; x(i)&#x2215;y(i).
" class="math-display" ></center>
<!--l. 1313--><p class="nopar" >
<div class="verbatim" id="verbatim-54">
psb_gediv(x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info,&#x00A0;[flag)
</div>
<!--l. 1317--><p class="nopar" > <div class="table">
<!--l. 1319--><p class="indent" > <a
id="x33-7000115"></a><hr class="float"><div class="float"
<!--l. 1316--><p class="nopar" >
<!--l. 1318--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_gediv</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[</span><span
class="cmtt-10">flag</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 1321--><p class="indent" > <a
id="x33-70001r15"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1320--><p class="noindent" >
<!--l. 1322--><p class="noindent" >
<div class="tabular"> <table id="TBL-15" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-15-1g"><col
@ -82,7 +94,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;15: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x33-7000115 -->
class="content">Data types</span></div><!--tex4ht:label?: x33-70001r15 -->
@ -114,7 +126,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<span
class="cmbx-10">y</span> </dt><dd
@ -133,7 +145,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -162,8 +174,11 @@ class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">optional </span>Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: the logical value <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">flag=.true.</span></span></span>
class="newline" />Specified as: the logical value <span class="lstinline"></span><span
class="cmtt-10">flag</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span>
</dd><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -186,7 +201,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
the type indicated in Table&#x00A0;<a
href="userhtmlsu23.html#x32-6900114">14<!--tex4ht:ref: tab:f90mlt --></a>.
href="userhtmlsu23.html#x32-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -204,12 +219,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 1382--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1384--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu27.html" >next</a>] [<a
href="userhtmlsu23.html" >prev</a>] [<a
href="userhtmlsu23.html#tailuserhtmlsu23.html" >prev-tail</a>] [<a
href="userhtmlsu24.html" >front</a>] [<a
href="userhtmlsu12.html#userhtmlsu26.html" >up</a>] </p></div>
<!--l. 1382--><p class="indent" > <a
<!--l. 1384--><p class="indent" > <a
id="tailuserhtmlsu24.html"></a>
</body></html>

@ -10,14 +10,14 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1382--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1384--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu24.html" >prev</a>] [<a
href="userhtmlsu24.html#tailuserhtmlsu24.html" >prev-tail</a>] [<a
href="userhtmlsu22.html#tailuserhtmlsu25.html">tail</a>] [<a
href="userhtmlsu12.html#userhtmlsu27.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">4.16 </span> <a
id="x34-710004.16"></a>psb_geinv &#8212; Entrywise Inversion</h4>
<!--l. 1384--><p class="noindent" >This function computes the entrywise inverse of a vector <span
<!--l. 1386--><p class="noindent" >This function computes the entrywise inverse of a vector <span
class="cmmi-10">x </span>and puts it into
<span
class="cmmi-10">y</span>
@ -25,26 +25,38 @@ class="cmmi-10">y</span>
<img
src="userhtml24x.png" alt="&#x2215; &#x2190; 1&#x2215;x(i).
" class="math-display" ></center>
<!--l. 1386--><p class="nopar" >
<div class="verbatim" id="verbatim-55">
psb_geinv(x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info,&#x00A0;[flag)
</div>
<!--l. 1390--><p class="nopar" > <div class="table">
<!--l. 1392--><p class="indent" > <a
id="x34-7100116"></a><hr class="float"><div class="float"
<!--l. 1388--><p class="nopar" >
<!--l. 1390--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">psb_geinv</span><span
class="cmtt-10">(</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">y</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">[</span><span
class="cmtt-10">flag</span><span
class="cmtt-10">)</span>
<div class="table">
<!--l. 1393--><p class="indent" > <a
id="x34-71001r16"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1393--><p class="noindent" >
<!--l. 1394--><p class="noindent" >
<div class="tabular"> <table id="TBL-16" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-16-1g"><col
@ -81,7 +93,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;16: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x34-7100116 -->
class="content">Data types</span></div><!--tex4ht:label?: x34-71001r16 -->
@ -113,7 +125,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -142,8 +154,11 @@ class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">optional </span>Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: the logical value <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">flag=.true.</span></span></span>
class="newline" />Specified as: the logical value <span class="lstinline"></span><span
class="cmtt-10">flag</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span>
</dd><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -166,7 +181,7 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
the type indicated in Table&#x00A0;<a
href="#x34-7100116">16<!--tex4ht:ref: tab:f90inv --></a>.
href="#x34-71001r16">16<!--tex4ht:ref: tab:f90inv --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd

@ -31,7 +31,7 @@ class="description">is a global dense submatrix.</dd></dl>
<!--l. 23--><p class="indent" > <a
id="x36-7300117"></a><hr class="float"><div class="float"
id="x36-73001r17"></a><hr class="float"><div class="float"
>
@ -78,15 +78,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;17: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x36-7300117 -->
class="content">Data types</span></div><!--tex4ht:label?: x36-73001r17 -->
</div><hr class="endfloat" />
</div>
<!--l. 40-->
<div class="lstlisting" id="listing-5"><span class="label"><a
id="x36-73002r1"></a></span><span
<!--l. 40--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_halo</span><span
@ -98,9 +96,8 @@ class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x36-73003r2"></a></span><span
class="cmtt-10">)</span><br
class="newline" /><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_halo</span><span
@ -119,8 +116,6 @@ class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">data</span><span
class="cmtt-10">)</span>
</div>
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -147,7 +142,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x36-7300117">17<!--tex4ht:ref: tab:f90halo --></a>.
href="#x36-73001r17">17<!--tex4ht:ref: tab:f90halo --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -185,12 +180,12 @@ class="cmbx-10">global </span><br
class="newline" />Type: <span
class="cmbx-10">optional </span><br
class="newline" />Specified
as: an integer. Values:<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_comm_halo_</span></span></span>,<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_comm_mov_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_comm_ext_</span></span></span>,
default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_comm_halo_</span></span></span>. Chooses the index list on which to base the data
as: an integer. Values:<span class="lstinline"></span><span
class="cmtt-10">psb_comm_halo_</span>,<span class="lstinline"></span><span
class="cmtt-10">psb_comm_mov_</span>, <span class="lstinline"></span><span
class="cmtt-10">psb_comm_ext_</span>,
default: <span class="lstinline"></span><span
class="cmtt-10">psb_comm_halo_</span>. Chooses the index list on which to base the data
exchange.
</dd><dt class="description">
<span
@ -209,7 +204,10 @@ class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Returned as: a rank one or two array containing numbers of type specified
in Table&#x00A0;<a
href="#x36-7300117">17<!--tex4ht:ref: tab:f90halo --></a>.
href="#x36-73001r17">17<!--tex4ht:ref: tab:f90halo --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -222,41 +220,41 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />An integer value that contains an error code.</dd></dl>
<!--l. 87--><p class="noindent" ><hr class="figure"><div class="figure"
<!--l. 85--><p class="noindent" ><hr class="figure"><div class="figure"
><a
id="x36-730047"></a>
id="x36-73002r3"></a>
<div class="center"
>
<!--l. 88--><p class="noindent" >
<!--l. 90--><p class="noindent" ><img
<!--l. 86--><p class="noindent" >
<!--l. 88--><p class="noindent" ><img
src="try8x8.png" alt="PIC"
></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;7: </span><span
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x36-730047 -->
<!--l. 96--><p class="indent" > </div><hr class="endfigure">
<!--l. 98--><p class="noindent" ><span
><span class="id">Figure&#x00A0;3: </span><span
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x36-73002r3 -->
<!--l. 94--><p class="indent" > </div><hr class="endfigure">
<!--l. 96--><p class="noindent" ><span
class="cmbx-12">Usage Example </span>Consider the discretization mesh depicted in fig.&#x00A0;<a
href="#x36-730047">7<!--tex4ht:ref: fig:try8x8 --></a>, partitioned
href="#x36-73002r3">3<!--tex4ht:ref: fig:try8x8 --></a>, partitioned
among two processes as shown by the dashed line; the data distribution is such that
each process will own 32 entries in the index space, with a halo made of 8 entries
placed at local indices 33 through 40. If process 0 assigns an initial value of 1 to
its entries in the <span
class="cmmi-10">x </span>vector, and process 1 assigns a value of 2, then after
a call to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_halo</span></span></span> the contents of the local vectors will be the following:
a call to <span class="lstinline"></span><span
class="cmtt-10">psb_halo</span> the contents of the local vectors will be the following:
<div class="table">
<!--l. 108--><p class="indent" > <hr class="float"><div class="float"
<!--l. 106--><p class="indent" > <hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 108--><p class="noindent" >
<!--l. 106--><p class="noindent" >
<div class="tabular"> <table id="TBL-18" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-18-1g"><col
@ -850,10 +848,10 @@ class="td11"> </td></tr></table></div></div>
<!--l. 164--><div class="crosslinks"><p class="noindent">[<a
<!--l. 162--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse6.html" >next</a>] [<a
href="userhtmlsu26.html" >front</a>] [<a
href="userhtmlsu28.html#userhtmlsu29.html" >up</a>] </p></div>
<!--l. 164--><p class="indent" > <a
<!--l. 162--><p class="indent" > <a
id="tailuserhtmlsu26.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 164--><div class="crosslinks"><p class="noindent">[<a
<!--l. 162--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu30.html" >next</a>] [<a
href="userhtmlsu26.html" >prev</a>] [<a
href="userhtmlsu26.html#tailuserhtmlsu26.html" >prev-tail</a>] [<a
@ -18,12 +18,12 @@ href="userhtmlsu25.html#tailuserhtmlsu27.html">tail</a>] [<a
href="userhtmlsu28.html#userhtmlse6.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">5.2 </span> <a
id="x37-740005.2"></a>psb_ovrl &#8212; Overlap Update</h4>
<!--l. 166--><p class="noindent" >These subroutines applies an overlap operator to the input vector:
<!--l. 164--><p class="noindent" >These subroutines applies an overlap operator to the input vector:
<center class="par-math-display" >
<img
src="userhtml26x.png" alt="x &#x2190; Qx
" class="par-math-display" ></center>
<!--l. 168--><p class="nopar" > where:
<!--l. 166--><p class="nopar" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">x</span> </dt><dd
@ -41,15 +41,15 @@ class="cmmi-7">T</span></sup>.</dd></dl>
<!--l. 176--><p class="indent" > <a
id="x37-7400118"></a><hr class="float"><div class="float"
<!--l. 174--><p class="indent" > <a
id="x37-74001r18"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 177--><p class="noindent" >
<!--l. 175--><p class="noindent" >
<div class="tabular"> <table id="TBL-19" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-19-1g"><col
@ -83,15 +83,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;18: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x37-7400118 -->
class="content">Data types</span></div><!--tex4ht:label?: x37-74001r18 -->
</div><hr class="endfloat" />
</div>
<!--l. 192-->
<div class="lstlisting" id="listing-6"><span class="label"><a
id="x37-74002r1"></a></span><span
<!--l. 190--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_ovrl</span><span
@ -103,9 +101,8 @@ class="cmtt-10">desc_a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">info</span><span
class="cmtt-10">)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x37-74003r2"></a></span><span
class="cmtt-10">)</span><br
class="newline" /><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_ovrl</span><span
@ -128,8 +125,6 @@ class="cmtt-10">work</span><span
class="cmtt-10">=</span><span
class="cmtt-10">work</span><span
class="cmtt-10">)</span>
</div>
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -156,7 +151,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x37-7400118">18<!--tex4ht:ref: tab:f90ovrl --></a>.
href="#x37-74001r18">18<!--tex4ht:ref: tab:f90ovrl --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -202,7 +197,7 @@ class="cmmi-10">P</span><sub><span
class="cmmi-7">a</span></sub><span
class="cmmi-10">P</span><sup><span
class="cmmi-7">T</span></sup>;</dd></dl>
<!--l. 219--><p class="noindent" >Scope: <span
<!--l. 215--><p class="noindent" >Scope: <span
class="cmbx-10">global </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
@ -226,13 +221,13 @@ class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a one dimensional array of the same type of <span
class="cmmi-10">x</span>.
</dd><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">x</span> </dt><dd
@ -246,7 +241,7 @@ class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
in Table&#x00A0;<a
href="#x37-7400118">18<!--tex4ht:ref: tab:f90ovrl --></a>.
href="#x37-74001r18">18<!--tex4ht:ref: tab:f90ovrl --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -258,15 +253,15 @@ class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 246--><p class="noindent" ><span
<!--l. 242--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x37-74005x1">If there is no overlap in the data distribution associated with the
class="enumerate" id="x37-74003x1">If there is no overlap in the data distribution associated with the
descriptor, no operations are performed;
</li>
<li
class="enumerate" id="x37-74007x2">The operator <span
class="enumerate" id="x37-74005x2">The operator <span
class="cmmi-10">P</span><sup><span
class="cmmi-7">T</span></sup> performs the reduction sum of overlap elements; it is a
&#8220;prolongation&#8221; operator <span
@ -275,63 +270,63 @@ class="cmmi-7">T</span></sup> that replicates overlap elements, accounting
for the physical replication of data;
</li>
<li
class="enumerate" id="x37-74009x3">The operator <span
class="enumerate" id="x37-74007x3">The operator <span
class="cmmi-10">P</span><sub><span
class="cmmi-7">a</span></sub> 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>
<!--l. 265--><p class="indent" > <hr class="figure"><div class="figure"
<!--l. 261--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x37-740108"></a>
id="x37-74008r4"></a>
<div class="center"
>
<!--l. 266--><p class="noindent" >
<!--l. 268--><p class="noindent" ><img
<!--l. 262--><p class="noindent" >
<!--l. 264--><p class="noindent" ><img
src="try8x8_ov.png" alt="PIC"
></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;8: </span><span
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x37-740108 -->
><span class="id">Figure&#x00A0;4: </span><span
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x37-74008r4 -->
<!--l. 274--><p class="indent" > </div><hr class="endfigure">
<!--l. 275--><p class="noindent" ><span
<!--l. 270--><p class="indent" > </div><hr class="endfigure">
<!--l. 271--><p class="noindent" ><span
class="cmbx-12">Example of use </span>Consider the discretization mesh depicted in fig.&#x00A0;<a
href="#x37-740108">8<!--tex4ht:ref: fig:try8x8_ov --></a>, partitioned
href="#x37-74008r4">4<!--tex4ht:ref: fig:try8x8_ov --></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.&#x00A0;<a
href="userhtmlsu26.html#x36-730047">7<!--tex4ht:ref: fig:try8x8 --></a>; the data distribution is such that
href="userhtmlsu26.html#x36-73002r3">3<!--tex4ht:ref: fig:try8x8 --></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 <span
class="cmmi-10">x </span>vector, and process 1 assigns a value of 2, then after a
call to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_ovrl</span></span></span> with <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_avg_</span></span></span> and a call to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_halo_</span></span></span> the contents of
call to <span class="lstinline"></span><span
class="cmtt-10">psb_ovrl</span> with <span class="lstinline"></span><span
class="cmtt-10">psb_avg_</span> and a call to <span class="lstinline"></span><span
class="cmtt-10">psb_halo_</span> the contents of
the local vectors will be the following (showing a transition among the two
subdomains)
<div class="table">
<!--l. 289--><p class="indent" > <hr class="float"><div class="float"
<!--l. 285--><p class="indent" > <hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 289--><p class="noindent" >
<!--l. 285--><p class="noindent" >
<div class="tabular"> <table id="TBL-20" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-20-1g"><col
@ -1035,12 +1030,12 @@ class="td11"> </td></tr></table></div></div>
<!--l. 355--><div class="crosslinks"><p class="noindent">[<a
<!--l. 351--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu30.html" >next</a>] [<a
href="userhtmlsu26.html" >prev</a>] [<a
href="userhtmlsu26.html#tailuserhtmlsu26.html" >prev-tail</a>] [<a
href="userhtmlsu27.html" >front</a>] [<a
href="userhtmlsu28.html#userhtmlse6.html" >up</a>] </p></div>
<!--l. 355--><p class="indent" > <a
<!--l. 351--><p class="indent" > <a
id="tailuserhtmlsu27.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 355--><div class="crosslinks"><p class="noindent">[<a
<!--l. 351--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu31.html" >next</a>] [<a
href="userhtmlsu27.html" >prev</a>] [<a
href="userhtmlsu27.html#tailuserhtmlsu27.html" >prev-tail</a>] [<a
@ -18,13 +18,13 @@ href="userhtmlse5.html#tailuserhtmlsu28.html">tail</a>] [<a
href="userhtmlsu28.html#userhtmlsu30.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">5.3 </span> <a
id="x38-750005.3"></a>psb_gather &#8212; Gather Global Dense Matrix</h4>
<!--l. 357--><p class="noindent" >These subroutines collect the portions of global dense matrix distributed over all
<!--l. 353--><p class="noindent" >These subroutines collect the portions of global dense matrix distributed over all
process into one single array stored on one process.
<center class="par-math-display" >
<img
src="userhtml27x.png" alt="glob-x &#x2190; collect(loc-xi)
" class="par-math-display" ></center>
<!--l. 361--><p class="nopar" > where:
<!--l. 357--><p class="nopar" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">glob</span>_<span
@ -51,15 +51,15 @@ class="description">is the collect function.</dd></dl>
<!--l. 370--><p class="indent" > <a
id="x38-7500119"></a><hr class="float"><div class="float"
<!--l. 366--><p class="indent" > <a
id="x38-75001r19"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 371--><p class="noindent" >
<!--l. 367--><p class="noindent" >
<div class="tabular"> <table id="TBL-21" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-21-1g"><col
@ -100,15 +100,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;19: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x38-7500119 -->
class="content">Data types</span></div><!--tex4ht:label?: x38-75001r19 -->
</div><hr class="endfloat" />
</div>
<!--l. 387-->
<div class="lstlisting" id="listing-7"><span class="label"><a
id="x38-75002r1"></a></span><span
<!--l. 383--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gather</span><span
@ -126,9 +124,8 @@ class="cmtt-10">info</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">root</span><span
class="cmtt-10">)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x38-75003r2"></a></span><span
class="cmtt-10">)</span>
<span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gather</span><span
@ -147,8 +144,6 @@ class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">root</span><span
class="cmtt-10">)</span>
</div>
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -177,7 +172,7 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;indicated in Table&#x00A0;<a
href="#x38-7500119">19<!--tex4ht:ref: tab:gather --></a>.
href="#x38-75001r19">19<!--tex4ht:ref: tab:gather --></a>.
</dd><dt class="description">
<span
class="cmbx-10">desc</span><span
@ -230,8 +225,8 @@ class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Specified as: a rank one or two array with the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">ALLOCATABLE</span></span></span> attribute.
class="newline" />Specified as: a rank one or two array with the <span class="lstinline"></span><span
class="cmtt-10">ALLOCATABLE</span> attribute.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd
@ -249,12 +244,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 456--><div class="crosslinks"><p class="noindent">[<a
<!--l. 451--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu31.html" >next</a>] [<a
href="userhtmlsu27.html" >prev</a>] [<a
href="userhtmlsu27.html#tailuserhtmlsu27.html" >prev-tail</a>] [<a
href="userhtmlsu28.html" >front</a>] [<a
href="userhtmlsu28.html#userhtmlsu30.html" >up</a>] </p></div>
<!--l. 456--><p class="indent" > <a
<!--l. 451--><p class="indent" > <a
id="tailuserhtmlsu28.html"></a>
</body></html>

@ -10,20 +10,20 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 456--><div class="crosslinks"><p class="noindent">[<a
<!--l. 451--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu28.html" >prev</a>] [<a
href="userhtmlsu28.html#tailuserhtmlsu28.html" >prev-tail</a>] [<a
href="userhtmlsu26.html#tailuserhtmlsu29.html">tail</a>] [<a
href="userhtmlsu28.html#userhtmlsu31.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">5.4 </span> <a
id="x39-760005.4"></a>psb_scatter &#8212; Scatter Global Dense Matrix</h4>
<!--l. 458--><p class="noindent" >These subroutines scatters the portions of global dense matrix owned by a process to
<!--l. 453--><p class="noindent" >These subroutines scatters the portions of global dense matrix owned by a process to
all the processes in the processes grid.
<center class="par-math-display" >
<img
src="userhtml28x.png" alt="loc-xi &#x2190; scatter(glob-x)
" class="par-math-display" ></center>
<!--l. 461--><p class="nopar" > where:
<!--l. 456--><p class="nopar" > where:
<dl class="description"><dt class="description">
<span
class="cmmi-10">glob</span>_<span
@ -50,15 +50,15 @@ class="description">is the scatter function.</dd></dl>
<!--l. 470--><p class="indent" > <a
id="x39-7600120"></a><hr class="float"><div class="float"
<!--l. 465--><p class="indent" > <a
id="x39-76001r20"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 471--><p class="noindent" >
<!--l. 466--><p class="noindent" >
<div class="tabular"> <table id="TBL-22" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-22-1g"><col
@ -99,15 +99,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
class="td11"> </td></tr></table></div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;20: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x39-7600120 -->
class="content">Data types</span></div><!--tex4ht:label?: x39-76001r20 -->
</div><hr class="endfloat" />
</div>
<!--l. 487-->
<div class="lstlisting" id="listing-8"><span class="label"><a
id="x39-76002r1"></a></span><span
<!--l. 482--><p class="indent" > <span class="lstinline"></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_scatter</span><span
@ -129,8 +127,6 @@ class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mold</span><span
class="cmtt-10">)</span>
</div>
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -186,8 +182,8 @@ class="cmsy-10">&#x2264; </span><span
class="cmmi-10">root </span><span
class="cmsy-10">&#x2264; </span><span
class="cmmi-10">np </span><span
class="cmsy-10">- </span>1, default <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_root_</span></span></span>,
class="cmsy-10">- </span>1, default <span class="lstinline"></span><span
class="cmtt-10">psb_root_</span>,
i.e. process 0.
</dd><dt class="description">
<span
@ -236,7 +232,10 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of the type indicated in Table&#x00A0;<a
href="#x39-7600120">20<!--tex4ht:ref: tab:scatter --></a>.
href="#x39-76001r20">20<!--tex4ht:ref: tab:scatter --></a>.
</dd><dt class="description">
<span
class="cmbx-10">info</span> </dt><dd

@ -19,7 +19,7 @@ href="userhtmlsu32.html#userhtmlsu33.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-56">
<div class="verbatim" id="verbatim-33">
call&#x00A0;psb_cdall(icontxt,&#x00A0;desc_a,&#x00A0;info,mg=mg,parts=parts)
&#x00A0;<br />call&#x00A0;psb_cdall(icontxt,&#x00A0;desc_a,&#x00A0;info,vg=vg,[mg=mg,flag=flag])
&#x00A0;<br />call&#x00A0;psb_cdall(icontxt,&#x00A0;desc_a,&#x00A0;info,vl=vl,[nl=nl,globalcheck=.false.,lidx=lidx])
@ -234,7 +234,7 @@ class="cmtt-10">mg</span></span></span> as well. The
<div class="verbatim" id="verbatim-57">
<div class="verbatim" id="verbatim-34">
&#x00A0;&#x00A0;interface
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;subroutine&#x00A0;psb_parts(glob_index,mg,np,pv,nv)
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;integer,&#x00A0;intent&#x00A0;(in)&#x00A0;&#x00A0;::&#x00A0;glob_index,np,mg

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu34.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-58">
<div class="verbatim" id="verbatim-35">
call&#x00A0;psb_cdins(nz,&#x00A0;ia,&#x00A0;ja,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,ila,jla])
&#x00A0;<br />call&#x00A0;psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
</div>

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu35.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-59">
<div class="verbatim" id="verbatim-36">
call&#x00A0;psb_cdasb(desc_a,&#x00A0;info&#x00A0;[,&#x00A0;mold])
</div>
<!--l. 298--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu36.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-60">
<div class="verbatim" id="verbatim-37">
call&#x00A0;psb_cdcpy(desc_in,&#x00A0;desc_out,&#x00A0;info)
</div>
<!--l. 351--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu37.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-61">
<div class="verbatim" id="verbatim-38">
call&#x00A0;psb_cdfree(desc_a,&#x00A0;info)
</div>
<!--l. 386--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu38.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-62">
<div class="verbatim" id="verbatim-39">
call&#x00A0;psb_cdbldext(a,desc_a,nl,desc_out,&#x00A0;info,&#x00A0;extype)
</div>
<!--l. 417--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu39.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-63">
<div class="verbatim" id="verbatim-40">
call&#x00A0;psb_spall(a,&#x00A0;desc_a,&#x00A0;info,&#x00A0;nnz)
</div>
<!--l. 551--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu40.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-64">
<div class="verbatim" id="verbatim-41">
call&#x00A0;psb_spins(nz,&#x00A0;ia,&#x00A0;ja,&#x00A0;val,&#x00A0;a,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,local])
&#x00A0;<br />call&#x00A0;psb_spins(nr,&#x00A0;irw,&#x00A0;irp,&#x00A0;ja,&#x00A0;val,&#x00A0;a,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,local])
</div>

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu41.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-65">
<div class="verbatim" id="verbatim-42">
call&#x00A0;psb_spasb(a,&#x00A0;desc_a,&#x00A0;info,&#x00A0;afmt,&#x00A0;upd,&#x00A0;dupl,&#x00A0;mold)
</div>
<!--l. 728--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu42.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-66">
<div class="verbatim" id="verbatim-43">
call&#x00A0;psb_spfree(a,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 836--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu43.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-67">
<div class="verbatim" id="verbatim-44">
call&#x00A0;psb_sprn(a,&#x00A0;decsc_a,&#x00A0;info,&#x00A0;clear)
</div>
<!--l. 873--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu44.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-68">
<div class="verbatim" id="verbatim-45">
call&#x00A0;psb_geall(x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;n,&#x00A0;lb)
</div>
<!--l. 961--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu45.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-69">
<div class="verbatim" id="verbatim-46">
call&#x00A0;psb_geins(m,&#x00A0;irw,&#x00A0;val,&#x00A0;x,&#x00A0;desc_a,&#x00A0;info&#x00A0;[,dupl,local])
</div>
<!--l. 1009--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu46.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-70">
<div class="verbatim" id="verbatim-47">
call&#x00A0;psb_geasb(x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;mold)
</div>
<!--l. 1082--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu47.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-71">
<div class="verbatim" id="verbatim-48">
call&#x00A0;psb_gefree(x,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 1122--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu48.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-72">
<div class="verbatim" id="verbatim-49">
call&#x00A0;psb_gelp(trans,&#x00A0;iperm,&#x00A0;x,&#x00A0;info)
</div>
<!--l. 1161--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu49.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-73">
<div class="verbatim" id="verbatim-50">
call&#x00A0;psb_glob_to_loc(x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info,&#x00A0;iact,owned)
&#x00A0;<br />call&#x00A0;psb_glob_to_loc(x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;iact,owned)
</div>

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu50.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-74">
<div class="verbatim" id="verbatim-51">
call&#x00A0;psb_loc_to_glob(x,&#x00A0;y,&#x00A0;desc_a,&#x00A0;info,&#x00A0;iact)
&#x00A0;<br />call&#x00A0;psb_loc_to_glob(x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;iact)
</div>

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu51.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-75">
<div class="verbatim" id="verbatim-52">
call&#x00A0;psb_is_owned(x,&#x00A0;desc_a)
</div>
<!--l. 1326--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu52.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-76">
<div class="verbatim" id="verbatim-53">
call&#x00A0;psb_owned_index(y,&#x00A0;x,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 1366--><p class="nopar" >

@ -28,16 +28,16 @@ class="cmtt-10">_type</span></a>. Every structure of this
type is associated with a discretization pattern and enables data communications and
other operations that are necessary for implementing the various algorithms of
interest to us.
<!--l. 57--><p class="indent" > The data structure itself <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_desc_type</span></span></span> can be treated as an opaque object
<!--l. 57--><p class="indent" > The data structure itself <span class="lstinline"></span><span
class="cmtt-10">psb_desc_type</span> can be treated as an opaque object
handled via the tools routines of Sec.&#x00A0;<a
href="userhtmlse6.html#x40-770006">6<!--tex4ht:ref: sec:toolsrout --></a> or the query routines detailed below;
nevertheless we include here a description for the curious reader.
<!--l. 63--><p class="indent" > First we describe the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_indx_map</span></span></span> type. This is a data structure that keeps
<!--l. 63--><p class="indent" > First we describe the <span class="lstinline"></span><span
class="cmtt-10">psb_indx_map</span> type. This is a data structure that keeps
track of a certain number of basic issues such as:
<ul class="itemize1">
<li class="itemize">The value of the communication/MPI context;
<li class="itemize">The value of the communication context;
</li>
<li class="itemize">The number of indices in the index space, i.e. global number of rows and
columns of a sparse matrix;
@ -168,13 +168,17 @@ class="cmbx-10">bnd</span><span
class="cmbx-10">_elem</span> </dt><dd
class="description">A list of all boundary points, i.e. points that have a connection with
other processes.</dd></dl>
<!--l. 145--><p class="noindent" >The Fortran&#x00A0;2003 declaration for <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_desc_type</span></span></span> structures is as follows: <hr class="figure"><div class="figure"
><a
id="x13-100273"></a>
<!--l. 145--><p class="noindent" >The Fortran&#x00A0;2003 declaration for <span class="lstinline"></span><span
class="cmtt-10">psb_desc_type</span> structures is as follows:
<!--l. 147--><p class="indent" > <a
id="x13-10027r1"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 149--><p class="noindent" >
<!--l. 162--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-1">
type&#x00A0;psb_desc_type
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;class(psb_indx_map),&#x00A0;allocatable&#x00A0;::&#x00A0;indxmap
@ -186,13 +190,16 @@ type&#x00A0;psb_desc_type
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;integer,&#x00A0;allocatable&#x00A0;&#x00A0;::&#x00A0;bnd_elem(:)
&#x00A0;<br />end&#x00A0;type&#x00A0;psb_desc_type
</div>
<!--l. 161--><p class="nopar" ></div></div>
<!--l. 174--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;3: </span><span
><span class="id">Listing 1: </span><span
class="content">The PSBLAS defined data type that contains the communication
descriptor.</span></div><!--tex4ht:label?: x13-100273 -->
<!--l. 171--><p class="indent" > </div><hr class="endfigure">
<!--l. 172--><p class="indent" > A communication descriptor associated with a sparse matrix has a state, which
descriptor.</span></div><!--tex4ht:label?: x13-10027r1 -->
</div><hr class="endfloat" />
<!--l. 186--><p class="indent" > A communication descriptor associated with a sparse matrix has a state, which
can take the following values:
<dl class="description"><dt class="description">
<span
@ -200,19 +207,15 @@ class="cmbx-10">Build:</span> </dt><dd
class="description">State entered after the first allocation, and before the first assembly; in
this state it is possible to add communication requirements among different
processes.
</dd><dt class="description">
<span
class="cmbx-10">Assembled:</span> </dt><dd
class="description">State entered after the assembly; computations using the
associated sparse matrix, such as matrix-vector products, are only possible
in this state.</dd></dl>
<!--l. 183--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.1 </span> <a
id="x13-110003.1.1"></a>Descriptor Methods</h5>
<!--l. 185--><p class="noindent" >
<!--l. 199--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.2 </span> <a
id="x13-120003.1.2"></a>get_local_rows &#8212; Get number of local rows</h5>
@ -221,8 +224,8 @@ class="description">State entered after the assembly; computations using
<div class="verbatim" id="verbatim-2">
nr&#x00A0;=&#x00A0;desc%get_local_rows()
</div>
<!--l. 189--><p class="nopar" >
<!--l. 191--><p class="indent" >
<!--l. 203--><p class="nopar" >
<!--l. 205--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -238,7 +241,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 201--><p class="indent" >
<!--l. 215--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -258,7 +261,7 @@ src="cmsy10-42.png" alt="B" class="10x-x-42" /></span><sub><span
class="cmmi-7">i</span></sub><span
class="cmsy-10">|</span>. The returned
value is specific to the calling process.</dd></dl>
<!--l. 210--><p class="noindent" >
<!--l. 224--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.3 </span> <a
id="x13-130003.1.3"></a>get_local_cols &#8212; Get number of local cols</h5>
@ -267,8 +270,8 @@ class="cmsy-10">|</span>. The returned
<div class="verbatim" id="verbatim-3">
nc&#x00A0;=&#x00A0;desc%get_local_cols()
</div>
<!--l. 214--><p class="nopar" >
<!--l. 216--><p class="indent" >
<!--l. 228--><p class="nopar" >
<!--l. 230--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -284,7 +287,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 226--><p class="indent" >
<!--l. 240--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -309,7 +312,7 @@ src="cmsy10-48.png" alt="H" class="10x-x-48" /></span><sub><span
class="cmmi-7">i</span></sub><span
class="cmsy-10">|</span>. The returned value is specific to the
calling process.</dd></dl>
<!--l. 236--><p class="noindent" >
<!--l. 250--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.4 </span> <a
id="x13-140003.1.4"></a>get_global_rows &#8212; Get number of global rows</h5>
@ -318,8 +321,8 @@ class="cmsy-10">|</span>. The returned value is specific to the
<div class="verbatim" id="verbatim-4">
nr&#x00A0;=&#x00A0;desc%get_global_rows()
</div>
<!--l. 240--><p class="nopar" >
<!--l. 242--><p class="indent" >
<!--l. 254--><p class="nopar" >
<!--l. 256--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -335,7 +338,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 252--><p class="indent" >
<!--l. 266--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -345,7 +348,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The number of global rows, i.e. the size of the global index
space.</dd></dl>
<!--l. 258--><p class="noindent" >
<!--l. 272--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.5 </span> <a
id="x13-150003.1.5"></a>get_global_cols &#8212; Get number of global cols</h5>
@ -354,8 +357,8 @@ class="description">The number of global rows, i.e. the size of the global index
<div class="verbatim" id="verbatim-5">
nr&#x00A0;=&#x00A0;desc%get_global_cols()
</div>
<!--l. 262--><p class="nopar" >
<!--l. 264--><p class="indent" >
<!--l. 276--><p class="nopar" >
<!--l. 278--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -371,7 +374,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 274--><p class="indent" >
<!--l. 288--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -381,7 +384,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The number of global cols; usually this is equal to the number
of global rows.</dd></dl>
<!--l. 281--><p class="noindent" >
<!--l. 295--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.6 </span> <a
id="x13-160003.1.6"></a>get_global_indices &#8212; Get vector of global indices</h5>
@ -390,8 +393,8 @@ class="description">The number of global cols; usually this is equal to the numb
<div class="verbatim" id="verbatim-6">
myidx&#x00A0;=&#x00A0;desc%get_global_indices([owned])
</div>
<!--l. 285--><p class="nopar" >
<!--l. 287--><p class="indent" >
<!--l. 299--><p class="nopar" >
<!--l. 301--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -412,16 +415,24 @@ class="newline" />
</dd><dt class="description">
<span
class="cmbx-10">owned</span> </dt><dd
class="description">Choose if you only want owned indices (<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">owned=.true.</span></span></span>) or also halo
indices (<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">owned=.false.</span></span></span>). Scope: <span
class="description">Choose if you only want owned indices (<span class="lstinline"></span><span
class="cmtt-10">owned</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span>) or also halo
indices (<span class="lstinline"></span><span
class="cmtt-10">owned</span><span
class="cmtt-10">=.</span><span
class="cmtt-10">false</span><span
class="cmtt-10">.</span>). Scope: <span
class="cmbx-10">local</span>.<br
class="newline" />Type: <span
class="cmbx-10">optional</span>; default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">.true.</span></span></span>.<br
class="cmbx-10">optional</span>; default: <span class="lstinline"></span><span
class="cmtt-10">.</span><span
class="cmtt-10">true</span><span
class="cmtt-10">.</span>.<br
class="newline" /></dd></dl>
<!--l. 301--><p class="indent" >
<!--l. 315--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -430,19 +441,19 @@ class="description">
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">The global indices, returned as an allocatable integer array of
kind <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_lpk_</span></span></span> and rank 1.</dd></dl>
<!--l. 309--><p class="noindent" >
kind <span class="lstinline"></span><span
class="cmtt-10">psb_lpk_</span> and rank 1.</dd></dl>
<!--l. 323--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.7 </span> <a
id="x13-170003.1.7"></a>get_context &#8212; Get communication context</h5>
<div class="verbatim" id="verbatim-7">
ictxt&#x00A0;=&#x00A0;desc%get_context()
ctxt&#x00A0;=&#x00A0;desc%get_context()
</div>
<!--l. 313--><p class="nopar" >
<!--l. 315--><p class="indent" >
<!--l. 327--><p class="nopar" >
<!--l. 329--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -458,7 +469,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 325--><p class="indent" >
<!--l. 339--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -467,7 +478,7 @@ class="description">
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">The communication context.</dd></dl>
<!--l. 330--><p class="noindent" >
<!--l. 344--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.8 </span> <a
id="x13-180003.1.8"></a>Clone &#8212; clone current object</h5>
@ -476,8 +487,8 @@ class="description">The communication context.</dd></dl>
<div class="verbatim" id="verbatim-8">
call&#x00A0;&#x00A0;desc%clone(descout,info)
</div>
<!--l. 334--><p class="nopar" >
<!--l. 336--><p class="indent" >
<!--l. 348--><p class="nopar" >
<!--l. 350--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -493,7 +504,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 346--><p class="indent" >
<!--l. 360--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -506,7 +517,7 @@ class="description">A copy of the input object.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 353--><p class="noindent" >
<!--l. 367--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.9 </span> <a
id="x13-190003.1.9"></a>CNV &#8212; convert internal storage format</h5>
@ -515,8 +526,8 @@ class="description">Return code.</dd></dl>
<div class="verbatim" id="verbatim-9">
call&#x00A0;&#x00A0;desc%cnv(mold)
</div>
<!--l. 357--><p class="nopar" >
<!--l. 359--><p class="indent" >
<!--l. 371--><p class="nopar" >
<!--l. 373--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -546,10 +557,10 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_base</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.</dd></dl>
<!--l. 370--><p class="noindent" >The <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">mold</span></span></span> arguments may be employed to interface with special devices, such as GPUs
<!--l. 384--><p class="noindent" >The <span class="lstinline"></span><span
class="cmtt-10">mold</span> arguments may be employed to interface with special devices, such as GPUs
and other accelerators.
<!--l. 377--><p class="noindent" >
<!--l. 391--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.10 </span> <a
id="x13-200003.1.10"></a>psb_cd_get_large_threshold &#8212; Get threshold for index mapping
switch</h5>
@ -559,8 +570,8 @@ switch</h5>
<div class="verbatim" id="verbatim-10">
ith&#x00A0;=&#x00A0;psb_cd_get_large_threshold()
</div>
<!--l. 381--><p class="nopar" >
<!--l. 383--><p class="indent" >
<!--l. 395--><p class="nopar" >
<!--l. 397--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -574,7 +585,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The current value for the size threshold.
</dd></dl>
<!--l. 393--><p class="noindent" >
<!--l. 407--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.11 </span> <a
id="x13-210003.1.11"></a>psb_cd_set_large_threshold &#8212; Set threshold for index mapping
switch</h5>
@ -584,8 +595,8 @@ switch</h5>
<div class="verbatim" id="verbatim-11">
call&#x00A0;psb_cd_set_large_threshold(ith)
</div>
<!--l. 398--><p class="nopar" >
<!--l. 400--><p class="indent" >
<!--l. 412--><p class="nopar" >
<!--l. 414--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -605,12 +616,12 @@ class="cmbx-10">required</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an integer value greater than zero.</dd></dl>
<!--l. 409--><p class="noindent" >Note: the threshold value is only queried by the library at the time a call to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_cdall</span></span></span>
<!--l. 423--><p class="noindent" >Note: the threshold value is only queried by the library at the time a call to <span class="lstinline"></span><span
class="cmtt-10">psb_cdall</span>
is executed, therefore changing the threshold has no effect on communication
descriptors that have already been initialized. Moreover the threshold must have the
same value on all processes.
<!--l. 416--><p class="noindent" >
<!--l. 430--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.12 </span> <a
id="x13-220003.1.12"></a>get_p_adjcncy &#8212; Get process adjacency list</h5>
@ -619,8 +630,8 @@ same value on all processes.
<div class="verbatim" id="verbatim-12">
list&#x00A0;=&#x00A0;&#x00A0;desc%get_p_adjcncy()
</div>
<!--l. 421--><p class="nopar" >
<!--l. 423--><p class="indent" >
<!--l. 435--><p class="nopar" >
<!--l. 437--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -635,7 +646,7 @@ class="cmbx-10">Function value</span> </dt><dd
class="description">The current list of adjacent processes, i.e. processes with
which the current one has to exchange halo data.
</dd></dl>
<!--l. 432--><p class="noindent" >
<!--l. 446--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.13 </span> <a
id="x13-230003.1.13"></a>set_p_adjcncy &#8212; Set process adjacency list</h5>
@ -644,8 +655,8 @@ class="description">The current list of adjacent processes, i.e. processe
<div class="verbatim" id="verbatim-13">
call&#x00A0;desc%set_p_adjcncy(list)
</div>
<!--l. 437--><p class="nopar" >
<!--l. 439--><p class="indent" >
<!--l. 451--><p class="nopar" >
<!--l. 453--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -664,16 +675,16 @@ class="newline" />Type: <span
class="cmbx-10">required</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_ipk_</span></span></span>.</dd></dl>
<!--l. 448--><p class="noindent" >Note: this method can be called after a call to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_cdall</span></span></span> and before a call to
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_cdasb</span></span></span>. The user is specifying here some knowledge about which processes are
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="lstinline"></span><span
class="cmtt-10">psb_ipk_</span>.</dd></dl>
<!--l. 462--><p class="noindent" >Note: this method can be called after a call to <span class="lstinline"></span><span
class="cmtt-10">psb_cdall</span> and before a call to
<span class="lstinline"></span><span
class="cmtt-10">psb_cdasb</span>. The user is specifying here some knowledge about which processes are
topological neighbours of the current process. The availability of this information
may speed up the execution of the assembly call <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_cdasb</span></span></span>.
<!--l. 455--><p class="noindent" >
may speed up the execution of the assembly call <span class="lstinline"></span><span
class="cmtt-10">psb_cdasb</span>.
<!--l. 469--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.14 </span> <a
id="x13-240003.1.14"></a>fnd_owner &#8212; Find the owner process of a set of indices</h5>
@ -682,8 +693,8 @@ class="cmtt-10">psb_cdasb</span></span></span>.
<div class="verbatim" id="verbatim-14">
call&#x00A0;desc%fnd_owner(idx,iprc,info)
</div>
<!--l. 460--><p class="nopar" >
<!--l. 462--><p class="indent" >
<!--l. 474--><p class="nopar" >
<!--l. 476--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -702,8 +713,8 @@ class="newline" />Type: <span
class="cmbx-10">required</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_lpk_</span></span></span>.
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="lstinline"></span><span
class="cmtt-10">psb_lpk_</span>.
</dd><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -711,8 +722,8 @@ class="description">
</dd><dt class="description">
<span
class="cmbx-10">iprc</span> </dt><dd
class="description">the list of processes owning the indices in <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">idx</span></span></span>.<br
class="description">the list of processes owning the indices in <span class="lstinline"></span><span
class="cmtt-10">idx</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" />Type: <span
@ -720,16 +731,16 @@ class="cmbx-10">required</span>.<br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an allocatable one-dimensional array of integers of kind
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_ipk_</span></span></span>.</dd></dl>
<!--l. 477--><p class="noindent" >Note: this method may or may not actually require communications, depending on the
<span class="lstinline"></span><span
class="cmtt-10">psb_ipk_</span>.</dd></dl>
<!--l. 491--><p class="noindent" >Note: this method may or may not actually require communications, depending on the
exact internal data storage; given that the choice of storage may be altered by
runtime parameters, it is necessary for safety that this method is called by all
processes.
<!--l. 485--><p class="noindent" >
<!--l. 499--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.1.15 </span> <a
id="x13-250003.1.15"></a>Named Constants</h5>
<!--l. 487--><p class="noindent" >
<!--l. 501--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">psb</span><span
@ -775,40 +786,40 @@ class="cmbx-10">psb</span><span
class="cmbx-10">_comm</span><span
class="cmbx-10">_halo</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">halo_index</span></span></span> list;
class="description">Exchange data based on the <span class="lstinline"></span><span
class="cmtt-10">halo_index</span> list;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span
class="cmbx-10">_comm</span><span
class="cmbx-10">_ext</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">ext_index</span></span></span> list;
class="description">Exchange data based on the <span class="lstinline"></span><span
class="cmtt-10">ext_index</span> list;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span
class="cmbx-10">_comm</span><span
class="cmbx-10">_ovr</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">ovrlap_index</span></span></span> list;
class="description">Exchange data based on the <span class="lstinline"></span><span
class="cmtt-10">ovrlap_index</span> list;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span
class="cmbx-10">_comm</span><span
class="cmbx-10">_mov</span><span
class="cmbx-10">_</span> </dt><dd
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">ovr_mst_idx</span></span></span> list;
class="description">Exchange data based on the <span class="lstinline"></span><span
class="cmtt-10">ovr_mst_idx</span> list;
</dd></dl>
<!--l. 520--><div class="crosslinks"><p class="noindent">[<a
<!--l. 534--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu9.html" >next</a>] [<a
href="userhtmlsu5.html" >front</a>] [<a
href="userhtmlsu7.html#userhtmlsu8.html" >up</a>] </p></div>
<!--l. 520--><p class="indent" > <a
<!--l. 534--><p class="indent" > <a
id="tailuserhtmlsu5.html"></a>
</body></html>

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu53.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-77">
<div class="verbatim" id="verbatim-54">
call&#x00A0;psb_is_local(x,&#x00A0;desc_a)
</div>
<!--l. 1418--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu54.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-78">
<div class="verbatim" id="verbatim-55">
call&#x00A0;psb_local_index(y,&#x00A0;x,&#x00A0;desc_a,&#x00A0;info)
</div>
<!--l. 1457--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu55.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-79">
<div class="verbatim" id="verbatim-56">
call&#x00A0;psb_get_boundary(bndel,&#x00A0;desc,&#x00A0;info)
</div>
<!--l. 1514--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu56.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-80">
<div class="verbatim" id="verbatim-57">
call&#x00A0;psb_get_overlap(ovrel,&#x00A0;desc,&#x00A0;info)
</div>
<!--l. 1557--><p class="nopar" >

@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlse7.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-81">
<div class="verbatim" id="verbatim-58">
call&#x00A0;psb_sp_getrow(row,&#x00A0;a,&#x00A0;nz,&#x00A0;ia,&#x00A0;ja,&#x00A0;val,&#x00A0;info,&#x00A0;&amp;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;append,&#x00A0;nzin,&#x00A0;lrw)
</div>

@ -22,7 +22,7 @@ href="userhtmlsu32.html#userhtmlsu57.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-82">
<div class="verbatim" id="verbatim-59">
isz&#x00A0;=&#x00A0;psb_sizeof(a)
&#x00A0;<br />isz&#x00A0;=&#x00A0;psb_sizeof(desc_a)
&#x00A0;<br />isz&#x00A0;=&#x00A0;psb_sizeof(prec)

@ -29,7 +29,7 @@ class="cmbx-12">_hsort &#8212; Sorting by the Heapsort algorithm</span>
<div class="verbatim" id="verbatim-83">
<div class="verbatim" id="verbatim-60">
call&#x00A0;psb_msort(x,ix,dir,flag)
&#x00A0;<br />call&#x00A0;psb_qsort(x,ix,dir,flag)
&#x00A0;<br />call&#x00A0;psb_hsort(x,ix,dir,flag)

@ -19,8 +19,8 @@ href="userhtmlsu59.html#userhtmlsu60.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-84">
call&#x00A0;psb_init(icontxt,&#x00A0;np,&#x00A0;basectxt,&#x00A0;ids)
<div class="verbatim" id="verbatim-61">
call&#x00A0;psb_init(ctxt,&#x00A0;np,&#x00A0;basectxt,&#x00A0;ids)
</div>
<!--l. 11--><p class="nopar" >
<!--l. 13--><p class="indent" > This subroutine initializes the PSBLAS parallel environment, defining a virtual
@ -80,12 +80,13 @@ class="cmbx-10">On Return</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">icontxt</span> </dt><dd
class="description">the communication context identifying the virtual parallel machine.
Note that this is always a duplicate of <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">basectxt</span></span></span>, so that library
communications are completely separated from other communication
operations.<br
class="cmbx-10">ctxt</span> </dt><dd
class="description">the communication context identifying the virtual parallel machine, type
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_ctxt_type</span></span></span>. Note that this is always a duplicate of <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">basectxt</span></span></span>,
so that library communications are completely separated from other
communication operations.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br
class="newline" />Type: <span

@ -21,8 +21,8 @@ href="userhtmlsu59.html#userhtmlsu61.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-85">
call&#x00A0;psb_info(icontxt,&#x00A0;iam,&#x00A0;np)
<div class="verbatim" id="verbatim-62">
call&#x00A0;psb_info(ctxt,&#x00A0;iam,&#x00A0;np)
</div>
<!--l. 69--><p class="nopar" >
<!--l. 71--><p class="indent" > This subroutine returns information about the PSBLAS parallel environment,
@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">icontxt</span> </dt><dd
class="cmbx-10">ctxt</span> </dt><dd
class="description">the communication context identifying the virtual parallel machine.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br
@ -98,8 +98,8 @@ class="cmtt-10">psb_init</span></span></span> a number of processes less than
processes will have on return <span
class="cmmi-10">iam </span>= <span
class="cmsy-10">-</span>1; the only call involving <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">icontxt</span></span></span>
that any such process may execute is to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">ctxt</span></span></span> that
any such process may execute is to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_exit</span></span></span>.</li></ol>

@ -21,9 +21,9 @@ href="userhtmlsu59.html#userhtmlsu62.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-86">
call&#x00A0;psb_exit(icontxt)
&#x00A0;<br />call&#x00A0;psb_exit(icontxt,close)
<div class="verbatim" id="verbatim-63">
call&#x00A0;psb_exit(ctxt)
&#x00A0;<br />call&#x00A0;psb_exit(ctxt,close)
</div>
<!--l. 117--><p class="nopar" >
<!--l. 119--><p class="indent" > This subroutine exits from the PSBLAS parallel virtual machine.
@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">icontxt</span> </dt><dd
class="cmbx-10">ctxt</span> </dt><dd
class="description">the communication context identifying the virtual parallel machine.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br
@ -50,7 +50,7 @@ class="newline" />Specified as: an integer variable.
<span
class="cmbx-10">close</span> </dt><dd
class="description">Whether to close all data structures related to the virtual parallel
machine, besides those associated with icontxt.<br
machine, besides those associated with ctxt.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br
class="newline" />Type: <span
@ -68,7 +68,7 @@ class="cmtt-10">psb_info</span></span></span> has returned
class="cmmi-10">iam </span>= <span
class="cmsy-10">-</span>1; indeed, it it is the only routine that may be called with
argument <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">icontxt</span></span></span> in this situation.
class="cmtt-10">ctxt</span></span></span> in this situation.
</li>
<li
class="enumerate" id="x71-108004x2">A call to this routine with <span class="obeylines-h"><span class="verb"><span

File diff suppressed because it is too large Load Diff

@ -21,8 +21,8 @@ href="userhtmlsu59.html#userhtmlsu63.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-87">
icomm&#x00A0;=&#x00A0;psb_get_mpi_comm(icontxt)
<div class="verbatim" id="verbatim-64">
icomm&#x00A0;=&#x00A0;psb_get_mpi_comm(ctxt)
</div>
<!--l. 158--><p class="nopar" >
<!--l. 160--><p class="indent" > This function returns the MPI communicator associated with a PSBLAS
@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">icontxt</span> </dt><dd
class="cmbx-10">ctxt</span> </dt><dd
class="description">the communication context identifying the virtual parallel machine.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br

@ -21,8 +21,8 @@ href="userhtmlsu59.html#userhtmlsu64.html" >up</a>] </p></div>
<div class="verbatim" id="verbatim-88">
rank&#x00A0;=&#x00A0;psb_get_mpi_rank(icontxt,&#x00A0;id)
<div class="verbatim" id="verbatim-65">
rank&#x00A0;=&#x00A0;psb_get_mpi_rank(ctxt,&#x00A0;id)
</div>
<!--l. 188--><p class="nopar" >
<!--l. 190--><p class="indent" > This function returns the MPI rank of the PSBLAS process <span
@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
class="description">
</dd><dt class="description">
<span
class="cmbx-10">icontxt</span> </dt><dd
class="cmbx-10">ctxt</span> </dt><dd
class="description">the communication context identifying the virtual parallel machine.<br
class="newline" />Scope: <span
class="cmbx-10">global</span>.<br

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save