|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html >
|
|
|
|
<head><title>Sparse Matrix class</title>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
|
|
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
|
|
|
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
|
|
|
<!-- html,3 -->
|
|
|
|
<meta name="src" content="userhtml.tex">
|
|
|
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
|
|
|
</head><body
|
|
|
|
>
|
|
|
|
<!--l. 520--><div class="crosslinks"><p class="noindent">[<a
|
|
|
|
href="userhtmlse4.html" >next</a>] [<a
|
|
|
|
href="userhtmlsu5.html" >prev</a>] [<a
|
|
|
|
href="userhtmlsu5.html#tailuserhtmlsu5.html" >prev-tail</a>] [<a
|
|
|
|
href="userhtmlsu4.html#tailuserhtmlsu6.html">tail</a>] [<a
|
|
|
|
href="userhtmlsu7.html#userhtmlsu9.html" >up</a>] </p></div>
|
|
|
|
<h4 class="subsectionHead"><span class="titlemark">3.2 </span> <a
|
|
|
|
id="x14-260003.2"></a>Sparse Matrix class</h4>
|
|
|
|
<!--l. 522--><p class="noindent" >The <a
|
|
|
|
id="spdata"><span
|
|
|
|
class="cmtt-10">psb</span><span
|
|
|
|
class="cmtt-10">_Tspmat</span><span
|
|
|
|
class="cmtt-10">_type</span></a> class contains all information about the local portion of the
|
|
|
|
sparse matrix and its storage mode. Its design is based on the STATE design
|
|
|
|
pattern <span class="cite">[<a
|
|
|
|
href="userhtmlli2.html#XDesignPatterns">13</a>]</span> as detailed in <span class="cite">[<a
|
|
|
|
href="userhtmlli2.html#XSparse03">11</a>]</span>; the type declaration is shown in figure <a
|
|
|
|
href="#x14-260014">4<!--tex4ht:ref: fig:spmattype --></a> where <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">T</span></span></span> is a
|
|
|
|
placeholder for the data type and precision variants
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">S</span> </dt><dd
|
|
|
|
class="description">Single precision real;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">D</span> </dt><dd
|
|
|
|
class="description">Double precision real;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">C</span> </dt><dd
|
|
|
|
class="description">Single precision complex;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Z</span> </dt><dd
|
|
|
|
class="description">Double precision complex;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">LS,LD,LC,LZ</span> </dt><dd
|
|
|
|
class="description">Same numeric type as above, but with <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_lpk_</span></span></span> integer
|
|
|
|
indices.</dd></dl>
|
|
|
|
<!--l. 537--><p class="noindent" >The actual data is contained in the polymorphic component <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a%a</span></span></span> of type
|
|
|
|
<a
|
|
|
|
id="spbasedata"><span
|
|
|
|
class="cmtt-10">psb</span><span
|
|
|
|
class="cmtt-10">_T</span><span
|
|
|
|
class="cmtt-10">_base</span><span
|
|
|
|
class="cmtt-10">_sparse</span><span
|
|
|
|
class="cmtt-10">_mat</span></a>; its specific layout can be chosen dynamically among the
|
|
|
|
predefined types, or an entirely new storage layout can be implemented and passed to
|
|
|
|
the library at runtime via the <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_spasb</span></span></span> routine. <hr class="figure"><div class="figure"
|
|
|
|
><a
|
|
|
|
id="x14-260014"></a>
|
|
|
|
<div class="center"
|
|
|
|
>
|
|
|
|
<!--l. 544--><p class="noindent" >
|
|
|
|
<div class="minipage"><div class="verbatim" id="verbatim-15">
|
|
|
|
  type :: psb_Tspmat_type
|
|
|
|
 <br />    class(psb_T_base_sparse_mat), allocatable  :: a
|
|
|
|
 <br />  end type  psb_Tspmat_type
