Modified docs to included LXspmat & friends.

mat-allocate
Salvatore Filippone 4 years ago
parent 7c2b613ea5
commit c9e2d3ed44

Binary file not shown.

Before

Width:  |  Height:  |  Size: 331 B

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 292 B

After

Width:  |  Height:  |  Size: 296 B

@ -8,13 +8,11 @@
.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;}
@ -23,7 +21,6 @@
.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;}
@ -31,10 +28,6 @@
.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; }
@ -104,8 +97,9 @@ 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 {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;}
.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;}
table.equation {width:100%;}
.equation td{text-align:center; }
td.equation { margin-top:1em; margin-bottom:1em; }
@ -148,6 +142,7 @@ 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; }

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: 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: 2.0 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.5 KiB

After

Width:  |  Height:  |  Size: 1.6 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.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.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 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: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 765 B

After

Width:  |  Height:  |  Size: 763 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.3 KiB

After

Width:  |  Height:  |  Size: 2.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: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 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.8 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.4 KiB

After

Width:  |  Height:  |  Size: 1.5 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.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -70,264 +70,254 @@ explicitly.
<div class="fbox"><div class="minipage"><!--l. 44-->
<div class="lstlisting" id="listing-9"><span class="label"><a
id="x86-123001r1"></a></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><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
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
id="x86-123002r2"></a></span><span
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
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
id="x86-123003r3"></a></span><span
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
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
id="x86-123004r4"></a></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">&#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
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
id="x86-123005r5"></a></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">&#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
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
id="x86-123006r6"></a></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">&#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
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
id="x86-123007r7"></a></span><span
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
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
id="x86-123008r8"></a></span><span
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
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
id="x86-123009r9"></a></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">_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
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
id="x86-123010r10"></a></span><span
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
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
id="x86-123011r11"></a></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">&#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
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
id="x86-123012r12"></a></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">&#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
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
id="x86-123013r13"></a></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">&#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
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
id="x86-123014r14"></a></span><span
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
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
id="x86-123015r15"></a></span><span
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
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
id="x86-123016r16"></a></span><span
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
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
id="x86-123017r17"></a></span><span
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
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
id="x86-123018r18"></a></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">_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
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
id="x86-123019r19"></a></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">return</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
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
id="x86-123020r20"></a></span><span
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
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
id="x86-123021r21"></a></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">return</span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
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
id="x86-123022r22"></a></span><span
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
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
id="x86-123023r23"></a></span><span
class="cmr-9">&#x00A0;</span><br /><span class="label"><a
class="cmtt-9">&#x00A0;</span><br /><span class="label"><a
id="x86-123024r24"></a></span><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>
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>
</div> </div> </div>
</div>
<br /> <div class="caption"

@ -220,14 +220,90 @@ class="cmbx-12">Notes</span>
possible to improve the runtime efficiency by using the following scheme:
<!--l. 214-->
<div class="lstlisting" id="listing-1"><span class="label"><a
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(ictxt,vres(1:3))
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>
</div>
<!--l. 220--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound

@ -194,14 +194,84 @@ class="cmbx-12">Notes</span>
multiple norms at the same time; in this case, it is possible to improve the
runtime efficiency by using the following scheme: <!--l. 390-->
<div class="lstlisting" id="listing-2"><span class="label"><a
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(ictxt,vres(1:3))
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>
</div>
<!--l. 396--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound

@ -195,14 +195,84 @@ class="cmbx-12">Notes</span>
multiple norms at the same time; in this case, it is possible to improve the
runtime efficiency by using the following scheme: <!--l. 543-->
<div class="lstlisting" id="listing-3"><span class="label"><a
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(ictxt,vres(1:3))
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>
</div>
<!--l. 549--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound

@ -198,14 +198,84 @@ class="cmbx-12">Notes</span>
multiple norms at the same time; in this case, it is possible to improve the
runtime efficiency by using the following scheme: <!--l. 713-->
<div class="lstlisting" id="listing-4"><span class="label"><a
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(ictxt,vres(1:3))
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>
</div>
<!--l. 719--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound

@ -87,10 +87,38 @@ class="content">Data types</span></div><!--tex4ht:label?: x36-7300117 -->
<!--l. 40-->
<div class="lstlisting" id="listing-5"><span class="label"><a
id="x36-73002r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_halo(x,&#x00A0;desc_a,&#x00A0;info)&#x00A0;<br /><span class="label"><a
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_halo</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">)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x36-73003r2"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_halo(x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;work,&#x00A0;<span
class="cmbx-10">data</span>)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_halo</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">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">work</span><span
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">

