Changed guide to new style
|
Before Width: | Height: | Size: 334 B After Width: | Height: | Size: 321 B |
|
Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 357 B |
|
Before Width: | Height: | Size: 296 B After Width: | Height: | Size: 289 B |
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 76--><p class="noindent" ><span
|
||||
<!--l. 90--><p class="noindent" ><span
|
||||
class="cmbx-12x-x-144">PSBLAS</span><br
|
||||
class="newline" /> <span
|
||||
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
||||
|
||||
|
After Width: | Height: | Size: 32 KiB |
@@ -8,11 +8,13 @@
|
||||
.cmbx-12x-x-144{font-size:172%; font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmti-10{ font-style: italic;}
|
||||
.cmti-12{font-size:120%; font-style: italic;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmtt-10{font-family: monospace;}
|
||||
.cmtt-10{font-family: monospace;}
|
||||
.cmtt-10{font-family: monospace;}
|
||||
@@ -21,6 +23,7 @@
|
||||
.cmbx-12{font-size:120%; font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmtt-8{font-size:80%;font-family: monospace;}
|
||||
.cmtt-8{font-family: monospace;}
|
||||
.cmtt-8{font-family: monospace;}
|
||||
@@ -28,6 +31,10 @@
|
||||
.cmtt-9{font-family: monospace;}
|
||||
.cmtt-9{font-family: monospace;}
|
||||
.cmmi-8{font-size:80%;font-style: italic;}
|
||||
.cmbx-9{font-size:90%; font-weight: bold;}
|
||||
.cmbx-9{ font-weight: bold;}
|
||||
.cmbx-9{ font-weight: bold;}
|
||||
.cmbx-9{ font-weight: bold;}
|
||||
p.noindent { text-indent: 0em }
|
||||
td p.noindent { text-indent: 0em; margin-top:0em; }
|
||||
p.nopar { text-indent: 0em; }
|
||||
@@ -97,9 +104,8 @@ span.LATEX span.TEX{ position:relative; left: -0.4em; }
|
||||
div.float, div.figure {margin-left: auto; margin-right: auto;}
|
||||
div.float img {text-align:center;}
|
||||
div.figure img {text-align:center;}
|
||||
.marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
|
||||
.marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;}
|
||||
.reversemarginpar{float:left;}
|
||||
.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
|
||||
.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
|
||||
table.equation {width:100%;}
|
||||
.equation td{text-align:center; }
|
||||
td.equation { margin-top:1em; margin-bottom:1em; }
|
||||
@@ -142,7 +148,6 @@ div.abstract {width:100%;}
|
||||
.Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; }
|
||||
.shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; }
|
||||
.doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; }
|
||||
.rotatebox{display: inline-block;}
|
||||
.figure img.graphics {margin-left:10%;}
|
||||
.lstlisting .label{margin-right:0.5em; }
|
||||
div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 76--><p class="noindent" ><span
|
||||
<!--l. 90--><p class="noindent" ><span
|
||||
class="cmbx-12x-x-144">PSBLAS</span><br
|
||||
class="newline" /> <span
|
||||
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
||||
|
||||
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.7 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: 1.9 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.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.0 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.5 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 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: 447 B |
|
Before Width: | Height: | Size: 763 B After Width: | Height: | Size: 779 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.4 KiB After Width: | Height: | Size: 2.3 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.5 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.7 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.5 KiB After Width: | Height: | Size: 1.4 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.1 KiB |
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.9 KiB |
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 91--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 105--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse1.html" >next</a>] [<a
|
||||
href="#tailuserhtmlli1.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlli1.html" >up</a>] </p></div>
|
||||
|
||||
@@ -176,11 +176,11 @@ class="cmti-10">MPI: The Complete Reference. Volume 1 - The MPI Core</span>, sec
|
||||
|
||||
|
||||
|
||||
<!--l. 114--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 128--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse11.html" >prev</a>] [<a
|
||||
href="userhtmlse11.html#tailuserhtmlse11.html" >prev-tail</a>] [<a
|
||||
href="userhtmlli2.html" >front</a>] [<a
|
||||
href="userhtml.html# " >up</a>] </p></div>
|
||||
<!--l. 114--><p class="indent" > <a
|
||||
<!--l. 128--><p class="indent" > <a
|
||||
id="tailuserhtmlli2.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -27,7 +27,7 @@ based on the serial sparse BLAS, so that any extension made to the data structur
|
||||
of the serial kernels is available to the parallel version. The overall design and
|
||||
parallelization strategy have been influenced by the structure of the ScaLAPACK
|
||||
parallel library. The layered structure of the PSBLAS library is shown in figure <a
|
||||
href="#x4-30011">1<!--tex4ht:ref: fig:psblas --></a>;
|
||||
href="#x4-3001r1">1<!--tex4ht:ref: fig:psblas --></a>;
|
||||
lower layers of the library indicate an encapsulation relationship with upper
|
||||
layers. The ongoing discussion focuses on the Fortran 2003 layer immediately
|
||||
below the application layer. The serial parts of the computation on each
|
||||
@@ -46,7 +46,7 @@ href="userhtmlse7.html#x68-1050007">7<!--tex4ht:ref: sec:parenv --></a>.
|
||||
|
||||
|
||||
<a
|
||||
id="x4-30011"></a>
|
||||
id="x4-3001r1"></a>
|
||||
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ src="psblas.png" alt="PIC"
|
||||
></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 1: </span><span
|
||||
class="content">PSBLAS library components hierarchy.</span></div><!--tex4ht:label?: x4-30011 -->
|
||||
class="content">PSBLAS library components hierarchy.</span></div><!--tex4ht:label?: x4-3001r1 -->
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ href="userhtml.html#userhtmlsu7.html" >up</a>] </p></div>
|
||||
interfaces. They include data structures for sparse matrices, communication
|
||||
descriptors and preconditioners.
|
||||
<!--l. 11--><p class="indent" > All the data types and the basic subroutine interfaces related to descriptors and
|
||||
sparse matrices are defined in the module <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_base_mod</span></span></span>; this will have to be
|
||||
sparse matrices are defined in the module <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_base_mod</span>; this will have to be
|
||||
included by every user subroutine that makes use of the library. The preconditioners
|
||||
are defined in the module <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_prec_mod</span></span></span>
|
||||
are defined in the module <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_prec_mod</span>
|
||||
<!--l. 17--><p class="indent" > Integer, real and complex data types are parametrized with a kind type defined in
|
||||
the library as follows:
|
||||
<dl class="description"><dt class="description">
|
||||
@@ -35,17 +35,18 @@ class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_spk</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for short precision real and complex data;
|
||||
corresponds to a <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">REAL</span></span></span> declaration and is normally 4 bytes;
|
||||
corresponds to a <span class="lstinline"></span><span
|
||||
class="cmtt-10">REAL</span> declaration and is normally 4 bytes;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_dpk</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for long precision real and complex data;
|
||||
corresponds to a <span class="obeylines-h"><span class="verb"><span
|
||||
corresponds to a <span class="lstinline"></span><span
|
||||
class="cmtt-10">DOUBLE</span><span
|
||||
class="cmtt-10"> PRECISION</span></span></span> declaration and is normally 8 bytes;
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">PRECISION</span> declaration and is normally 8 bytes;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
@@ -58,8 +59,8 @@ class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_epk</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for 8-bytes integer data, as is always used by the
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">sizeof</span></span></span> methods;
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10">sizeof</span> methods;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
|
||||
@@ -36,7 +36,7 @@ zero, an error condition is raised. This process continues on all the levels of
|
||||
nested calls until the level where the user decides to abort the program
|
||||
execution.
|
||||
<!--l. 23--><p class="indent" > Figure <a
|
||||
href="#x86-1230259">9<!--tex4ht:ref: fig:routerr --></a> shows the layout of a generic <span class="obeylines-h"><span class="verb"><span
|
||||
href="#x86-123025r5">5<!--tex4ht:ref: fig:routerr --></a> shows the layout of a generic <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_foo</span></span></span> routine with respect to the
|
||||
PSBLAS-2.0 error handling policy. It is possible to see how, whenever an error
|
||||
condition is detected, the <span class="obeylines-h"><span class="verb"><span
|
||||
@@ -54,284 +54,293 @@ made by the user with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_set_erraction</span></span></span>. The default is to print the error
|
||||
and terminate the program, but the user may choose to handle the error
|
||||
explicitly.
|
||||
<!--l. 40--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x86-1230259"></a>
|
||||
<!--l. 40--><p class="indent" > <a
|
||||
id="x86-123025r5"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 73--><p class="noindent" >
|
||||
<div class="fbox"><div class="minipage"><!--l. 44-->
|
||||
<div class="lstlisting" id="listing-9"><span class="label"><a
|
||||
<!--l. 101--><p class="noindent" >
|
||||
<div class="fbox"><div class="minipage"><!--l. 72-->
|
||||
<div class="lstlisting" id="listing-5"><span class="label"><a
|
||||
id="x86-123001r1"></a></span><span
|
||||
class="cmtt-9">subroutine</span><span
|
||||
class="cmtt-9"> </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
|
||||
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
|
||||
id="x86-123002r2"></a></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><br /><span class="label"><a
|
||||
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
|
||||
id="x86-123003r3"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123004r4"></a></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"> </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
|
||||
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
|
||||
id="x86-123005r5"></a></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"> </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
|
||||
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
|
||||
id="x86-123006r6"></a></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"> </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
|
||||
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
|
||||
id="x86-123007r7"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123008r8"></a></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><br /><span class="label"><a
|
||||
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
|
||||
id="x86-123009r9"></a></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_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
|
||||
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
|
||||
id="x86-123010r10"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123011r11"></a></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"> </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
|
||||
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
|
||||
id="x86-123012r12"></a></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"> </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
|
||||
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
|
||||
id="x86-123013r13"></a></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"> </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
|
||||
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
|
||||
id="x86-123014r14"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123015r15"></a></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><br /><span class="label"><a
|
||||
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
|
||||
id="x86-123016r16"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123017r17"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123018r18"></a></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_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
|
||||
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
|
||||
id="x86-123019r19"></a></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">return</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
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
|
||||
id="x86-123020r20"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123021r21"></a></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">return</span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
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
|
||||
id="x86-123022r22"></a></span><span
|
||||
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
|
||||
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
|
||||
id="x86-123023r23"></a></span><span
|
||||
class="cmtt-9"> </span><br /><span class="label"><a
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x86-123024r24"></a></span><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>
|
||||
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>
|
||||
</div> </div> </div>
|
||||
</div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 9: </span><span
|
||||
><span class="id">Listing 5: </span><span
|
||||
class="content">The layout of a generic <span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_foo </span>routine with respect to PSBLAS-2.0
|
||||
error handling policy.</span></div><!--tex4ht:label?: x86-1230259 -->
|
||||
error handling policy.</span></div><!--tex4ht:label?: x86-123025r5 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 78--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 83--><p class="indent" > Figure <a
|
||||
href="#x86-12302610">10<!--tex4ht:ref: fig:errormsg --></a> reports a sample error message generated by the PSBLAS-2.0
|
||||
</div><hr class="endfloat" />
|
||||
<!--l. 112--><p class="indent" > Figure <a
|
||||
href="#x86-123026r6">6<!--tex4ht:ref: fig:errormsg --></a> reports a sample error message generated by the PSBLAS-2.0
|
||||
library. This error has been generated by the fact that the user has chosen the
|
||||
invalid “FOO” storage format to represent the sparse matrix. From this
|
||||
error message it is possible to see that the error has been detected inside
|
||||
@@ -339,20 +348,19 @@ the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cest</span></span></span> subroutine called by <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spasb</span></span></span> ... by process 0 (i.e. the root
|
||||
process).
|
||||
<!--l. 91--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x86-12302610"></a>
|
||||
<!--l. 120--><p class="indent" > <a
|
||||
id="x86-123026r6"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 113--><p class="noindent" >
|
||||
<div class="fbox"><div class="minipage"><div class="verbatim" id="verbatim-101">
|
||||
<!--l. 160--><p class="noindent" >
|
||||
<div class="fbox"><div class="minipage"><div class="verbatim" id="verbatim-78">
|
||||
==========================================================
|
||||
 <br />Process: 0.  PSBLAS Error (4010) in subroutine: df_sample
|
||||
 <br />Error from call to subroutine mat dist
|
||||
@@ -368,16 +376,16 @@ process).
|
||||
 <br />==========================================================
|
||||
 <br />Aborting...