|
|
|
|
</div>
|
|
|
|
<!--l. 550--><p class="nopar" ></div></div>
|
|
|
|
<br /> <div class="caption"
|
|
|
|
><span class="id">Figure 4: </span><span
|
|
|
|
class="content"> The PSBLAS defined data type that contains a sparse matrix.</span></div><!--tex4ht:label?: x14-260014 -->
|
|
|
|
<!--l. 561--><p class="indent" > </div><hr class="endfigure">
|
|
|
|
<!--l. 562--><p class="indent" > The following very common formats are precompiled in PSBLAS and thus are
|
|
|
|
always available:
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_T</span><span
|
|
|
|
class="cmbx-10">_coo</span><span
|
|
|
|
class="cmbx-10">_sparse</span><span
|
|
|
|
class="cmbx-10">_mat</span> </dt><dd
|
|
|
|
class="description">Coordinate storage;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_T</span><span
|
|
|
|
class="cmbx-10">_csr</span><span
|
|
|
|
class="cmbx-10">_sparse</span><span
|
|
|
|
class="cmbx-10">_mat</span> </dt><dd
|
|
|
|
class="description">Compressed storage by rows;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_T</span><span
|
|
|
|
class="cmbx-10">_csc</span><span
|
|
|
|
class="cmbx-10">_sparse</span><span
|
|
|
|
class="cmbx-10">_mat</span> </dt><dd
|
|
|
|
class="description">Compressed storage by columns;</dd></dl>
|
|
|
|
<!--l. 569--><p class="noindent" >The inner sparse matrix has an associated state, which can take the following
|
|
|
|
values:
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Build:</span> </dt><dd
|
|
|
|
class="description">State entered after the first allocation, and before the first assembly; in
|
|
|
|
this state it is possible to add nonzero entries.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Assembled:</span> </dt><dd
|
|
|
|
class="description">State entered after the assembly; computations using the sparse
|
|
|
|
matrix, such as matrix-vector products, are only possible in this state;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Update:</span> </dt><dd
|
|
|
|
class="description">State entered after a reinitalization; this is used to handle applications
|
|
|
|
in which the same sparsity pattern is used multiple times with different
|
|
|
|
coefficients. In this state it is only possible to enter coefficients for already
|
|
|
|
existing nonzero entries.</dd></dl>
|
|
|
|
<!--l. 582--><p class="noindent" >The only storage variant supporting the build state is COO; all other variants are
|
|
|
|
obtained by conversion to/from it.
|
|
|
|
<!--l. 585--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.1 </span> <a
|
|
|
|
id="x14-270003.2.1"></a>Sparse Matrix Methods</h5>
|
|
|
|
<!--l. 587--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.2 </span> <a
|
|
|
|
id="x14-280003.2.2"></a>get_nrows — Get number of rows in a sparse matrix</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-16">
|
|
|
|
nr = a%get_nrows()
|
|
|
|
</div>
|
|
|
|
<!--l. 592--><p class="nopar" >
|
|
|
|
<!--l. 594--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 604--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">The number of rows of sparse matrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.</dd></dl>
|
|
|
|
<!--l. 611--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.3 </span> <a
|
|
|
|
id="x14-290003.2.3"></a>get_ncols — Get number of columns in a sparse matrix</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-17">
|
|
|
|
nc = a%get_ncols()
|
|
|
|
</div>
|
|
|
|
<!--l. 616--><p class="nopar" >
|
|
|
|
<!--l. 618--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 628--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">The number of columns of sparse matrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.</dd></dl>
|
|
|
|
<!--l. 635--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.4 </span> <a
|
|
|
|
id="x14-300003.2.4"></a>get_nnzeros — Get number of nonzero elements in a sparse matrix</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-18">
|
|
|
|
nz = a%get_nnzeros()
|
|
|
|
</div>
|
|
|
|
<!--l. 640--><p class="nopar" >
|
|
|
|
<!--l. 642--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 652--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">The number of nonzero elements stored in sparse matrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.</dd></dl>
|
|
|
|
<!--l. 657--><p class="noindent" ><span
|
|
|
|
class="cmbx-10">Notes</span>
|
|
|
|
<ol class="enumerate1" >
|
|
|
|
<li
|
|
|
|
class="enumerate" id="x14-30002x1">The function value is specific to the storage format of matrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>; some
|
|
|
|
storage formats employ padding, thus the returned value for the same
|
|
|
|
matrix may be different for different storage choices.</li></ol>
|
|
|
|
<!--l. 665--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.5 </span> <a
|
|
|
|
id="x14-310003.2.5"></a>get_size — Get maximum number of nonzero elements in a sparse
|
|
|
|
matrix</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-19">
|
|
|
|
maxnz = a%get_size()
|
|
|
|
</div>
|
|
|
|
<!--l. 670--><p class="nopar" >
|
|
|
|
<!--l. 672--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 682--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">The maximum number of nonzero elements that can be stored
|
|
|
|
in sparse matrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span> using its current memory allocation.</dd></dl>
|
|
|
|
<!--l. 689--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.6 </span> <a
|
|
|
|
id="x14-320003.2.6"></a>sizeof — Get memory occupation in bytes of a sparse matrix</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-20">
|
|
|
|
memory_size = a%sizeof()
|
|
|
|
</div>
|
|
|
|
<!--l. 694--><p class="nopar" >
|
|
|
|
<!--l. 696--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 706--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">The memory occupation in bytes.</dd></dl>
|
|
|
|
<!--l. 712--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.7 </span> <a
|
|
|
|
id="x14-330003.2.7"></a>get_fmt — Short description of the dynamic type</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-21">
|
|
|
|
write(*,*) a%get_fmt()
|
|
|
|
</div>
|
|
|
|
<!--l. 717--><p class="nopar" >
|
|
|
|
<!--l. 719--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 729--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">A short string describing the dynamic type of the matrix.
|
|
|
|
Predefined values include <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">NULL</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">COO</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">CSR</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">CSC</span></span></span>.</dd></dl>
|
|
|
|
<!--l. 736--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.8 </span> <a
|
|
|
|
id="x14-340003.2.8"></a>is_bld, is_upd, is_asb — Status check</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-22">
|
|
|
|
if (a%is_bld()) then
|
|
|
|
 <br />if (a%is_upd()) then
