You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psblas3/docs/html/userhtmlse4.html

3688 lines
174 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Computational routines</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse8.html" >next</a>] [<a
href="userhtmlse3.html" >prev</a>] [<a
href="userhtmlse3.html#tailuserhtmlse3.html" >prev-tail</a>] [<a
href="#tailuserhtmlse4.html">tail</a>] [<a
href="userhtml.html#userhtmlse7.html" >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">4 </span> <a
id="x9-550004"></a>Computational routines</h3>
<h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a
id="x9-560004.1"></a>psb_geaxpby &#8212; General Dense Matrix Sum</h4>
<!--l. 10--><p class="noindent" >This subroutine is an interface to the computational kernel for dense matrix
sum:
<div class="math-display" >
<img
src="userhtml1x.png" alt="y &#x2190; &#x03B1; x+ &#x03B2;y
" class="math-display" ></div>
<!--l. 12--><p class="nopar" >
<!--l. 19--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_geaxpby</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 23--><p class="indent" > <a
id="x9-56001r1"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 24--><p class="noindent" >
<div class="tabular"> <table id="TBL-1" class="tabular"
><colgroup id="TBL-1-1g"><col
id="TBL-1-1"><col
id="TBL-1-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1"
class="td11"><span
class="cmmi-10">x</span>, <span
class="cmmi-10">y</span>, <span
class="cmmi-10">&#x03B1;</span>, <span
class="cmmi-10">&#x03B2; </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-2"
class="td11"><span
class="cmbx-10">Subroutine</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-2"
class="td11">psb_geaxpby</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-2"
class="td11">psb_geaxpby</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-2"
class="td11">psb_geaxpby</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-2"
class="td11">psb_geaxpby</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;1: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-56001r1 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 40--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 40--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 41--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 41--><p class="noindent" >
</dd><dt class="description">
<!--l. 42--><p class="noindent" >
<span
class="cmbx-10">alpha</span> </dt><dd
class="description">
<!--l. 42--><p class="noindent" >the scalar <span
class="cmmi-10">&#x03B1;</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
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 number of the data type indicated in Table&#x00A0;<a
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
</dd><dt class="description">
<!--l. 45--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 45--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 53--><p class="noindent" >
<span
class="cmbx-10">beta</span> </dt><dd
class="description">
<!--l. 53--><p class="noindent" >the scalar <span
class="cmmi-10">&#x03B2;</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
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 number of the data type indicated in Table&#x00A0;<a
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
</dd><dt class="description">
<!--l. 58--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 58--><p class="noindent" >the local portion of the global dense matrix <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of the type indicated in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 65--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 65--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd></dl>
<dl class="description"><dt class="description">
<!--l. 91--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 91--><p class="noindent" >
</dd><dt class="description">
<!--l. 92--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 92--><p class="noindent" >the local portion of result submatrix <span
class="cmmi-10">y</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of the type indicated in Table&#x00A0;<a
href="#x9-56001r1">1<!--tex4ht:ref: tab:f90axpby --></a>.
</dd><dt class="description">
<!--l. 98--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 98--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
id="x9-570004.2"></a>psb_gedot &#8212; Dot Product</h4>
<!--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
class="cmmi-10">x </span>and <span
class="cmmi-10">y </span>are real vectors it computes dot-product as:
<div class="math-display" >
<img
src="userhtml2x.png" alt="dot &#x2190; xTy
" class="math-display" ></div>
<!--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:
<div class="math-display" >
<img
src="userhtml3x.png" alt="dot &#x2190; xHy
" class="math-display" ></div>
<!--l. 119--><p class="nopar" >
<!--l. 126--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_gedot</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code> <div class="table">
<!--l. 128--><p class="indent" > <a
id="x9-57001r2"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 129--><p class="noindent" >
<div class="tabular"> <table id="TBL-2" class="tabular"
><colgroup id="TBL-2-1g"><col
id="TBL-2-1"><col
id="TBL-2-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1"
class="td11"><span
class="cmmi-10">dot</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-2"
class="td11"><span
class="cmbx-10">Function</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-2"
class="td11">psb_gedot</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-2"
class="td11">psb_gedot</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-2"
class="td11">psb_gedot</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-2"
class="td11">psb_gedot</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;2: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-57001r2 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 145--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 145--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 146--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 146--><p class="noindent" >
</dd><dt class="description">
<!--l. 147--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 147--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 157--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 157--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 167--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 167--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 172--><p class="noindent" >
<span
class="cmbx-10">global</span> </dt><dd
class="description">
<!--l. 172--><p class="noindent" >Specifies whether the computation should include the global reduction
across all processes.<br
class="newline" />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" />Specified as: a logical scalar. Default: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
class="newline" />
</dd><dt class="description">
<!--l. 191--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 191--><p class="noindent" >
</dd><dt class="description">
<!--l. 192--><p class="noindent" >
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">
<!--l. 192--><p class="noindent" >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 <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
specified<br
class="newline" />Specified as: a number of the data type indicated in Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 196--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 196--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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. 203--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x9-57003x1">
<!--l. 205--><p class="noindent" >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 dot products at the same time; in this case, it is
possible to improve the runtime efficiency by using the following scheme:
<!--l. 218-->
<pre class="lstlisting" id="listing-103"><span class="label"><a
id="x9-57004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_gedot</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x1</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">y1</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-57005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_gedot</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x2</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">y2</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-57006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_gedot</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x3</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">y3</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-57007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_sum</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1:3))</span></span></pre>
<!--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>
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
id="x9-580004.3"></a>psb_gedots &#8212; Generalized Dot Product</h4>
<!--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>:
<div class="math-display" >
<img
src="userhtml4x.png" alt="res(i) &#x2190; x(:,i)Ty(:,i)
" class="math-display" ></div>
<!--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" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_gedots</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 247--><p class="indent" > <a
id="x9-58001r3"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 248--><p class="noindent" >
<div class="tabular"> <table id="TBL-3" class="tabular"
><colgroup id="TBL-3-1g"><col
id="TBL-3-1"><col
id="TBL-3-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
class="td11"><span
class="cmmi-10">res</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2"
class="td11"><span
class="cmbx-10">Subroutine</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2"
class="td11">psb_gedots </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2"
class="td11">psb_gedots </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-2"
class="td11">psb_gedots </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-2"
class="td11">psb_gedots </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-3-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;3: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-58001r3 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 264--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 264--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 265--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 265--><p class="noindent" >
</dd><dt class="description">
<!--l. 266--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 266--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 274--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 274--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 282--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 282--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 287--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 287--><p class="noindent" >
</dd><dt class="description">
<!--l. 288--><p class="noindent" >
<span
class="cmbx-10">res</span> </dt><dd
class="description">
<!--l. 288--><p class="noindent" >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><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Specified as: a number or a rank-one array of the data type indicated in
Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 293--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 293--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
id="x9-590004.4"></a>psb_normi &#8212; Infinity-Norm of Vector</h4>
<!--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:
<div class="math-display" >
<img
src="userhtml5x.png" alt="amax &#x2190; max |xi|
i
" class="math-display" ></div>
<!--l. 313--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes the infinity-norm as:
<div class="math-display" >
<img
src="userhtml6x.png" alt="amax &#x2190; maxi (|re(xi)|+ |im(xi)|)
" class="math-display" ></div>
<!--l. 315--><p class="nopar" >
<!--l. 321--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_geamax</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br
class="newline" /><code class="lstinline"><span style="color:#000000">psb_normi</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code>
<div class="table">
<!--l. 325--><p class="indent" > <a
id="x9-59001r4"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 326--><p class="noindent" >
<div class="tabular"> <table id="TBL-4" class="tabular"
><colgroup id="TBL-4-1g"><col
id="TBL-4-1"><col
id="TBL-4-2"><col
id="TBL-4-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
class="td11"><span
class="cmmi-10">amax </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
class="td11"><span
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-3"
class="td11"><span
class="cmbx-10">Function </span></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-3"
class="td11">psb_geamax</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-3"
class="td11">psb_geamax</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-2"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-3"
class="td11">psb_geamax</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-4-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-2"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-3"
class="td11">psb_geamax</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;4: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-59001r4 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 343--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 343--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 344--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 344--><p class="noindent" >
</dd><dt class="description">
<!--l. 345--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 345--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-59001r4">4<!--tex4ht:ref: tab:f90amax --></a>.
</dd><dt class="description">
<!--l. 355--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 355--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 360--><p class="noindent" >
<span
class="cmbx-10">global</span> </dt><dd
class="description">
<!--l. 360--><p class="noindent" >Specifies whether the computation should include the global reduction
across all processes.<br
class="newline" />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" />Specified as: a logical scalar. Default: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
class="newline" />
</dd><dt class="description">
<!--l. 373--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 373--><p class="noindent" >
</dd><dt class="description">
<!--l. 374--><p class="noindent" >
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">
<!--l. 374--><p class="noindent" >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 <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
specified<br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
<!--l. 378--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 378--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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. 385--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x9-59003x1">
<!--l. 387--><p class="noindent" >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. 400-->
<pre class="lstlisting" id="listing-109"><span class="label"><a
id="x9-59004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_geamax</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x1</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-59005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_geamax</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x2</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-59006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_geamax</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x3</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-59007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_amx</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1:3))</span></span></pre>
<!--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>
<h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
id="x9-600004.5"></a>psb_geamaxs &#8212; Generalized Infinity Norm</h4>
<!--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>:
<div class="math-display" >
<img
src="userhtml7x.png" alt="res(i) &#x2190; max|x(k,i)|
k
" class="math-display" ></div>
<!--l. 421--><p class="nopar" >
<!--l. 423--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_geamaxs</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 425--><p class="indent" > <a
id="x9-60001r5"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 426--><p class="noindent" >
<div class="tabular"> <table id="TBL-5" class="tabular"
><colgroup id="TBL-5-1g"><col
id="TBL-5-1"><col
id="TBL-5-2"><col
id="TBL-5-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1"
class="td11"><span
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-2"
class="td11"><span
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-3"
class="td11"><span
class="cmbx-10">Subroutine </span></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-2"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-3"
class="td11">psb_geamaxs</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-2"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-3"
class="td11">psb_geamaxs</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-2"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-3"
class="td11">psb_geamaxs</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-2"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-3"
class="td11">psb_geamaxs</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;5: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-60001r5 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 442--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 442--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 443--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 443--><p class="noindent" >
</dd><dt class="description">
<!--l. 444--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 444--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-60001r5">5<!--tex4ht:ref: tab:f90mamax --></a>.
</dd><dt class="description">
<!--l. 452--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 452--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 457--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 457--><p class="noindent" >
</dd><dt class="description">
<!--l. 458--><p class="noindent" >
<span
class="cmbx-10">res</span> </dt><dd
class="description">
<!--l. 458--><p class="noindent" >is the infinity norm of the columns of <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Specified as: a number or a rank-one array of long precision real numbers.
</dd><dt class="description">
<!--l. 462--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 462--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
id="x9-610004.6"></a>psb_norm1 &#8212; 1-Norm of Vector</h4>
<!--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:
<div class="math-display" >
<img
src="userhtml8x.png" alt="asum &#x2190; &#x2225;xi&#x2225;
" class="math-display" ></div>
<!--l. 481--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
<div class="math-display" >
<img
src="userhtml9x.png" alt="asum &#x2190; &#x2225;re(x)&#x2225;1 + &#x2225;im (x)&#x2225;1
" class="math-display" ></div>
<!--l. 483--><p class="nopar" >
<!--l. 486--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_geasum</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code> <code class="lstinline"><span style="color:#000000">psb_norm1</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code>
<div class="table">
<!--l. 489--><p class="indent" > <a
id="x9-61001r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 490--><p class="noindent" >
<div class="tabular"> <table id="TBL-6" class="tabular"
><colgroup id="TBL-6-1g"><col
id="TBL-6-1"><col
id="TBL-6-2"><col
id="TBL-6-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
class="td11"><span
class="cmmi-10">asum </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2"
class="td11"><span
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-3"
class="td11"><span
class="cmbx-10">Function </span></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-3"
class="td11">psb_geasum</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-2"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-3"
class="td11">psb_geasum</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-2"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-3"
class="td11">psb_geasum</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-2"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-3"
class="td11">psb_geasum</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;6: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-61001r6 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 506--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 506--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 507--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 507--><p class="noindent" >
</dd><dt class="description">
<!--l. 508--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 508--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-61001r6">6<!--tex4ht:ref: tab:f90asum --></a>.
</dd><dt class="description">
<!--l. 518--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 518--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 523--><p class="noindent" >
<span
class="cmbx-10">global</span> </dt><dd
class="description">
<!--l. 523--><p class="noindent" >Specifies whether the computation should include the global reduction
across all processes.<br
class="newline" />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" />Specified as: a logical scalar. Default: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
class="newline" />
</dd><dt class="description">
<!--l. 531--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 531--><p class="noindent" >
</dd><dt class="description">
<!--l. 532--><p class="noindent" >
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">
<!--l. 532--><p class="noindent" >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 <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
specified<br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
<!--l. 536--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 536--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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. 543--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x9-61003x1">
<!--l. 545--><p class="noindent" >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. 558-->
<pre class="lstlisting" id="listing-115"><span class="label"><a
id="x9-61004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_geasum</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x1</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-61005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_geasum</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x2</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-61006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_geasum</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x3</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-61007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_sum</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1:3))</span></span></pre>
<!--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>
<h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
id="x9-620004.7"></a>psb_geasums &#8212; Generalized 1-Norm of Vector</h4>
<!--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>:
<div class="math-display" >
<img
src="userhtml10x.png" alt="res(i) &#x2190; max|x(k,i)|
k
" class="math-display" ></div>
<!--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:
<div class="math-display" >
<img
src="userhtml11x.png" alt="res(i) &#x2190; &#x2225;xi&#x2225;
" class="math-display" ></div>
<!--l. 578--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
<div class="math-display" >
<img
src="userhtml12x.png" alt="res(i) &#x2190; &#x2225;re(x )&#x2225;1 +&#x2225;im (x )&#x2225;1
" class="math-display" ></div>
<!--l. 580--><p class="nopar" >
<!--l. 583--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_geasums</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 585--><p class="indent" > <a
id="x9-62001r7"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 586--><p class="noindent" >
<div class="tabular"> <table id="TBL-7" class="tabular"
><colgroup id="TBL-7-1g"><col
id="TBL-7-1"><col
id="TBL-7-2"><col
id="TBL-7-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
class="td11"><span
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-2"
class="td11"><span
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-3"
class="td11"><span
class="cmbx-10">Subroutine</span></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-2"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-3"
class="td11">psb_geasums</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-2"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-3"
class="td11">psb_geasums</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-2"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-3"
class="td11">psb_geasums</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-2"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-3"
class="td11">psb_geasums</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;7: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-62001r7 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 602--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 602--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 603--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 603--><p class="noindent" >
</dd><dt class="description">
<!--l. 604--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 604--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-62001r7">7<!--tex4ht:ref: tab:f90asums --></a>.
</dd><dt class="description">
<!--l. 614--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 614--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 620--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 620--><p class="noindent" >
</dd><dt class="description">
<!--l. 621--><p class="noindent" >
<span
class="cmbx-10">res</span> </dt><dd
class="description">
<!--l. 621--><p class="noindent" >contains the 1-norm of (the columns of) <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Short as: a long precision real number. Specified as: a long precision real
number.
</dd><dt class="description">
<!--l. 626--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 626--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
id="x9-630004.8"></a>psb_norm2 &#8212; 2-Norm of Vector</h4>
<!--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:
<div class="math-display" >
<img
src="userhtml13x.png" alt="nrm2 &#x2190; &#x221A;xT-x-
" class="math-display" ></div>
<!--l. 646--><p class="nopar" > else if <span
class="cmmi-10">x </span>is a complex vector then it computes 2-norm as:
<div class="math-display" >
<img
src="userhtml14x.png" alt=" &#x221A;----
nrm2 &#x2190; xHx
" class="math-display" ></div>
<!--l. 648--><p class="nopar" >
<div class="table">
<!--l. 654--><p class="indent" > <a
id="x9-63001r8"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 655--><p class="noindent" >
<div class="tabular"> <table id="TBL-8" class="tabular"
><colgroup id="TBL-8-1g"><col
id="TBL-8-1"><col
id="TBL-8-2"><col
id="TBL-8-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-1"
class="td11"><span
class="cmmi-10">nrm</span>2 </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-2"
class="td11"><span
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-3"
class="td11"><span
class="cmbx-10">Function </span></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-2"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-3"
class="td11">psb_genrm2</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-2"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-3"
class="td11">psb_genrm2</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-2"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-3"
class="td11">psb_genrm2</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-2"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-3"
class="td11">psb_genrm2</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;8: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-63001r8 -->
</div><hr class="endfloat" />
</div>
<!--l. 670--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_genrm2</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br
class="newline" /><code class="lstinline"><span style="color:#000000">psb_norm2</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br
class="newline" />
<dl class="description"><dt class="description">
<!--l. 675--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 675--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 676--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 676--><p class="noindent" >
</dd><dt class="description">
<!--l. 677--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 677--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-63001r8">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
</dd><dt class="description">
<!--l. 687--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 687--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 692--><p class="noindent" >
<span
class="cmbx-10">global</span> </dt><dd
class="description">
<!--l. 692--><p class="noindent" >Specifies whether the computation should include the global reduction
across all processes.<br
class="newline" />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" />Specified as: a logical scalar. Default: <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code><br
class="newline" />
</dd><dt class="description">
<!--l. 705--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 705--><p class="noindent" >
</dd><dt class="description">
<!--l. 706--><p class="noindent" >
<span
class="cmbx-10">Function Value</span> </dt><dd
class="description">
<!--l. 706--><p class="noindent" >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 <code class="lstinline"><span style="color:#000000">global</span><span style="color:#000000">=.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code> has been
specified<br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
<!--l. 711--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 711--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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. 718--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x9-63003x1">
<!--l. 720--><p class="noindent" >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. 725-->
<pre class="lstlisting" id="listing-121"><span class="label"><a
id="x9-63004r1"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_genrm2</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x1</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-63005r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(2)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_genrm2</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x2</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-63006r3"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(3)</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">=</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_genrm2</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">x3</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">global</span></span><span style="color:#000000"><span
class="cmtt-10">=.</span></span><span style="color:#000000"><span
class="cmtt-10">false</span></span><span style="color:#000000"><span
class="cmtt-10">.)</span></span>
<span class="label"><a
id="x9-63007r4"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_nrm2</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">ctxt</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">vres</span></span><span style="color:#000000"><span
class="cmtt-10">(1:3))</span></span></pre>
<!--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>
<h4 class="subsectionHead"><span class="titlemark">4.9 </span> <a
id="x9-640004.9"></a>psb_genrm2s &#8212; Generalized 2-Norm of Vector</h4>
<!--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>:
<div class="math-display" >
<img
src="userhtml15x.png" alt="res(i) &#x2190; &#x2225;x(:,i)&#x2225;2
" class="math-display" ></div>
<!--l. 741--><p class="nopar" >
<!--l. 744--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_genrm2s</span><span style="color:#000000">(</span><span style="color:#000000">res</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 746--><p class="indent" > <a
id="x9-64001r9"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 747--><p class="noindent" >
<div class="tabular"> <table id="TBL-9" class="tabular"
><colgroup id="TBL-9-1g"><col
id="TBL-9-1"><col
id="TBL-9-2"><col
id="TBL-9-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-1"
class="td11"><span
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-2"
class="td11"><span
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-3"
class="td11"><span
class="cmbx-10">Subroutine</span></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-2"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-3"
class="td11">psb_genrm2s</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-2"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-3"
class="td11">psb_genrm2s</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-1"
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-2"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-3"
class="td11">psb_genrm2s</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-2"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-3"
class="td11">psb_genrm2s</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;9: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-64001r9 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 763--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 763--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 764--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 764--><p class="noindent" >
</dd><dt class="description">
<!--l. 765--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 765--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-64001r9">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
</dd><dt class="description">
<!--l. 775--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 775--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 781--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 781--><p class="noindent" >
</dd><dt class="description">
<!--l. 782--><p class="noindent" >
<span
class="cmbx-10">res</span> </dt><dd
class="description">
<!--l. 782--><p class="noindent" >contains the 1-norm of (the columns of) <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
<!--l. 786--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 786--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.10 </span> <a
id="x9-650004.10"></a>psb_norm1 &#8212; 1-Norm of Sparse Matrix</h4>
<!--l. 804--><p class="noindent" >This function computes the 1-norm of a matrix <span
class="cmmi-10">A</span>:<br
class="newline" />
<div class="par-math-display" >
<img
src="userhtml16x.png" alt="nrm1 &#x2190; &#x2225;A &#x2225;1
" class="par-math-display" ></div>
<!--l. 806--><p class="nopar" > where:
<dl class="description"><dt class="description">
<!--l. 809--><p class="noindent" >
<span
class="cmmi-10">A</span> </dt><dd
class="description">
<!--l. 809--><p class="noindent" >represents the global matrix <span
class="cmmi-10">A</span></dd></dl>
<div class="table">
<!--l. 812--><p class="indent" > <a
id="x9-65001r10"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 813--><p class="noindent" >
<div class="tabular"> <table id="TBL-10" class="tabular"
><colgroup id="TBL-10-1g"><col
id="TBL-10-1"><col
id="TBL-10-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-1"
class="td11"><span
class="cmmi-10">A </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-2"
class="td11"><span
class="cmbx-10">Function </span></td></tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-2"
class="td11">psb_spnrm1</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-2"
class="td11">psb_spnrm1</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-2"
class="td11">psb_spnrm1</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-2"
class="td11">psb_spnrm1</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;10: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-65001r10 -->
</div><hr class="endfloat" />
</div>
<pre class="verbatim" id="verbatim-31">
psb_spnrm1(A,&#x00A0;desc_a,&#x00A0;info)
psb_norm1(A,&#x00A0;desc_a,&#x00A0;info)
</pre>
<!--l. 831--><p class="nopar" >
<dl class="description"><dt class="description">
<!--l. 834--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 834--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 835--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 835--><p class="noindent" >
</dd><dt class="description">
<!--l. 836--><p class="noindent" >
<span
class="cmbx-10">a</span> </dt><dd
class="description">
<!--l. 836--><p class="noindent" >the local portion of the global sparse matrix <span
class="cmmi-10">A</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#spdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 842--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 842--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 847--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 847--><p class="noindent" >
</dd><dt class="description">
<!--l. 848--><p class="noindent" >
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">
<!--l. 848--><p class="noindent" >is the 1-norm of sparse submatrix <span
class="cmmi-10">A</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
<!--l. 851--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 851--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.11 </span> <a
id="x9-660004.11"></a>psb_normi &#8212; Infinity Norm of Sparse Matrix</h4>
<!--l. 868--><p class="noindent" >This function computes the infinity-norm of a matrix <span
class="cmmi-10">A</span>:<br
class="newline" />
<div class="par-math-display" >
<img
src="userhtml17x.png" alt="nrmi &#x2190; &#x2225;A&#x2225;&#x221E;
" class="par-math-display" ></div>
<!--l. 870--><p class="nopar" > where:
<dl class="description"><dt class="description">
<!--l. 873--><p class="noindent" >
<span
class="cmmi-10">A</span> </dt><dd
class="description">
<!--l. 873--><p class="noindent" >represents the global matrix <span
class="cmmi-10">A</span></dd></dl>
<div class="table">
<!--l. 876--><p class="indent" > <a
id="x9-66001r11"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 877--><p class="noindent" >
<div class="tabular"> <table id="TBL-11" class="tabular"
><colgroup id="TBL-11-1g"><col
id="TBL-11-1"><col
id="TBL-11-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-1"
class="td11"><span
class="cmmi-10">A </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-2"
class="td11"><span
class="cmbx-10">Function </span></td></tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-2"
class="td11">psb_spnrmi</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-2"
class="td11">psb_spnrmi</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-2"
class="td11">psb_spnrmi</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-2"
class="td11">psb_spnrmi</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;11: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-66001r11 -->
</div><hr class="endfloat" />
</div>
<pre class="verbatim" id="verbatim-32">
psb_spnrmi(A,&#x00A0;desc_a,&#x00A0;info)
psb_normi(A,&#x00A0;desc_a,&#x00A0;info)
</pre>
<!--l. 895--><p class="nopar" >
<dl class="description"><dt class="description">
<!--l. 898--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 898--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 899--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 899--><p class="noindent" >
</dd><dt class="description">
<!--l. 900--><p class="noindent" >
<span
class="cmbx-10">a</span> </dt><dd
class="description">
<!--l. 900--><p class="noindent" >the local portion of the global sparse matrix <span
class="cmmi-10">A</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#spdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 906--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 906--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 911--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 911--><p class="noindent" >
</dd><dt class="description">
<!--l. 912--><p class="noindent" >
<span
class="cmbx-10">Function value</span> </dt><dd
class="description">
<!--l. 912--><p class="noindent" >is the infinity-norm of sparse submatrix <span
class="cmmi-10">A</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
class="newline" />Specified as: a long precision real number.
</dd><dt class="description">
<!--l. 915--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 915--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.12 </span> <a
id="x9-670004.12"></a>psb_spmm &#8212; Sparse Matrix by Dense Matrix Product</h4>
<!--l. 933--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
<table
class="equation"><tr><td>
<div class="math-display" >
<img
src="userhtml18x.png" alt="y &#x2190; &#x03B1;Ax + &#x03B2;y
" class="math-display" ><a
id="x9-67001r1"></a></div>
</td><td class="equation-label">(1)</td></tr></table>
<!--l. 938--><p class="nopar" >
<table
class="equation"><tr><td>
<div class="math-display" >
<img
src="userhtml19x.png" alt=" T
y &#x2190; &#x03B1;A x+ &#x03B2;y
" class="math-display" ><a
id="x9-67002r2"></a></div>
</td><td class="equation-label">(2)</td></tr></table>
<!--l. 942--><p class="nopar" >
<table
class="equation"><tr><td>
<div class="math-display" >
<img
src="userhtml20x.png" alt="y &#x2190; &#x03B1;AHx + &#x03B2;y
" class="math-display" ><a
id="x9-67003r3"></a></div>
</td><td class="equation-label">(3)</td></tr></table>
<!--l. 946--><p class="nopar" >
<!--l. 948--><p class="indent" > where:
<dl class="description"><dt class="description">
<!--l. 950--><p class="noindent" >
<span
class="cmmi-10">x</span> </dt><dd
class="description">
<!--l. 950--><p class="noindent" >is the global dense matrix <span
class="cmmi-10">x</span><sub><span
class="cmr-7">:</span><span
class="cmmi-7">,</span><span
class="cmr-7">:</span></sub>
</dd><dt class="description">
<!--l. 951--><p class="noindent" >
<span
class="cmmi-10">y</span> </dt><dd
class="description">
<!--l. 951--><p class="noindent" >is the global dense matrix <span
class="cmmi-10">y</span><sub><span
class="cmr-7">:</span><span
class="cmmi-7">,</span><span
class="cmr-7">:</span></sub>
</dd><dt class="description">
<!--l. 952--><p class="noindent" >
<span
class="cmmi-10">A</span> </dt><dd
class="description">
<!--l. 952--><p class="noindent" >is the global sparse matrix <span
class="cmmi-10">A</span></dd></dl>
<div class="table">
<!--l. 955--><p class="indent" > <a
id="x9-67004r12"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 956--><p class="noindent" >
<div class="tabular"> <table id="TBL-12" class="tabular"
><colgroup id="TBL-12-1g"><col
id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-1"
class="td11"><span
class="cmmi-10">A</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y</span>, <span
class="cmmi-10">&#x03B1;</span>, <span
class="cmmi-10">&#x03B2; </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-2"
class="td11"><span
class="cmbx-10">Subroutine</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-2"
class="td11">psb_spmm </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-2"
class="td11">psb_spmm </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-2"
class="td11">psb_spmm </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-2"
class="td11">psb_spmm </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;12: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-67004r12 -->
</div><hr class="endfloat" />
</div>
<!--l. 971--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spmm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br
class="newline" /><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spmm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">work</span><span style="color:#000000">)</span></code>
<dl class="description"><dt class="description">
<!--l. 975--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 975--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 976--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 976--><p class="noindent" >
</dd><dt class="description">
<!--l. 977--><p class="noindent" >
<span
class="cmbx-10">alpha</span> </dt><dd
class="description">
<!--l. 977--><p class="noindent" >the scalar <span
class="cmmi-10">&#x03B1;</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
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 number of the data type indicated in Table&#x00A0;<a
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
</dd><dt class="description">
<!--l. 983--><p class="noindent" >
<span
class="cmbx-10">a</span> </dt><dd
class="description">
<!--l. 983--><p class="noindent" >the local portion of the sparse matrix <span
class="cmmi-10">A</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#spdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 989--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 989--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 999--><p class="noindent" >
<span
class="cmbx-10">beta</span> </dt><dd
class="description">
<!--l. 999--><p class="noindent" >the scalar <span
class="cmmi-10">&#x03B2;</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
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 number of the data type indicated in Table&#x00A0;<a
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
</dd><dt class="description">
<!--l. 1004--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1004--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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">
<!--l. 1014--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 1014--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 1019--><p class="noindent" >
<span
class="cmbx-10">trans</span> </dt><dd
class="description">
<!--l. 1019--><p class="noindent" >indicates what kind of operation to perform.
<dl class="description"><dt class="description">
<!--l. 1021--><p class="noindent" >
<span
class="cmbx-10">trans = N</span> </dt><dd
class="description">
<!--l. 1021--><p class="noindent" >the operation is specified by equation <a
href="#x9-67001r1">1<!--tex4ht:ref: eq:f90spmm_no_tra --></a>
</dd><dt class="description">
<!--l. 1022--><p class="noindent" >
<span
class="cmbx-10">trans = T</span> </dt><dd
class="description">
<!--l. 1022--><p class="noindent" >the operation is specified by equation <a
href="#x9-67002r2">2<!--tex4ht:ref: eq:f90spmm_tra --></a>
</dd><dt class="description">
<!--l. 1024--><p class="noindent" >
<span
class="cmbx-10">trans = C</span> </dt><dd
class="description">
<!--l. 1024--><p class="noindent" >the operation is specified by equation <a
href="#x9-67003r3">3<!--tex4ht:ref: eq:f90spmm_con --></a></dd></dl>
<!--l. 1027--><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="cmmi-10">trans </span>= <span
class="cmmi-10">N</span><br
class="newline" />Specified as: a character variable.
</dd><dt class="description">
<!--l. 1050--><p class="noindent" >
<span
class="cmbx-10">work</span> </dt><dd
class="description">
<!--l. 1050--><p class="noindent" >work array.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">optional</span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a rank one array of the same type of <span
class="cmmi-10">x </span>and <span
class="cmmi-10">y </span>with the TARGET
attribute.
</dd><dt class="description">
<!--l. 1057--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 1057--><p class="noindent" >
</dd><dt class="description">
<!--l. 1058--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1058--><p class="noindent" >the local portion of result matrix <span
class="cmmi-10">y</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
in Table&#x00A0;<a
href="#x9-67004r12">12<!--tex4ht:ref: tab:f90spmm --></a>.
</dd><dt class="description">
<!--l. 1065--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 1065--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.13 </span> <a
id="x9-680004.13"></a>psb_spsm &#8212; Triangular System Solve</h4>
<!--l. 1081--><p class="noindent" >This subroutine computes the Triangular System Solve:
<div class="eqnarray">
<div class="math-display" >
<img
src="userhtml21x.png" alt="y &#x2190; &#x03B1;T- 1x + &#x03B2;y
y &#x2190; &#x03B1;DT -1x +&#x03B2;y
- 1
y &#x2190; &#x03B1;T Dx +&#x03B2;y
y &#x2190; &#x03B1;T- Tx+ &#x03B2;y
y &#x2190; &#x03B1;DT -Tx + &#x03B2;y
y &#x2190; &#x03B1;T- TDx + &#x03B2;y
- H
y &#x2190; &#x03B1;T x +&#x03B2;y
y &#x2190; &#x03B1;DT -Hx + &#x03B2;y
y &#x2190; &#x03B1;T- HDx + &#x03B2;y
" class="math-display" ></div>
</div>
<!--l. 1096--><p class="indent" > where:
<dl class="description"><dt class="description">
<!--l. 1098--><p class="noindent" >
<span
class="cmmi-10">x</span> </dt><dd
class="description">
<!--l. 1098--><p class="noindent" >is the global dense matrix <span
class="cmmi-10">x</span><sub><span
class="cmr-7">:</span><span
class="cmmi-7">,</span><span
class="cmr-7">:</span></sub>
</dd><dt class="description">
<!--l. 1099--><p class="noindent" >
<span
class="cmmi-10">y</span> </dt><dd
class="description">
<!--l. 1099--><p class="noindent" >is the global dense matrix <span
class="cmmi-10">y</span><sub><span
class="cmr-7">:</span><span
class="cmmi-7">,</span><span
class="cmr-7">:</span></sub>
</dd><dt class="description">
<!--l. 1100--><p class="noindent" >
<span
class="cmmi-10">T</span> </dt><dd
class="description">
<!--l. 1100--><p class="noindent" >is the global sparse block triangular submatrix <span
class="cmmi-10">T</span>
</dd><dt class="description">
<!--l. 1101--><p class="noindent" >
<span
class="cmmi-10">D</span> </dt><dd
class="description">
<!--l. 1101--><p class="noindent" >is the scaling diagonal matrix.</dd></dl>
<!--l. 1104--><p class="indent" > <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spsm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">t</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br
class="newline" /><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">psb_spsm</span><span style="color:#000000">(</span><span style="color:#000000">alpha</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">t</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">beta</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">unit</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">choice</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">diag</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">work</span><span style="color:#000000">)</span></code><br
class="newline" />
<div class="table">
<!--l. 1107--><p class="indent" > <a
id="x9-68002r13"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1108--><p class="noindent" >
<div class="tabular"> <table id="TBL-13" class="tabular"
><colgroup id="TBL-13-1g"><col
id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-1"
class="td11"><span
class="cmmi-10">T</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y</span>, <span
class="cmmi-10">D</span>, <span
class="cmmi-10">&#x03B1;</span>, <span
class="cmmi-10">&#x03B2; </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-2"
class="td11"><span
class="cmbx-10">Subroutine</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-2-2"
class="td11">psb_spsm </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-3-2"
class="td11">psb_spsm </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-13-4-2"
class="td11">psb_spsm </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-5-2"
class="td11">psb_spsm </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;13: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-68002r13 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 1126--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 1126--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 1127--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 1127--><p class="noindent" >
</dd><dt class="description">
<!--l. 1128--><p class="noindent" >
<span
class="cmbx-10">alpha</span> </dt><dd
class="description">
<!--l. 1128--><p class="noindent" >the scalar <span
class="cmmi-10">&#x03B1;</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
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 number of the data type indicated in Table&#x00A0;<a
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<!--l. 1134--><p class="noindent" >
<span
class="cmbx-10">t</span> </dt><dd
class="description">
<!--l. 1134--><p class="noindent" >the global portion of the sparse matrix <span
class="cmmi-10">T</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object type specified in <span
class="tcrm-1000"><EFBFBD></span>&#x00A0;<a
href="userhtmlse3.html#x8-90003">3<!--tex4ht:ref: sec:datastruct --></a>.
</dd><dt class="description">
<!--l. 1141--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 1141--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">x</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
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 rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 1151--><p class="noindent" >
<span
class="cmbx-10">beta</span> </dt><dd
class="description">
<!--l. 1151--><p class="noindent" >the scalar <span
class="cmmi-10">&#x03B2;</span>.<br
class="newline" />Scope: <span
class="cmbx-10">global </span><br
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 number of the data type indicated in Table&#x00A0;<a
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<!--l. 1156--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1156--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a rank one or two array or an object of type
<a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of type specified in Table&#x00A0;<a
href="#x9-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>.
</dd><dt class="description">
<!--l. 1166--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 1166--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 1171--><p class="noindent" >
<span
class="cmbx-10">trans</span> </dt><dd
class="description">
<!--l. 1171--><p class="noindent" >specify with <span
class="cmti-10">unitd </span>the operation to perform.
<dl class="description"><dt class="description">
<!--l. 1173--><p class="noindent" >
<span
class="cmbx-10">trans = &#8217;N&#8217;</span> </dt><dd
class="description">
<!--l. 1173--><p class="noindent" >the operation is with no transposed matrix
</dd><dt class="description">
<!--l. 1174--><p class="noindent" >
<span
class="cmbx-10">trans = &#8217;T&#8217;</span> </dt><dd
class="description">
<!--l. 1174--><p class="noindent" >the operation is with transposed matrix.
</dd><dt class="description">
<!--l. 1175--><p class="noindent" >
<span
class="cmbx-10">trans = &#8217;C&#8217;</span> </dt><dd
class="description">
<!--l. 1175--><p class="noindent" >the operation is with conjugate transposed matrix.</dd></dl>
<!--l. 1177--><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="cmmi-10">trans </span>= <span
class="cmmi-10">N</span><br
class="newline" />Specified as: a character variable.
</dd><dt class="description">
<!--l. 1182--><p class="noindent" >
<span
class="cmbx-10">unitd</span> </dt><dd
class="description">
<!--l. 1182--><p class="noindent" >specify with <span
class="cmti-10">trans </span>the operation to perform.
<dl class="description"><dt class="description">
<!--l. 1184--><p class="noindent" >
<span
class="cmbx-10">unitd = &#8217;U&#8217;</span> </dt><dd
class="description">
<!--l. 1184--><p class="noindent" >the operation is with no scaling
</dd><dt class="description">
<!--l. 1185--><p class="noindent" >
<span
class="cmbx-10">unitd = &#8217;L&#8217;</span> </dt><dd
class="description">
<!--l. 1185--><p class="noindent" >the operation is with left scaling
</dd><dt class="description">
<!--l. 1186--><p class="noindent" >
<span
class="cmbx-10">unitd = &#8217;R&#8217;</span> </dt><dd
class="description">
<!--l. 1186--><p class="noindent" >the operation is with right scaling.</dd></dl>
<!--l. 1188--><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="cmmi-10">unitd </span>= <span
class="cmmi-10">U</span><br
class="newline" />Specified as: a character variable.
</dd><dt class="description">
<!--l. 1193--><p class="noindent" >
<span
class="cmbx-10">choice</span> </dt><dd
class="description">
<!--l. 1193--><p class="noindent" >specifies the update of overlap elements to be performed on exit:
<dl class="description"><dt class="description">
<!--l. 1196--><p class="noindent" >
</dt><dd
class="description">
<!--l. 1196--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_none_</span></code>
</dd><dt class="description">
<!--l. 1197--><p class="noindent" >
</dt><dd
class="description">
<!--l. 1197--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_sum_</span></code>
</dd><dt class="description">
<!--l. 1198--><p class="noindent" >
</dt><dd
class="description">
<!--l. 1198--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_avg_</span></code>
</dd><dt class="description">
<!--l. 1199--><p class="noindent" >
</dt><dd
class="description">
<!--l. 1199--><p class="noindent" ><code class="lstinline"><span style="color:#000000">psb_square_root_</span></code></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: <code class="lstinline"><span style="color:#000000">psb_avg_</span></code><br
class="newline" />Specified as: an integer variable.
</dd><dt class="description">
<!--l. 1206--><p class="noindent" >
<span
class="cmbx-10">diag</span> </dt><dd
class="description">
<!--l. 1206--><p class="noindent" >the diagonal scaling matrix.<br
class="newline" />Scope: <span
class="cmbx-10">local </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="cmmi-10">diag</span>(1) = 1(<span
class="cmmi-10">noscaling</span>)<br
class="newline" />Specified as: a rank one array containing numbers of the type indicated in
Table&#x00A0;<a
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<!--l. 1213--><p class="noindent" >
<span
class="cmbx-10">work</span> </dt><dd
class="description">
<!--l. 1213--><p class="noindent" >a work array. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">optional</span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: a rank one array of the same type of <span
class="cmmi-10">x </span>with the TARGET
attribute.
</dd><dt class="description">
<!--l. 1220--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 1220--><p class="noindent" >
</dd><dt class="description">
<!--l. 1221--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1221--><p class="noindent" >the local portion of global dense matrix <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
in Table&#x00A0;<a
href="#x9-68002r13">13<!--tex4ht:ref: tab:f90spsm --></a>.
</dd><dt class="description">
<!--l. 1231--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 1231--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.14 </span> <a
id="x9-690004.14"></a>psb_gemlt &#8212; Entrywise Product</h4>
<!--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>
<div class="math-display" >
<img
src="userhtml22x.png" alt="dot &#x2190; x(i)y(i).
" class="math-display" ></div>
<!--l. 1249--><p class="nopar" >
<!--l. 1251--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_gemlt</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 1254--><p class="indent" > <a
id="x9-69001r14"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1255--><p class="noindent" >
<div class="tabular"> <table id="TBL-14" class="tabular"
><colgroup id="TBL-14-1g"><col
id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-1"
class="td11"><span
class="cmmi-10">dot</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-2"
class="td11"><span
class="cmbx-10">Function</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-2-2"
class="td11">psb_gemlt</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-3-2"
class="td11">psb_gemlt</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-14-4-2"
class="td11">psb_gemlt</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-5-2"
class="td11">psb_gemlt</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;14: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-69001r14 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 1271--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 1271--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 1272--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 1272--><p class="noindent" >
</dd><dt class="description">
<!--l. 1273--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 1273--><p class="noindent" >the local portion of global dense vector <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 1283--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1283--><p class="noindent" >the local portion of global dense vector <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 1293--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 1293--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 1298--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 1298--><p class="noindent" >
</dd><dt class="description">
<!--l. 1299--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1299--><p class="noindent" >the local portion of result submatrix <span
class="cmmi-10">y</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
the type indicated in Table&#x00A0;<a
href="#x9-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
</dd><dt class="description">
<!--l. 1305--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 1305--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.15 </span> <a
id="x9-700004.15"></a>psb_gediv &#8212; Entrywise Division</h4>
<!--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>
<div class="math-display" >
<img
src="userhtml23x.png" alt="&#x2215; &#x2190; x(i)&#x2215;y(i).
" class="math-display" ></div>
<!--l. 1316--><p class="nopar" >
<!--l. 1318--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_gediv</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">flag</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 1321--><p class="indent" > <a
id="x9-70001r15"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1322--><p class="noindent" >
<div class="tabular"> <table id="TBL-15" class="tabular"
><colgroup id="TBL-15-1g"><col
id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-1"
class="td11"><span
class="cmmi-10">&#x2215;</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-15-1-2"
class="td11"><span
class="cmbx-10">Function</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-15-2-2"
class="td11">psb_gediv</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-15-3-2"
class="td11">psb_gediv</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-15-4-2"
class="td11">psb_gediv</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-15-5-2"
class="td11">psb_gediv</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-15-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;15: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-70001r15 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 1338--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 1338--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 1339--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 1339--><p class="noindent" >
</dd><dt class="description">
<!--l. 1340--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 1340--><p class="noindent" >the local portion of global dense vector <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 1350--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1350--><p class="noindent" >the local portion of global dense vector <span
class="cmmi-10">y</span>. <br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 1360--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 1360--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 1365--><p class="noindent" >
<span
class="cmbx-10">flag</span> </dt><dd
class="description">
<!--l. 1365--><p class="noindent" >check if any of the <span
class="cmmi-10">y</span>(<span
class="cmmi-10">i</span>) = 0, and in case returns error halting the
computation.<br
class="newline" />Scope: <span
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 <code class="lstinline"><span style="color:#000000">flag</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code>
</dd><dt class="description">
<!--l. 1370--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 1370--><p class="noindent" >
</dd><dt class="description">
<!--l. 1371--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 1371--><p class="noindent" >the local portion of result submatrix <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">inout</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
the type indicated in Table&#x00A0;<a
href="#x9-69001r14">14<!--tex4ht:ref: tab:f90mlt --></a>.
</dd><dt class="description">
<!--l. 1377--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 1377--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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>
<h4 class="subsectionHead"><span class="titlemark">4.16 </span> <a
id="x9-710004.16"></a>psb_geinv &#8212; Entrywise Inversion</h4>
<!--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>
<div class="math-display" >
<img
src="userhtml24x.png" alt="&#x2215; &#x2190; 1&#x2215;x(i).
" class="math-display" ></div>
<!--l. 1388--><p class="nopar" >
<!--l. 1390--><p class="indent" > <code class="lstinline"><span style="color:#000000">psb_geinv</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">flag</span><span style="color:#000000">)</span></code>
<div class="table">
<!--l. 1393--><p class="indent" > <a
id="x9-71001r16"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 1394--><p class="noindent" >
<div class="tabular"> <table id="TBL-16" class="tabular"
><colgroup id="TBL-16-1g"><col
id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-1-1"
class="td11"><span
class="cmmi-10">&#x2215;</span>, <span
class="cmmi-10">x</span>, <span
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-16-1-2"
class="td11"><span
class="cmbx-10">Function</span></td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-2-1"
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-16-2-2"
class="td11">psb_geinv</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-3-1"
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-16-3-2"
class="td11">psb_geinv</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-4-1"
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-16-4-2"
class="td11">psb_geinv</td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-5-1"
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-16-5-2"
class="td11">psb_geinv</td>
</tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-16-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;16: </span><span
class="content">Data types</span></div><!--tex4ht:label?: x9-71001r16 -->
</div><hr class="endfloat" />
</div>
<dl class="description"><dt class="description">
<!--l. 1410--><p class="noindent" >
<span
class="cmbx-10">Type:</span> </dt><dd
class="description">
<!--l. 1410--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 1411--><p class="noindent" >
<span
class="cmbx-10">On Entry</span> </dt><dd
class="description">
<!--l. 1411--><p class="noindent" >
</dd><dt class="description">
<!--l. 1412--><p class="noindent" >
<span
class="cmbx-10">x</span> </dt><dd
class="description">
<!--l. 1412--><p class="noindent" >the local portion of global dense vector <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
type specified in Table&#x00A0;<a
href="#x9-57001r2">2<!--tex4ht:ref: tab:f90dot --></a>.
</dd><dt class="description">
<!--l. 1422--><p class="noindent" >
<span
class="cmbx-10">desc</span><span
class="cmbx-10">_a</span> </dt><dd
class="description">
<!--l. 1422--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required</span><br
class="newline" />Intent: <span
class="cmbx-10">in</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 1427--><p class="noindent" >
<span
class="cmbx-10">flag</span> </dt><dd
class="description">
<!--l. 1427--><p class="noindent" >check if any of the <span
class="cmmi-10">x</span>(<span
class="cmmi-10">i</span>) = 0, and in case returns error halting the
computation.<br
class="newline" />Scope: <span
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 <code class="lstinline"><span style="color:#000000">flag</span><span style="color:#000000">=.</span><span style="color:#000000">true</span><span style="color:#000000">.</span></code>
</dd><dt class="description">
<!--l. 1432--><p class="noindent" >
<span
class="cmbx-10">On Return</span> </dt><dd
class="description">
<!--l. 1432--><p class="noindent" >
</dd><dt class="description">
<!--l. 1433--><p class="noindent" >
<span
class="cmbx-10">y</span> </dt><dd
class="description">
<!--l. 1433--><p class="noindent" >the local portion of result submatrix <span
class="cmmi-10">x</span>.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />Intent: <span
class="cmbx-10">out</span>.<br
class="newline" />Specified as: an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>&#x00A0;containing numbers of
the type indicated in Table&#x00A0;<a
href="#x9-71001r16">16<!--tex4ht:ref: tab:f90inv --></a>.
</dd><dt class="description">
<!--l. 1439--><p class="noindent" >
<span
class="cmbx-10">info</span> </dt><dd
class="description">
<!--l. 1439--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="cmbx-10">local </span><br
class="newline" />Type: <span
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. 1--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse8.html" >next</a>] [<a
href="userhtmlse3.html" >prev</a>] [<a
href="userhtmlse3.html#tailuserhtmlse3.html" >prev-tail</a>] [<a
href="userhtmlse4.html" >front</a>] [<a
href="userhtml.html#userhtmlse7.html" >up</a>] </p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse4.html"></a>
</body></html>