|
||||
</div>
|
||||
<!--l. 109--><p class="nopar" > </div> </div>
|
||||
<!--l. 156--><p class="nopar" > </div> </div>
|
||||
</div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 10: </span><span
|
||||
class="content">A sample PSBLAS-2.0 error message. Process 0 detected an error
|
||||
condition inside the psb_cest subroutine</span></div><!--tex4ht:label?: x86-12302610 -->
|
||||
><span class="id">Listing 6: </span><span
|
||||
class="content">A sample PSBLAS-3.0 error message. Process 0 detected an error
|
||||
condition inside the psb_cest subroutine</span></div><!--tex4ht:label?: x86-123026r6 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 119--><p class="indent" > </div><hr class="endfigure">
|
||||
</div><hr class="endfloat" />
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ class="cmsy-10">|</span>.
|
||||
|
||||
|
||||
<a
|
||||
id="x6-40022"></a>
|
||||
id="x6-4002r2"></a>
|
||||
|
||||
|
||||
|
||||
@@ -128,7 +128,7 @@ src="points.png" alt="PIC"
|
||||
></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 2: </span><span
|
||||
class="content">Point classfication.</span></div><!--tex4ht:label?: x6-40022 -->
|
||||
class="content">Point classfication.</span></div><!--tex4ht:label?: x6-4002r2 -->
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -23,26 +23,41 @@ sum:
|
||||
src="userhtml1x.png" alt="y ← α x+ βy
|
||||
" class="math-display" ></center>
|
||||
<!--l. 12--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-40">
|
||||
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
|
||||
</div>
|
||||
<!--l. 21--><p class="nopar" >
|
||||
<!--l. 19--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_geaxpby</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">alpha</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">beta</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 25--><p class="indent" > <a
|
||||
id="x19-560011"></a><hr class="float"><div class="float"
|
||||
<!--l. 23--><p class="indent" > <a
|
||||
id="x19-56001r1"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 26--><p class="noindent" >
|
||||
<!--l. 24--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-1" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-1-1g"><col
|
||||
@@ -80,7 +95,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 1: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x19-560011 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x19-56001r1 -->
|
||||
|
||||
|
||||
|
||||
@@ -106,7 +121,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
@@ -125,7 +140,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>. The
|
||||
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
@@ -141,7 +156,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
@@ -160,7 +175,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of the type indicated in Table <a
|
||||
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
The rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
@@ -206,7 +221,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of the type indicated in Table <a
|
||||
href="#x19-560011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
href="#x19-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -224,10 +239,10 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 113--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 111--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu14.html" >next</a>] [<a
|
||||
href="userhtmlsu10.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu13.html" >up</a>] </p></div>
|
||||
<!--l. 113--><p class="indent" > <a
|
||||
<!--l. 111--><p class="indent" > <a
|
||||
id="tailuserhtmlsu10.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 113--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 111--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu15.html" >next</a>] [<a
|
||||
href="userhtmlsu10.html" >prev</a>] [<a
|
||||
href="userhtmlsu10.html#tailuserhtmlsu10.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu9.html#tailuserhtmlsu11.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu14.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
|
||||
id="x20-570004.2"></a>psb_gedot — Dot Product</h4>
|
||||
<!--l. 115--><p class="noindent" >This function computes dot product between two vectors <span
|
||||
<!--l. 113--><p class="noindent" >This function computes dot product between two vectors <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />If <span
|
||||
@@ -29,33 +29,43 @@ class="cmmi-10">y </span>are real vectors it computes dot-product as:
|
||||
src="userhtml2x.png" alt=" T
|
||||
dot ← x y
|
||||
" class="math-display" ></center>
|
||||
<!--l. 119--><p class="nopar" > Else if <span
|
||||
<!--l. 117--><p class="nopar" > Else if <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y </span>are complex vectors then it computes dot-product as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml3x.png" alt="dot ← xHy
|
||||
" class="math-display" ></center>
|
||||
<!--l. 121--><p class="nopar" >
|
||||
<!--l. 119--><p class="nopar" >
|
||||
<!--l. 126--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_gedot</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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">global</span><span
|
||||
class="cmtt-10">])</span> <div class="table">
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-41">
|
||||
psb_gedot(x, y, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 130--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 132--><p class="indent" > <a
|
||||
id="x20-570012"></a><hr class="float"><div class="float"
|
||||
<!--l. 128--><p class="indent" > <a
|
||||
id="x20-57001r2"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 133--><p class="noindent" >
|
||||
<!--l. 129--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-2" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-2-1g"><col
|
||||
@@ -92,7 +102,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 2: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x20-570012 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x20-57001r2 -->
|
||||
|
||||
|
||||
|
||||
@@ -124,7 +134,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
||||
href="#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
@@ -146,7 +156,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
||||
href="#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
@@ -177,8 +187,11 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
@@ -191,11 +204,14 @@ class="description">is the dot product of vectors <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">false</span><span
|
||||
class="cmtt-10">.</span> has been
|
||||
specified<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
|
||||
|
||||
|
||||
@@ -210,7 +226,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 207--><p class="noindent" ><span
|
||||
<!--l. 203--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
@@ -218,95 +234,19 @@ class="cmbx-12">Notes</span>
|
||||
entails a significant overhead. It may be necessary and/or advisable to
|
||||
compute multiple dot products at the same time; in this case, it is
|
||||
possible to improve the runtime efficiency by using the following scheme:
|
||||
<!--l. 214-->
|
||||
<!--l. 218-->
|
||||
<div class="lstlisting" id="listing-1"><span class="label"><a
|
||||
id="x20-57004r1"></a></span><span
|
||||
class="cmtt-10"> </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>
|
||||
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(ctxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 220--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
<!--l. 225--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
@@ -314,12 +254,12 @@ class="cmtt-10">(1:3))</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 230--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 235--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu15.html" >next</a>] [<a
|
||||
href="userhtmlsu10.html" >prev</a>] [<a
|
||||
href="userhtmlsu10.html#tailuserhtmlsu10.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu11.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu14.html" >up</a>] </p></div>
|
||||
<!--l. 230--><p class="indent" > <a
|
||||
<!--l. 235--><p class="indent" > <a
|
||||
id="tailuserhtmlsu11.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 230--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 235--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu16.html" >next</a>] [<a
|
||||
href="userhtmlsu11.html" >prev</a>] [<a
|
||||
href="userhtmlsu11.html#tailuserhtmlsu11.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlse4.html#tailuserhtmlsu12.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu15.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
|
||||
id="x21-580004.3"></a>psb_gedots — Generalized Dot Product</h4>
|
||||
<!--l. 232--><p class="noindent" >This subroutine computes a series of dot products among the columns of two dense
|
||||
<!--l. 237--><p class="noindent" >This subroutine computes a series of dot products among the columns of two dense
|
||||
matrices <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>:
|
||||
@@ -27,32 +27,45 @@ class="cmmi-10">y</span>:
|
||||
src="userhtml4x.png" alt=" T
|
||||
res(i) ← x(:,i) y(:,i)
|
||||
" class="math-display" ></center>
|
||||
<!--l. 234--><p class="nopar" > If the matrices are complex, then the usual convention applies, i.e. the conjugate
|
||||
<!--l. 239--><p class="nopar" > If the matrices are complex, then the usual convention applies, i.e. the conjugate
|
||||
transpose of <span
|
||||
class="cmmi-10">x </span>is used. If <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y </span>are of rank one, then <span
|
||||
class="cmmi-10">res </span>is a scalar, else it is a rank
|
||||
one array.
|
||||
<!--l. 245--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_gedots</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">res</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-42">
|
||||
call psb_gedots(res, x, y, desc_a, info)
|
||||
</div>
|
||||
<!--l. 242--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 243--><p class="indent" > <a
|
||||
id="x21-580013"></a><hr class="float"><div class="float"
|
||||
<!--l. 247--><p class="indent" > <a
|
||||
id="x21-58001r3"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 244--><p class="noindent" >
|
||||
<!--l. 248--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-3" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-3-1g"><col
|
||||
@@ -89,7 +102,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 3: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x21-580013 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x21-58001r3 -->
|
||||
|
||||
|
||||
|
||||
@@ -121,7 +134,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x21-580013">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
||||
href="#x21-58001r3">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
@@ -143,7 +156,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x21-580013">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
||||
href="#x21-58001r3">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
@@ -179,7 +192,7 @@ class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a number or a rank-one array of the data type indicated in
|
||||
Table <a
|
||||
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -197,12 +210,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 303--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 307--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu16.html" >next</a>] [<a
|
||||
href="userhtmlsu11.html" >prev</a>] [<a
|
||||
href="userhtmlsu11.html#tailuserhtmlsu11.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu12.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu15.html" >up</a>] </p></div>
|
||||
<!--l. 303--><p class="indent" > <a
|
||||
<!--l. 307--><p class="indent" > <a
|
||||
id="tailuserhtmlsu12.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 303--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 307--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu17.html" >next</a>] [<a
|
||||
href="userhtmlsu12.html" >prev</a>] [<a
|
||||
href="userhtmlsu12.html#tailuserhtmlsu12.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu10.html#tailuserhtmlsu13.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu16.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
|
||||
id="x22-590004.4"></a>psb_normi — Infinity-Norm of Vector</h4>
|
||||
<!--l. 305--><p class="noindent" >This function computes the infinity-norm of a vector <span
|
||||
<!--l. 309--><p class="noindent" >This function computes the infinity-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes infinity norm as:
|
||||
@@ -26,34 +26,54 @@ class="cmmi-10">x </span>is a real vector it computes infinity norm as:
|
||||
<img
|
||||
src="userhtml5x.png" alt="amax ← maxi |xi|
|
||||
" class="math-display" ></center>
|
||||
<!--l. 309--><p class="nopar" > else if <span
|
||||
<!--l. 313--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes the infinity-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml6x.png" alt="amax ← maxi (|re(xi)|+ |im(xi)|)
|
||||
" class="math-display" ></center>
|
||||
<!--l. 311--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-43">
|
||||
psb_geamax(x, desc_a, info [,global])
|
||||
 <br />psb_normi(x, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 320--><p class="nopar" >
|
||||
<!--l. 315--><p class="nopar" >
|
||||
<!--l. 321--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_geamax</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">global</span><span
|
||||
class="cmtt-10">])</span><br
|
||||
class="newline" /><span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_normi</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">global</span><span
|
||||
class="cmtt-10">])</span>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 323--><p class="indent" > <a
|
||||
id="x22-590014"></a><hr class="float"><div class="float"
|
||||
<!--l. 325--><p class="indent" > <a
|
||||
id="x22-59001r4"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 324--><p class="noindent" >
|
||||
<!--l. 326--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-4" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-4-1g"><col
|
||||
@@ -94,7 +114,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 4: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x22-590014 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x22-59001r4 -->
|
||||
|
||||
|
||||
|
||||
@@ -126,7 +146,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x22-590014">4<!--tex4ht:ref: tab:f90amax --></a>.
|
||||
href="#x22-59001r4">4<!--tex4ht:ref: tab:f90amax --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -154,8 +174,11 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
@@ -167,8 +190,11 @@ class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the infinity norm of vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">false</span><span
|
||||
class="cmtt-10">.</span> has been
|
||||
specified<br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
@@ -182,7 +208,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 383--><p class="noindent" ><span
|
||||
<!--l. 385--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
|
||||
|
||||
@@ -192,89 +218,19 @@ class="cmbx-12">Notes</span>
|
||||
class="enumerate" id="x22-59003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to compute
|
||||
multiple norms at the same time; in this case, it is possible to improve the
|
||||
runtime efficiency by using the following scheme: <!--l. 390-->
|
||||
runtime efficiency by using the following scheme: <!--l. 400-->
|
||||
<div class="lstlisting" id="listing-2"><span class="label"><a
|
||||
id="x22-59004r1"></a></span><span
|
||||
class="cmtt-10"> </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>
|
||||
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(ctxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 396--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
<!--l. 407--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
@@ -282,12 +238,12 @@ class="cmtt-10">(1:3))</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 417--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu17.html" >next</a>] [<a
|
||||
href="userhtmlsu12.html" >prev</a>] [<a
|
||||
href="userhtmlsu12.html#tailuserhtmlsu12.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu13.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu16.html" >up</a>] </p></div>
|
||||
<!--l. 406--><p class="indent" > <a
|
||||
<!--l. 417--><p class="indent" > <a
|
||||
id="tailuserhtmlsu13.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 417--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu18.html" >next</a>] [<a
|
||||
href="userhtmlsu13.html" >prev</a>] [<a
|
||||
href="userhtmlsu13.html#tailuserhtmlsu13.html" >prev-tail</a>] [<a
|
||||
@@ -18,34 +18,43 @@ href="userhtmlsu11.html#tailuserhtmlsu14.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu17.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
|
||||
id="x23-600004.5"></a>psb_geamaxs — Generalized Infinity Norm</h4>
|
||||
<!--l. 408--><p class="noindent" >This subroutine computes a series of infinity norms on the columns of a dense matrix
|
||||
<!--l. 419--><p class="noindent" >This subroutine computes a series of infinity norms on the columns of a dense matrix
|
||||
<span
|
||||
class="cmmi-10">x</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml7x.png" alt="res(i) ← makx|x(k,i)|
|
||||
" class="math-display" ></center>
|
||||
<!--l. 410--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-44">
|
||||
call psb_geamaxs(res, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 414--><p class="nopar" >
|
||||
<!--l. 421--><p class="nopar" >
|
||||
<!--l. 423--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_geamaxs</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">res</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 416--><p class="indent" > <a
|
||||
id="x23-600015"></a><hr class="float"><div class="float"
|
||||
<!--l. 425--><p class="indent" > <a
|
||||
id="x23-60001r5"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 417--><p class="noindent" >
|
||||
<!--l. 426--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-5" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-5-1g"><col
|
||||
@@ -86,7 +95,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 5: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x23-600015 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x23-60001r5 -->
|
||||
|
||||
|
||||
|
||||
@@ -118,7 +127,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x23-600015">5<!--tex4ht:ref: tab:f90mamax --></a>.
|
||||
href="#x23-60001r5">5<!--tex4ht:ref: tab:f90mamax --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -166,12 +175,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 467--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 476--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu18.html" >next</a>] [<a
|
||||
href="userhtmlsu13.html" >prev</a>] [<a
|
||||
href="userhtmlsu13.html#tailuserhtmlsu13.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu14.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu17.html" >up</a>] </p></div>
|
||||
<!--l. 467--><p class="indent" > <a
|
||||
<!--l. 476--><p class="indent" > <a
|
||||
id="tailuserhtmlsu14.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 467--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 476--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu19.html" >next</a>] [<a
|
||||
href="userhtmlsu14.html" >prev</a>] [<a
|
||||
href="userhtmlsu14.html#tailuserhtmlsu14.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu12.html#tailuserhtmlsu15.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu18.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
|
||||
id="x24-610004.6"></a>psb_norm1 — 1-Norm of Vector</h4>
|
||||
<!--l. 469--><p class="noindent" >This function computes the 1-norm of a vector <span
|
||||
<!--l. 478--><p class="noindent" >This function computes the 1-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes 1-norm as:
|
||||
@@ -26,35 +26,54 @@ class="cmmi-10">x </span>is a real vector it computes 1-norm as:
|
||||
<img
|
||||
src="userhtml8x.png" alt="asum ← ∥xi∥
|
||||
" class="math-display" ></center>
|
||||
<!--l. 472--><p class="nopar" > else if <span
|
||||
<!--l. 481--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml9x.png" alt="asum ← ∥re(x)∥ + ∥im (x)∥
|
||||
1 1
|
||||
" class="math-display" ></center>
|
||||
<!--l. 474--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-45">
|
||||
psb_geasum(x, desc_a, info [,global])
|
||||
 <br />psb_norm1(x, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 480--><p class="nopar" >
|
||||
<!--l. 483--><p class="nopar" >
|
||||
<!--l. 486--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_geasum</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">global</span><span
|
||||
class="cmtt-10">])</span> <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_norm1</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">global</span><span
|
||||
class="cmtt-10">])</span>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 482--><p class="indent" > <a
|
||||
id="x24-610016"></a><hr class="float"><div class="float"
|
||||
<!--l. 489--><p class="indent" > <a
|
||||
id="x24-61001r6"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 483--><p class="noindent" >
|
||||
<!--l. 490--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-6" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-6-1g"><col
|
||||
@@ -95,7 +114,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 6: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x24-610016 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x24-61001r6 -->
|
||||
|
||||
|
||||
|
||||
@@ -127,7 +146,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x24-610016">6<!--tex4ht:ref: tab:f90asum --></a>.
|
||||
href="#x24-61001r6">6<!--tex4ht:ref: tab:f90asum --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -155,8 +174,11 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
@@ -168,8 +190,11 @@ class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the 1-norm of vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">false</span><span
|
||||
class="cmtt-10">.</span> has been
|
||||
specified<br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
@@ -183,7 +208,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 536--><p class="noindent" ><span
|
||||
<!--l. 543--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
|
||||
|
||||
@@ -193,89 +218,19 @@ class="cmbx-12">Notes</span>
|
||||
class="enumerate" id="x24-61003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to compute
|
||||
multiple norms at the same time; in this case, it is possible to improve the
|
||||
runtime efficiency by using the following scheme: <!--l. 543-->
|
||||
runtime efficiency by using the following scheme: <!--l. 558-->
|
||||
<div class="lstlisting" id="listing-3"><span class="label"><a
|
||||
id="x24-61004r1"></a></span><span
|
||||
class="cmtt-10"> </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>
|
||||
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(ctxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 549--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
<!--l. 565--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
@@ -283,12 +238,12 @@ class="cmtt-10">(1:3))</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 554--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 570--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu19.html" >next</a>] [<a
|
||||
href="userhtmlsu14.html" >prev</a>] [<a
|
||||
href="userhtmlsu14.html#tailuserhtmlsu14.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu15.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu18.html" >up</a>] </p></div>
|
||||
<!--l. 554--><p class="indent" > <a
|
||||
<!--l. 570--><p class="indent" > <a
|
||||
id="tailuserhtmlsu15.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 554--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 570--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu20.html" >next</a>] [<a
|
||||
href="userhtmlsu15.html" >prev</a>] [<a
|
||||
href="userhtmlsu15.html#tailuserhtmlsu15.html" >prev-tail</a>] [<a
|
||||
@@ -18,14 +18,14 @@ href="userhtmlsu13.html#tailuserhtmlsu16.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu19.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
|
||||
id="x25-620004.7"></a>psb_geasums — Generalized 1-Norm of Vector</h4>
|
||||
<!--l. 556--><p class="noindent" >This subroutine computes a series of 1-norms on the columns of a dense matrix
|
||||
<!--l. 572--><p class="noindent" >This subroutine computes a series of 1-norms on the columns of a dense matrix
|
||||
<span
|
||||
class="cmmi-10">x</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml10x.png" alt="res(i) ← makx|x(k,i)|
|
||||
" class="math-display" ></center>
|
||||
<!--l. 558--><p class="nopar" > This function computes the 1-norm of a vector <span
|
||||
<!--l. 574--><p class="nopar" > This function computes the 1-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes 1-norm as:
|
||||
@@ -33,33 +33,42 @@ class="cmmi-10">x </span>is a real vector it computes 1-norm as:
|
||||
<img
|
||||
src="userhtml11x.png" alt="res(i) ← ∥xi∥
|
||||
" class="math-display" ></center>
|
||||
<!--l. 562--><p class="nopar" > else if <span
|
||||
<!--l. 578--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml12x.png" alt="res(i) ← ∥re(x )∥1 +∥im (x )∥1
|
||||
" class="math-display" ></center>
|
||||
<!--l. 564--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-46">
|
||||
call psb_geasums(res, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 569--><p class="nopar" >
|
||||
<!--l. 580--><p class="nopar" >
|
||||
<!--l. 583--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_geasums</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">res</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 571--><p class="indent" > <a
|
||||
id="x25-620017"></a><hr class="float"><div class="float"
|
||||
<!--l. 585--><p class="indent" > <a
|
||||
id="x25-62001r7"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 572--><p class="noindent" >
|
||||
<!--l. 586--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-7" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-7-1g"><col
|
||||
@@ -100,7 +109,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 7: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x25-620017 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x25-62001r7 -->
|
||||
|
||||
|
||||
|
||||
@@ -132,7 +141,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x25-620017">7<!--tex4ht:ref: tab:f90asums --></a>.
|
||||
href="#x25-62001r7">7<!--tex4ht:ref: tab:f90asums --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -181,12 +190,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 627--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 641--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu20.html" >next</a>] [<a
|
||||
href="userhtmlsu15.html" >prev</a>] [<a
|
||||
href="userhtmlsu15.html#tailuserhtmlsu15.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu16.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu19.html" >up</a>] </p></div>
|
||||
<!--l. 627--><p class="indent" > <a
|
||||
<!--l. 641--><p class="indent" > <a
|
||||
id="tailuserhtmlsu16.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 627--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 641--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu21.html" >next</a>] [<a
|
||||
href="userhtmlsu16.html" >prev</a>] [<a
|
||||
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu14.html#tailuserhtmlsu17.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
|
||||
id="x26-630004.8"></a>psb_norm2 — 2-Norm of Vector</h4>
|
||||
<!--l. 629--><p class="noindent" >This function computes the 2-norm of a vector <span
|
||||
<!--l. 643--><p class="noindent" >This function computes the 2-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes 2-norm as:
|
||||
@@ -27,27 +27,27 @@ class="cmmi-10">x </span>is a real vector it computes 2-norm as:
|
||||
src="userhtml13x.png" alt=" √ -T--
|
||||
nrm2 ← x x
|
||||
" class="math-display" ></center>
|
||||
<!--l. 632--><p class="nopar" > else if <span
|
||||
<!--l. 646--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes 2-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml14x.png" alt=" √----
|
||||
nrm2 ← xHx
|
||||
" class="math-display" ></center>
|
||||
<!--l. 634--><p class="nopar" >
|
||||
<!--l. 648--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 640--><p class="indent" > <a
|
||||
id="x26-630018"></a><hr class="float"><div class="float"
|
||||
<!--l. 654--><p class="indent" > <a
|
||||
id="x26-63001r8"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 641--><p class="noindent" >
|
||||
<!--l. 655--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-8" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-8-1g"><col
|
||||
@@ -88,20 +88,41 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 8: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x26-630018 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x26-63001r8 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-47">
|
||||
psb_genrm2(x, desc_a, info [,global])
|
||||
 <br />psb_norm2(x, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 659--><p class="nopar" >
|
||||
<!--l. 670--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_genrm2</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">global</span><span
|
||||
class="cmtt-10">])</span><br
|
||||
class="newline" /><span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_norm2</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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">global</span><span
|
||||
class="cmtt-10">])</span><br
|
||||
class="newline" />
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -128,7 +149,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x26-630018">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
|
||||
href="#x26-63001r8">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -156,8 +177,11 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
@@ -169,8 +193,11 @@ class="cmbx-10">Function Value</span> </dt><dd
|
||||
class="description">is the 2-norm of vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="lstinline"></span><span
|
||||
class="cmtt-10">global</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">false</span><span
|
||||
class="cmtt-10">.</span> has been
|
||||
specified<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
@@ -189,96 +216,26 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 706--><p class="noindent" ><span
|
||||
<!--l. 718--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x26-63003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to compute
|
||||
multiple norms at the same time; in this case, it is possible to improve the
|
||||
runtime efficiency by using the following scheme: <!--l. 713-->
|
||||
runtime efficiency by using the following scheme: <!--l. 725-->
|
||||
<div class="lstlisting" id="listing-4"><span class="label"><a
|
||||
id="x26-63004r1"></a></span><span
|
||||
class="cmtt-10"> </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>
|
||||
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(ctxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 719--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
<!--l. 731--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
@@ -286,12 +243,12 @@ class="cmtt-10">(1:3))</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 725--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 737--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu21.html" >next</a>] [<a
|
||||
href="userhtmlsu16.html" >prev</a>] [<a
|
||||
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu17.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
|
||||
<!--l. 725--><p class="indent" > <a
|
||||
<!--l. 737--><p class="indent" > <a
|
||||
id="tailuserhtmlsu17.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 725--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 737--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu22.html" >next</a>] [<a
|
||||
href="userhtmlsu17.html" >prev</a>] [<a
|
||||
href="userhtmlsu17.html#tailuserhtmlsu17.html" >prev-tail</a>] [<a
|
||||
@@ -18,34 +18,43 @@ href="userhtmlsu15.html#tailuserhtmlsu18.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu21.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.9 </span> <a
|
||||
id="x27-640004.9"></a>psb_genrm2s — Generalized 2-Norm of Vector</h4>
|
||||
<!--l. 727--><p class="noindent" >This subroutine computes a series of 2-norms on the columns of a dense matrix
|
||||
<!--l. 739--><p class="noindent" >This subroutine computes a series of 2-norms on the columns of a dense matrix
|
||||
<span
|
||||
class="cmmi-10">x</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml15x.png" alt="res(i) ← ∥x(:,i)∥2
|
||||
" class="math-display" ></center>
|
||||
<!--l. 729--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-48">
|
||||
call psb_genrm2s(res, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 734--><p class="nopar" >
|
||||
<!--l. 741--><p class="nopar" >
|
||||
<!--l. 744--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_genrm2s</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">res</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 736--><p class="indent" > <a
|
||||
id="x27-640019"></a><hr class="float"><div class="float"
|
||||
<!--l. 746--><p class="indent" > <a
|
||||
id="x27-64001r9"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 737--><p class="noindent" >
|
||||
<!--l. 747--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-9" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-9-1g"><col
|
||||
@@ -86,7 +95,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 9: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x27-640019 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x27-64001r9 -->
|
||||
|
||||
|
||||
|
||||
@@ -118,7 +127,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x27-640019">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
|
||||
href="#x27-64001r9">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -166,12 +175,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 792--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 802--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu22.html" >next</a>] [<a
|
||||
href="userhtmlsu17.html" >prev</a>] [<a
|
||||
href="userhtmlsu17.html#tailuserhtmlsu17.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu18.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu21.html" >up</a>] </p></div>
|
||||
<!--l. 792--><p class="indent" > <a
|
||||
<!--l. 802--><p class="indent" > <a
|
||||
id="tailuserhtmlsu18.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 792--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 802--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu23.html" >next</a>] [<a
|
||||
href="userhtmlsu18.html" >prev</a>] [<a
|
||||
href="userhtmlsu18.html#tailuserhtmlsu18.html" >prev-tail</a>] [<a
|
||||
@@ -18,14 +18,14 @@ href="userhtmlsu16.html#tailuserhtmlsu19.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu22.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.10 </span> <a
|
||||
id="x28-650004.10"></a>psb_norm1 — 1-Norm of Sparse Matrix</h4>
|
||||
<!--l. 794--><p class="noindent" >This function computes the 1-norm of a matrix <span
|
||||
<!--l. 804--><p class="noindent" >This function computes the 1-norm of a matrix <span
|
||||
class="cmmi-10">A</span>:<br
|
||||
class="newline" />
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml16x.png" alt="nrm1 ← ∥A ∥1
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 796--><p class="nopar" > where:
|
||||
<!--l. 806--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">A</span> </dt><dd
|
||||
@@ -35,15 +35,15 @@ class="cmmi-10">A</span></dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 802--><p class="indent" > <a
|
||||
id="x28-6500110"></a><hr class="float"><div class="float"
|
||||
<!--l. 812--><p class="indent" > <a
|
||||
id="x28-65001r10"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 803--><p class="noindent" >
|
||||
<!--l. 813--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-10" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-10-1g"><col
|
||||
@@ -77,7 +77,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 10: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x28-6500110 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x28-65001r10 -->
|
||||
|
||||
|
||||
|
||||
@@ -86,11 +86,11 @@ class="content">Data types</span></div><!--tex4ht:label?: x28-6500110 -->
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-49">
|
||||
<div class="verbatim" id="verbatim-31">
|
||||
psb_spnrm1(A, desc_a, info)
|
||||
 <br />psb_norm1(A, desc_a, info)
|
||||
</div>
|
||||
<!--l. 821--><p class="nopar" >
|
||||
<!--l. 831--><p class="nopar" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -160,12 +160,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 856--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 866--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu23.html" >next</a>] [<a
|
||||
href="userhtmlsu18.html" >prev</a>] [<a
|
||||
href="userhtmlsu18.html#tailuserhtmlsu18.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu19.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu22.html" >up</a>] </p></div>
|
||||
<!--l. 856--><p class="indent" > <a
|
||||
<!--l. 866--><p class="indent" > <a
|
||||
id="tailuserhtmlsu19.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 856--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 866--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu24.html" >next</a>] [<a
|
||||
href="userhtmlsu19.html" >prev</a>] [<a
|
||||
href="userhtmlsu19.html#tailuserhtmlsu19.html" >prev-tail</a>] [<a
|
||||
@@ -18,14 +18,14 @@ href="userhtmlsu17.html#tailuserhtmlsu20.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu23.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.11 </span> <a
|
||||
id="x29-660004.11"></a>psb_normi — Infinity Norm of Sparse Matrix</h4>
|
||||
<!--l. 858--><p class="noindent" >This function computes the infinity-norm of a matrix <span
|
||||
<!--l. 868--><p class="noindent" >This function computes the infinity-norm of a matrix <span
|
||||
class="cmmi-10">A</span>:<br
|
||||
class="newline" />
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml17x.png" alt="nrmi ← ∥A∥∞
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 860--><p class="nopar" > where:
|
||||
<!--l. 870--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">A</span> </dt><dd
|
||||
@@ -35,15 +35,15 @@ class="cmmi-10">A</span></dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 866--><p class="indent" > <a
|
||||
id="x29-6600111"></a><hr class="float"><div class="float"
|
||||
<!--l. 876--><p class="indent" > <a
|
||||
id="x29-66001r11"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 867--><p class="noindent" >
|
||||
<!--l. 877--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-11" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-11-1g"><col
|
||||
@@ -77,7 +77,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 11: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x29-6600111 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x29-66001r11 -->
|
||||
|
||||
|
||||
|
||||
@@ -86,11 +86,11 @@ class="content">Data types</span></div><!--tex4ht:label?: x29-6600111 -->
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-50">
|
||||
<div class="verbatim" id="verbatim-32">
|
||||
psb_spnrmi(A, desc_a, info)
|
||||
 <br />psb_normi(A, desc_a, info)
|
||||
</div>
|
||||
<!--l. 885--><p class="nopar" >
|
||||
<!--l. 895--><p class="nopar" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -160,12 +160,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 920--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 930--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu24.html" >next</a>] [<a
|
||||
href="userhtmlsu19.html" >prev</a>] [<a
|
||||
href="userhtmlsu19.html#tailuserhtmlsu19.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu20.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu23.html" >up</a>] </p></div>
|
||||
<!--l. 920--><p class="indent" > <a
|
||||
<!--l. 930--><p class="indent" > <a
|
||||
id="tailuserhtmlsu20.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 921--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 931--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu25.html" >next</a>] [<a
|
||||
href="userhtmlsu20.html" >prev</a>] [<a
|
||||
href="userhtmlsu20.html#tailuserhtmlsu20.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu18.html#tailuserhtmlsu21.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu24.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.12 </span> <a
|
||||
id="x30-670004.12"></a>psb_spmm — Sparse Matrix by Dense Matrix Product</h4>
|
||||
<!--l. 923--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
|
||||
<!--l. 933--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
@@ -26,7 +26,7 @@ class="equation"><tr><td>
|
||||
src="userhtml18x.png" alt="y ← αAx + βy
|
||||
" class="math-display" ><a
|
||||
id="x30-67001r1"></a></center></td><td class="equation-label">(1)</td></tr></table>
|
||||
<!--l. 928--><p class="nopar" >
|
||||
<!--l. 938--><p class="nopar" >
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
@@ -34,7 +34,7 @@ class="equation"><tr><td>
|
||||
src="userhtml19x.png" alt="y ← αAT x+ βy
|
||||
" class="math-display" ><a
|
||||
id="x30-67002r2"></a></center></td><td class="equation-label">(2)</td></tr></table>
|
||||
<!--l. 932--><p class="nopar" >
|
||||
<!--l. 942--><p class="nopar" >
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
@@ -46,8 +46,8 @@ y ← αA x+ βy
|
||||
|
||||
" class="math-display" ><a
|
||||
id="x30-67003r3"></a></center></td><td class="equation-label">(3)</td></tr></table>
|
||||
<!--l. 936--><p class="nopar" >
|
||||
<!--l. 938--><p class="indent" > where:
|
||||
<!--l. 946--><p class="nopar" >
|
||||
<!--l. 948--><p class="indent" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
@@ -73,15 +73,15 @@ class="cmmi-10">A</span></dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 945--><p class="indent" > <a
|
||||
id="x30-6700412"></a><hr class="float"><div class="float"
|
||||
<!--l. 955--><p class="indent" > <a
|
||||
id="x30-67004r12"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 946--><p class="noindent" >
|
||||
<!--l. 956--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-12" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-12-1g"><col
|
||||
@@ -120,21 +120,67 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 12: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x30-6700412 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x30-67004r12 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-51">
|
||||
call psb_spmm(alpha, a, x, beta, y, desc_a, info)
|
||||
 <br />call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
|
||||
 <br />             & trans, work)