|
|
|
|
 <br />if (a%is_asb()) then
|
|
|
|
</div>
|
|
|
|
<!--l. 743--><p class="nopar" >
|
|
|
|
<!--l. 745--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 755--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">A <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">logical</span></span></span> value indicating whether the matrix is in the Build,
|
|
|
|
Update or Assembled state, respectively.</dd></dl>
|
|
|
|
<!--l. 762--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.9 </span> <a
|
|
|
|
id="x14-350003.2.9"></a>is_lower, is_upper, is_triangle, is_unit — Format check</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-23">
|
|
|
|
if (a%is_triangle()) then
|
|
|
|
 <br />if (a%is_upper()) then
|
|
|
|
 <br />if (a%is_lower()) then
|
|
|
|
 <br />if (a%is_unit()) then
|
|
|
|
</div>
|
|
|
|
<!--l. 770--><p class="nopar" >
|
|
|
|
<!--l. 772--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span><br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 782--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Function value</span> </dt><dd
|
|
|
|
class="description">A <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">logical</span></span></span> value indicating whether the matrix is triangular;
|
|
|
|
if <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">is_triangle()</span></span></span> returns <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">.true.</span></span></span> check also if it is lower, upper and with
|
|
|
|
a unit (i.e. assumed) diagonal.</dd></dl>
|
|
|
|
<!--l. 791--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.10 </span> <a
|
|
|
|
id="x14-360003.2.10"></a>cscnv — Convert to a different storage format</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-24">
|
|
|
|
call  a%cscnv(b,info [, type, mold, dupl])
|
|
|
|
 <br />call  a%cscnv(info [, type, mold, dupl])