@ -92,9 +92,42 @@ class="content">Data types</span></div><!--tex4ht:label?: x37-7400118 -->
<!--l. 192-->
<div class="lstlisting" id="listing-6"><span class="label"><a
id="x37-74002r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_ovrl(x,&#x00A0;desc_a,&#x00A0;info)&#x00A0;<br /><span class="label"><a
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_ovrl</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">)</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x37-74003r2"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_ovrl(x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;update=update_type,&#x00A0;work=work)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_ovrl</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">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">update</span><span
class="cmtt-10">=</span><span
class="cmtt-10">update_type</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
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">

@ -109,9 +109,44 @@ class="content">Data types</span></div><!--tex4ht:label?: x38-7500119 -->
<!--l. 387-->
<div class="lstlisting" id="listing-7"><span class="label"><a
id="x38-75002r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_gather(glob_x,&#x00A0;loc_x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;root)&#x00A0;<br /><span class="label"><a
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gather</span><span
class="cmtt-10">(</span><span
class="cmtt-10">glob_x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">loc_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><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="cmbx-10">call</span>&#x00A0;psb_gather(glob_x,&#x00A0;loc_x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;root)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_gather</span><span
class="cmtt-10">(</span><span
class="cmtt-10">glob_x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">loc_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><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">root</span><span
class="cmtt-10">)</span>
</div>
<dl class="description"><dt class="description">

@ -108,7 +108,27 @@ class="content">Data types</span></div><!--tex4ht:label?: x39-7600120 -->
<!--l. 487-->
<div class="lstlisting" id="listing-8"><span class="label"><a
id="x39-76002r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_scatter(glob_x,&#x00A0;loc_x,&#x00A0;desc_a,&#x00A0;info,&#x00A0;root,&#x00A0;mold)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_scatter</span><span
class="cmtt-10">(</span><span
class="cmtt-10">glob_x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">loc_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><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">root</span><span
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">

@ -45,8 +45,14 @@ class="description">Single precision complex;
</dd><dt class="description">
<span
class="cmbx-10">Z</span> </dt><dd
class="description">Double precision complex.</dd></dl>
<!--l. 535--><p class="noindent" >The actual data is contained in the polymorphic component <span class="obeylines-h"><span class="verb"><span
class="description">Double precision complex;
</dd><dt class="description">
<span
class="cmbx-10">LS,LD,LC,LZ</span> </dt><dd
class="description">Same numeric type as above, but with <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_lpk_</span></span></span> integer
indices.</dd></dl>
<!--l. 537--><p class="noindent" >The actual data is contained in the polymorphic component <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">a%a</span></span></span> of type
<a
id="spbasedata"><span
@ -62,18 +68,18 @@ class="cmtt-10">psb_spasb</span></span></span> routine. <hr class="figure"><div
id="x14-260014"></a>
<div class="center"
>
<!--l. 542--><p class="noindent" >
<!--l. 544--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-15">
&#x00A0;&#x00A0;type&#x00A0;::&#x00A0;psb_Tspmat_type
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;class(psb_T_base_sparse_mat),&#x00A0;allocatable&#x00A0;&#x00A0;::&#x00A0;a
&#x00A0;<br />&#x00A0;&#x00A0;end&#x00A0;type&#x00A0;&#x00A0;psb_Tspmat_type
</div>
<!--l. 548--><p class="nopar" ></div></div>
<!--l. 550--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;4: </span><span
class="content"> The PSBLAS defined data type that contains a sparse matrix.</span></div><!--tex4ht:label?: x14-260014 -->
<!--l. 559--><p class="indent" > </div><hr class="endfigure">
<!--l. 560--><p class="indent" > The following very common formats are precompiled in PSBLAS and thus are
<!--l. 561--><p class="indent" > </div><hr class="endfigure">
<!--l. 562--><p class="indent" > The following very common formats are precompiled in PSBLAS and thus are
always available:
<dl class="description"><dt class="description">
<span
@ -83,6 +89,9 @@ class="cmbx-10">_coo</span><span
class="cmbx-10">_sparse</span><span
class="cmbx-10">_mat</span> </dt><dd
class="description">Coordinate storage;
</dd><dt class="description">
<span
class="cmbx-10">psb</span><span
@ -99,10 +108,7 @@ class="cmbx-10">_csc</span><span
class="cmbx-10">_sparse</span><span
class="cmbx-10">_mat</span> </dt><dd
class="description">Compressed storage by columns;</dd></dl>
<!--l. 567--><p class="noindent" >The inner sparse matrix has an associated state, which can take the following
<!--l. 569--><p class="noindent" >The inner sparse matrix has an associated state, which can take the following
values:
<dl class="description"><dt class="description">
<span
@ -121,12 +127,12 @@ class="description">State entered after a reinitalization; this is used to handl
in which the same sparsity pattern is used multiple times with different
coefficients. In this state it is only possible to enter coefficients for already
existing nonzero entries.</dd></dl>
<!--l. 580--><p class="noindent" >The only storage variant supporting the build state is COO; all other variants are
<!--l. 582--><p class="noindent" >The only storage variant supporting the build state is COO; all other variants are
obtained by conversion to/from it.
<!--l. 583--><p class="noindent" >
<!--l. 585--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.1 </span> <a
id="x14-270003.2.1"></a>Sparse Matrix Methods</h5>
<!--l. 585--><p class="noindent" >
<!--l. 587--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.2 </span> <a
id="x14-280003.2.2"></a>get_nrows &#8212; Get number of rows in a sparse matrix</h5>
@ -135,8 +141,8 @@ obtained by conversion to/from it.
<div class="verbatim" id="verbatim-16">
nr&#x00A0;=&#x00A0;a%get_nrows()
</div>
<!--l. 590--><p class="nopar" >
<!--l. 592--><p class="indent" >
<!--l. 592--><p class="nopar" >
<!--l. 594--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -152,7 +158,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 602--><p class="indent" >
<!--l. 604--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -162,7 +168,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The number of rows of sparse matrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">a</span></span></span>.</dd></dl>
<!--l. 609--><p class="noindent" >
<!--l. 611--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.3 </span> <a
id="x14-290003.2.3"></a>get_ncols &#8212; Get number of columns in a sparse matrix</h5>
@ -171,8 +177,8 @@ class="cmtt-10">a</span></span></span>.</dd></dl>
<div class="verbatim" id="verbatim-17">
nc&#x00A0;=&#x00A0;a%get_ncols()
</div>
<!--l. 614--><p class="nopar" >
<!--l. 616--><p class="indent" >
<!--l. 616--><p class="nopar" >
<!--l. 618--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -188,7 +194,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 626--><p class="indent" >
<!--l. 628--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -198,7 +204,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The number of columns of sparse matrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">a</span></span></span>.</dd></dl>
<!--l. 633--><p class="noindent" >
<!--l. 635--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.4 </span> <a
id="x14-300003.2.4"></a>get_nnzeros &#8212; Get number of nonzero elements in a sparse matrix</h5>
@ -207,8 +213,8 @@ class="cmtt-10">a</span></span></span>.</dd></dl>
<div class="verbatim" id="verbatim-18">
nz&#x00A0;=&#x00A0;a%get_nnzeros()
</div>
<!--l. 638--><p class="nopar" >
<!--l. 640--><p class="indent" >
<!--l. 640--><p class="nopar" >
<!--l. 642--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -224,7 +230,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 650--><p class="indent" >
<!--l. 652--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -234,7 +240,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The number of nonzero elements stored in sparse matrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">a</span></span></span>.</dd></dl>
<!--l. 655--><p class="noindent" ><span
<!--l. 657--><p class="noindent" ><span
class="cmbx-10">Notes</span>
<ol class="enumerate1" >
<li
@ -242,7 +248,7 @@ class="cmbx-10">Notes</span>
class="cmtt-10">a</span></span></span>; some
storage formats employ padding, thus the returned value for the same
matrix may be different for different storage choices.</li></ol>
<!--l. 663--><p class="noindent" >
<!--l. 665--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.5 </span> <a
id="x14-310003.2.5"></a>get_size &#8212; Get maximum number of nonzero elements in a sparse
matrix</h5>
@ -252,8 +258,8 @@ matrix</h5>
<div class="verbatim" id="verbatim-19">
maxnz&#x00A0;=&#x00A0;a%get_size()
</div>
<!--l. 668--><p class="nopar" >
<!--l. 670--><p class="indent" >
<!--l. 670--><p class="nopar" >
<!--l. 672--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -269,7 +275,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 680--><p class="indent" >
<!--l. 682--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -280,7 +286,7 @@ class="cmbx-10">Function value</span> </dt><dd
class="description">The maximum number of nonzero elements that can be stored
in sparse matrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">a</span></span></span> using its current memory allocation.</dd></dl>
<!--l. 687--><p class="noindent" >
<!--l. 689--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.6 </span> <a
id="x14-320003.2.6"></a>sizeof &#8212; Get memory occupation in bytes of a sparse matrix</h5>
@ -289,8 +295,8 @@ class="cmtt-10">a</span></span></span> using its current memory allocation.</dd>
<div class="verbatim" id="verbatim-20">
memory_size&#x00A0;=&#x00A0;a%sizeof()
</div>
<!--l. 692--><p class="nopar" >
<!--l. 694--><p class="indent" >
<!--l. 694--><p class="nopar" >
<!--l. 696--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -306,7 +312,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 704--><p class="indent" >
<!--l. 706--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -315,7 +321,7 @@ class="description">
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">The memory occupation in bytes.</dd></dl>
<!--l. 710--><p class="noindent" >
<!--l. 712--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.7 </span> <a
id="x14-330003.2.7"></a>get_fmt &#8212; Short description of the dynamic type</h5>
@ -324,8 +330,8 @@ class="description">The memory occupation in bytes.</dd></dl>
<div class="verbatim" id="verbatim-21">
write(*,*)&#x00A0;a%get_fmt()
</div>
<!--l. 715--><p class="nopar" >
<!--l. 717--><p class="indent" >
<!--l. 717--><p class="nopar" >
<!--l. 719--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -341,7 +347,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 727--><p class="indent" >
<!--l. 729--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -355,7 +361,7 @@ class="cmtt-10">NULL</span></span></span>, <span class="obeylines-h"><span class
class="cmtt-10">COO</span></span></span>, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">CSR</span></span></span> and <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">CSC</span></span></span>.</dd></dl>
<!--l. 734--><p class="noindent" >
<!--l. 736--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.8 </span> <a
id="x14-340003.2.8"></a>is_bld, is_upd, is_asb &#8212; Status check</h5>
@ -366,8 +372,8 @@ if&#x00A0;(a%is_bld())&#x00A0;then
&#x00A0;<br />if&#x00A0;(a%is_upd())&#x00A0;then
&#x00A0;<br />if&#x00A0;(a%is_asb())&#x00A0;then
</div>
<!--l. 741--><p class="nopar" >
<!--l. 743--><p class="indent" >
<!--l. 743--><p class="nopar" >
<!--l. 745--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -383,7 +389,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 753--><p class="indent" >
<!--l. 755--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -394,7 +400,7 @@ class="cmbx-10">Function value</span> </dt><dd
class="description">A <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">logical</span></span></span> value indicating whether the matrix is in the Build,
Update or Assembled state, respectively.</dd></dl>
<!--l. 760--><p class="noindent" >
<!--l. 762--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.9 </span> <a
id="x14-350003.2.9"></a>is_lower, is_upper, is_triangle, is_unit &#8212; Format check</h5>
@ -406,8 +412,8 @@ if&#x00A0;(a%is_triangle())&#x00A0;then
&#x00A0;<br />if&#x00A0;(a%is_lower())&#x00A0;then
&#x00A0;<br />if&#x00A0;(a%is_unit())&#x00A0;then
</div>
<!--l. 768--><p class="nopar" >
<!--l. 770--><p class="indent" >
<!--l. 770--><p class="nopar" >
<!--l. 772--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -423,7 +429,7 @@ class="description">the sparse matrix<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 780--><p class="indent" >
<!--l. 782--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -437,7 +443,7 @@ class="cmtt-10">logical</span></span></span> value indicating whether the matrix
class="cmtt-10">is_triangle()</span></span></span> returns <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">.true.</span></span></span> check also if it is lower, upper and with
a unit (i.e. assumed) diagonal.</dd></dl>
<!--l. 789--><p class="noindent" >
<!--l. 791--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.10 </span> <a
id="x14-360003.2.10"></a>cscnv &#8212; Convert to a different storage format</h5>
@ -447,8 +453,8 @@ class="cmtt-10">.true.</span></span></span> check also if it is lower, upper and
call&#x00A0;&#x00A0;a%cscnv(b,info&#x00A0;[,&#x00A0;type,&#x00A0;mold,&#x00A0;dupl])
&#x00A0;<br />call&#x00A0;&#x00A0;a%cscnv(info&#x00A0;[,&#x00A0;type,&#x00A0;mold,&#x00A0;dupl])
</div>
<!--l. 795--><p class="nopar" >
<!--l. 797--><p class="indent" >
<!--l. 797--><p class="nopar" >
<!--l. 799--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -482,7 +488,7 @@ class="newline" />Type: optional.
class="cmbx-10">dupl</span> </dt><dd
class="description">an integer value specifing how to handle duplicates (see Named Constants
below)</dd></dl>
<!--l. 811--><p class="indent" >
<!--l. 813--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -498,10 +504,10 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 817--><p class="noindent" >The <span class="obeylines-h"><span class="verb"><span
<!--l. 819--><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
and other accelerators.
<!--l. 822--><p class="noindent" >
<!--l. 824--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.11 </span> <a
id="x14-370003.2.11"></a>csclip &#8212; Reduce to a submatrix</h5>
@ -511,8 +517,8 @@ and other accelerators.
&#x00A0;&#x00A0;&#x00A0;&#x00A0;call&#x00A0;a%csclip(b,info[,&amp;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;imin,imax,jmin,jmax,rscale,cscale])
</div>
<!--l. 827--><p class="nopar" >
<!--l. 829--><p class="indent" > Returns the submatrix <span class="obeylines-h"><span class="verb"><span
<!--l. 829--><p class="nopar" >
<!--l. 831--><p class="indent" > Returns the submatrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">A(imin:imax,jmin:jmax)</span></span></span>, optionally rescaling row/col
indices to the range <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">1:imax-imin+1,1:jmax-jmin+1</span></span></span>.
@ -542,7 +548,7 @@ class="newline" />Type: optional.
<span
class="cmbx-10">rscale,cscale</span> </dt><dd
class="description">Whether to rescale row/column indices. Type: optional.</dd></dl>
<!--l. 843--><p class="noindent" >
<!--l. 845--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -558,7 +564,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 850--><p class="noindent" >
<!--l. 852--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.12 </span> <a
id="x14-380003.2.12"></a>clean_zeros &#8212; Eliminate zero coefficients</h5>
@ -567,11 +573,11 @@ class="description">Return code.</dd></dl>
<div class="verbatim" id="verbatim-26">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;call&#x00A0;a%clean_zeros(info)
</div>
<!--l. 854--><p class="nopar" >
<!--l. 856--><p class="indent" > Eliminates zero coefficients in the input matrix. Note that depending on the
<!--l. 856--><p class="nopar" >
<!--l. 858--><p class="indent" > Eliminates zero coefficients in the input matrix. Note that depending on the
internal storage format, there may still be some amount of zero padding in the
output.
<!--l. 860--><p class="indent" >
<!--l. 862--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -589,7 +595,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 867--><p class="noindent" >
<!--l. 869--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -605,7 +611,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 874--><p class="noindent" >
<!--l. 876--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.13 </span> <a
id="x14-390003.2.13"></a>get_diag &#8212; Get main diagonal</h5>
@ -614,8 +620,8 @@ class="description">Return code.</dd></dl>
<div class="verbatim" id="verbatim-27">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;call&#x00A0;a%get_diag(d,info)
</div>
<!--l. 878--><p class="nopar" >
<!--l. 880--><p class="indent" > Returns a copy of the main diagonal.
<!--l. 880--><p class="nopar" >
<!--l. 882--><p class="indent" > Returns a copy of the main diagonal.
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -633,7 +639,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 888--><p class="noindent" >
<!--l. 890--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -647,7 +653,7 @@ class="newline" />A one-dimensional array of the appropriate type.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 896--><p class="noindent" >
<!--l. 898--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.14 </span> <a
id="x14-400003.2.14"></a>clip_diag &#8212; Cut out main diagonal</h5>
@ -656,8 +662,8 @@ class="description">Return code.</dd></dl>
<div class="verbatim" id="verbatim-28">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;call&#x00A0;a%clip_diag(b,info)
</div>
<!--l. 900--><p class="nopar" >
<!--l. 902--><p class="indent" > Returns a copy of <span class="obeylines-h"><span class="verb"><span
<!--l. 902--><p class="nopar" >
<!--l. 904--><p class="indent" > Returns a copy of <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">a</span></span></span> without the main diagonal.
<dl class="description"><dt class="description">
<span
@ -676,7 +682,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 910--><p class="noindent" >
<!--l. 912--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -692,7 +698,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 918--><p class="noindent" >
<!--l. 920--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.15 </span> <a
id="x14-410003.2.15"></a>tril &#8212; Return the lower triangle</h5>
@ -702,8 +708,8 @@ class="description">Return code.</dd></dl>
&#x00A0;&#x00A0;&#x00A0;&#x00A0;call&#x00A0;a%tril(l,info[,&amp;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;diag,imin,imax,jmin,jmax,rscale,cscale,u])
</div>
<!--l. 923--><p class="nopar" >
<!--l. 925--><p class="indent" > Returns the lower triangular part of submatrix <span class="obeylines-h"><span class="verb"><span
<!--l. 925--><p class="nopar" >
<!--l. 927--><p class="indent" > Returns the lower triangular part of submatrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">A(imin:imax,jmin:jmax)</span></span></span>,
optionally rescaling row/col indices to the range <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">1:imax-imin+1,1:jmax-jmin+1</span></span></span> and
@ -741,7 +747,7 @@ class="newline" />Type: optional.
<span
class="cmbx-10">rscale,cscale</span> </dt><dd
class="description">Whether to rescale row/column indices. Type: optional.</dd></dl>
<!--l. 943--><p class="noindent" >
<!--l. 945--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -764,7 +770,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 952--><p class="noindent" >
<!--l. 954--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.16 </span> <a
id="x14-420003.2.16"></a>triu &#8212; Return the upper triangle</h5>
@ -774,8 +780,8 @@ class="description">Return code.</dd></dl>
&#x00A0;&#x00A0;&#x00A0;&#x00A0;call&#x00A0;a%triu(u,info[,&amp;
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;diag,imin,imax,jmin,jmax,rscale,cscale,l])
</div>
<!--l. 957--><p class="nopar" >
<!--l. 959--><p class="indent" > Returns the upper triangular part of submatrix <span class="obeylines-h"><span class="verb"><span
<!--l. 959--><p class="nopar" >
<!--l. 961--><p class="indent" > Returns the upper triangular part of submatrix <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">A(imin:imax,jmin:jmax)</span></span></span>,
optionally rescaling row/col indices to the range <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">1:imax-imin+1,1:jmax-jmin+1</span></span></span>,
@ -813,7 +819,7 @@ class="newline" />Type: optional.
<span
class="cmbx-10">rscale,cscale</span> </dt><dd
class="description">Whether to rescale row/column indices. Type: optional.</dd></dl>
<!--l. 977--><p class="noindent" >
<!--l. 979--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -836,7 +842,7 @@ class="cmtt-10">psb_Tspmat_type</span></span></span>.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 989--><p class="noindent" >
<!--l. 991--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.17 </span> <a
id="x14-430003.2.17"></a>psb_set_mat_default &#8212; Set default storage format</h5>
@ -845,8 +851,8 @@ class="description">Return code.</dd></dl>
<div class="verbatim" id="verbatim-31">
call&#x00A0;&#x00A0;psb_set_mat_default(a)
</div>
<!--l. 995--><p class="nopar" >
<!--l. 997--><p class="indent" >
<!--l. 997--><p class="nopar" >
<!--l. 999--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -862,7 +868,7 @@ class="description">a variable of <span class="obeylines-h"><span class="verb
class="cmtt-10">class(psb_T_base_sparse_mat)</span></span></span> requesting a new default
storage format.<br
class="newline" />Type: required.</dd></dl>
<!--l. 1009--><p class="noindent" >
<!--l. 1011--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.18 </span> <a
id="x14-440003.2.18"></a>clone &#8212; Clone current object</h5>
@ -871,8 +877,8 @@ class="newline" />Type: required.</dd></dl>
<div class="verbatim" id="verbatim-32">
call&#x00A0;&#x00A0;a%clone(b,info)
</div>
<!--l. 1014--><p class="nopar" >
<!--l. 1016--><p class="indent" >
<!--l. 1016--><p class="nopar" >
<!--l. 1018--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -888,7 +894,7 @@ class="description">the sparse matrix.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 1026--><p class="indent" >
<!--l. 1028--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -901,10 +907,10 @@ class="description">A copy of the input object.
<span
class="cmbx-10">info</span> </dt><dd
class="description">Return code.</dd></dl>
<!--l. 1033--><p class="noindent" >
<!--l. 1035--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.2.19 </span> <a
id="x14-450003.2.19"></a>Named Constants</h5>
<!--l. 1035--><p class="noindent" >
<!--l. 1037--><p class="noindent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">psb</span><span
@ -952,12 +958,12 @@ class="description">Update strategy based on additional permutation data (see
<!--l. 1051--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1053--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse4.html" >next</a>] [<a
href="userhtmlsu5.html" >prev</a>] [<a
href="userhtmlsu5.html#tailuserhtmlsu5.html" >prev-tail</a>] [<a
href="userhtmlsu6.html" >front</a>] [<a
href="userhtmlsu7.html#userhtmlsu9.html" >up</a>] </p></div>
<!--l. 1051--><p class="indent" > <a
<!--l. 1053--><p class="indent" > <a
id="tailuserhtmlsu6.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1051--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1053--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu10.html" >next</a>] [<a
href="userhtmlsu6.html" >prev</a>] [<a
href="userhtmlsu6.html#tailuserhtmlsu6.html" >prev-tail</a>] [<a
@ -18,7 +18,7 @@ href="userhtmlse3.html#tailuserhtmlsu7.html">tail</a>] [<a
href="userhtmlsu7.html#userhtmlse4.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">3.3 </span> <a
id="x15-460003.3"></a>Dense Vector Data Structure</h4>
<!--l. 1053--><p class="noindent" >The <a
<!--l. 1055--><p class="noindent" >The <a
id="vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
@ -36,7 +36,7 @@ sec.&#x00A0;<a
href="userhtmlse6.html#x40-770006">6<!--tex4ht:ref: sec:toolsrout --></a>. Among other simple things, we define here an extraction method that
can be used to get a full copy of the part of the vector stored on the local
process.
<!--l. 1063--><p class="indent" > The type declaration is shown in figure&#x00A0;<a
<!--l. 1065--><p class="indent" > The type declaration is shown in figure&#x00A0;<a
href="#x15-460015">5<!--tex4ht:ref: fig:vectype --></a> where <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">T</span></span></span> is a placeholder for the data
type and precision variants
@ -60,7 +60,7 @@ class="description">Single precision complex;
<span
class="cmbx-10">Z</span> </dt><dd
class="description">Double precision complex.</dd></dl>
<!--l. 1073--><p class="noindent" >The actual data is contained in the polymorphic component <span class="obeylines-h"><span class="verb"><span
<!--l. 1075--><p class="noindent" >The actual data is contained in the polymorphic component <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">v%v</span></span></span>; the separation between
the application and the actual data is essential for cases where it is necessary to link
to data storage made available elsewhere outside the direct control of the
@ -70,7 +70,7 @@ compiler/application, e.g. data stored in a graphics accelerator&#8217;s private
id="x15-460015"></a>
<div class="center"
>
<!--l. 1081--><p class="noindent" >
<!--l. 1083--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-33">
&#x00A0;&#x00A0;type&#x00A0;psb_T_base_vect_type
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;TYPE(KIND_),&#x00A0;allocatable&#x00A0;::&#x00A0;v(:)
@ -81,18 +81,18 @@ compiler/application, e.g. data stored in a graphics accelerator&#8217;s private
&#x00A0;<br />&#x00A0;&#x00A0;end&#x00A0;type&#x00A0;&#x00A0;psb_T_vect_type
&#x00A0;<br />
</div>
<!--l. 1092--><p class="nopar" ></div></div>
<!--l. 1094--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;5: </span><span
class="content"> The PSBLAS defined data type that contains a dense vector.</span></div><!--tex4ht:label?: x15-460015 -->
<!--l. 1103--><p class="indent" > </div><hr class="endfigure">
<!--l. 1105--><p class="noindent" >
<!--l. 1105--><p class="indent" > </div><hr class="endfigure">
<!--l. 1107--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.3.1 </span> <a
id="x15-470003.3.1"></a>Vector Methods</h5>
<!--l. 1106--><p class="noindent" >
<!--l. 1108--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.3.2 </span> <a
id="x15-480003.3.2"></a>get_nrows &#8212; Get number of rows in a dense vector</h5>
@ -101,8 +101,8 @@ class="content"> The PSBLAS defined data type that contains a dense vector.</spa
<div class="verbatim" id="verbatim-34">
nr&#x00A0;=&#x00A0;v%get_nrows()
</div>
<!--l. 1111--><p class="nopar" >
<!--l. 1113--><p class="indent" >
<!--l. 1113--><p class="nopar" >
<!--l. 1115--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -118,7 +118,7 @@ class="description">the dense vector<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 1123--><p class="indent" >
<!--l. 1125--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -128,7 +128,7 @@ class="description">
class="cmbx-10">Function value</span> </dt><dd
class="description">The number of rows of dense vector <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">v</span></span></span>.</dd></dl>
<!--l. 1130--><p class="noindent" >
<!--l. 1132--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.3.3 </span> <a
id="x15-490003.3.3"></a>sizeof &#8212; Get memory occupation in bytes of a dense vector</h5>
@ -137,8 +137,8 @@ class="cmtt-10">v</span></span></span>.</dd></dl>
<div class="verbatim" id="verbatim-35">
memory_size&#x00A0;=&#x00A0;v%sizeof()
</div>
<!--l. 1135--><p class="nopar" >
<!--l. 1137--><p class="indent" >
<!--l. 1137--><p class="nopar" >
<!--l. 1139--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -154,7 +154,7 @@ class="description">the dense vector<br
class="newline" />Scope: <span
class="cmbx-10">local</span><br
class="newline" /></dd></dl>
<!--l. 1147--><p class="indent" >
<!--l. 1149--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -163,7 +163,7 @@ class="description">
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">The memory occupation in bytes.</dd></dl>
<!--l. 1153--><p class="noindent" >
<!--l. 1155--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.3.4 </span> <a
id="x15-500003.3.4"></a>set &#8212; Set contents of the vector</h5>
@ -174,8 +174,8 @@ class="description">The memory occupation in bytes.</dd></dl>
&#x00A0;<br />&#x00A0;call&#x00A0;&#x00A0;v%set(vect[,first,last])
&#x00A0;<br />&#x00A0;call&#x00A0;&#x00A0;v%zero()
</div>
<!--l. 1160--><p class="nopar" >
<!--l. 1162--><p class="indent" >
<!--l. 1162--><p class="nopar" >
<!--l. 1164--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -226,13 +226,13 @@ 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="userhtmlsu10.html#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.</dd></dl>
<!--l. 1181--><p class="noindent" >Note that a call to <span class="obeylines-h"><span class="verb"><span
<!--l. 1183--><p class="noindent" >Note that a call to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">v%zero()</span></span></span> is provided as a shorthand, but is equivalent to a call
to <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">v%set(zero)</span></span></span> with the <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">zero</span></span></span> constant having the appropriate type and
kind.
<!--l. 1185--><p class="indent" >
<!--l. 1187--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -247,7 +247,7 @@ class="newline" /></dd></dl>
<!--l. 1191--><p class="noindent" >
<!--l. 1193--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.3.5 </span> <a
id="x15-510003.3.5"></a>get_vect &#8212; Get a copy of the vector contents</h5>
@ -256,8 +256,8 @@ class="newline" /></dd></dl>
<div class="verbatim" id="verbatim-37">
extv&#x00A0;=&#x00A0;v%get_vect([n])
</div>
<!--l. 1196--><p class="nopar" >
<!--l. 1198--><p class="indent" >
<!--l. 1198--><p class="nopar" >
<!--l. 1200--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -283,7 +283,7 @@ class="newline" />Type: <span
class="cmbx-10">optional</span>; default: entire vector.<br
class="newline" />
</dd></dl>
<!--l. 1212--><p class="indent" >
<!--l. 1214--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -299,7 +299,7 @@ class="cmmi-10">n </span>and the internal size of the vector, or 0 if
<span
class="cmmi-10">n </span>is negative; otherwise, the size of the array is the same as the internal
size of the vector.</dd></dl>
<!--l. 1221--><p class="noindent" >
<!--l. 1223--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark">3.3.6 </span> <a
id="x15-520003.3.6"></a>clone &#8212; Clone current object</h5>
@ -308,8 +308,8 @@ class="cmmi-10">n </span>is negative; otherwise, the size of the array is the sa
<div class="verbatim" id="verbatim-38">
call&#x00A0;&#x00A0;x%clone(y,info)
</div>
<!--l. 1225--><p class="nopar" >
<!--l. 1227--><p class="indent" >
<!--l. 1227--><p class="nopar" >
<!--l. 1229--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">Type:</span> </dt><dd
@ -325,7 +325,7 @@ class="description">the dense vector.<br
class="newline" />Scope: <span
class="cmbx-10">local</span>.<br
class="newline" /></dd></dl>
<!--l. 1237--><p class="indent" >
<!--l. 1239--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-10">On Return</span> </dt><dd
@ -341,12 +341,12 @@ class="description">Return code.</dd></dl>
<!--l. 1244--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1246--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu10.html" >next</a>] [<a
href="userhtmlsu6.html" >prev</a>] [<a
href="userhtmlsu6.html#tailuserhtmlsu6.html" >prev-tail</a>] [<a
href="userhtmlsu7.html" >front</a>] [<a
href="userhtmlsu7.html#userhtmlse4.html" >up</a>] </p></div>
<!--l. 1244--><p class="indent" > <a
<!--l. 1246--><p class="indent" > <a
id="tailuserhtmlsu7.html"></a>
</body></html>