|
||||
</div>
|
||||
<!--l. 965--><p class="nopar" >
|
||||
<!--l. 971--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_spmm</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">alpha</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">a</span><span
|
||||
class="cmtt-10">,</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">beta</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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><br
|
||||
class="newline" /><span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_spmm</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">alpha</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">a</span><span
|
||||
class="cmtt-10">,</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">beta</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">info</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">trans</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">work</span><span
|
||||
class="cmtt-10">)</span>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -155,7 +201,7 @@ class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
@@ -190,7 +236,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
||||
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
@@ -206,7 +252,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
@@ -225,13 +271,10 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
||||
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -267,7 +310,7 @@ href="#x30-67002r2">2<!--tex4ht:ref: eq:f90spmm_tra --></a>
|
||||
class="cmbx-10">trans = C</span> </dt><dd
|
||||
class="description">the operation is specified by equation <a
|
||||
href="#x30-67003r3">3<!--tex4ht:ref: eq:f90spmm_con --></a></dd></dl>
|
||||
<!--l. 1020--><p class="noindent" >Scope: <span
|
||||
<!--l. 1027--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
@@ -308,7 +351,7 @@ class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x30-6700412">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
href="#x30-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -326,12 +369,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 1072--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1079--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu25.html" >next</a>] [<a
|
||||
href="userhtmlsu20.html" >prev</a>] [<a
|
||||
href="userhtmlsu20.html#tailuserhtmlsu20.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu21.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu24.html" >up</a>] </p></div>
|
||||
<!--l. 1072--><p class="indent" > <a
|
||||
<!--l. 1079--><p class="indent" > <a
|
||||
id="tailuserhtmlsu21.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1072--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1079--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse5.html" >next</a>] [<a
|
||||
href="userhtmlsu21.html" >prev</a>] [<a
|
||||
href="userhtmlsu21.html#tailuserhtmlsu21.html" >prev-tail</a>] [<a
|
||||
@@ -18,8 +18,8 @@ href="userhtmlsu19.html#tailuserhtmlsu22.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu25.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.13 </span> <a
|
||||
id="x31-680004.13"></a>psb_spsm — Triangular System Solve</h4>
|
||||
<!--l. 1074--><p class="noindent" >This subroutine computes the Triangular System Solve:
|
||||
<!--l. 1076--><p class="indent" > <div class="eqnarray">
|
||||
<!--l. 1081--><p class="noindent" >This subroutine computes the Triangular System Solve:
|
||||
<!--l. 1083--><p class="indent" > <div class="eqnarray">
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml21x.png" alt="y ← αT- 1x + βy
|
||||
@@ -35,7 +35,7 @@ y ← αDT -Hx + βy
|
||||
y ← αT- HDx + βy
|
||||
" class="math-display" ></center>
|
||||
</div>
|
||||
<!--l. 1089--><p class="indent" > where:
|
||||
<!--l. 1096--><p class="indent" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
@@ -61,28 +61,85 @@ class="cmmi-10">T</span>
|
||||
<span
|
||||
class="cmmi-10">D</span> </dt><dd
|
||||
class="description">is the scaling diagonal matrix.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-52">
|
||||
call psb_spsm(alpha, t, x, beta, y, desc_a, info)
|
||||
 <br />call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
|
||||
 <br />             & trans, unit, choice, diag, work)