|
|
|
|
</div>
|
|
|
|
<!--l. 797--><p class="nopar" >
|
|
|
|
<!--l. 799--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" />
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">type</span> </dt><dd
|
|
|
|
class="description">a string requesting a new format.<br
|
|
|
|
class="newline" />Type: optional.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">mold</span> </dt><dd
|
|
|
|
class="description">a variable of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">class(psb_T_base_sparse_mat)</span></span></span> requesting a new format.<br
|
|
|
|
class="newline" />Type: optional.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">dupl</span> </dt><dd
|
|
|
|
class="description">an integer value specifing how to handle duplicates (see Named Constants
|
|
|
|
below)</dd></dl>
|
|
|
|
<!--l. 813--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">b,a</span> </dt><dd
|
|
|
|
class="description">A copy of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span> with a new storage format.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 819--><p class="noindent" >The <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">mold</span></span></span> arguments may be employed to interface with special devices, such as GPUs
|
|
|
|
and other accelerators.
|
|
|
|
<!--l. 824--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.11 </span> <a
|
|
|
|
id="x14-370003.2.11"></a>csclip — Reduce to a submatrix</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-25">
|
|
|
|
    call a%csclip(b,info[,&
|
|
|
|
 <br />       & imin,imax,jmin,jmax,rscale,cscale])
|
|
|
|
</div>
|
|
|
|
<!--l. 829--><p class="nopar" >
|
|
|
|
<!--l. 831--><p class="indent" > Returns the submatrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">A(imin:imax,jmin:jmax)</span></span></span>, optionally rescaling row/col
|
|
|
|
indices to the range <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">1:imax-imin+1,1:jmax-jmin+1</span></span></span>.
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" />
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">imin,imax,jmin,jmax</span> </dt><dd
|
|
|
|
class="description">Minimum and maximum row and column indices.<br
|
|
|
|
class="newline" />Type: optional.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">rscale,cscale</span> </dt><dd
|
|
|
|
class="description">Whether to rescale row/column indices. Type: optional.</dd></dl>
|
|
|
|
<!--l. 845--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">b</span> </dt><dd
|
|
|
|
class="description">A copy of a submatrix of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 852--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.12 </span> <a
|
|
|
|
id="x14-380003.2.12"></a>clean_zeros — Eliminate zero coefficients</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-26">
|
|
|
|
    call a%clean_zeros(info)
|
|
|
|
</div>
|
|
|
|
<!--l. 856--><p class="nopar" >
|
|
|
|
<!--l. 858--><p class="indent" > Eliminates zero coefficients in the input matrix. Note that depending on the
|
|
|
|
internal storage format, there may still be some amount of zero padding in the
|
|
|
|
output.
|
|
|
|
<!--l. 862--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 869--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">The matrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span> without zero coefficients.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 876--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.13 </span> <a
|
|
|
|
id="x14-390003.2.13"></a>get_diag — Get main diagonal</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-27">
|
|
|
|
    call a%get_diag(d,info)
|
|
|
|
</div>
|
|
|
|
<!--l. 880--><p class="nopar" >
|
|
|
|
<!--l. 882--><p class="indent" > Returns a copy of the main diagonal.
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 890--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">d</span> </dt><dd
|
|
|
|
class="description">A copy of the main diagonal.<br
|
|
|
|
class="newline" />A one-dimensional array of the appropriate type.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 898--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.14 </span> <a
|
|
|
|
id="x14-400003.2.14"></a>clip_diag — Cut out main diagonal</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-28">
|
|
|
|
    call a%clip_diag(b,info)
