Modified docs to included LXspmat & friends.
|
Before Width: | Height: | Size: 331 B After Width: | Height: | Size: 334 B |
|
Before Width: | Height: | Size: 373 B After Width: | Height: | Size: 382 B |
|
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; }
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 439 B After Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 765 B After Width: | Height: | Size: 763 B |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
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"> </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"> </span><span
|
||||
class="cmr-9">args</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9">subroutine</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">psb_foo</span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">some</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">args</span><span
|
||||
class="cmtt-9">,</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">info</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123002r2"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">...</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">...</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123003r3"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">error</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">detected</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">then</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">if</span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">error</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">detected</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">then</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123004r4"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">=</span><span
|
||||
class="cmr-9">errcode1</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">info</span><span
|
||||
class="cmtt-9">=</span><span
|
||||
class="cmtt-9">errcode1</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123005r5"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_errpush</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">errcode1</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">call</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">psb_errpush</span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">’</span><span
|
||||
class="cmtt-9">psb_foo</span><span
|
||||
class="cmtt-9">’</span><span
|
||||
class="cmtt-9">,</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">errcode1</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123006r6"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">goto</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">9999</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">goto</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">9999</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123007r7"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">end</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">if</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123008r8"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">...</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">...</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123009r9"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </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"> </span><span
|
||||
class="cmr-9">args</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">call</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">psb_bar</span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">some</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">args</span><span
|
||||
class="cmtt-9">,</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">info</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123010r10"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmbx-9">ne</span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">zero</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">then</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">if</span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">info</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">.</span><span
|
||||
class="cmtt-9">ne</span><span
|
||||
class="cmtt-9">.</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">zero</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">then</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123011r11"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">=</span><span
|
||||
class="cmr-9">errcode2</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">info</span><span
|
||||
class="cmtt-9">=</span><span
|
||||
class="cmtt-9">errcode2</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123012r12"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_errpush</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">errcode2</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">call</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">psb_errpush</span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">’</span><span
|
||||
class="cmtt-9">psb_foo</span><span
|
||||
class="cmtt-9">’</span><span
|
||||
class="cmtt-9">,</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">errcode2</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123013r13"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">goto</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">9999</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">goto</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">9999</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123014r14"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">end</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">if</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123015r15"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">...</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">...</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123016r16"></a></span><span
|
||||
class="cmr-9">9999</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">continue</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9">9999</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">continue</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123017r17"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">err</span><span
|
||||
class="cmr-9">_act</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmbx-9">eq</span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">act</span><span
|
||||
class="cmr-9">_abort</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">then</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">if</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">(</span><span
|
||||
class="cmtt-9">err_act</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">.</span><span
|
||||
class="cmtt-9">eq</span><span
|
||||
class="cmtt-9">.</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">act_abort</span><span
|
||||
class="cmtt-9">)</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">then</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123018r18"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </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"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">call</span><span
|
||||
class="cmtt-9"> </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"> </span><br /><span class="label"><a
|
||||
id="x86-123019r19"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">return</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">return</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123020r20"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">else</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">else</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123021r21"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">return</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">return</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123022r22"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">end</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">if</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123023r23"></a></span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
id="x86-123024r24"></a></span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">subroutine</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span>
|
||||
class="cmtt-9">end</span><span
|
||||
class="cmtt-9"> </span><span
|
||||
class="cmtt-9">subroutine</span><span
|
||||
class="cmtt-9"> </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>    vres(1) = psb_gedot(x1,y1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x20-57005r2"></a></span>    vres(2) = psb_gedot(x2,y2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x20-57006r3"></a></span>    vres(3) = psb_gedot(x3,y3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x20-57007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_sum(ictxt,vres(1:3))
|
||||
id="x20-57004r1"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(1)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x20-57005r2"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(2)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x20-57006r3"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(3)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x20-57007r4"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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>    vres(1) = psb_geamax(x1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x22-59005r2"></a></span>    vres(2) = psb_geamax(x2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x22-59006r3"></a></span>    vres(3) = psb_geamax(x3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x22-59007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_amx(ictxt,vres(1:3))
|
||||
id="x22-59004r1"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(1)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x22-59005r2"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(2)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x22-59006r3"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(3)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x22-59007r4"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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>    vres(1) = psb_geasum(x1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x24-61005r2"></a></span>    vres(2) = psb_geasum(x2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x24-61006r3"></a></span>    vres(3) = psb_geasum(x3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x24-61007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_sum(ictxt,vres(1:3))
|
||||
id="x24-61004r1"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(1)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x24-61005r2"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(2)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x24-61006r3"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(3)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x24-61007r4"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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>    vres(1) = psb_genrm2(x1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x26-63005r2"></a></span>    vres(2) = psb_genrm2(x2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x26-63006r3"></a></span>    vres(3) = psb_genrm2(x3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x26-63007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_nrm2(ictxt,vres(1:3))
|
||||
id="x26-63004r1"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(1)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x26-63005r2"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(2)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x26-63006r3"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">vres</span><span
|
||||
class="cmtt-10">(3)</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10"> </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"> </span><br /><span class="label"><a
|
||||
id="x26-63007r4"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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> psb_halo(x, desc_a, info) <br /><span class="label"><a
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">)</span><span
|
||||
class="cmtt-10"> </span><br /><span class="label"><a
|
||||
id="x36-73003r2"></a></span><span
|
||||
class="cmbx-10">call</span> psb_halo(x, desc_a, info, work, <span
|
||||
class="cmbx-10">data</span>)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">work</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> psb_ovrl(x, desc_a, info) <br /><span class="label"><a
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">)</span><span
|
||||
class="cmtt-10"> </span><br /><span class="label"><a
|
||||
id="x37-74003r2"></a></span><span
|
||||
class="cmbx-10">call</span> psb_ovrl(x, desc_a, info, update=update_type, work=work)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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"> </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> psb_gather(glob_x, loc_x, desc_a, info, root) <br /><span class="label"><a
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">loc_x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">root</span><span
|
||||
class="cmtt-10">)</span><span
|
||||
class="cmtt-10"> </span><br /><span class="label"><a
|
||||
id="x38-75003r2"></a></span><span
|
||||
class="cmbx-10">call</span> psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">loc_x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> psb_scatter(glob_x, loc_x, desc_a, info, root, mold)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">loc_x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">root</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">
|
||||
  type :: psb_Tspmat_type
|
||||
 <br />    class(psb_T_base_sparse_mat), allocatable  :: a
|
||||
 <br />  end type  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 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 — 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 = 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 — 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 = 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 — 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 = 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 — Get maximum number of nonzero elements in a sparse
|
||||
matrix</h5>
|
||||
@@ -252,8 +258,8 @@ matrix</h5>
|
||||
<div class="verbatim" id="verbatim-19">
|
||||
maxnz = 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 — 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 = 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 — 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(*,*) 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 — Status check</h5>
|
||||
|
||||
@@ -366,8 +372,8 @@ if (a%is_bld()) then
|
||||
 <br />if (a%is_upd()) then
|
||||
 <br />if (a%is_asb()) 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 — Format check</h5>
|
||||
|
||||
@@ -406,8 +412,8 @@ if (a%is_triangle()) then
|
||||
 <br />if (a%is_lower()) then
|
||||
 <br />if (a%is_unit()) 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 — 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  a%cscnv(b,info [, type, mold, dupl])
|
||||
 <br />call  a%cscnv(info [, type, mold, 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 — Reduce to a submatrix</h5>
|
||||
|
||||
@@ -511,8 +517,8 @@ and other accelerators.
|
||||
    call a%csclip(b,info[,&
|
||||
 <br />       & 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 — Eliminate zero coefficients</h5>
|
||||
|
||||
@@ -567,11 +573,11 @@ class="description">Return code.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-26">
|
||||
    call 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 — Get main diagonal</h5>
|
||||
|
||||
@@ -614,8 +620,8 @@ class="description">Return code.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-27">
|
||||
    call 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 — Cut out main diagonal</h5>
|
||||
|
||||
@@ -656,8 +662,8 @@ class="description">Return code.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-28">
|
||||
    call 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 — Return the lower triangle</h5>
|
||||
|
||||
@@ -702,8 +708,8 @@ class="description">Return code.</dd></dl>
|
||||
    call a%tril(l,info[,&
|
||||
 <br />       & 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 — Return the upper triangle</h5>
|
||||
|
||||
@@ -774,8 +780,8 @@ class="description">Return code.</dd></dl>
|
||||
    call a%triu(u,info[,&
|
||||
 <br />       & 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 — Set default storage format</h5>
|
||||
|
||||
@@ -845,8 +851,8 @@ class="description">Return code.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-31">
|
||||
call  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 — Clone current object</h5>
|
||||
|
||||
@@ -871,8 +877,8 @@ class="newline" />Type: required.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-32">
|
||||
call  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. <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 <a
|
||||
<!--l. 1065--><p class="indent" > The type declaration is shown in figure <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’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">
|
||||
  type psb_T_base_vect_type
|
||||
 <br />    TYPE(KIND_), allocatable :: v(:)
|
||||
@@ -81,18 +81,18 @@ compiler/application, e.g. data stored in a graphics accelerator’s private
|
||||
 <br />  end type  psb_T_vect_type
|
||||
 <br />
|
||||
</div>
|
||||
<!--l. 1092--><p class="nopar" ></div></div>
|
||||
<!--l. 1094--><p class="nopar" ></div></div>
|
||||
|
||||
|
||||
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 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 — 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 = 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 — 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 = 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 — Set contents of the vector</h5>
|
||||
|
||||
@@ -174,8 +174,8 @@ class="description">The memory occupation in bytes.</dd></dl>
|
||||
 <br /> call  v%set(vect[,first,last])
|
||||
 <br /> call  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 <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 — Get a copy of the vector contents</h5>
|
||||
|
||||
@@ -256,8 +256,8 @@ class="newline" /></dd></dl>
|
||||
<div class="verbatim" id="verbatim-37">
|
||||
extv = 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 — 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  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> psb_errpush(err_c, r_name, i_err, a_err)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">r_name</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">i_err</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> psb_error(icontxt)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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> psb_set_errverbosity(v)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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> psb_set_erraction(err_act)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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> hb_read(a, iret, iunit, filename, b, mtitle)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">iret</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iunit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">filename</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">b</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> hb_write(a, iret, iunit, filename, key, rhs, mtitle)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">iret</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iunit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">filename</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">key</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">rhs</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">
|
||||
 <br />  type psb_Tprec_type
|
||||
 <br />    class(psb_T_base_prec_type), allocatable :: prec
|
||||
 <br />  end type psb_Tprec_type
|
||||
 <br />
|
||||
</div>
|
||||
<!--l. 1279--><p class="nopar" ></div></div>
|
||||
<!--l. 1281--><p class="nopar" ></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 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> mm_mat_read(a, iret, iunit, filename)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">iret</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iunit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> mm_array_read(b, iret, iunit, filename)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">iret</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iunit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> mm_mat_write(a, mtitle, iret, iunit, filename)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">mtitle</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iret</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iunit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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> mm_array_write(b, vtitle, iret, iunit, filename)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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"> </span><span
|
||||
class="cmtt-10">vtitle</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iret</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">iunit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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. <a
|
||||
<!--l. 1316--><p class="noindent" >Among the tools routines of sec. <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> psb_krylov(method,a,prec,b,x,eps,desc_a,info,& <br /><span class="label"><a
|
||||
id="x107-143002r2"></a></span>     & itmax,iter,<span
|
||||
class="cmbx-10">err</span>,itrace,irst,istop,cond)
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </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">,&</span><span
|
||||
class="cmtt-10"> </span><br /><span class="label"><a
|
||||
id="x107-143002r2"></a></span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">&</span><span
|
||||
class="cmtt-10"> </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" >
|
||||
|
||||
@@ -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
|
||||
|
||||