|
||||
</div>
|
||||
<!--l. 1101--><p class="nopar" >
|
||||
<!--l. 1104--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_spsm</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">alpha</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">t</span><span
|
||||
class="cmtt-10">,</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">beta</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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><br
|
||||
class="newline" /><span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_spsm</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">alpha</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">t</span><span
|
||||
class="cmtt-10">,</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">beta</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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">trans</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">unit</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">choice</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">diag</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">work</span><span
|
||||
class="cmtt-10">)</span><br
|
||||
class="newline" />
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 1103--><p class="indent" > <a
|
||||
id="x31-6800213"></a><hr class="float"><div class="float"
|
||||
<!--l. 1107--><p class="indent" > <a
|
||||
id="x31-68002r13"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 1104--><p class="noindent" >
|
||||
<!--l. 1108--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-13" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-13-1g"><col
|
||||
@@ -122,7 +179,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 13: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x31-6800213 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x31-68002r13 -->
|
||||
|
||||
|
||||
|
||||
@@ -148,7 +205,7 @@ class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">t</span> </dt><dd
|
||||
@@ -181,7 +238,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
||||
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
@@ -197,7 +254,7 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
@@ -216,7 +273,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
||||
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
@@ -256,7 +313,7 @@ class="description">the operation is with transposed matrix.
|
||||
<span
|
||||
class="cmbx-10">trans = ’C’</span> </dt><dd
|
||||
class="description">the operation is with conjugate transposed matrix.</dd></dl>
|
||||
<!--l. 1173--><p class="noindent" >Scope: <span
|
||||
<!--l. 1177--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
@@ -283,7 +340,7 @@ class="description">the operation is with left scaling
|
||||
<span
|
||||
class="cmbx-10">unitd = ’R’</span> </dt><dd
|
||||
class="description">the operation is with right scaling.</dd></dl>
|
||||
<!--l. 1184--><p class="noindent" >Scope: <span
|
||||
<!--l. 1188--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
@@ -299,28 +356,28 @@ class="cmbx-10">choice</span> </dt><dd
|
||||
class="description">specifies the update of overlap elements to be performed on exit:
|
||||
<dl class="description"><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_none_</span></span></span>
|
||||
class="description"><span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_none_</span>
|
||||
</dd><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_sum_</span></span></span>
|
||||
class="description"><span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_sum_</span>
|
||||
</dd><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_avg_</span></span></span>
|
||||
class="description"><span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_avg_</span>
|
||||
</dd><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_square_root_</span></span></span></dd></dl>
|
||||
<!--l. 1197--><p class="noindent" >Scope: <span
|
||||
class="description"><span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_square_root_</span></dd></dl>
|
||||
<!--l. 1201--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_avg_</span></span></span><br
|
||||
class="newline" />Default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_avg_</span><br
|
||||
class="newline" />Specified as: an integer variable.
|
||||
|
||||
|
||||
@@ -340,7 +397,7 @@ class="cmmi-10">diag</span>(1) = 1(<span
|
||||
class="cmmi-10">noscaling</span>)<br
|
||||
class="newline" />Specified as: a rank one array containing numbers of the type indicated in
|
||||
Table <a
|
||||
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">work</span> </dt><dd
|
||||
@@ -371,7 +428,7 @@ class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x31-6800213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
href="#x31-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -389,12 +446,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 1241--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1245--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse5.html" >next</a>] [<a
|
||||
href="userhtmlsu21.html" >prev</a>] [<a
|
||||
href="userhtmlsu21.html#tailuserhtmlsu21.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu22.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu25.html" >up</a>] </p></div>
|
||||
<!--l. 1241--><p class="indent" > <a
|
||||
<!--l. 1245--><p class="indent" > <a
|
||||
id="tailuserhtmlsu22.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1241--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1245--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu26.html" >next</a>] [<a
|
||||
href="userhtmlsu22.html" >prev</a>] [<a
|
||||
href="userhtmlsu22.html#tailuserhtmlsu22.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu20.html#tailuserhtmlsu23.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlse5.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.14 </span> <a
|
||||
id="x32-690004.14"></a>psb_gemlt — Entrywise Product</h4>
|
||||
<!--l. 1243--><p class="noindent" >This function computes the entrywise product between two vectors <span
|
||||
<!--l. 1247--><p class="noindent" >This function computes the entrywise product between two vectors <span
|
||||
class="cmmi-10">x </span>and
|
||||
<span
|
||||
class="cmmi-10">y</span>
|
||||
@@ -26,26 +26,34 @@ class="cmmi-10">y</span>
|
||||
<img
|
||||
src="userhtml22x.png" alt="dot ← x(i)y(i).
|
||||
" class="math-display" ></center>
|
||||
<!--l. 1245--><p class="nopar" >
|
||||
<!--l. 1249--><p class="nopar" >
|
||||
<!--l. 1251--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_gemlt</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-53">
|
||||
psb_gemlt(x, y, desc_a, info)
|
||||
</div>
|
||||
<!--l. 1249--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 1251--><p class="indent" > <a
|
||||
id="x32-6900114"></a><hr class="float"><div class="float"
|
||||
<!--l. 1254--><p class="indent" > <a
|
||||
id="x32-69001r14"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 1252--><p class="noindent" >
|
||||
<!--l. 1255--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-14" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-14-1g"><col
|
||||
@@ -82,7 +90,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 14: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x32-6900114 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x32-69001r14 -->
|
||||
|
||||
|
||||
|
||||
@@ -114,7 +122,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
type specified in Table <a
|
||||
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
@@ -133,7 +141,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
type specified in Table <a
|
||||
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -172,7 +180,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
the type indicated in Table <a
|
||||
href="#x32-6900114">14<!--tex4ht:ref: tab:f90mlt --></a>.
|
||||
href="#x32-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -190,12 +198,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 1309--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1312--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu26.html" >next</a>] [<a
|
||||
href="userhtmlsu22.html" >prev</a>] [<a
|
||||
href="userhtmlsu22.html#tailuserhtmlsu22.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu23.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlse5.html" >up</a>] </p></div>
|
||||
<!--l. 1309--><p class="indent" > <a
|
||||
<!--l. 1312--><p class="indent" > <a
|
||||
id="tailuserhtmlsu23.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1309--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1312--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu27.html" >next</a>] [<a
|
||||
href="userhtmlsu23.html" >prev</a>] [<a
|
||||
href="userhtmlsu23.html#tailuserhtmlsu23.html" >prev-tail</a>] [<a
|
||||
@@ -18,7 +18,7 @@ href="userhtmlsu21.html#tailuserhtmlsu24.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu26.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.15 </span> <a
|
||||
id="x33-700004.15"></a>psb_gediv — Entrywise Division</h4>
|
||||
<!--l. 1311--><p class="noindent" >This function computes the entrywise division between two vectors <span
|
||||
<!--l. 1314--><p class="noindent" >This function computes the entrywise division between two vectors <span
|
||||
class="cmmi-10">x </span>and
|
||||
<span
|
||||
class="cmmi-10">y</span>
|
||||
@@ -26,26 +26,38 @@ class="cmmi-10">y</span>
|
||||
<img
|
||||
src="userhtml23x.png" alt="∕ ← x(i)∕y(i).
|
||||
" class="math-display" ></center>
|
||||
<!--l. 1313--><p class="nopar" >
|
||||
<!--l. 1316--><p class="nopar" >
|
||||
<!--l. 1318--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_gediv</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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">[</span><span
|
||||
class="cmtt-10">flag</span><span
|
||||
class="cmtt-10">)</span>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-54">
|
||||
psb_gediv(x, y, desc_a, info, [flag)
|
||||
</div>
|
||||
<!--l. 1317--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 1319--><p class="indent" > <a
|
||||
id="x33-7000115"></a><hr class="float"><div class="float"
|
||||
<!--l. 1321--><p class="indent" > <a
|
||||
id="x33-70001r15"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 1320--><p class="noindent" >
|
||||
<!--l. 1322--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-15" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-15-1g"><col
|
||||
@@ -82,7 +94,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 15: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x33-7000115 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x33-70001r15 -->
|
||||
|
||||
|
||||
|
||||
@@ -114,7 +126,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
type specified in Table <a
|
||||
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
@@ -133,7 +145,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
type specified in Table <a
|
||||
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -162,8 +174,11 @@ class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional </span>Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: the logical value <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">flag=.true.</span></span></span>
|
||||
class="newline" />Specified as: the logical value <span class="lstinline"></span><span
|
||||
class="cmtt-10">flag</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -186,7 +201,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
the type indicated in Table <a
|
||||
href="userhtmlsu23.html#x32-6900114">14<!--tex4ht:ref: tab:f90mlt --></a>.
|
||||
href="userhtmlsu23.html#x32-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -204,12 +219,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 1382--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1384--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu27.html" >next</a>] [<a
|
||||
href="userhtmlsu23.html" >prev</a>] [<a
|
||||
href="userhtmlsu23.html#tailuserhtmlsu23.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu24.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu26.html" >up</a>] </p></div>
|
||||
<!--l. 1382--><p class="indent" > <a
|
||||
<!--l. 1384--><p class="indent" > <a
|
||||
id="tailuserhtmlsu24.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,14 +10,14 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1382--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 1384--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu24.html" >prev</a>] [<a
|
||||
href="userhtmlsu24.html#tailuserhtmlsu24.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu22.html#tailuserhtmlsu25.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu27.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.16 </span> <a
|
||||
id="x34-710004.16"></a>psb_geinv — Entrywise Inversion</h4>
|
||||
<!--l. 1384--><p class="noindent" >This function computes the entrywise inverse of a vector <span
|
||||
<!--l. 1386--><p class="noindent" >This function computes the entrywise inverse of a vector <span
|
||||
class="cmmi-10">x </span>and puts it into
|
||||
<span
|
||||
class="cmmi-10">y</span>
|
||||
@@ -25,26 +25,38 @@ class="cmmi-10">y</span>
|
||||
<img
|
||||
src="userhtml24x.png" alt="∕ ← 1∕x(i).
|
||||
" class="math-display" ></center>
|
||||
<!--l. 1386--><p class="nopar" >
|
||||
<!--l. 1388--><p class="nopar" >
|
||||
<!--l. 1390--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_geinv</span><span
|
||||
class="cmtt-10">(</span><span
|
||||
class="cmtt-10">x</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">y</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">[</span><span
|
||||
class="cmtt-10">flag</span><span
|
||||
class="cmtt-10">)</span>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-55">
|
||||
psb_geinv(x, y, desc_a, info, [flag)
|
||||
</div>
|
||||
<!--l. 1390--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 1392--><p class="indent" > <a
|
||||
id="x34-7100116"></a><hr class="float"><div class="float"
|
||||
<!--l. 1393--><p class="indent" > <a
|
||||
id="x34-71001r16"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 1393--><p class="noindent" >
|
||||
<!--l. 1394--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-16" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-16-1g"><col
|
||||
@@ -81,7 +93,7 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 16: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x34-7100116 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x34-71001r16 -->
|
||||
|
||||
|
||||
|
||||
@@ -113,7 +125,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
type specified in Table <a
|
||||
href="userhtmlsu11.html#x20-570012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
href="userhtmlsu11.html#x20-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -142,8 +154,11 @@ class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional </span>Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: the logical value <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">flag=.true.</span></span></span>
|
||||
class="newline" />Specified as: the logical value <span class="lstinline"></span><span
|
||||
class="cmtt-10">flag</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -166,7 +181,7 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of
|
||||
the type indicated in Table <a
|
||||
href="#x34-7100116">16<!--tex4ht:ref: tab:f90inv --></a>.
|
||||
href="#x34-71001r16">16<!--tex4ht:ref: tab:f90inv --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
|
||||
@@ -31,7 +31,7 @@ class="description">is a global dense submatrix.</dd></dl>
|
||||
|
||||
|
||||
<!--l. 23--><p class="indent" > <a
|
||||
id="x36-7300117"></a><hr class="float"><div class="float"
|
||||
id="x36-73001r17"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
@@ -78,15 +78,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 17: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x36-7300117 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x36-73001r17 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 40-->
|
||||
<div class="lstlisting" id="listing-5"><span class="label"><a
|
||||
id="x36-73002r1"></a></span><span
|
||||
<!--l. 40--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_halo</span><span
|
||||
@@ -98,9 +96,8 @@ class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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="cmtt-10">)</span><br
|
||||
class="newline" /><span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_halo</span><span
|
||||
@@ -119,8 +116,6 @@ 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">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -147,7 +142,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x36-7300117">17<!--tex4ht:ref: tab:f90halo --></a>.
|
||||
href="#x36-73001r17">17<!--tex4ht:ref: tab:f90halo --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -185,12 +180,12 @@ class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional </span><br
|
||||
class="newline" />Specified
|
||||
as: an integer. Values:<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_halo_</span></span></span>,<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_mov_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_ext_</span></span></span>,
|
||||
default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_halo_</span></span></span>. Chooses the index list on which to base the data
|
||||
as: an integer. Values:<span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_comm_halo_</span>,<span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_comm_mov_</span>, <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_comm_ext_</span>,
|
||||
default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_comm_halo_</span>. Chooses the index list on which to base the data
|
||||
exchange.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
@@ -209,7 +204,10 @@ class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Returned as: a rank one or two array containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x36-7300117">17<!--tex4ht:ref: tab:f90halo --></a>.
|
||||
href="#x36-73001r17">17<!--tex4ht:ref: tab:f90halo --></a>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -222,41 +220,41 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value that contains an error code.</dd></dl>
|
||||
<!--l. 87--><p class="noindent" ><hr class="figure"><div class="figure"
|
||||
<!--l. 85--><p class="noindent" ><hr class="figure"><div class="figure"
|
||||
><a
|
||||
id="x36-730047"></a>
|
||||
id="x36-73002r3"></a>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 88--><p class="noindent" >
|
||||
<!--l. 90--><p class="noindent" ><img
|
||||
<!--l. 86--><p class="noindent" >
|
||||
<!--l. 88--><p class="noindent" ><img
|
||||
src="try8x8.png" alt="PIC"
|
||||
></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 7: </span><span
|
||||
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x36-730047 -->
|
||||
<!--l. 96--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 98--><p class="noindent" ><span
|
||||
><span class="id">Figure 3: </span><span
|
||||
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x36-73002r3 -->
|
||||
<!--l. 94--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 96--><p class="noindent" ><span
|
||||
class="cmbx-12">Usage Example </span>Consider the discretization mesh depicted in fig. <a
|
||||
href="#x36-730047">7<!--tex4ht:ref: fig:try8x8 --></a>, partitioned
|
||||
href="#x36-73002r3">3<!--tex4ht:ref: fig:try8x8 --></a>, partitioned
|
||||
among two processes as shown by the dashed line; the data distribution is such that
|
||||
each process will own 32 entries in the index space, with a halo made of 8 entries
|
||||
placed at local indices 33 through 40. If process 0 assigns an initial value of 1 to
|
||||
its entries in the <span
|
||||
class="cmmi-10">x </span>vector, and process 1 assigns a value of 2, then after
|
||||
a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_halo</span></span></span> the contents of the local vectors will be the following:
|
||||
a call to <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_halo</span> the contents of the local vectors will be the following:
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 108--><p class="indent" > <hr class="float"><div class="float"
|
||||
<!--l. 106--><p class="indent" > <hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 108--><p class="noindent" >
|
||||
<!--l. 106--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-18" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-18-1g"><col
|
||||
@@ -850,10 +848,10 @@ class="td11"> </td></tr></table></div></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 164--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 162--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse6.html" >next</a>] [<a
|
||||
href="userhtmlsu26.html" >front</a>] [<a
|
||||
href="userhtmlsu28.html#userhtmlsu29.html" >up</a>] </p></div>
|
||||
<!--l. 164--><p class="indent" > <a
|
||||
<!--l. 162--><p class="indent" > <a
|
||||
id="tailuserhtmlsu26.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 164--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 162--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu30.html" >next</a>] [<a
|
||||
href="userhtmlsu26.html" >prev</a>] [<a
|
||||
href="userhtmlsu26.html#tailuserhtmlsu26.html" >prev-tail</a>] [<a
|
||||
@@ -18,12 +18,12 @@ href="userhtmlsu25.html#tailuserhtmlsu27.html">tail</a>] [<a
|
||||
href="userhtmlsu28.html#userhtmlse6.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">5.2 </span> <a
|
||||
id="x37-740005.2"></a>psb_ovrl — Overlap Update</h4>
|
||||
<!--l. 166--><p class="noindent" >These subroutines applies an overlap operator to the input vector:
|
||||
<!--l. 164--><p class="noindent" >These subroutines applies an overlap operator to the input vector:
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml26x.png" alt="x ← Qx
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 168--><p class="nopar" > where:
|
||||
<!--l. 166--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
@@ -41,15 +41,15 @@ class="cmmi-7">T</span></sup>.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 176--><p class="indent" > <a
|
||||
id="x37-7400118"></a><hr class="float"><div class="float"
|
||||
<!--l. 174--><p class="indent" > <a
|
||||
id="x37-74001r18"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 177--><p class="noindent" >
|
||||
<!--l. 175--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-19" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-19-1g"><col
|
||||
@@ -83,15 +83,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 18: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x37-7400118 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x37-74001r18 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 192-->
|
||||
<div class="lstlisting" id="listing-6"><span class="label"><a
|
||||
id="x37-74002r1"></a></span><span
|
||||
<!--l. 190--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_ovrl</span><span
|
||||
@@ -103,9 +101,8 @@ class="cmtt-10">desc_a</span><span
|
||||
class="cmtt-10">,</span><span
|
||||
class="cmtt-10"> </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="cmtt-10">)</span><br
|
||||
class="newline" /><span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_ovrl</span><span
|
||||
@@ -128,8 +125,6 @@ class="cmtt-10">work</span><span
|
||||
class="cmtt-10">=</span><span
|
||||
class="cmtt-10">work</span><span
|
||||
class="cmtt-10">)</span>
|
||||
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -156,7 +151,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x37-7400118">18<!--tex4ht:ref: tab:f90ovrl --></a>.
|
||||
href="#x37-74001r18">18<!--tex4ht:ref: tab:f90ovrl --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -202,7 +197,7 @@ class="cmmi-10">P</span><sub><span
|
||||
class="cmmi-7">a</span></sub><span
|
||||
class="cmmi-10">P</span><sup><span
|
||||
class="cmmi-7">T</span></sup>;</dd></dl>
|
||||
<!--l. 219--><p class="noindent" >Scope: <span
|
||||
<!--l. 215--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
@@ -226,13 +221,13 @@ class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a one dimensional array of the same type of <span
|
||||
class="cmmi-10">x</span>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
@@ -246,7 +241,7 @@ class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x37-7400118">18<!--tex4ht:ref: tab:f90ovrl --></a>.
|
||||
href="#x37-74001r18">18<!--tex4ht:ref: tab:f90ovrl --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -258,15 +253,15 @@ class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 246--><p class="noindent" ><span
|
||||
<!--l. 242--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x37-74005x1">If there is no overlap in the data distribution associated with the
|
||||
class="enumerate" id="x37-74003x1">If there is no overlap in the data distribution associated with the
|
||||
descriptor, no operations are performed;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x37-74007x2">The operator <span
|
||||
class="enumerate" id="x37-74005x2">The operator <span
|
||||
class="cmmi-10">P</span><sup><span
|
||||
class="cmmi-7">T</span></sup> performs the reduction sum of overlap elements; it is a
|
||||
“prolongation” operator <span
|
||||
@@ -275,63 +270,63 @@ class="cmmi-7">T</span></sup> that replicates overlap elements, accounting
|
||||
for the physical replication of data;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x37-74009x3">The operator <span
|
||||
class="enumerate" id="x37-74007x3">The operator <span
|
||||
class="cmmi-10">P</span><sub><span
|
||||
class="cmmi-7">a</span></sub> performs a scaling on the overlap elements by the
|
||||
amount of replication; thus, when combined with the reduction operator,
|
||||
it implements the average of replicated elements over all of their instances.</li></ol>
|
||||
<!--l. 265--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
<!--l. 261--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x37-740108"></a>
|
||||
id="x37-74008r4"></a>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 266--><p class="noindent" >
|
||||
<!--l. 268--><p class="noindent" ><img
|
||||
<!--l. 262--><p class="noindent" >
|
||||
<!--l. 264--><p class="noindent" ><img
|
||||
src="try8x8_ov.png" alt="PIC"
|
||||
></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 8: </span><span
|
||||
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x37-740108 -->
|
||||
><span class="id">Figure 4: </span><span
|
||||
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x37-74008r4 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 274--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 275--><p class="noindent" ><span
|
||||
<!--l. 270--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 271--><p class="noindent" ><span
|
||||
class="cmbx-12">Example of use </span>Consider the discretization mesh depicted in fig. <a
|
||||
href="#x37-740108">8<!--tex4ht:ref: fig:try8x8_ov --></a>, partitioned
|
||||
href="#x37-74008r4">4<!--tex4ht:ref: fig:try8x8_ov --></a>, partitioned
|
||||
among two processes as shown by the dashed lines, with an overlap of 1 extra layer
|
||||
with respect to the partition of fig. <a
|
||||
href="userhtmlsu26.html#x36-730047">7<!--tex4ht:ref: fig:try8x8 --></a>; the data distribution is such that
|
||||
href="userhtmlsu26.html#x36-73002r3">3<!--tex4ht:ref: fig:try8x8 --></a>; the data distribution is such that
|
||||
each process will own 40 entries in the index space, with an overlap of 16
|
||||
entries placed at local indices 25 through 40; the halo will run from local
|
||||
index 41 through local index 48.. If process 0 assigns an initial value of 1 to
|
||||
its entries in the <span
|
||||
class="cmmi-10">x </span>vector, and process 1 assigns a value of 2, then after a
|
||||
call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ovrl</span></span></span> with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_avg_</span></span></span> and a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_halo_</span></span></span> the contents of
|
||||
call to <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_ovrl</span> with <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_avg_</span> and a call to <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_halo_</span> the contents of
|
||||
the local vectors will be the following (showing a transition among the two
|
||||
subdomains)
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 289--><p class="indent" > <hr class="float"><div class="float"
|
||||
<!--l. 285--><p class="indent" > <hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 289--><p class="noindent" >
|
||||
<!--l. 285--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-20" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-20-1g"><col
|
||||
@@ -1035,12 +1030,12 @@ class="td11"> </td></tr></table></div></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 355--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 351--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu30.html" >next</a>] [<a
|
||||
href="userhtmlsu26.html" >prev</a>] [<a
|
||||
href="userhtmlsu26.html#tailuserhtmlsu26.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu27.html" >front</a>] [<a
|
||||
href="userhtmlsu28.html#userhtmlse6.html" >up</a>] </p></div>
|
||||
<!--l. 355--><p class="indent" > <a
|
||||
<!--l. 351--><p class="indent" > <a
|
||||
id="tailuserhtmlsu27.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 355--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 351--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu31.html" >next</a>] [<a
|
||||
href="userhtmlsu27.html" >prev</a>] [<a
|
||||
href="userhtmlsu27.html#tailuserhtmlsu27.html" >prev-tail</a>] [<a
|
||||
@@ -18,13 +18,13 @@ href="userhtmlse5.html#tailuserhtmlsu28.html">tail</a>] [<a
|
||||
href="userhtmlsu28.html#userhtmlsu30.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">5.3 </span> <a
|
||||
id="x38-750005.3"></a>psb_gather — Gather Global Dense Matrix</h4>
|
||||
<!--l. 357--><p class="noindent" >These subroutines collect the portions of global dense matrix distributed over all
|
||||
<!--l. 353--><p class="noindent" >These subroutines collect the portions of global dense matrix distributed over all
|
||||
process into one single array stored on one process.
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml27x.png" alt="glob-x ← collect(loc-xi)
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 361--><p class="nopar" > where:
|
||||
<!--l. 357--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
@@ -51,15 +51,15 @@ class="description">is the collect function.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 370--><p class="indent" > <a
|
||||
id="x38-7500119"></a><hr class="float"><div class="float"
|
||||
<!--l. 366--><p class="indent" > <a
|
||||
id="x38-75001r19"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 371--><p class="noindent" >
|
||||
<!--l. 367--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-21" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-21-1g"><col
|
||||
@@ -100,35 +100,32 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 19: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x38-7500119 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x38-75001r19 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 387-->
|
||||
<div class="lstlisting" id="listing-7"><span class="label"><a
|
||||
id="x38-75002r1"></a></span><span
|
||||
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
|
||||
<!--l. 383--><p class="noindent" ><span class="lstinline"></span><span
|
||||
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="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_gather</span><span
|
||||
@@ -147,8 +144,6 @@ 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">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -177,7 +172,7 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> indicated in Table <a
|
||||
href="#x38-7500119">19<!--tex4ht:ref: tab:gather --></a>.
|
||||
href="#x38-75001r19">19<!--tex4ht:ref: tab:gather --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
@@ -230,8 +225,8 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array with the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ALLOCATABLE</span></span></span> attribute.
|
||||
class="newline" />Specified as: a rank one or two array with the <span class="lstinline"></span><span
|
||||
class="cmtt-10">ALLOCATABLE</span> attribute.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
@@ -249,12 +244,12 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
|
||||
<!--l. 456--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 451--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu31.html" >next</a>] [<a
|
||||
href="userhtmlsu27.html" >prev</a>] [<a
|
||||
href="userhtmlsu27.html#tailuserhtmlsu27.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu28.html" >front</a>] [<a
|
||||
href="userhtmlsu28.html#userhtmlsu30.html" >up</a>] </p></div>
|
||||
<!--l. 456--><p class="indent" > <a
|
||||
<!--l. 451--><p class="indent" > <a
|
||||
id="tailuserhtmlsu28.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -10,20 +10,20 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 456--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 451--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu28.html" >prev</a>] [<a
|
||||
href="userhtmlsu28.html#tailuserhtmlsu28.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu26.html#tailuserhtmlsu29.html">tail</a>] [<a
|
||||
href="userhtmlsu28.html#userhtmlsu31.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">5.4 </span> <a
|
||||
id="x39-760005.4"></a>psb_scatter — Scatter Global Dense Matrix</h4>
|
||||
<!--l. 458--><p class="noindent" >These subroutines scatters the portions of global dense matrix owned by a process to
|
||||
<!--l. 453--><p class="noindent" >These subroutines scatters the portions of global dense matrix owned by a process to
|
||||
all the processes in the processes grid.
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml28x.png" alt="loc-xi ← scatter(glob-x)
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 461--><p class="nopar" > where:
|
||||
<!--l. 456--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
@@ -50,15 +50,15 @@ class="description">is the scatter function.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 470--><p class="indent" > <a
|
||||
id="x39-7600120"></a><hr class="float"><div class="float"
|
||||
<!--l. 465--><p class="indent" > <a
|
||||
id="x39-76001r20"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 471--><p class="noindent" >
|
||||
<!--l. 466--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-22" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-22-1g"><col
|
||||
@@ -99,15 +99,13 @@ class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 20: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x39-7600120 -->
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x39-76001r20 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 487-->
|
||||
<div class="lstlisting" id="listing-8"><span class="label"><a
|
||||
id="x39-76002r1"></a></span><span
|
||||
<!--l. 482--><p class="indent" > <span class="lstinline"></span><span
|
||||
class="cmtt-10">call</span><span
|
||||
class="cmtt-10"> </span><span
|
||||
class="cmtt-10">psb_scatter</span><span
|
||||
@@ -129,8 +127,6 @@ 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">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -186,8 +182,8 @@ class="cmsy-10">≤ </span><span
|
||||
class="cmmi-10">root </span><span
|
||||
class="cmsy-10">≤ </span><span
|
||||
class="cmmi-10">np </span><span
|
||||
class="cmsy-10">- </span>1, default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_root_</span></span></span>,
|
||||
class="cmsy-10">- </span>1, default <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_root_</span>,
|
||||
i.e. process 0.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
@@ -236,7 +232,10 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of the type indicated in Table <a
|
||||
href="#x39-7600120">20<!--tex4ht:ref: tab:scatter --></a>.
|
||||
href="#x39-76001r20">20<!--tex4ht:ref: tab:scatter --></a>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
|
||||
@@ -19,7 +19,7 @@ href="userhtmlsu32.html#userhtmlsu33.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-56">
|
||||
<div class="verbatim" id="verbatim-33">
|
||||
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
|
||||
 <br />call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
|
||||
 <br />call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.false.,lidx=lidx])
