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/userhtmlsu82.html

155 lines
6.4 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>mm_mat_write &#8212; Write a sparse matrix to a file in the MatrixMarket
format</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. 176--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu85.html" >next</a>] [<a
href="userhtmlsu81.html" >prev</a>] [<a
href="userhtmlsu81.html#tailuserhtmlsu81.html" >prev-tail</a>] [<a
href="userhtmlsu79.html#tailuserhtmlsu82.html">tail</a>] [<a
href="userhtmlsu80.html#userhtmlsu84.html" >up</a>] </p></div>
<h4 class="subsectionHead"><span class="titlemark">9.5 </span> <a
id="x96-1330009.5"></a>mm_mat_write &#8212; Write a sparse matrix to a file in the MatrixMarket
format</h4>
<!--l. 179-->
<div class="lstlisting" id="listing-14"><span class="label"><a
id="x96-133001r1"></a></span><span
class="cmtt-10">call</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mm_mat_write</span><span
class="cmtt-10">(</span><span
class="cmtt-10">a</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">mtitle</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iret</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">iunit</span><span
class="cmtt-10">,</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">filename</span><span
class="cmtt-10">)</span>
</div>
<!--l. 182--><p class="indent" >
<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 to be written.<br
class="newline" />Type:<span
class="cmbx-10">required</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlsu6.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">
<span
class="cmbx-10">mtitle</span> </dt><dd
class="description">Matrix title.<br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />A charachter variable holding a descriptive title for the matrix to be
written to file.
</dd><dt class="description">
<span
class="cmbx-10">filename</span> </dt><dd
class="description">The name of the file to be written to.<br
class="newline" />Type:<span
class="cmbx-10">optional</span>.<br
class="newline" />Specified as: a character variable containing a valid file name, or <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">-</span></span></span>, in
which case the default output unit 6 (i.e. standard output in Unix jargon)
is used. Default: <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">-</span></span></span>.
</dd><dt class="description">
<span
class="cmbx-10">iunit</span> </dt><dd
class="description">The Fortran file unit number.<br
class="newline" />Type:<span
class="cmbx-10">optional</span>.<br
class="newline" />Specified as: an integer value. Only meaningful if filename is not <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">-</span></span></span>.</dd></dl>
<!--l. 202--><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">iret</span> </dt><dd
class="description">Error code.<br
class="newline" />Type: <span
class="cmbx-10">required </span><br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 209--><p class="noindent" ><span
class="cmbx-12">Notes</span>
<!--l. 211--><p class="indent" > If this function is called on a matrix <span class="lstinline"></span><span
class="cmtt-10">a</span> on a distributed communicator only the
local part is written in output. To get a single MatrixMarket file with the whole
matrix when appropriate, e.g. for debugging purposes, one could <span
class="cmti-10">gather </span>the whole
matrix on a single rank and then write it. Consider the following example for a
<span
class="cmti-10">double </span>precision matrix
<div class="center"
>
<!--l. 227--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-93">
type(psb_ldspmat_type)&#x00A0;::&#x00A0;aglobal
call&#x00A0;psb_gather(aglobal,a,desc_a,info)
if&#x00A0;(iam&#x00A0;==&#x00A0;psb_root_)&#x00A0;then
call&#x00A0;mm_mat_write(aglobal,mtitle,info,filename)
end&#x00A0;if
call&#x00A0;psb_spfree(aglobal,&#x00A0;desc_a,&#x00A0;info)
</pre>
<!--l. 237--><p class="nopar" ></div></div>
<!--l. 241--><p class="noindent" >To simplify this procedure in <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">C</span></span></span>, there is a utility function
<div class="center"
>
<!--l. 247--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-94">
psb_i_t&#x00A0;psb_c_&#x003C;s,d,c,z&#x003E;global_mat_write(ah,cdh);
</pre>
<!--l. 251--><p class="nopar" ></div></div>
<!--l. 255--><p class="noindent" >that produces exactly this result.
<!--l. 258--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlsu85.html" >next</a>] [<a
href="userhtmlsu81.html" >prev</a>] [<a
href="userhtmlsu81.html#tailuserhtmlsu81.html" >prev-tail</a>] [<a
href="userhtmlsu82.html" >front</a>] [<a
href="userhtmlsu80.html#userhtmlsu84.html" >up</a>] </p></div>
<!--l. 258--><p class="indent" > <a
id="tailuserhtmlsu82.html"></a>
</body></html>