|
|
|
|
</div>
|
|
|
|
<!--l. 902--><p class="nopar" >
|
|
|
|
<!--l. 904--><p class="indent" > Returns a copy of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span> without the main diagonal.
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 912--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">b</span> </dt><dd
|
|
|
|
class="description">A copy of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span> without the main diagonal.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 920--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.15 </span> <a
|
|
|
|
id="x14-410003.2.15"></a>tril — Return the lower triangle</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-29">
|
|
|
|
    call a%tril(l,info[,&
|
|
|
|
 <br />       & diag,imin,imax,jmin,jmax,rscale,cscale,u])
|
|
|
|
</div>
|
|
|
|
<!--l. 925--><p class="nopar" >
|
|
|
|
<!--l. 927--><p class="indent" > Returns the lower triangular part of submatrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">A(imin:imax,jmin:jmax)</span></span></span>,
|
|
|
|
optionally rescaling row/col indices to the range <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">1:imax-imin+1,1:jmax-jmin+1</span></span></span> and
|
|
|
|
returing the complementary upper triangle.
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" />
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">diag</span> </dt><dd
|
|
|
|
class="description">Include diagonals up to this one; <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">diag=1</span></span></span> means the first superdiagonal,
|
|
|
|
<span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">diag=-1</span></span></span> means the first subdiagonal. Default 0.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">imin,imax,jmin,jmax</span> </dt><dd
|
|
|
|
class="description">Minimum and maximum row and column indices.<br
|
|
|
|
class="newline" />Type: optional.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">rscale,cscale</span> </dt><dd
|
|
|
|
class="description">Whether to rescale row/column indices. Type: optional.</dd></dl>
|
|
|
|
<!--l. 945--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">l</span> </dt><dd
|
|
|
|
class="description">A copy of the lower triangle of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">u</span> </dt><dd
|
|
|
|
class="description">(optional) A copy of the upper triangle of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 954--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.16 </span> <a
|
|
|
|
id="x14-420003.2.16"></a>triu — Return the upper triangle</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-30">
|
|
|
|
    call a%triu(u,info[,&
|
|
|
|
 <br />       & diag,imin,imax,jmin,jmax,rscale,cscale,l])