|
||||
@@ -234,7 +234,7 @@ class="cmtt-10">mg</span></span></span> as well. The
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-57">
|
||||
<div class="verbatim" id="verbatim-34">
|
||||
  interface
|
||||
 <br />     subroutine psb_parts(glob_index,mg,np,pv,nv)
|
||||
 <br />       integer, intent (in)  :: glob_index,np,mg
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu34.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-58">
|
||||
<div class="verbatim" id="verbatim-35">
|
||||
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
|
||||
 <br />call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu35.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-59">
|
||||
<div class="verbatim" id="verbatim-36">
|
||||
call psb_cdasb(desc_a, info [, mold])
|
||||
</div>
|
||||
<!--l. 298--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu36.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-60">
|
||||
<div class="verbatim" id="verbatim-37">
|
||||
call psb_cdcpy(desc_in, desc_out, info)
|
||||
</div>
|
||||
<!--l. 351--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu37.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-61">
|
||||
<div class="verbatim" id="verbatim-38">
|
||||
call psb_cdfree(desc_a, info)
|
||||
</div>
|
||||
<!--l. 386--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu38.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-62">
|
||||
<div class="verbatim" id="verbatim-39">
|
||||
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
|
||||
</div>
|
||||
<!--l. 417--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu39.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-63">
|
||||
<div class="verbatim" id="verbatim-40">
|
||||
call psb_spall(a, desc_a, info, nnz)
|
||||
</div>
|
||||
<!--l. 551--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu40.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-64">
|
||||
<div class="verbatim" id="verbatim-41">
|
||||
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
|
||||
 <br />call psb_spins(nr, irw, irp, ja, val, a, desc_a, info [,local])
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu41.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-65">
|
||||
<div class="verbatim" id="verbatim-42">
|
||||
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
|
||||
</div>
|
||||
<!--l. 728--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu42.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-66">
|
||||
<div class="verbatim" id="verbatim-43">
|
||||
call psb_spfree(a, desc_a, info)
|
||||
</div>
|
||||
<!--l. 836--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu43.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-67">
|
||||
<div class="verbatim" id="verbatim-44">
|
||||
call psb_sprn(a, decsc_a, info, clear)
|
||||
</div>
|
||||
<!--l. 873--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu44.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-68">
|
||||
<div class="verbatim" id="verbatim-45">
|
||||
call psb_geall(x, desc_a, info, n, lb)
|
||||
</div>
|
||||
<!--l. 961--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu45.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-69">
|
||||
<div class="verbatim" id="verbatim-46">
|
||||
call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
|
||||
</div>
|
||||
<!--l. 1009--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu46.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-70">
|
||||
<div class="verbatim" id="verbatim-47">
|
||||
call psb_geasb(x, desc_a, info, mold)
|
||||
</div>
|
||||
<!--l. 1082--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu47.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-71">
|
||||
<div class="verbatim" id="verbatim-48">
|
||||
call psb_gefree(x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 1122--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu48.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-72">
|
||||
<div class="verbatim" id="verbatim-49">
|
||||
call psb_gelp(trans, iperm, x, info)
|
||||
</div>
|
||||
<!--l. 1161--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu49.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-73">
|
||||
<div class="verbatim" id="verbatim-50">
|
||||
call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
|
||||
 <br />call psb_glob_to_loc(x, desc_a, info, iact,owned)
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu50.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-74">
|
||||
<div class="verbatim" id="verbatim-51">
|
||||
call psb_loc_to_glob(x, y, desc_a, info, iact)
|
||||
 <br />call psb_loc_to_glob(x, desc_a, info, iact)
|
||||
</div>
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu51.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-75">
|
||||
<div class="verbatim" id="verbatim-52">
|
||||
call psb_is_owned(x, desc_a)
|
||||
</div>
|
||||
<!--l. 1326--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu52.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-76">
|
||||
<div class="verbatim" id="verbatim-53">
|
||||
call psb_owned_index(y, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 1366--><p class="nopar" >
|
||||
|
||||
@@ -28,16 +28,16 @@ class="cmtt-10">_type</span></a>. Every structure of this
|
||||
type is associated with a discretization pattern and enables data communications and
|
||||
other operations that are necessary for implementing the various algorithms of
|
||||
interest to us.
|
||||
<!--l. 57--><p class="indent" > The data structure itself <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_desc_type</span></span></span> can be treated as an opaque object
|
||||
<!--l. 57--><p class="indent" > The data structure itself <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_desc_type</span> can be treated as an opaque object
|
||||
handled via the tools routines of Sec. <a
|
||||
href="userhtmlse6.html#x40-770006">6<!--tex4ht:ref: sec:toolsrout --></a> or the query routines detailed below;
|
||||
nevertheless we include here a description for the curious reader.
|
||||
<!--l. 63--><p class="indent" > First we describe the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_indx_map</span></span></span> type. This is a data structure that keeps
|
||||
<!--l. 63--><p class="indent" > First we describe the <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_indx_map</span> type. This is a data structure that keeps
|
||||
track of a certain number of basic issues such as:
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">The value of the communication/MPI context;
|
||||
<li class="itemize">The value of the communication context;
|
||||
</li>
|
||||
<li class="itemize">The number of indices in the index space, i.e. global number of rows and
|
||||
columns of a sparse matrix;
|
||||
@@ -168,13 +168,17 @@ class="cmbx-10">bnd</span><span
|
||||
class="cmbx-10">_elem</span> </dt><dd
|
||||
class="description">A list of all boundary points, i.e. points that have a connection with
|
||||
other processes.</dd></dl>
|
||||
<!--l. 145--><p class="noindent" >The Fortran 2003 declaration for <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_desc_type</span></span></span> structures is as follows: <hr class="figure"><div class="figure"
|
||||
><a
|
||||
id="x13-100273"></a>
|
||||
<!--l. 145--><p class="noindent" >The Fortran 2003 declaration for <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_desc_type</span> structures is as follows:
|
||||
<!--l. 147--><p class="indent" > <a
|
||||
id="x13-10027r1"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 149--><p class="noindent" >
|
||||
<!--l. 162--><p class="noindent" >
|
||||
<div class="minipage"><div class="verbatim" id="verbatim-1">
|
||||
type psb_desc_type
|
||||
 <br />    class(psb_indx_map), allocatable :: indxmap
|
||||
@@ -186,13 +190,16 @@ type psb_desc_type
|
||||
 <br />    integer, allocatable  :: bnd_elem(:)
|
||||
 <br />end type psb_desc_type
|
||||
</div>
|
||||
<!--l. 161--><p class="nopar" ></div></div>
|
||||
<!--l. 174--><p class="nopar" ></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 3: </span><span
|
||||
><span class="id">Listing 1: </span><span
|
||||
class="content">The PSBLAS defined data type that contains the communication
|
||||
descriptor.</span></div><!--tex4ht:label?: x13-100273 -->
|
||||
<!--l. 171--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 172--><p class="indent" > A communication descriptor associated with a sparse matrix has a state, which
|
||||
descriptor.</span></div><!--tex4ht:label?: x13-10027r1 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
<!--l. 186--><p class="indent" > A communication descriptor associated with a sparse matrix has a state, which
|
||||
can take the following values:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
@@ -200,19 +207,15 @@ class="cmbx-10">Build:</span> </dt><dd
|
||||
class="description">State entered after the first allocation, and before the first assembly; in
|
||||
this state it is possible to add communication requirements among different
|
||||
processes.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Assembled:</span> </dt><dd
|
||||
class="description">State entered after the assembly; computations using the
|
||||
associated sparse matrix, such as matrix-vector products, are only possible
|
||||
in this state.</dd></dl>
|
||||
<!--l. 183--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.1 </span> <a
|
||||
id="x13-110003.1.1"></a>Descriptor Methods</h5>
|
||||
<!--l. 185--><p class="noindent" >
|
||||
<!--l. 199--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.2 </span> <a
|
||||
id="x13-120003.1.2"></a>get_local_rows — Get number of local rows</h5>
|
||||
|
||||
@@ -221,8 +224,8 @@ class="description">State entered after the assembly; computations using
|
||||
<div class="verbatim" id="verbatim-2">
|
||||
nr = desc%get_local_rows()
|
||||
</div>
|
||||
<!--l. 189--><p class="nopar" >
|
||||
<!--l. 191--><p class="indent" >
|
||||
<!--l. 203--><p class="nopar" >
|
||||
<!--l. 205--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -238,7 +241,7 @@ class="description">the communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 201--><p class="indent" >
|
||||
<!--l. 215--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -258,7 +261,7 @@ src="cmsy10-42.png" alt="B" class="10x-x-42" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">|</span>. The returned
|
||||
value is specific to the calling process.</dd></dl>
|
||||
<!--l. 210--><p class="noindent" >
|
||||
<!--l. 224--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.3 </span> <a
|
||||
id="x13-130003.1.3"></a>get_local_cols — Get number of local cols</h5>
|
||||
|
||||
@@ -267,8 +270,8 @@ class="cmsy-10">|</span>. The returned
|
||||
<div class="verbatim" id="verbatim-3">
|
||||
nc = desc%get_local_cols()
|
||||
</div>
|
||||
<!--l. 214--><p class="nopar" >
|
||||
<!--l. 216--><p class="indent" >
|
||||
<!--l. 228--><p class="nopar" >
|
||||
<!--l. 230--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -284,7 +287,7 @@ class="description">the communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 226--><p class="indent" >
|
||||
<!--l. 240--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -309,7 +312,7 @@ src="cmsy10-48.png" alt="H" class="10x-x-48" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">|</span>. The returned value is specific to the
|
||||
calling process.</dd></dl>
|
||||
<!--l. 236--><p class="noindent" >
|
||||
<!--l. 250--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.4 </span> <a
|
||||
id="x13-140003.1.4"></a>get_global_rows — Get number of global rows</h5>
|
||||
|
||||
@@ -318,8 +321,8 @@ class="cmsy-10">|</span>. The returned value is specific to the
|
||||
<div class="verbatim" id="verbatim-4">
|
||||
nr = desc%get_global_rows()
|
||||
</div>
|
||||
<!--l. 240--><p class="nopar" >
|
||||
<!--l. 242--><p class="indent" >
|
||||
<!--l. 254--><p class="nopar" >
|
||||
<!--l. 256--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -335,7 +338,7 @@ class="description">the communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 252--><p class="indent" >
|
||||
<!--l. 266--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -345,7 +348,7 @@ class="description">
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">The number of global rows, i.e. the size of the global index
|
||||
space.</dd></dl>
|
||||
<!--l. 258--><p class="noindent" >
|
||||
<!--l. 272--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.5 </span> <a
|
||||
id="x13-150003.1.5"></a>get_global_cols — Get number of global cols</h5>
|
||||
|
||||
@@ -354,8 +357,8 @@ class="description">The number of global rows, i.e. the size of the global index
|
||||
<div class="verbatim" id="verbatim-5">
|
||||
nr = desc%get_global_cols()
|
||||
</div>
|
||||
<!--l. 262--><p class="nopar" >
|
||||
<!--l. 264--><p class="indent" >
|
||||
<!--l. 276--><p class="nopar" >
|
||||
<!--l. 278--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -371,7 +374,7 @@ class="description">the communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 274--><p class="indent" >
|
||||
<!--l. 288--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -381,7 +384,7 @@ class="description">
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">The number of global cols; usually this is equal to the number
|
||||
of global rows.</dd></dl>
|
||||
<!--l. 281--><p class="noindent" >
|
||||
<!--l. 295--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.6 </span> <a
|
||||
id="x13-160003.1.6"></a>get_global_indices — Get vector of global indices</h5>
|
||||
|
||||
@@ -390,8 +393,8 @@ class="description">The number of global cols; usually this is equal to the numb
|
||||
<div class="verbatim" id="verbatim-6">
|
||||
myidx = desc%get_global_indices([owned])
|
||||
</div>
|
||||
<!--l. 285--><p class="nopar" >
|
||||
<!--l. 287--><p class="indent" >
|
||||
<!--l. 299--><p class="nopar" >
|
||||
<!--l. 301--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -412,16 +415,24 @@ class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">owned</span> </dt><dd
|
||||
class="description">Choose if you only want owned indices (<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">owned=.true.</span></span></span>) or also halo
|
||||
indices (<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">owned=.false.</span></span></span>). Scope: <span
|
||||
class="description">Choose if you only want owned indices (<span class="lstinline"></span><span
|
||||
class="cmtt-10">owned</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span>) or also halo
|
||||
indices (<span class="lstinline"></span><span
|
||||
class="cmtt-10">owned</span><span
|
||||
class="cmtt-10">=.</span><span
|
||||
class="cmtt-10">false</span><span
|
||||
class="cmtt-10">.</span>). Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>; default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span>.<br
|
||||
class="cmbx-10">optional</span>; default: <span class="lstinline"></span><span
|
||||
class="cmtt-10">.</span><span
|
||||
class="cmtt-10">true</span><span
|
||||
class="cmtt-10">.</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 301--><p class="indent" >
|
||||
<!--l. 315--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -430,19 +441,19 @@ class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">The global indices, returned as an allocatable integer array of
|
||||
kind <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_lpk_</span></span></span> and rank 1.</dd></dl>
|
||||
<!--l. 309--><p class="noindent" >
|
||||
kind <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_lpk_</span> and rank 1.</dd></dl>
|
||||
<!--l. 323--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.7 </span> <a
|
||||
id="x13-170003.1.7"></a>get_context — Get communication context</h5>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-7">
|
||||
ictxt = desc%get_context()
|
||||
ctxt = desc%get_context()
|
||||
</div>
|
||||
<!--l. 313--><p class="nopar" >
|
||||
<!--l. 315--><p class="indent" >
|
||||
<!--l. 327--><p class="nopar" >
|
||||
<!--l. 329--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -458,7 +469,7 @@ class="description">the communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 325--><p class="indent" >
|
||||
<!--l. 339--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -467,7 +478,7 @@ class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">The communication context.</dd></dl>
|
||||
<!--l. 330--><p class="noindent" >
|
||||
<!--l. 344--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.8 </span> <a
|
||||
id="x13-180003.1.8"></a>Clone — clone current object</h5>
|
||||
|
||||
@@ -476,8 +487,8 @@ class="description">The communication context.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-8">
|
||||
call  desc%clone(descout,info)
|
||||
</div>
|
||||
<!--l. 334--><p class="nopar" >
|
||||
<!--l. 336--><p class="indent" >
|
||||
<!--l. 348--><p class="nopar" >
|
||||
<!--l. 350--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -493,7 +504,7 @@ class="description">the communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 346--><p class="indent" >
|
||||
<!--l. 360--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -506,7 +517,7 @@ class="description">A copy of the input object.
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Return code.</dd></dl>
|
||||
<!--l. 353--><p class="noindent" >
|
||||
<!--l. 367--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.9 </span> <a
|
||||
id="x13-190003.1.9"></a>CNV — convert internal storage format</h5>
|
||||
|
||||
@@ -515,8 +526,8 @@ class="description">Return code.</dd></dl>
|
||||
<div class="verbatim" id="verbatim-9">
|
||||
call  desc%cnv(mold)
|
||||
</div>
|
||||
<!--l. 357--><p class="nopar" >
|
||||
<!--l. 359--><p class="indent" >
|
||||
<!--l. 371--><p class="nopar" >
|
||||
<!--l. 373--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -546,10 +557,10 @@ class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_base</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 370--><p class="noindent" >The <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">mold</span></span></span> arguments may be employed to interface with special devices, such as GPUs
|
||||
<!--l. 384--><p class="noindent" >The <span class="lstinline"></span><span
|
||||
class="cmtt-10">mold</span> arguments may be employed to interface with special devices, such as GPUs
|
||||
and other accelerators.
|
||||
<!--l. 377--><p class="noindent" >
|
||||
<!--l. 391--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.10 </span> <a
|
||||
id="x13-200003.1.10"></a>psb_cd_get_large_threshold — Get threshold for index mapping
|
||||
switch</h5>
|
||||
@@ -559,8 +570,8 @@ switch</h5>
|
||||
<div class="verbatim" id="verbatim-10">
|
||||
ith = psb_cd_get_large_threshold()
|
||||
</div>
|
||||
<!--l. 381--><p class="nopar" >
|
||||
<!--l. 383--><p class="indent" >
|
||||
<!--l. 395--><p class="nopar" >
|
||||
<!--l. 397--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -574,7 +585,7 @@ class="description">
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">The current value for the size threshold.
|
||||
</dd></dl>
|
||||
<!--l. 393--><p class="noindent" >
|
||||
<!--l. 407--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.11 </span> <a
|
||||
id="x13-210003.1.11"></a>psb_cd_set_large_threshold — Set threshold for index mapping
|
||||
switch</h5>
|
||||
@@ -584,8 +595,8 @@ switch</h5>
|
||||
<div class="verbatim" id="verbatim-11">
|
||||
call psb_cd_set_large_threshold(ith)
|
||||
</div>
|
||||
<!--l. 398--><p class="nopar" >
|
||||
<!--l. 400--><p class="indent" >
|
||||
<!--l. 412--><p class="nopar" >
|
||||
<!--l. 414--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -605,12 +616,12 @@ class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value greater than zero.</dd></dl>
|
||||
<!--l. 409--><p class="noindent" >Note: the threshold value is only queried by the library at the time a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdall</span></span></span>
|
||||
<!--l. 423--><p class="noindent" >Note: the threshold value is only queried by the library at the time a call to <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_cdall</span>
|
||||
is executed, therefore changing the threshold has no effect on communication
|
||||
descriptors that have already been initialized. Moreover the threshold must have the
|
||||
same value on all processes.
|
||||
<!--l. 416--><p class="noindent" >
|
||||
<!--l. 430--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.12 </span> <a
|
||||
id="x13-220003.1.12"></a>get_p_adjcncy — Get process adjacency list</h5>
|
||||
|
||||
@@ -619,8 +630,8 @@ same value on all processes.
|
||||
<div class="verbatim" id="verbatim-12">
|
||||
list =  desc%get_p_adjcncy()
|
||||
</div>
|
||||
<!--l. 421--><p class="nopar" >
|
||||
<!--l. 423--><p class="indent" >
|
||||
<!--l. 435--><p class="nopar" >
|
||||
<!--l. 437--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -635,7 +646,7 @@ class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">The current list of adjacent processes, i.e. processes with
|
||||
which the current one has to exchange halo data.
|
||||
</dd></dl>
|
||||
<!--l. 432--><p class="noindent" >
|
||||
<!--l. 446--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.13 </span> <a
|
||||
id="x13-230003.1.13"></a>set_p_adjcncy — Set process adjacency list</h5>
|
||||
|
||||
@@ -644,8 +655,8 @@ class="description">The current list of adjacent processes, i.e. processe
|
||||
<div class="verbatim" id="verbatim-13">
|
||||
call desc%set_p_adjcncy(list)
|
||||
</div>
|
||||
<!--l. 437--><p class="nopar" >
|
||||
<!--l. 439--><p class="indent" >
|
||||
<!--l. 451--><p class="nopar" >
|
||||
<!--l. 453--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -664,16 +675,16 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ipk_</span></span></span>.</dd></dl>
|
||||
<!--l. 448--><p class="noindent" >Note: this method can be called after a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdall</span></span></span> and before a call to
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span>. The user is specifying here some knowledge about which processes are
|
||||
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_ipk_</span>.</dd></dl>
|
||||
<!--l. 462--><p class="noindent" >Note: this method can be called after a call to <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_cdall</span> and before a call to
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_cdasb</span>. The user is specifying here some knowledge about which processes are
|
||||
topological neighbours of the current process. The availability of this information
|
||||
may speed up the execution of the assembly call <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span>.
|
||||
<!--l. 455--><p class="noindent" >
|
||||
may speed up the execution of the assembly call <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_cdasb</span>.
|
||||
<!--l. 469--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.14 </span> <a
|
||||
id="x13-240003.1.14"></a>fnd_owner — Find the owner process of a set of indices</h5>
|
||||
|
||||
@@ -682,8 +693,8 @@ class="cmtt-10">psb_cdasb</span></span></span>.
|
||||
<div class="verbatim" id="verbatim-14">
|
||||
call desc%fnd_owner(idx,iprc,info)
|
||||
</div>
|
||||
<!--l. 460--><p class="nopar" >
|
||||
<!--l. 462--><p class="indent" >
|
||||
<!--l. 474--><p class="nopar" >
|
||||
<!--l. 476--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
@@ -702,8 +713,8 @@ class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_lpk_</span></span></span>.
|
||||
class="newline" />Specified as: a one-dimensional array of integers of kind <span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_lpk_</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
@@ -711,8 +722,8 @@ class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">iprc</span> </dt><dd
|
||||
class="description">the list of processes owning the indices in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">idx</span></span></span>.<br
|
||||
class="description">the list of processes owning the indices in <span class="lstinline"></span><span
|
||||
class="cmtt-10">idx</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
@@ -720,16 +731,16 @@ class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an allocatable one-dimensional array of integers of kind
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ipk_</span></span></span>.</dd></dl>
|
||||
<!--l. 477--><p class="noindent" >Note: this method may or may not actually require communications, depending on the
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10">psb_ipk_</span>.</dd></dl>
|
||||
<!--l. 491--><p class="noindent" >Note: this method may or may not actually require communications, depending on the
|
||||
exact internal data storage; given that the choice of storage may be altered by
|
||||
runtime parameters, it is necessary for safety that this method is called by all
|
||||
processes.
|
||||
<!--l. 485--><p class="noindent" >
|
||||
<!--l. 499--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">3.1.15 </span> <a
|
||||
id="x13-250003.1.15"></a>Named Constants</h5>
|
||||
<!--l. 487--><p class="noindent" >
|
||||
<!--l. 501--><p class="noindent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
@@ -775,40 +786,40 @@ class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_comm</span><span
|
||||
class="cmbx-10">_halo</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">halo_index</span></span></span> list;
|
||||
class="description">Exchange data based on the <span class="lstinline"></span><span
|
||||
class="cmtt-10">halo_index</span> list;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_comm</span><span
|
||||
class="cmbx-10">_ext</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ext_index</span></span></span> list;
|
||||
class="description">Exchange data based on the <span class="lstinline"></span><span
|
||||
class="cmtt-10">ext_index</span> list;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_comm</span><span
|
||||
class="cmbx-10">_ovr</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ovrlap_index</span></span></span> list;
|
||||
class="description">Exchange data based on the <span class="lstinline"></span><span
|
||||
class="cmtt-10">ovrlap_index</span> list;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_comm</span><span
|
||||
class="cmbx-10">_mov</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Exchange data based on the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ovr_mst_idx</span></span></span> list;
|
||||
class="description">Exchange data based on the <span class="lstinline"></span><span
|
||||
class="cmtt-10">ovr_mst_idx</span> list;
|
||||
</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 520--><div class="crosslinks"><p class="noindent">[<a
|
||||
<!--l. 534--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu9.html" >next</a>] [<a
|
||||
href="userhtmlsu5.html" >front</a>] [<a
|
||||
href="userhtmlsu7.html#userhtmlsu8.html" >up</a>] </p></div>
|
||||
<!--l. 520--><p class="indent" > <a
|
||||
<!--l. 534--><p class="indent" > <a
|
||||
id="tailuserhtmlsu5.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu53.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-77">
|
||||
<div class="verbatim" id="verbatim-54">
|
||||
call psb_is_local(x, desc_a)
|
||||
</div>
|
||||
<!--l. 1418--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu54.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-78">
|
||||
<div class="verbatim" id="verbatim-55">
|
||||
call psb_local_index(y, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 1457--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu55.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-79">
|
||||
<div class="verbatim" id="verbatim-56">
|
||||
call psb_get_boundary(bndel, desc, info)
|
||||
</div>
|
||||
<!--l. 1514--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlsu56.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-80">
|
||||
<div class="verbatim" id="verbatim-57">
|
||||
call psb_get_overlap(ovrel, desc, info)
|
||||
</div>
|
||||
<!--l. 1557--><p class="nopar" >
|
||||
|
||||
@@ -21,7 +21,7 @@ href="userhtmlsu32.html#userhtmlse7.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-81">
|
||||
<div class="verbatim" id="verbatim-58">
|
||||
call psb_sp_getrow(row, a, nz, ia, ja, val, info, &
|
||||
 <br />              & append, nzin, lrw)
|
||||
</div>
|
||||
|
||||
@@ -22,7 +22,7 @@ href="userhtmlsu32.html#userhtmlsu57.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-82">
|
||||
<div class="verbatim" id="verbatim-59">
|
||||
isz = psb_sizeof(a)
|
||||
 <br />isz = psb_sizeof(desc_a)
|
||||
 <br />isz = psb_sizeof(prec)
|
||||
|
||||
@@ -29,7 +29,7 @@ class="cmbx-12">_hsort — Sorting by the Heapsort algorithm</span>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-83">
|
||||
<div class="verbatim" id="verbatim-60">
|
||||
call psb_msort(x,ix,dir,flag)
|
||||
 <br />call psb_qsort(x,ix,dir,flag)
|
||||
 <br />call psb_hsort(x,ix,dir,flag)
|
||||
|
||||
@@ -19,8 +19,8 @@ href="userhtmlsu59.html#userhtmlsu60.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-84">
|
||||
call psb_init(icontxt, np, basectxt, ids)
|
||||
<div class="verbatim" id="verbatim-61">
|
||||
call psb_init(ctxt, np, basectxt, ids)
|
||||
</div>
|
||||
<!--l. 11--><p class="nopar" >
|
||||
<!--l. 13--><p class="indent" > This subroutine initializes the PSBLAS parallel environment, defining a virtual
|
||||
@@ -80,12 +80,13 @@ class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">icontxt</span> </dt><dd
|
||||
class="description">the communication context identifying the virtual parallel machine.
|
||||
Note that this is always a duplicate of <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">basectxt</span></span></span>, so that library
|
||||
communications are completely separated from other communication
|
||||
operations.<br
|
||||
class="cmbx-10">ctxt</span> </dt><dd
|
||||
class="description">the communication context identifying the virtual parallel machine, type
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ctxt_type</span></span></span>. Note that this is always a duplicate of <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">basectxt</span></span></span>,
|
||||
so that library communications are completely separated from other
|
||||
communication operations.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type: <span
|
||||
|
||||
@@ -21,8 +21,8 @@ href="userhtmlsu59.html#userhtmlsu61.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-85">
|
||||
call psb_info(icontxt, iam, np)
|
||||
<div class="verbatim" id="verbatim-62">
|
||||
call psb_info(ctxt, iam, np)
|
||||
</div>
|
||||
<!--l. 69--><p class="nopar" >
|
||||
<!--l. 71--><p class="indent" > This subroutine returns information about the PSBLAS parallel environment,
|
||||
@@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">icontxt</span> </dt><dd
|
||||
class="cmbx-10">ctxt</span> </dt><dd
|
||||
class="description">the communication context identifying the virtual parallel machine.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
@@ -98,8 +98,8 @@ class="cmtt-10">psb_init</span></span></span> a number of processes less than
|
||||
processes will have on return <span
|
||||
class="cmmi-10">iam </span>= <span
|
||||
class="cmsy-10">-</span>1; the only call involving <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">icontxt</span></span></span>
|
||||
that any such process may execute is to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ctxt</span></span></span> that
|
||||
any such process may execute is to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_exit</span></span></span>.</li></ol>
|
||||
|
||||
|
||||
|
||||
@@ -21,9 +21,9 @@ href="userhtmlsu59.html#userhtmlsu62.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-86">
|
||||
call psb_exit(icontxt)
|
||||
 <br />call psb_exit(icontxt,close)
|
||||
<div class="verbatim" id="verbatim-63">
|
||||
call psb_exit(ctxt)
|
||||
 <br />call psb_exit(ctxt,close)
|
||||
</div>
|
||||
<!--l. 117--><p class="nopar" >
|
||||
<!--l. 119--><p class="indent" > This subroutine exits from the PSBLAS parallel virtual machine.
|
||||
@@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">icontxt</span> </dt><dd
|
||||
class="cmbx-10">ctxt</span> </dt><dd
|
||||
class="description">the communication context identifying the virtual parallel machine.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
@@ -50,7 +50,7 @@ class="newline" />Specified as: an integer variable.
|
||||
<span
|
||||
class="cmbx-10">close</span> </dt><dd
|
||||
class="description">Whether to close all data structures related to the virtual parallel
|
||||
machine, besides those associated with icontxt.<br
|
||||
machine, besides those associated with ctxt.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type: <span
|
||||
@@ -68,7 +68,7 @@ class="cmtt-10">psb_info</span></span></span> has returned
|
||||
class="cmmi-10">iam </span>= <span
|
||||
class="cmsy-10">-</span>1; indeed, it it is the only routine that may be called with
|
||||
argument <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">icontxt</span></span></span> in this situation.
|
||||
class="cmtt-10">ctxt</span></span></span> in this situation.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x71-108004x2">A call to this routine with <span class="obeylines-h"><span class="verb"><span
|
||||
|
||||
@@ -21,8 +21,8 @@ href="userhtmlsu59.html#userhtmlsu63.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-87">
|
||||
icomm = psb_get_mpi_comm(icontxt)
|
||||
<div class="verbatim" id="verbatim-64">
|
||||
icomm = psb_get_mpi_comm(ctxt)
|
||||
</div>
|
||||
<!--l. 158--><p class="nopar" >
|
||||
<!--l. 160--><p class="indent" > This function returns the MPI communicator associated with a PSBLAS
|
||||
@@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">icontxt</span> </dt><dd
|
||||
class="cmbx-10">ctxt</span> </dt><dd
|
||||
class="description">the communication context identifying the virtual parallel machine.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
|
||||
@@ -21,8 +21,8 @@ href="userhtmlsu59.html#userhtmlsu64.html" >up</a>] </p></div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-88">
|
||||
rank = psb_get_mpi_rank(icontxt, id)
|
||||
<div class="verbatim" id="verbatim-65">
|
||||
rank = psb_get_mpi_rank(ctxt, id)
|
||||
</div>
|
||||
<!--l. 188--><p class="nopar" >
|
||||
<!--l. 190--><p class="indent" > This function returns the MPI rank of the PSBLAS process <span
|
||||
@@ -37,7 +37,7 @@ class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">icontxt</span> </dt><dd
|
||||
class="cmbx-10">ctxt</span> </dt><dd
|
||||
class="description">the communication context identifying the virtual parallel machine.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
|
||||