<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html > <head><title>psb_spasb — Sparse matrix assembly routine</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. 724--><div class="crosslinks"><p class="noindent">[<a href="userhtmlsu42.html" >next</a>] [<a href="userhtmlsu37.html" >prev</a>] [<a href="userhtmlsu37.html#tailuserhtmlsu37.html" >prev-tail</a>] [<a href="userhtmlsu35.html#tailuserhtmlsu38.html">tail</a>] [<a href="userhtmlsu32.html#userhtmlsu41.html" >up</a>] </p></div> <h4 class="subsectionHead"><span class="titlemark">6.9 </span> <a id="x49-860006.9"></a>psb_spasb — Sparse matrix assembly routine</h4> <div class="verbatim" id="verbatim-65"> call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold) </div> <!--l. 728--><p class="nopar" > <!--l. 730--><p class="indent" > <dl class="description"><dt class="description"> <span class="cmbx-10">Type:</span> </dt><dd class="description">Synchronous. </dd><dt class="description"> <span class="cmbx-10">On Entry</span> </dt><dd class="description"> </dd><dt class="description"> <span class="cmbx-10">desc</span><span class="cmbx-10">_a</span> </dt><dd class="description">the communication descriptor.<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 structured data of type <a href="userhtmlsu5.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"> <span class="cmbx-10">afmt</span> </dt><dd class="description">the storage format for the sparse 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" />Specified as: an array of characters. Defalt: ’CSR’. </dd><dt class="description"> <span class="cmbx-10">upd</span> </dt><dd class="description">Provide for updates to the matrix coefficients.<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: integer, possible values: <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_upd_srch_</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_upd_perm_</span></span></span> </dd><dt class="description"> <span class="cmbx-10">dupl</span> </dt><dd class="description">How to handle duplicate coefficients.<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: integer, possible values: <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_dupl_ovwrt_</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_dupl_add_</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_dupl_err_</span></span></span>. </dd><dt class="description"> <span class="cmbx-10">mold</span> </dt><dd class="description">The desired dynamic type for the internal matrix storage.<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" />Specified as: an object of a class derived from <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>.</dd></dl> <!--l. 761--><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">a</span> </dt><dd class="description">the matrix to be assembled.<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 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">info</span> </dt><dd class="description">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. 775--><p class="noindent" ><span class="cmbx-12">Notes</span> <ol class="enumerate1" > <li class="enumerate" id="x49-86002x1">On entry to this routine the descriptor must be in the assembled state, i.e. <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_cdasb</span></span></span> must already have been called. </li> <li class="enumerate" id="x49-86004x2">The sparse matrix may be in either the build or update state; </li> <li class="enumerate" id="x49-86006x3">Duplicate entries are detected and handled in both build and update state, with the exception of the error action that is only taken in the build state, i.e. on the first assembly; </li> <li class="enumerate" id="x49-86008x4">If the update choice is <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_upd_perm_</span></span></span>, then subsequent calls to <span class="obeylines-h"><span class="verb"><span class="cmtt-10">psb_spins</span></span></span> to update the matrix must be arranged in such a way as to produce exactly the same sequence of coefficient values as encountered at the first assembly; </li> <li class="enumerate" id="x49-86010x5">The output storage format need not be the same on all processes; </li> <li class="enumerate" id="x49-86012x6">On exit from this routine the matrix is in the assembled state, and thus is suitable for the computational routines.</li></ol> <!--l. 832--><div class="crosslinks"><p class="noindent">[<a href="userhtmlsu42.html" >next</a>] [<a href="userhtmlsu37.html" >prev</a>] [<a href="userhtmlsu37.html#tailuserhtmlsu37.html" >prev-tail</a>] [<a href="userhtmlsu38.html" >front</a>] [<a href="userhtmlsu32.html#userhtmlsu41.html" >up</a>] </p></div> <!--l. 832--><p class="indent" > <a id="tailuserhtmlsu38.html"></a> </body></html>