@ -19,7 +19,21 @@ href="userhtmlsu76.html#userhtmlsu77.html" >up</a>] </p></div>
<!--l. 126-->
<div class="lstlisting" id="listing-10"><span class="label"><a
id="x87-124001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_errpush(err_c,&#x00A0;r_name,&#x00A0;i_err,&#x00A0;a_err)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_errpush</span><span
class="cmtt-10">(</span><span
class="cmtt-10">err_c</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">r_name</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">i_err</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">a_err</span><span
class="cmtt-10">)</span>
</div>
<!--l. 130--><p class="indent" >

@ -21,7 +21,12 @@ href="userhtmlsu76.html#userhtmlse9.html" >up</a>] </p></div>
<!--l. 156-->
<div class="lstlisting" id="listing-11"><span class="label"><a
id="x88-125001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_error(icontxt)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_error</span><span
class="cmtt-10">(</span><span
class="cmtt-10">icontxt</span><span
class="cmtt-10">)</span>
</div>
<!--l. 160--><p class="indent" >

@ -21,7 +21,12 @@ href="userhtmlsu76.html#userhtmlsu78.html" >up</a>] </p></div>
<!--l. 176-->
<div class="lstlisting" id="listing-12"><span class="label"><a
id="x89-126001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_set_errverbosity(v)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_set_errverbosity</span><span
class="cmtt-10">(</span><span
class="cmtt-10">v</span><span
class="cmtt-10">)</span>
</div>
<!--l. 180--><p class="indent" >