|
|
|
|
</div>
|
|
|
|
<!--l. 959--><p class="nopar" >
|
|
|
|
<!--l. 961--><p class="indent" > Returns the upper triangular part of submatrix <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">A(imin:imax,jmin:jmax)</span></span></span>,
|
|
|
|
optionally rescaling row/col indices to the range <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">1:imax-imin+1,1:jmax-jmin+1</span></span></span>,
|
|
|
|
and returing the complementary lower triangle.
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" />
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">diag</span> </dt><dd
|
|
|
|
class="description">Include diagonals up to this one; <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">diag=1</span></span></span> means the first superdiagonal,
|
|
|
|
<span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">diag=-1</span></span></span> means the first subdiagonal. Default 0.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">imin,imax,jmin,jmax</span> </dt><dd
|
|
|
|
class="description">Minimum and maximum row and column indices.<br
|
|
|
|
class="newline" />Type: optional.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">rscale,cscale</span> </dt><dd
|
|
|
|
class="description">Whether to rescale row/column indices. Type: optional.</dd></dl>
|
|
|
|
<!--l. 979--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">u</span> </dt><dd
|
|
|
|
class="description">A copy of the upper triangle of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">l</span> </dt><dd
|
|
|
|
class="description">(optional) A copy of the lower triangle of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">a</span></span></span>.<br
|
|
|
|
class="newline" />A variable of type <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">psb_Tspmat_type</span></span></span>.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 991--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.17 </span> <a
|
|
|
|
id="x14-430003.2.17"></a>psb_set_mat_default — Set default storage format</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-31">
|
|
|
|
call  psb_set_mat_default(a)
|
|
|
|
</div>
|
|
|
|
<!--l. 997--><p class="nopar" >
|
|
|
|
<!--l. 999--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">a variable of <span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-10">class(psb_T_base_sparse_mat)</span></span></span> requesting a new default
|
|
|
|
storage format.<br
|
|
|
|
class="newline" />Type: required.</dd></dl>
|
|
|
|
<!--l. 1011--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.18 </span> <a
|
|
|
|
id="x14-440003.2.18"></a>clone — Clone current object</h5>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="verbatim" id="verbatim-32">
|
|
|
|
call  a%clone(b,info)
|
|
|
|
</div>
|
|
|
|
<!--l. 1016--><p class="nopar" >
|
|
|
|
<!--l. 1018--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">Type:</span> </dt><dd
|
|
|
|
class="description">Asynchronous.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Entry</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">a</span> </dt><dd
|
|
|
|
class="description">the sparse matrix.<br
|
|
|
|
class="newline" />Scope: <span
|
|
|
|
class="cmbx-10">local</span>.<br
|
|
|
|
class="newline" /></dd></dl>
|
|
|
|
<!--l. 1028--><p class="indent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">On Return</span> </dt><dd
|
|
|
|
class="description">
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">b</span> </dt><dd
|
|
|
|
class="description">A copy of the input object.
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">info</span> </dt><dd
|
|
|
|
class="description">Return code.</dd></dl>
|
|
|
|
<!--l. 1035--><p class="noindent" >
|
|
|
|
<h5 class="subsubsectionHead"><span class="titlemark">3.2.19 </span> <a
|
|
|
|
id="x14-450003.2.19"></a>Named Constants</h5>
|
|
|
|
<!--l. 1037--><p class="noindent" >
|
|
|
|
<dl class="description"><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_dupl</span><span
|
|
|
|
class="cmbx-10">_ovwrt</span><span
|
|
|
|
class="cmbx-10">_</span> </dt><dd
|
|
|
|
class="description">Duplicate coefficients should be overwritten (i.e. ignore
|
|
|
|
duplications)
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_dupl</span><span
|
|
|
|
class="cmbx-10">_add</span><span
|
|
|
|
class="cmbx-10">_</span> </dt><dd
|
|
|
|
class="description">Duplicate coefficients should be added;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_dupl</span><span
|
|
|
|
class="cmbx-10">_err</span><span
|
|
|
|
class="cmbx-10">_</span> </dt><dd
|
|
|
|
class="description">Duplicate coefficients should trigger an error conditino
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_upd</span><span
|
|
|
|
class="cmbx-10">_dflt</span><span
|
|
|
|
class="cmbx-10">_</span> </dt><dd
|
|
|
|
class="description">Default update strategy for matrix coefficients;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_upd</span><span
|
|
|
|
class="cmbx-10">_srch</span><span
|
|
|
|
class="cmbx-10">_</span> </dt><dd
|
|
|
|
class="description">Update strategy based on search into the data structure;
|
|
|
|
</dd><dt class="description">
|
|
|
|
<span
|
|
|
|
class="cmbx-10">psb</span><span
|
|
|
|
class="cmbx-10">_upd</span><span
|
|
|
|
class="cmbx-10">_perm</span><span
|
|
|
|
class="cmbx-10">_</span> </dt><dd
|
|
|
|
class="description">Update strategy based on additional permutation data (see
|
|
|
|
tools routine description).</dd></dl>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1053--><div class="crosslinks"><p class="noindent">[<a
|
|
|
|
href="userhtmlse4.html" >next</a>] [<a
|
|
|
|
href="userhtmlsu5.html" >prev</a>] [<a
|
|
|
|
href="userhtmlsu5.html#tailuserhtmlsu5.html" >prev-tail</a>] [<a
|
|
|
|
href="userhtmlsu6.html" >front</a>] [<a
|
|
|
|
href="userhtmlsu7.html#userhtmlsu9.html" >up</a>] </p></div>
|
|
|
|
<!--l. 1053--><p class="indent" > <a
|
|
|
|
id="tailuserhtmlsu6.html"></a>
|
|
|
|
</body></html>
|