@ -21,7 +21,12 @@ condition</h4>
<!--l. 193-->
<div class="lstlisting" id="listing-13"><span class="label"><a
id="x90-127001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_set_erraction(err_act)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_set_erraction</span><span
class="cmtt-10">(</span><span
class="cmtt-10">err_act</span><span
class="cmtt-10">)</span>
</div>
<!--l. 197--><p class="indent" >

@ -21,7 +21,27 @@ format</h4>
<!--l. 16-->
<div class="lstlisting" id="listing-14"><span class="label"><a
id="x92-129001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;hb_read(a,&#x00A0;iret,&#x00A0;iunit,&#x00A0;filename,&#x00A0;b,&#x00A0;mtitle)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">hb_read</span><span
class="cmtt-10">(</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">b</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mtitle</span><span
class="cmtt-10">)</span>
</div>
<!--l. 20--><p class="indent" >

@ -22,7 +22,30 @@ format</h4>
<!--l. 59-->
<div class="lstlisting" id="listing-15"><span class="label"><a
id="x93-130001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;hb_write(a,&#x00A0;iret,&#x00A0;iunit,&#x00A0;filename,&#x00A0;key,&#x00A0;rhs,&#x00A0;mtitle)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">hb_write</span><span
class="cmtt-10">(</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">key</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">rhs</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mtitle</span><span
class="cmtt-10">)</span>
</div>
<!--l. 65--><p class="indent" >

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1244--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1246--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu11.html" >next</a>] [<a
href="userhtmlsu7.html" >prev</a>] [<a
href="userhtmlsu7.html#tailuserhtmlsu7.html" >prev-tail</a>] [<a
@ -18,9 +18,9 @@ href="userhtmlsu5.html#tailuserhtmlsu8.html">tail</a>] [<a
href="userhtmlsu7.html#userhtmlsu10.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">3.4 </span> <a
id="x16-530003.4"></a>Preconditioner data structure</h4>
<!--l. 1246--><p class="noindent" >Our base library offers support for simple well known preconditioners like Diagonal
<!--l. 1248--><p class="noindent" >Our base library offers support for simple well known preconditioners like Diagonal
Scaling or Block Jacobi with incomplete factorization ILU(0).
<!--l. 1250--><p class="indent" > A preconditioner is held in the <a
<!--l. 1252--><p class="indent" > A preconditioner is held in the <a
id="precdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span
@ -42,30 +42,30 @@ preconditioner. <hr class="figure"><div class="figure"
<div class="center"
>
<!--l. 1271--><p class="noindent" >
<!--l. 1273--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-39">
&#x00A0;<br />&#x00A0;&#x00A0;type&#x00A0;psb_Tprec_type
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;class(psb_T_base_prec_type),&#x00A0;allocatable&#x00A0;::&#x00A0;prec
&#x00A0;<br />&#x00A0;&#x00A0;end&#x00A0;type&#x00A0;psb_Tprec_type
&#x00A0;<br />
</div>
<!--l. 1279--><p class="nopar" ></div></div>
<!--l. 1281--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;6: </span><span
class="content">The PSBLAS defined data type that contains a preconditioner.</span></div><!--tex4ht:label?: x16-530016 -->
<!--l. 1288--><p class="indent" > </div><hr class="endfigure">
<!--l. 1290--><p class="indent" > </div><hr class="endfigure">
<!--l. 1312--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1314--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu11.html" >next</a>] [<a
href="userhtmlsu7.html" >prev</a>] [<a
href="userhtmlsu7.html#tailuserhtmlsu7.html" >prev-tail</a>] [<a
href="userhtmlsu8.html" >front</a>] [<a
href="userhtmlsu7.html#userhtmlsu10.html" >up</a>] </p></div>
<!--l. 1312--><p class="indent" > <a
<!--l. 1314--><p class="indent" > <a
id="tailuserhtmlsu8.html"></a>
</body></html>

@ -23,7 +23,21 @@ format</h4>
<!--l. 111-->
<div class="lstlisting" id="listing-16"><span class="label"><a
id="x94-131001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;mm_mat_read(a,&#x00A0;iret,&#x00A0;iunit,&#x00A0;filename)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mm_mat_read</span><span
class="cmtt-10">(</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">)</span>
</div>
<!--l. 115--><p class="indent" >

@ -23,7 +23,21 @@ format</h4>
<!--l. 142-->
<div class="lstlisting" id="listing-17"><span class="label"><a
id="x95-132001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;mm_array_read(b,&#x00A0;iret,&#x00A0;iunit,&#x00A0;filename)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mm_array_read</span><span
class="cmtt-10">(</span><span
class="cmtt-10">b</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">)</span>
</div>
<!--l. 146--><p class="indent" >

@ -23,7 +23,24 @@ format</h4>
<!--l. 179-->
<div class="lstlisting" id="listing-18"><span class="label"><a
id="x96-133001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;mm_mat_write(a,&#x00A0;mtitle,&#x00A0;iret,&#x00A0;iunit,&#x00A0;filename)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mm_mat_write</span><span
class="cmtt-10">(</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mtitle</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">)</span>
</div>
<!--l. 182--><p class="indent" >

@ -22,7 +22,24 @@ format</h4>
<!--l. 213-->
<div class="lstlisting" id="listing-19"><span class="label"><a
id="x97-134001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;mm_array_write(b,&#x00A0;vtitle,&#x00A0;iret,&#x00A0;iunit,&#x00A0;filename)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mm_array_write</span><span
class="cmtt-10">(</span><span
class="cmtt-10">b</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">vtitle</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">)</span>
</div>
<!--l. 217--><p class="indent" >

@ -10,14 +10,14 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1312--><div class="crosslinks"><p class="noindent">[<a
<!--l. 1314--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu8.html" >prev</a>] [<a
href="userhtmlsu8.html#tailuserhtmlsu8.html" >prev-tail</a>] [<a
href="userhtmlsu6.html#tailuserhtmlsu9.html">tail</a>] [<a
href="userhtmlsu7.html#userhtmlsu11.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">3.5 </span> <a
id="x17-540003.5"></a>Heap data structure</h4>
<!--l. 1314--><p class="noindent" >Among the tools routines of sec.&#x00A0;<a
<!--l. 1316--><p class="noindent" >Among the tools routines of sec.&#x00A0;<a
href="userhtmlse6.html#x40-770006">6<!--tex4ht:ref: sec:toolsrout --></a>, we have a number of sorting utilities; the heap
sort is implemented in terms of heaps having the following signatures:
<dl class="description"><dt class="description">
@ -36,7 +36,7 @@ class="cmtt-10">_idx</span><span
class="cmtt-10">_heap</span> </dt><dd
class="description">: a heap containing elements of type T, as above, together
with an integer index.</dd></dl>
<!--l. 1323--><p class="noindent" >Given a heap object, the following methods are defined on it:
<!--l. 1325--><p class="noindent" >Given a heap object, the following methods are defined on it:
<dl class="description"><dt class="description">
<span
class="cmbx-10">init</span> </dt><dd
@ -62,7 +62,7 @@ class="description">Print on file;
<span
class="cmbx-10">free</span> </dt><dd
class="description">Release memory.</dd></dl>
<!--l. 1333--><p class="noindent" >These objects are used in MLD2P4 to implement the factorization algorithms.
<!--l. 1335--><p class="noindent" >These objects are used in MLD2P4 to implement the factorization algorithms.

@ -63,9 +63,48 @@ iteration.
<!--l. 37-->
<div class="lstlisting" id="listing-20"><span class="label"><a
id="x107-143001r1"></a></span><span
class="cmbx-10">call</span>&#x00A0;psb_krylov(method,a,prec,b,x,eps,desc_a,info,&amp;&#x00A0;<br /><span class="label"><a
id="x107-143002r2"></a></span>&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;itmax,iter,<span
class="cmbx-10">err</span>,itrace,irst,istop,cond)
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">psb_krylov</span><span
class="cmtt-10">(</span><span
class="cmtt-10">method</span><span
class="cmtt-10">,</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">prec</span><span
class="cmtt-10">,</span><span
class="cmtt-10">b</span><span
class="cmtt-10">,</span><span
class="cmtt-10">x</span><span
class="cmtt-10">,</span><span
class="cmtt-10">eps</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">,&amp;</span><span
class="cmtt-10">&#x00A0;</span><br /><span class="label"><a
id="x107-143002r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&amp;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">itmax</span><span
class="cmtt-10">,</span><span
class="cmtt-10">iter</span><span
class="cmtt-10">,</span><span
class="cmtt-10">err</span><span
class="cmtt-10">,</span><span
class="cmtt-10">itrace</span><span
class="cmtt-10">,</span><span
class="cmtt-10">irst</span><span
class="cmtt-10">,</span><span
class="cmtt-10">istop</span><span
class="cmtt-10">,</span><span
class="cmtt-10">cond</span><span
class="cmtt-10">)</span>
</div>
<!--l. 42--><p class="indent" >

File diff suppressed because it is too large Load Diff

@ -530,7 +530,9 @@ data type and precision variants
\item[S] Single precision real;
\item[D] Double precision real;
\item[C] Single precision complex;
\item[Z] Double precision complex.
\item[Z] Double precision complex;
\item[LS,LD,LC,LZ] Same numeric type as above, but with
\verb|psb_lpk_| integer indices.
\end{description}
The actual data is contained in the polymorphic component \verb|a%a|
of type \hypertarget{spbasedata}{{\tt psb\_T\_base\_sparse\_mat}}; its

Loading…
Cancel
Save