Updated docs.
psblas-3.2.0
Salvatore Filippone 11 years ago
parent 38b70b287f
commit fdaa0f5d74

@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node120.html"> <LINK REL="previous" HREF="node121.html">
<LINK REL="up" HREF="userhtml.html"> <LINK REL="up" HREF="userhtml.html">
</HEAD> </HEAD>
@ -104,8 +104,8 @@ sample scatter/gather routines.
. .
</PRE> </PRE>
</DD> </DD>
<DT><A NAME="foot7399">... follows</A><A <DT><A NAME="foot7420">... follows</A><A
HREF="node113.html#tex2html30"><SUP>3</SUP></A></DT> HREF="node114.html#tex2html30"><SUP>3</SUP></A></DT>
<DD>The string is case-insensitive <DD>The string is case-insensitive
<PRE>. <PRE>.

@ -149,227 +149,229 @@ of a sparse matrix</A>
<LI><A NAME="tex2html66" <LI><A NAME="tex2html66"
HREF="node32.html">csclip -- Reduce to a submatrix</A> HREF="node32.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html67" <LI><A NAME="tex2html67"
HREF="node33.html">clip_diag -- Cut out main diagonal</A> HREF="node33.html">get_diag -- Get main diagonal</A>
<LI><A NAME="tex2html68" <LI><A NAME="tex2html68"
HREF="node34.html">tril -- Return the lower triangle</A> HREF="node34.html">clip_diag -- Cut out main diagonal</A>
<LI><A NAME="tex2html69" <LI><A NAME="tex2html69"
HREF="node35.html">triu -- Return the upper triangle</A> HREF="node35.html">tril -- Return the lower triangle</A>
<LI><A NAME="tex2html70" <LI><A NAME="tex2html70"
HREF="node36.html">psb_set_mat_default -- Set default storage format</A> HREF="node36.html">triu -- Return the upper triangle</A>
<LI><A NAME="tex2html71" <LI><A NAME="tex2html71"
HREF="node37.html">clone -- Clone current object</A> HREF="node37.html">psb_set_mat_default -- Set default storage format</A>
<LI><A NAME="tex2html72" <LI><A NAME="tex2html72"
HREF="node38.html">Named Constants</A> HREF="node38.html">clone -- Clone current object</A>
</UL>
<LI><A NAME="tex2html73" <LI><A NAME="tex2html73"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node39.html">Named Constants</A>
<UL> </UL>
<LI><A NAME="tex2html74" <LI><A NAME="tex2html74"
HREF="node40.html">Vector Methods</A> HREF="node40.html">Dense Vector Data Structure</A>
<UL>
<LI><A NAME="tex2html75" <LI><A NAME="tex2html75"
HREF="node41.html">get_nrows -- Get number of rows in a dense vector</A> HREF="node41.html">Vector Methods</A>
<LI><A NAME="tex2html76" <LI><A NAME="tex2html76"
HREF="node42.html">sizeof -- Get memory occupation in bytes HREF="node42.html">get_nrows -- Get number of rows in a dense vector</A>
of a dense vector</A>
<LI><A NAME="tex2html77" <LI><A NAME="tex2html77"
HREF="node43.html">get_vect -- Get a copy of the vector contents</A> HREF="node43.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
<LI><A NAME="tex2html78" <LI><A NAME="tex2html78"
HREF="node44.html">clone -- Clone current object</A> HREF="node44.html">get_vect -- Get a copy of the vector contents</A>
</UL>
<LI><A NAME="tex2html79" <LI><A NAME="tex2html79"
HREF="node45.html">Preconditioner data structure</A> HREF="node45.html">clone -- Clone current object</A>
</UL> </UL>
<BR>
<LI><A NAME="tex2html80" <LI><A NAME="tex2html80"
HREF="node46.html">Computational routines</A> HREF="node46.html">Preconditioner data structure</A>
<UL> </UL>
<BR>
<LI><A NAME="tex2html81" <LI><A NAME="tex2html81"
HREF="node47.html">psb_geaxpby -- General Dense Matrix Sum</A> HREF="node47.html">Computational routines</A>
<UL>
<LI><A NAME="tex2html82" <LI><A NAME="tex2html82"
HREF="node48.html">psb_gedot -- Dot Product</A> HREF="node48.html">psb_geaxpby -- General Dense Matrix Sum</A>
<LI><A NAME="tex2html83" <LI><A NAME="tex2html83"
HREF="node49.html">psb_gedots -- Generalized Dot Product</A> HREF="node49.html">psb_gedot -- Dot Product</A>
<LI><A NAME="tex2html84" <LI><A NAME="tex2html84"
HREF="node50.html">psb_geamax -- Infinity-Norm of Vector</A> HREF="node50.html">psb_gedots -- Generalized Dot Product</A>
<LI><A NAME="tex2html85" <LI><A NAME="tex2html85"
HREF="node51.html">psb_geamaxs -- Generalized Infinity Norm</A> HREF="node51.html">psb_geamax -- Infinity-Norm of Vector</A>
<LI><A NAME="tex2html86" <LI><A NAME="tex2html86"
HREF="node52.html">psb_geasum -- 1-Norm of Vector</A> HREF="node52.html">psb_geamaxs -- Generalized Infinity Norm</A>
<LI><A NAME="tex2html87" <LI><A NAME="tex2html87"
HREF="node53.html">psb_geasums -- Generalized 1-Norm of Vector</A> HREF="node53.html">psb_geasum -- 1-Norm of Vector</A>
<LI><A NAME="tex2html88" <LI><A NAME="tex2html88"
HREF="node54.html">psb_genrm2 -- 2-Norm of Vector</A> HREF="node54.html">psb_geasums -- Generalized 1-Norm of Vector</A>
<LI><A NAME="tex2html89" <LI><A NAME="tex2html89"
HREF="node55.html">psb_genrm2s -- Generalized 2-Norm of Vector</A> HREF="node55.html">psb_genrm2 -- 2-Norm of Vector</A>
<LI><A NAME="tex2html90" <LI><A NAME="tex2html90"
HREF="node56.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A> HREF="node56.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
<LI><A NAME="tex2html91" <LI><A NAME="tex2html91"
HREF="node57.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A> HREF="node57.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
<LI><A NAME="tex2html92" <LI><A NAME="tex2html92"
HREF="node58.html">psb_spmm -- Sparse Matrix by Dense Matrix HREF="node58.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
Product</A>
<LI><A NAME="tex2html93" <LI><A NAME="tex2html93"
HREF="node59.html">psb_spsm -- Triangular System Solve</A> HREF="node59.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
<LI><A NAME="tex2html94"
HREF="node60.html">psb_spsm -- Triangular System Solve</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html94"
HREF="node60.html">Communication routines</A>
<UL>
<LI><A NAME="tex2html95" <LI><A NAME="tex2html95"
HREF="node61.html">psb_halo -- Halo Data Communication</A> HREF="node61.html">Communication routines</A>
<UL>
<LI><A NAME="tex2html96" <LI><A NAME="tex2html96"
HREF="node62.html">psb_ovrl -- Overlap Update</A> HREF="node62.html">psb_halo -- Halo Data Communication</A>
<LI><A NAME="tex2html97" <LI><A NAME="tex2html97"
HREF="node63.html">psb_gather -- Gather Global Dense Matrix</A> HREF="node63.html">psb_ovrl -- Overlap Update</A>
<LI><A NAME="tex2html98" <LI><A NAME="tex2html98"
HREF="node64.html">psb_scatter -- Scatter Global Dense Matrix</A> HREF="node64.html">psb_gather -- Gather Global Dense Matrix</A>
<LI><A NAME="tex2html99"
HREF="node65.html">psb_scatter -- Scatter Global Dense Matrix</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html99"
HREF="node65.html">Data management routines</A>
<UL>
<LI><A NAME="tex2html100" <LI><A NAME="tex2html100"
HREF="node66.html">psb_cdall -- Allocates a communication descriptor</A> HREF="node66.html">Data management routines</A>
<UL>
<LI><A NAME="tex2html101" <LI><A NAME="tex2html101"
HREF="node67.html">psb_cdins -- Communication descriptor insert HREF="node67.html">psb_cdall -- Allocates a communication descriptor</A>
routine</A>
<LI><A NAME="tex2html102" <LI><A NAME="tex2html102"
HREF="node68.html">psb_cdasb -- Communication descriptor assembly HREF="node68.html">psb_cdins -- Communication descriptor insert
routine</A> routine</A>
<LI><A NAME="tex2html103" <LI><A NAME="tex2html103"
HREF="node69.html">psb_cdcpy -- Copies a communication descriptor</A> HREF="node69.html">psb_cdasb -- Communication descriptor assembly
routine</A>
<LI><A NAME="tex2html104" <LI><A NAME="tex2html104"
HREF="node70.html">psb_cdfree -- Frees a communication descriptor</A> HREF="node70.html">psb_cdcpy -- Copies a communication descriptor</A>
<LI><A NAME="tex2html105" <LI><A NAME="tex2html105"
HREF="node71.html">psb_cdbldext -- Build an extended communication HREF="node71.html">psb_cdfree -- Frees a communication descriptor</A>
descriptor</A>
<LI><A NAME="tex2html106" <LI><A NAME="tex2html106"
HREF="node72.html">psb_spall -- Allocates a sparse matrix</A> HREF="node72.html">psb_cdbldext -- Build an extended communication
descriptor</A>
<LI><A NAME="tex2html107" <LI><A NAME="tex2html107"
HREF="node73.html">psb_spins -- Insert a cloud of elements into a sparse HREF="node73.html">psb_spall -- Allocates a sparse matrix</A>
matrix</A>
<LI><A NAME="tex2html108" <LI><A NAME="tex2html108"
HREF="node74.html">psb_spasb -- Sparse matrix assembly routine</A> HREF="node74.html">psb_spins -- Insert a cloud of elements into a sparse
matrix</A>
<LI><A NAME="tex2html109" <LI><A NAME="tex2html109"
HREF="node75.html">psb_spfree -- Frees a sparse matrix</A> HREF="node75.html">psb_spasb -- Sparse matrix assembly routine</A>
<LI><A NAME="tex2html110" <LI><A NAME="tex2html110"
HREF="node76.html">psb_sprn -- Reinit sparse matrix structure for psblas HREF="node76.html">psb_spfree -- Frees a sparse matrix</A>
routines.</A>
<LI><A NAME="tex2html111" <LI><A NAME="tex2html111"
HREF="node77.html">psb_geall -- Allocates a dense matrix</A> HREF="node77.html">psb_sprn -- Reinit sparse matrix structure for psblas
routines.</A>
<LI><A NAME="tex2html112" <LI><A NAME="tex2html112"
HREF="node78.html">psb_geins -- Dense matrix insertion routine</A> HREF="node78.html">psb_geall -- Allocates a dense matrix</A>
<LI><A NAME="tex2html113" <LI><A NAME="tex2html113"
HREF="node79.html">psb_geasb -- Assembly a dense matrix</A> HREF="node79.html">psb_geins -- Dense matrix insertion routine</A>
<LI><A NAME="tex2html114" <LI><A NAME="tex2html114"
HREF="node80.html">psb_gefree -- Frees a dense matrix</A> HREF="node80.html">psb_geasb -- Assembly a dense matrix</A>
<LI><A NAME="tex2html115" <LI><A NAME="tex2html115"
HREF="node81.html">psb_gelp -- Applies a left permutation to a dense HREF="node81.html">psb_gefree -- Frees a dense matrix</A>
matrix</A>
<LI><A NAME="tex2html116" <LI><A NAME="tex2html116"
HREF="node82.html">psb_glob_to_loc -- Global to local indices HREF="node82.html">psb_gelp -- Applies a left permutation to a dense
convertion</A> matrix</A>
<LI><A NAME="tex2html117" <LI><A NAME="tex2html117"
HREF="node83.html">psb_loc_to_glob -- Local to global indices HREF="node83.html">psb_glob_to_loc -- Global to local indices
conversion</A> convertion</A>
<LI><A NAME="tex2html118" <LI><A NAME="tex2html118"
HREF="node84.html">psb_is_owned -- </A> HREF="node84.html">psb_loc_to_glob -- Local to global indices
conversion</A>
<LI><A NAME="tex2html119" <LI><A NAME="tex2html119"
HREF="node85.html">psb_owned_index -- </A> HREF="node85.html">psb_is_owned -- </A>
<LI><A NAME="tex2html120" <LI><A NAME="tex2html120"
HREF="node86.html">psb_is_local -- </A> HREF="node86.html">psb_owned_index -- </A>
<LI><A NAME="tex2html121" <LI><A NAME="tex2html121"
HREF="node87.html">psb_local_index -- </A> HREF="node87.html">psb_is_local -- </A>
<LI><A NAME="tex2html122" <LI><A NAME="tex2html122"
HREF="node88.html">psb_get_boundary -- Extract list of boundary HREF="node88.html">psb_local_index -- </A>
elements</A>
<LI><A NAME="tex2html123" <LI><A NAME="tex2html123"
HREF="node89.html">psb_get_overlap -- Extract list of overlap HREF="node89.html">psb_get_boundary -- Extract list of boundary
elements</A> elements</A>
<LI><A NAME="tex2html124" <LI><A NAME="tex2html124"
HREF="node90.html">psb_sp_getrow -- Extract row(s) from a sparse HREF="node90.html">psb_get_overlap -- Extract list of overlap
matrix</A> elements</A>
<LI><A NAME="tex2html125" <LI><A NAME="tex2html125"
HREF="node91.html">psb_sizeof -- Memory occupation</A> HREF="node91.html">psb_sp_getrow -- Extract row(s) from a sparse
matrix</A>
<LI><A NAME="tex2html126" <LI><A NAME="tex2html126"
HREF="node92.html">Sorting utilities -- </A> HREF="node92.html">psb_sizeof -- Memory occupation</A>
<LI><A NAME="tex2html127"
HREF="node93.html">Sorting utilities -- </A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html127"
HREF="node93.html">Parallel environment routines</A>
<UL>
<LI><A NAME="tex2html128" <LI><A NAME="tex2html128"
HREF="node94.html">psb_init -- Initializes PSBLAS parallel HREF="node94.html">Parallel environment routines</A>
environment</A> <UL>
<LI><A NAME="tex2html129" <LI><A NAME="tex2html129"
HREF="node95.html">psb_info -- Return information about PSBLAS parallel HREF="node95.html">psb_init -- Initializes PSBLAS parallel
environment</A> environment</A>
<LI><A NAME="tex2html130" <LI><A NAME="tex2html130"
HREF="node96.html">psb_exit -- Exit from PSBLAS parallel HREF="node96.html">psb_info -- Return information about PSBLAS parallel
environment</A> environment</A>
<LI><A NAME="tex2html131" <LI><A NAME="tex2html131"
HREF="node97.html">psb_get_mpicomm -- Get the MPI communicator</A> HREF="node97.html">psb_exit -- Exit from PSBLAS parallel
environment</A>
<LI><A NAME="tex2html132" <LI><A NAME="tex2html132"
HREF="node98.html">psb_get_rank -- Get the MPI rank</A> HREF="node98.html">psb_get_mpicomm -- Get the MPI communicator</A>
<LI><A NAME="tex2html133" <LI><A NAME="tex2html133"
HREF="node99.html">psb_wtime -- Wall clock timing</A> HREF="node99.html">psb_get_rank -- Get the MPI rank</A>
<LI><A NAME="tex2html134" <LI><A NAME="tex2html134"
HREF="node100.html">psb_barrier -- Sinchronization point parallel HREF="node100.html">psb_wtime -- Wall clock timing</A>
environment</A>
<LI><A NAME="tex2html135" <LI><A NAME="tex2html135"
HREF="node101.html">psb_abort -- Abort a computation</A> HREF="node101.html">psb_barrier -- Sinchronization point parallel
environment</A>
<LI><A NAME="tex2html136" <LI><A NAME="tex2html136"
HREF="node102.html">psb_bcast -- Broadcast data</A> HREF="node102.html">psb_abort -- Abort a computation</A>
<LI><A NAME="tex2html137" <LI><A NAME="tex2html137"
HREF="node103.html">psb_sum -- Global sum</A> HREF="node103.html">psb_bcast -- Broadcast data</A>
<LI><A NAME="tex2html138" <LI><A NAME="tex2html138"
HREF="node104.html">psb_max -- Global maximum</A> HREF="node104.html">psb_sum -- Global sum</A>
<LI><A NAME="tex2html139" <LI><A NAME="tex2html139"
HREF="node105.html">psb_min -- Global minimum</A> HREF="node105.html">psb_max -- Global maximum</A>
<LI><A NAME="tex2html140" <LI><A NAME="tex2html140"
HREF="node106.html">psb_amx -- Global maximum absolute value</A> HREF="node106.html">psb_min -- Global minimum</A>
<LI><A NAME="tex2html141" <LI><A NAME="tex2html141"
HREF="node107.html">psb_amn -- Global minimum absolute value</A> HREF="node107.html">psb_amx -- Global maximum absolute value</A>
<LI><A NAME="tex2html142" <LI><A NAME="tex2html142"
HREF="node108.html">psb_snd -- Send data</A> HREF="node108.html">psb_amn -- Global minimum absolute value</A>
<LI><A NAME="tex2html143" <LI><A NAME="tex2html143"
HREF="node109.html">psb_rcv -- Receive data</A> HREF="node109.html">psb_snd -- Send data</A>
<LI><A NAME="tex2html144"
HREF="node110.html">psb_rcv -- Receive data</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html144"
HREF="node110.html">Error handling</A>
<LI><A NAME="tex2html145" <LI><A NAME="tex2html145"
HREF="node111.html">Utilities</A> HREF="node111.html">Error handling</A>
<LI><A NAME="tex2html146" <LI><A NAME="tex2html146"
HREF="node112.html">Preconditioner routines</A> HREF="node112.html">Utilities</A>
<UL>
<LI><A NAME="tex2html147" <LI><A NAME="tex2html147"
HREF="node113.html">psb_precinit -- Initialize a preconditioner</A> HREF="node113.html">Preconditioner routines</A>
<UL>
<LI><A NAME="tex2html148" <LI><A NAME="tex2html148"
HREF="node114.html">psb_precbld -- Builds a preconditioner</A> HREF="node114.html">psb_precinit -- Initialize a preconditioner</A>
<LI><A NAME="tex2html149" <LI><A NAME="tex2html149"
HREF="node115.html">psb_precaply -- Preconditioner application HREF="node115.html">psb_precbld -- Builds a preconditioner</A>
routine</A>
<LI><A NAME="tex2html150" <LI><A NAME="tex2html150"
HREF="node116.html">psb_precdescr -- Prints a description of current HREF="node116.html">psb_precaply -- Preconditioner application
preconditioner</A> routine</A>
<LI><A NAME="tex2html151" <LI><A NAME="tex2html151"
HREF="node117.html">clone -- clone current HREF="node117.html">psb_precdescr -- Prints a description of current
preconditioner</A>
<LI><A NAME="tex2html152"
HREF="node118.html">clone -- clone current
preconditioner</A> preconditioner</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html152"
HREF="node118.html">Iterative Methods</A>
<UL>
<LI><A NAME="tex2html153" <LI><A NAME="tex2html153"
HREF="node119.html">psb_krylov -- Krylov Methods Driver HREF="node119.html">Iterative Methods</A>
<UL>
<LI><A NAME="tex2html154"
HREF="node120.html">psb_krylov -- Krylov Methods Driver
Routine</A> Routine</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html154"
HREF="node120.html">Bibliography</A>
<LI><A NAME="tex2html155" <LI><A NAME="tex2html155"
HREF="node121.html">About this document ...</A> HREF="node121.html">Bibliography</A>
<LI><A NAME="tex2html156"
HREF="node122.html">About this document ...</A>
</UL> </UL>
<!--End of Table of Child-Links--> <!--End of Table of Child-Links-->
<BR><HR> <BR><HR>

@ -26,21 +26,21 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html164" <A NAME="tex2html165"
HREF="node2.html"> HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html162" <A NAME="tex2html163"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html156" <A NAME="tex2html157"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html165" <B> Next:</B> <A NAME="tex2html166"
HREF="node2.html">Introduction</A> HREF="node2.html">Introduction</A>
<B> Up:</B> <A NAME="tex2html163" <B> Up:</B> <A NAME="tex2html164"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html157" <B> Previous:</B> <A NAME="tex2html158"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<BR> <BR>
<BR> <BR>
@ -53,52 +53,52 @@ Contents</A>
<!--Table of Contents--> <!--Table of Contents-->
<UL> <UL>
<LI><A NAME="tex2html166"
HREF="node2.html">Introduction</A>
<LI><A NAME="tex2html167" <LI><A NAME="tex2html167"
HREF="node2.html">Introduction</A>
<LI><A NAME="tex2html168"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<UL> <UL>
<LI><A NAME="tex2html168"
HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html169" <LI><A NAME="tex2html169"
HREF="node5.html">Library contents</A> HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html170" <LI><A NAME="tex2html170"
HREF="node6.html">Application structure</A> HREF="node5.html">Library contents</A>
<LI><A NAME="tex2html171" <LI><A NAME="tex2html171"
HREF="node6.html">Application structure</A>
<LI><A NAME="tex2html172"
HREF="node8.html">Programming model</A> HREF="node8.html">Programming model</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html172" <LI><A NAME="tex2html173"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
<UL> <UL>
<LI><A NAME="tex2html173"
HREF="node10.html">Descriptor data structure</A>
<LI><A NAME="tex2html174" <LI><A NAME="tex2html174"
HREF="node21.html">Sparse Matrix class</A> HREF="node10.html">Descriptor data structure</A>
<LI><A NAME="tex2html175" <LI><A NAME="tex2html175"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node21.html">Sparse Matrix class</A>
<LI><A NAME="tex2html176" <LI><A NAME="tex2html176"
HREF="node45.html">Preconditioner data structure</A> HREF="node40.html">Dense Vector Data Structure</A>
<LI><A NAME="tex2html177"
HREF="node46.html">Preconditioner data structure</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html177"
HREF="node46.html">Computational routines</A>
<LI><A NAME="tex2html178" <LI><A NAME="tex2html178"
HREF="node60.html">Communication routines</A> HREF="node47.html">Computational routines</A>
<LI><A NAME="tex2html179" <LI><A NAME="tex2html179"
HREF="node65.html">Data management routines</A> HREF="node61.html">Communication routines</A>
<LI><A NAME="tex2html180" <LI><A NAME="tex2html180"
HREF="node93.html">Parallel environment routines</A> HREF="node66.html">Data management routines</A>
<LI><A NAME="tex2html181" <LI><A NAME="tex2html181"
HREF="node110.html">Error handling</A> HREF="node94.html">Parallel environment routines</A>
<LI><A NAME="tex2html182" <LI><A NAME="tex2html182"
HREF="node111.html">Utilities</A> HREF="node111.html">Error handling</A>
<LI><A NAME="tex2html183" <LI><A NAME="tex2html183"
HREF="node112.html">Preconditioner routines</A> HREF="node112.html">Utilities</A>
<LI><A NAME="tex2html184" <LI><A NAME="tex2html184"
HREF="node118.html">Iterative Methods</A> HREF="node113.html">Preconditioner routines</A>
<LI><A NAME="tex2html185" <LI><A NAME="tex2html185"
HREF="node120.html">Bibliography</A> HREF="node119.html">Iterative Methods</A>
<LI><A NAME="tex2html186"
HREF="node121.html">Bibliography</A>
</UL> </UL>
<!--End of Table of Contents--> <!--End of Table of Contents-->
<P> <P>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html330" <A NAME="tex2html332"
HREF="node11.html"> HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html326" <A NAME="tex2html328"
HREF="node9.html"> HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html320" <A NAME="tex2html322"
HREF="node9.html"> HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html328" <A NAME="tex2html330"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html331" <B> Next:</B> <A NAME="tex2html333"
HREF="node11.html">Descriptor Methods</A> HREF="node11.html">Descriptor Methods</A>
<B> Up:</B> <A NAME="tex2html327" <B> Up:</B> <A NAME="tex2html329"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html321" <B> Previous:</B> <A NAME="tex2html323"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
&nbsp; <B> <A NAME="tex2html329" &nbsp; <B> <A NAME="tex2html331"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -66,7 +66,7 @@ necessary for implementing the various algorithms of interest to us.
<P> <P>
The data structure itself <code>psb_desc_type</code> can be treated as an The data structure itself <code>psb_desc_type</code> can be treated as an
opaque object handled via the tools routines of opaque object handled via the tools routines of
Sec.&nbsp;<A HREF="node65.html#sec:toolsrout">6</A> or the query routines detailed below; Sec.&nbsp;<A HREF="node66.html#sec:toolsrout">6</A> or the query routines detailed below;
nevertheless we include here a description for the curious nevertheless we include here a description for the curious
reader. reader.
@ -117,7 +117,7 @@ All methods but the last are purely local; the last method potentially
requires communication among processes, and thus is a synchronous requires communication among processes, and thus is a synchronous
method. The choice of a specific dynamic type for the index map is method. The choice of a specific dynamic type for the index map is
made at the time the descriptor is initially allocated, according to made at the time the descriptor is initially allocated, according to
the mode of initialization (see also&nbsp;<A HREF="node65.html#sec:toolsrout">6</A>). the mode of initialization (see also&nbsp;<A HREF="node66.html#sec:toolsrout">6</A>).
<P> <P>
The descriptor contents are as follows: The descriptor contents are as follows:
@ -202,7 +202,7 @@ Specified as: an allocatable integer array of rank two.
The Fortran&nbsp;2003 declaration for <code>psb_desc_type</code> structures is The Fortran&nbsp;2003 declaration for <code>psb_desc_type</code> structures is
as follows: as follows:
<DIV ALIGN="CENTER"><A NAME="fig:desctype"></A><A NAME="847"></A> <DIV ALIGN="CENTER"><A NAME="fig:desctype"></A><A NAME="858"></A>
<TABLE> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
The PSBLAS defined data type that The PSBLAS defined data type that
@ -249,52 +249,52 @@ state, which can take the following values:
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL> <UL>
<LI><A NAME="tex2html332" <LI><A NAME="tex2html334"
HREF="node11.html">Descriptor Methods</A> HREF="node11.html">Descriptor Methods</A>
<LI><A NAME="tex2html333" <LI><A NAME="tex2html335"
HREF="node12.html">get_local_rows -- Get number of local rows</A> HREF="node12.html">get_local_rows -- Get number of local rows</A>
<LI><A NAME="tex2html334" <LI><A NAME="tex2html336"
HREF="node13.html">get_local_cols -- Get number of local cols</A> HREF="node13.html">get_local_cols -- Get number of local cols</A>
<LI><A NAME="tex2html335" <LI><A NAME="tex2html337"
HREF="node14.html">get_global_rows -- Get number of global rows</A> HREF="node14.html">get_global_rows -- Get number of global rows</A>
<LI><A NAME="tex2html336" <LI><A NAME="tex2html338"
HREF="node15.html">get_global_cols -- Get number of global cols</A> HREF="node15.html">get_global_cols -- Get number of global cols</A>
<LI><A NAME="tex2html337" <LI><A NAME="tex2html339"
HREF="node16.html">get_context -- Get communication context</A> HREF="node16.html">get_context -- Get communication context</A>
<LI><A NAME="tex2html338" <LI><A NAME="tex2html340"
HREF="node17.html">Clone -- clone current object</A> HREF="node17.html">Clone -- clone current object</A>
<LI><A NAME="tex2html339" <LI><A NAME="tex2html341"
HREF="node18.html">psb_cd_get_large_threshold -- Get threshold for HREF="node18.html">psb_cd_get_large_threshold -- Get threshold for
index mapping switch</A> index mapping switch</A>
<LI><A NAME="tex2html340" <LI><A NAME="tex2html342"
HREF="node19.html">psb_cd_set_large_threshold -- Set threshold for HREF="node19.html">psb_cd_set_large_threshold -- Set threshold for
index mapping switch</A> index mapping switch</A>
<LI><A NAME="tex2html341" <LI><A NAME="tex2html343"
HREF="node20.html">Named Constants</A> HREF="node20.html">Named Constants</A>
</UL> </UL>
<!--End of Table of Child-Links--> <!--End of Table of Child-Links-->
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html330" <A NAME="tex2html332"
HREF="node11.html"> HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html326" <A NAME="tex2html328"
HREF="node9.html"> HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html320" <A NAME="tex2html322"
HREF="node9.html"> HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html328" <A NAME="tex2html330"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html331" <B> Next:</B> <A NAME="tex2html333"
HREF="node11.html">Descriptor Methods</A> HREF="node11.html">Descriptor Methods</A>
<B> Up:</B> <A NAME="tex2html327" <B> Up:</B> <A NAME="tex2html329"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html321" <B> Previous:</B> <A NAME="tex2html323"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
&nbsp; <B> <A NAME="tex2html329" &nbsp; <B> <A NAME="tex2html331"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_barrier -- Sinchronization point parallel environment</TITLE> <TITLE>psb_wtime -- Wall clock timing</TITLE>
<META NAME="description" CONTENT="psb_barrier -- Sinchronization point parallel environment"> <META NAME="description" CONTENT="psb_wtime -- Wall clock timing">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,68 +20,60 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node101.html"> <LINK REL="next" HREF="node101.html">
<LINK REL="previous" HREF="node99.html"> <LINK REL="previous" HREF="node99.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node101.html"> <LINK REL="next" HREF="node101.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1488" <A NAME="tex2html1491"
HREF="node101.html"> HREF="node101.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1484" <A NAME="tex2html1487"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1478" <A NAME="tex2html1481"
HREF="node99.html"> HREF="node99.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1486" <A NAME="tex2html1489"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1489" <B> Next:</B> <A NAME="tex2html1492"
HREF="node101.html">psb_abort Abort</A> HREF="node101.html">psb_barrier Sinchronization</A>
<B> Up:</B> <A NAME="tex2html1485" <B> Up:</B> <A NAME="tex2html1488"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1479" <B> Previous:</B> <A NAME="tex2html1482"
HREF="node99.html">psb_wtime Wall</A> HREF="node99.html">psb_get_rank Get</A>
&nbsp; <B> <A NAME="tex2html1487" &nbsp; <B> <A NAME="tex2html1490"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00087000000000000000"> <H2><A NAME="SECTION00086000000000000000">
psb_barrier -- Sinchronization point parallel psb_wtime -- Wall clock timing</A>
environment</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_barrier(icontxt) time = psb_wtime()
</PRE> </PRE>
<P> <P>
This subroutine acts as an explicit synchronization point for the PSBLAS This function returns a wall clock timer. The resolution of the timer
parallel virtual machine. is dependent on the underlying parallel environment implementation.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Exit </B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>icontxt</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>the communication context identifying the virtual <DD>the elapsed time in seconds.
parallel machine.
<BR> <BR>
Scope: <B>global</B>. Returned as: a <code>real(psb_dpk_)</code> variable.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_abort -- Abort a computation</TITLE> <TITLE>psb_barrier -- Sinchronization point parallel environment</TITLE>
<META NAME="description" CONTENT="psb_abort -- Abort a computation"> <META NAME="description" CONTENT="psb_barrier -- Sinchronization point parallel environment">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,51 +20,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node102.html"> <LINK REL="next" HREF="node102.html">
<LINK REL="previous" HREF="node100.html"> <LINK REL="previous" HREF="node100.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node102.html"> <LINK REL="next" HREF="node102.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1500" <A NAME="tex2html1503"
HREF="node102.html"> HREF="node102.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1496" <A NAME="tex2html1499"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1490" <A NAME="tex2html1493"
HREF="node100.html"> HREF="node100.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1498" <A NAME="tex2html1501"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1501" <B> Next:</B> <A NAME="tex2html1504"
HREF="node102.html">psb_bcast Broadcast</A> HREF="node102.html">psb_abort Abort</A>
<B> Up:</B> <A NAME="tex2html1497" <B> Up:</B> <A NAME="tex2html1500"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1491" <B> Previous:</B> <A NAME="tex2html1494"
HREF="node100.html">psb_barrier Sinchronization</A> HREF="node100.html">psb_wtime Wall</A>
&nbsp; <B> <A NAME="tex2html1499" &nbsp; <B> <A NAME="tex2html1502"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00088000000000000000"> <H2><A NAME="SECTION00087000000000000000">
psb_abort -- Abort a computation</A> psb_barrier -- Sinchronization point parallel
environment</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_abort(icontxt) call psb_barrier(icontxt)
</PRE> </PRE>
<P> <P>
This subroutine aborts computation on the parallel virtual machine. This subroutine acts as an explicit synchronization point for the PSBLAS
parallel virtual machine.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Synchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry </B></STRONG></DT>
<DD> <DD>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_bcast -- Broadcast data</TITLE> <TITLE>psb_abort -- Abort a computation</TITLE>
<META NAME="description" CONTENT="psb_bcast -- Broadcast data"> <META NAME="description" CONTENT="psb_abort -- Abort a computation">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,52 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node103.html"> <LINK REL="next" HREF="node103.html">
<LINK REL="previous" HREF="node101.html"> <LINK REL="previous" HREF="node101.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node103.html"> <LINK REL="next" HREF="node103.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1512" <A NAME="tex2html1515"
HREF="node103.html"> HREF="node103.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1508" <A NAME="tex2html1511"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1502" <A NAME="tex2html1505"
HREF="node101.html"> HREF="node101.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1510" <A NAME="tex2html1513"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1513" <B> Next:</B> <A NAME="tex2html1516"
HREF="node103.html">psb_sum Global</A> HREF="node103.html">psb_bcast Broadcast</A>
<B> Up:</B> <A NAME="tex2html1509" <B> Up:</B> <A NAME="tex2html1512"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1503" <B> Previous:</B> <A NAME="tex2html1506"
HREF="node101.html">psb_abort Abort</A> HREF="node101.html">psb_barrier Sinchronization</A>
&nbsp; <B> <A NAME="tex2html1511" &nbsp; <B> <A NAME="tex2html1514"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00089000000000000000"> <H2><A NAME="SECTION00088000000000000000">
psb_bcast -- Broadcast data</A> psb_abort -- Abort a computation</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_bcast(icontxt, dat, root) call psb_abort(icontxt)
</PRE> </PRE>
<P> <P>
This subroutine implements a broadcast operation based on the This subroutine aborts computation on the parallel virtual machine.
underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry </B></STRONG></DT>
<DD> <DD>
@ -82,81 +81,10 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT>
<DD>On the root process, the data to be broadcast.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical variable,
which may be a scalar or rank 1 array. Type, kind, rank and size must agree on all processes.
</DD>
<DT><STRONG>root</STRONG></DT>
<DD>Root process holding data to be broadcast.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= root <= np-1$
-->
<IMG
WIDTH="152" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$0&lt;= root &lt;= np-1$">, default 0 </DD>
</DL> </DL>
<P> <P>
<DL> <BR><HR>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>On processes other than root, the data to be broadcast.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind, rank and size must agree on all processes.
</DD>
</DL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1512"
HREF="node103.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1508"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1502"
HREF="node101.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1510"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1513"
HREF="node103.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1509"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1503"
HREF="node101.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1511"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_sum -- Global sum</TITLE> <TITLE>psb_bcast -- Broadcast data</TITLE>
<META NAME="description" CONTENT="psb_sum -- Global sum"> <META NAME="description" CONTENT="psb_bcast -- Broadcast data">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node104.html"> <LINK REL="next" HREF="node104.html">
<LINK REL="previous" HREF="node102.html"> <LINK REL="previous" HREF="node102.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node104.html"> <LINK REL="next" HREF="node104.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1524" <A NAME="tex2html1527"
HREF="node104.html"> HREF="node104.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1520" <A NAME="tex2html1523"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1514" <A NAME="tex2html1517"
HREF="node102.html"> HREF="node102.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1522" <A NAME="tex2html1525"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1525" <B> Next:</B> <A NAME="tex2html1528"
HREF="node104.html">psb_max Global</A> HREF="node104.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1521" <B> Up:</B> <A NAME="tex2html1524"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1515" <B> Previous:</B> <A NAME="tex2html1518"
HREF="node102.html">psb_bcast Broadcast</A> HREF="node102.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1523" &nbsp; <B> <A NAME="tex2html1526"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000810000000000000000"> <H2><A NAME="SECTION00089000000000000000">
psb_sum -- Global sum</A> psb_bcast -- Broadcast data</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_sum(icontxt, dat, root) call psb_bcast(icontxt, dat, root)
</PRE> </PRE>
<P> <P>
This subroutine implements a sum reduction operation based on the This subroutine implements a broadcast operation based on the
underlying communication library. underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -83,7 +83,7 @@ Intent: <B>in</B>.
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global sum. <DD>On the root process, the data to be broadcast.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
@ -92,14 +92,11 @@ Type: <B>required</B>.
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer, real or complex variable, which may be a Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. scalar, or a rank 1 or 2 array, or a character or logical variable,
which may be a scalar or rank 1 array. Type, kind, rank and size must agree on all processes.
</DD> </DD>
<DT><STRONG>root</STRONG></DT> <DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final sum, or <IMG <DD>Root process holding data to be broadcast.
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$-1$"> to make it available
on all processes.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
@ -108,12 +105,12 @@ Type: <B>optional</B>.
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value <!-- MATH Specified as: an integer value <!-- MATH
$-1<= root <= np-1$ $0<= root <= np-1$
--> -->
<IMG <IMG
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="152" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png" SRC="img132.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1. </DD> ALT="$0&lt;= root &lt;= np-1$">, default 0 </DD>
</DL> </DL>
<P> <P>
@ -122,7 +119,7 @@ Specified as: an integer value <!-- MATH
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the sum operation. <DD>On processes other than root, the data to be broadcast.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
@ -131,47 +128,33 @@ Type: <B>required</B>.
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer, real or complex variable, which may be a Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array. scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind, rank and size must agree on all processes.
<BR>
Type, kind, rank and size must agree on all processes.
</DD> </DD>
</DL> </DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>The <code>dat</code> argument is both input and output, and its
value may be changed even on processes different from the final
result destination.
</LI>
<LI>The <code>dat</code> argument may also be a long integer scalar.
</LI>
</OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1524" <A NAME="tex2html1527"
HREF="node104.html"> HREF="node104.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1520" <A NAME="tex2html1523"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1514" <A NAME="tex2html1517"
HREF="node102.html"> HREF="node102.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1522" <A NAME="tex2html1525"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1525" <B> Next:</B> <A NAME="tex2html1528"
HREF="node104.html">psb_max Global</A> HREF="node104.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1521" <B> Up:</B> <A NAME="tex2html1524"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1515" <B> Previous:</B> <A NAME="tex2html1518"
HREF="node102.html">psb_bcast Broadcast</A> HREF="node102.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1523" &nbsp; <B> <A NAME="tex2html1526"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_max -- Global maximum</TITLE> <TITLE>psb_sum -- Global sum</TITLE>
<META NAME="description" CONTENT="psb_max -- Global maximum"> <META NAME="description" CONTENT="psb_sum -- Global sum">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node105.html"> <LINK REL="next" HREF="node105.html">
<LINK REL="previous" HREF="node103.html"> <LINK REL="previous" HREF="node103.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node105.html"> <LINK REL="next" HREF="node105.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1536" <A NAME="tex2html1539"
HREF="node105.html"> HREF="node105.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1532" <A NAME="tex2html1535"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1526" <A NAME="tex2html1529"
HREF="node103.html"> HREF="node103.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1534" <A NAME="tex2html1537"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1537" <B> Next:</B> <A NAME="tex2html1540"
HREF="node105.html">psb_min Global</A> HREF="node105.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1533" <B> Up:</B> <A NAME="tex2html1536"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1527" <B> Previous:</B> <A NAME="tex2html1530"
HREF="node103.html">psb_sum Global</A> HREF="node103.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1535" &nbsp; <B> <A NAME="tex2html1538"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000811000000000000000"> <H2><A NAME="SECTION000810000000000000000">
psb_max -- Global maximum</A> psb_sum -- Global sum</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_max(icontxt, dat, root) call psb_sum(icontxt, dat, root)
</PRE> </PRE>
<P> <P>
This subroutine implements a maximum valuereduction This subroutine implements a sum reduction operation based on the
operation based on the underlying communication library. underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Synchronous.
@ -83,19 +83,19 @@ Intent: <B>in</B>.
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global maximum. <DD>The local contribution to the global sum.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>global</B>.
<BR> <BR>
Type: <B>required</B>. Type: <B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer or real variable, which may be a Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
</DD> </DD>
<DT><STRONG>root</STRONG></DT> <DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final maximum, or <IMG <DD>Process to hold the final sum, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png" SRC="img79.png"
ALT="$-1$"> to make it available ALT="$-1$"> to make it available
@ -113,8 +113,7 @@ Specified as: an integer value <!-- MATH
<IMG <IMG
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png" SRC="img133.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1. ALT="$-1&lt;= root &lt;= np-1$">, default -1. </DD>
<BR></DD>
</DL> </DL>
<P> <P>
@ -123,16 +122,18 @@ Specified as: an integer value <!-- MATH
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the maximum operation. <DD>On destination process(es), the result of the sum operation.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
Type: <B>required</B>. Type: <B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer or real variable, which may be a Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. scalar, or a rank 1 or 2 array.
<BR>
Type, kind, rank and size must agree on all processes.
</DD> </DD>
</DL> </DL>
@ -151,26 +152,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1536" <A NAME="tex2html1539"
HREF="node105.html"> HREF="node105.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1532" <A NAME="tex2html1535"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1526" <A NAME="tex2html1529"
HREF="node103.html"> HREF="node103.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1534" <A NAME="tex2html1537"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1537" <B> Next:</B> <A NAME="tex2html1540"
HREF="node105.html">psb_min Global</A> HREF="node105.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1533" <B> Up:</B> <A NAME="tex2html1536"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1527" <B> Previous:</B> <A NAME="tex2html1530"
HREF="node103.html">psb_sum Global</A> HREF="node103.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1535" &nbsp; <B> <A NAME="tex2html1538"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_min -- Global minimum</TITLE> <TITLE>psb_max -- Global maximum</TITLE>
<META NAME="description" CONTENT="psb_min -- Global minimum"> <META NAME="description" CONTENT="psb_max -- Global maximum">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node106.html"> <LINK REL="next" HREF="node106.html">
<LINK REL="previous" HREF="node104.html"> <LINK REL="previous" HREF="node104.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node106.html"> <LINK REL="next" HREF="node106.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1548" <A NAME="tex2html1551"
HREF="node106.html"> HREF="node106.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1544" <A NAME="tex2html1547"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1538" <A NAME="tex2html1541"
HREF="node104.html"> HREF="node104.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1546" <A NAME="tex2html1549"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1549" <B> Next:</B> <A NAME="tex2html1552"
HREF="node106.html">psb_amx Global</A> HREF="node106.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1545" <B> Up:</B> <A NAME="tex2html1548"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1539" <B> Previous:</B> <A NAME="tex2html1542"
HREF="node104.html">psb_max Global</A> HREF="node104.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1547" &nbsp; <B> <A NAME="tex2html1550"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000812000000000000000"> <H2><A NAME="SECTION000811000000000000000">
psb_min -- Global minimum</A> psb_max -- Global maximum</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_min(icontxt, dat, root) call psb_max(icontxt, dat, root)
</PRE> </PRE>
<P> <P>
This subroutine implements a minimum value reduction This subroutine implements a maximum valuereduction
operation based on the underlying communication library. operation based on the underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -83,7 +83,7 @@ Intent: <B>in</B>.
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global minimum. <DD>The local contribution to the global maximum.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>.
<BR> <BR>
@ -91,11 +91,11 @@ Type: <B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer or real variable, which may be a Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
</DD> </DD>
<DT><STRONG>root</STRONG></DT> <DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final value, or <IMG <DD>Process to hold the final maximum, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png" SRC="img79.png"
ALT="$-1$"> to make it available ALT="$-1$"> to make it available
@ -123,18 +123,16 @@ Specified as: an integer value <!-- MATH
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the minimum operation. <DD>On destination process(es), the result of the maximum operation.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
Type: <B>required</B>. Type: <B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>in</B>.
<BR>
Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array.
<BR> <BR>
Type, kind, rank and size must agree on all processes. Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
</DD> </DD>
</DL> </DL>
@ -153,26 +151,26 @@ Type, kind, rank and size must agree on all processes.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1548" <A NAME="tex2html1551"
HREF="node106.html"> HREF="node106.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1544" <A NAME="tex2html1547"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1538" <A NAME="tex2html1541"
HREF="node104.html"> HREF="node104.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1546" <A NAME="tex2html1549"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1549" <B> Next:</B> <A NAME="tex2html1552"
HREF="node106.html">psb_amx Global</A> HREF="node106.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1545" <B> Up:</B> <A NAME="tex2html1548"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1539" <B> Previous:</B> <A NAME="tex2html1542"
HREF="node104.html">psb_max Global</A> HREF="node104.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1547" &nbsp; <B> <A NAME="tex2html1550"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_amx -- Global maximum absolute value</TITLE> <TITLE>psb_min -- Global minimum</TITLE>
<META NAME="description" CONTENT="psb_amx -- Global maximum absolute value"> <META NAME="description" CONTENT="psb_min -- Global minimum">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node107.html"> <LINK REL="next" HREF="node107.html">
<LINK REL="previous" HREF="node105.html"> <LINK REL="previous" HREF="node105.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node107.html"> <LINK REL="next" HREF="node107.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1560" <A NAME="tex2html1563"
HREF="node107.html"> HREF="node107.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1556" <A NAME="tex2html1559"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1550" <A NAME="tex2html1553"
HREF="node105.html"> HREF="node105.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1558" <A NAME="tex2html1561"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1561" <B> Next:</B> <A NAME="tex2html1564"
HREF="node107.html">psb_amn Global</A> HREF="node107.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1557" <B> Up:</B> <A NAME="tex2html1560"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1551" <B> Previous:</B> <A NAME="tex2html1554"
HREF="node105.html">psb_min Global</A> HREF="node105.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1559" &nbsp; <B> <A NAME="tex2html1562"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000813000000000000000"> <H2><A NAME="SECTION000812000000000000000">
psb_amx -- Global maximum absolute value</A> psb_min -- Global minimum</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_amx(icontxt, dat, root) call psb_min(icontxt, dat, root)
</PRE> </PRE>
<P> <P>
This subroutine implements a maximum absolute value reduction This subroutine implements a minimum value reduction
operation based on the underlying communication library. operation based on the underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -83,7 +83,7 @@ Intent: <B>in</B>.
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global maximum. <DD>The local contribution to the global minimum.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>.
<BR> <BR>
@ -91,7 +91,7 @@ Type: <B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer, real or complex variable, which may be a Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
</DD> </DD>
<DT><STRONG>root</STRONG></DT> <DT><STRONG>root</STRONG></DT>
@ -123,7 +123,7 @@ Specified as: an integer value <!-- MATH
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the maximum operation. <DD>On destination process(es), the result of the minimum operation.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
@ -131,8 +131,10 @@ Type: <B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer, real or complex variable, which may be a Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes. scalar, or a rank 1 or 2 array.
<BR>
Type, kind, rank and size must agree on all processes.
</DD> </DD>
</DL> </DL>
@ -151,26 +153,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1560" <A NAME="tex2html1563"
HREF="node107.html"> HREF="node107.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1556" <A NAME="tex2html1559"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1550" <A NAME="tex2html1553"
HREF="node105.html"> HREF="node105.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1558" <A NAME="tex2html1561"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1561" <B> Next:</B> <A NAME="tex2html1564"
HREF="node107.html">psb_amn Global</A> HREF="node107.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1557" <B> Up:</B> <A NAME="tex2html1560"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1551" <B> Previous:</B> <A NAME="tex2html1554"
HREF="node105.html">psb_min Global</A> HREF="node105.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1559" &nbsp; <B> <A NAME="tex2html1562"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_amn -- Global minimum absolute value</TITLE> <TITLE>psb_amx -- Global maximum absolute value</TITLE>
<META NAME="description" CONTENT="psb_amn -- Global minimum absolute value"> <META NAME="description" CONTENT="psb_amx -- Global maximum absolute value">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node108.html"> <LINK REL="next" HREF="node108.html">
<LINK REL="previous" HREF="node106.html"> <LINK REL="previous" HREF="node106.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node108.html"> <LINK REL="next" HREF="node108.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1572" <A NAME="tex2html1575"
HREF="node108.html"> HREF="node108.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1568" <A NAME="tex2html1571"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1562" <A NAME="tex2html1565"
HREF="node106.html"> HREF="node106.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1570" <A NAME="tex2html1573"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1573" <B> Next:</B> <A NAME="tex2html1576"
HREF="node108.html">psb_snd Send</A> HREF="node108.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1569" <B> Up:</B> <A NAME="tex2html1572"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1563" <B> Previous:</B> <A NAME="tex2html1566"
HREF="node106.html">psb_amx Global</A> HREF="node106.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1571" &nbsp; <B> <A NAME="tex2html1574"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000814000000000000000"> <H2><A NAME="SECTION000813000000000000000">
psb_amn -- Global minimum absolute value</A> psb_amx -- Global maximum absolute value</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_amn(icontxt, dat, root) call psb_amx(icontxt, dat, root)
</PRE> </PRE>
<P> <P>
This subroutine implements a minimum absolute value reduction This subroutine implements a maximum absolute value reduction
operation based on the underlying communication library. operation based on the underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -83,7 +83,7 @@ Intent: <B>in</B>.
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global minimum. <DD>The local contribution to the global maximum.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>.
<BR> <BR>
@ -123,7 +123,7 @@ Specified as: an integer value <!-- MATH
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the minimum operation. <DD>On destination process(es), the result of the maximum operation.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
@ -132,9 +132,7 @@ Type: <B>required</B>.
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer, real or complex variable, which may be a Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array. scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
<BR>
Type, kind, rank and size must agree on all processes.
</DD> </DD>
</DL> </DL>
@ -153,26 +151,26 @@ Type, kind, rank and size must agree on all processes.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1572" <A NAME="tex2html1575"
HREF="node108.html"> HREF="node108.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1568" <A NAME="tex2html1571"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1562" <A NAME="tex2html1565"
HREF="node106.html"> HREF="node106.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1570" <A NAME="tex2html1573"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1573" <B> Next:</B> <A NAME="tex2html1576"
HREF="node108.html">psb_snd Send</A> HREF="node108.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1569" <B> Up:</B> <A NAME="tex2html1572"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1563" <B> Previous:</B> <A NAME="tex2html1566"
HREF="node106.html">psb_amx Global</A> HREF="node106.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1571" &nbsp; <B> <A NAME="tex2html1574"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_snd -- Send data</TITLE> <TITLE>psb_amn -- Global minimum absolute value</TITLE>
<META NAME="description" CONTENT="psb_snd -- Send data"> <META NAME="description" CONTENT="psb_amn -- Global minimum absolute value">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,51 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node109.html"> <LINK REL="next" HREF="node109.html">
<LINK REL="previous" HREF="node107.html"> <LINK REL="previous" HREF="node107.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node109.html"> <LINK REL="next" HREF="node109.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1584" <A NAME="tex2html1587"
HREF="node109.html"> HREF="node109.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1580" <A NAME="tex2html1583"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1574" <A NAME="tex2html1577"
HREF="node107.html"> HREF="node107.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1582" <A NAME="tex2html1585"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1585" <B> Next:</B> <A NAME="tex2html1588"
HREF="node109.html">psb_rcv Receive</A> HREF="node109.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1581" <B> Up:</B> <A NAME="tex2html1584"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1575" <B> Previous:</B> <A NAME="tex2html1578"
HREF="node107.html">psb_amn Global</A> HREF="node107.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1583" &nbsp; <B> <A NAME="tex2html1586"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000815000000000000000"> <H2><A NAME="SECTION000814000000000000000">
psb_snd -- Send data</A> psb_amn -- Global minimum absolute value</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_snd(icontxt, dat, dst, m) call psb_amn(icontxt, dat, root)
</PRE> </PRE>
<P> <P>
This subroutine sends a packet of data to a destination. This subroutine implements a minimum absolute value reduction
operation based on the underlying communication library.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous: see usage notes. <DD>Synchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry </B></STRONG></DT>
<DD> <DD>
@ -82,65 +83,38 @@ Intent: <B>in</B>.
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>dat</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>The data to be sent. <DD>The local contribution to the global minimum.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>.
<BR> <BR>
Type: <B>required</B>. Type: <B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer, real or complex variable, which may be a Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD> </DD>
<DT><STRONG>dst</STRONG></DT> <DT><STRONG>root</STRONG></DT>
<DD>Destination process. <DD>Process to hold the final value, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$-1$"> to make it available
on all processes.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
Type: <B>required</B>. Type: <B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value <!-- MATH Specified as: an integer value <!-- MATH
$0<= dst <= np-1$ $-1<= root <= np-1$
--> -->
<IMG <IMG
WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png" SRC="img133.png"
ALT="$0&lt;= dst &lt;= np-1$">. ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD> <BR></DD>
<DT><STRONG>m</STRONG></DT>
<DD>Number of rows.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>Optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= m <= size(dat,1)$
-->
<IMG
WIDTH="171" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img136.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="27" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img137.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="82" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img138.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
</DL> </DL>
<P> <P>
@ -148,43 +122,57 @@ same value on sending and receiving processes.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the minimum operation.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array.
<BR>
Type, kind, rank and size must agree on all processes.
</DD>
</DL> </DL>
<P> <P>
<FONT SIZE="+1"><B>Notes</B></FONT> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <OL>
<LI>This subroutine implies a synchronization, but only between the <LI>The <code>dat</code> argument is both input and output, and its
calling process and the destination process <IMG value may be changed even on processes different from the final
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" result destination.
SRC="img139.png" </LI>
ALT="$dst$">. <LI>The <code>dat</code> argument may also be a long integer scalar.
</LI> </LI>
</OL> </OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1584" <A NAME="tex2html1587"
HREF="node109.html"> HREF="node109.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1580" <A NAME="tex2html1583"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1574" <A NAME="tex2html1577"
HREF="node107.html"> HREF="node107.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1582" <A NAME="tex2html1585"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1585" <B> Next:</B> <A NAME="tex2html1588"
HREF="node109.html">psb_rcv Receive</A> HREF="node109.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1581" <B> Up:</B> <A NAME="tex2html1584"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1575" <B> Previous:</B> <A NAME="tex2html1578"
HREF="node107.html">psb_amn Global</A> HREF="node107.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1583" &nbsp; <B> <A NAME="tex2html1586"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_rcv -- Receive data</TITLE> <TITLE>psb_snd -- Send data</TITLE>
<META NAME="description" CONTENT="psb_rcv -- Receive data"> <META NAME="description" CONTENT="psb_snd -- Send data">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,52 +18,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node110.html">
<LINK REL="previous" HREF="node108.html"> <LINK REL="previous" HREF="node108.html">
<LINK REL="up" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="next" HREF="node110.html"> <LINK REL="next" HREF="node110.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1594" <A NAME="tex2html1599"
HREF="node110.html"> HREF="node110.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1590" <A NAME="tex2html1595"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1586" <A NAME="tex2html1589"
HREF="node108.html"> HREF="node108.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1592" <A NAME="tex2html1597"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1595" <B> Next:</B> <A NAME="tex2html1600"
HREF="node110.html">Error handling</A> HREF="node110.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1591" <B> Up:</B> <A NAME="tex2html1596"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1587" <B> Previous:</B> <A NAME="tex2html1590"
HREF="node108.html">psb_snd Send</A> HREF="node108.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1593" &nbsp; <B> <A NAME="tex2html1598"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000816000000000000000"> <H2><A NAME="SECTION000815000000000000000">
psb_rcv -- Receive data</A> psb_snd -- Send data</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_rcv(icontxt, dat, src, m) call psb_snd(icontxt, dat, dst, m)
</PRE> </PRE>
<P> <P>
This subroutine receives a packet of data to a destination. This subroutine sends a packet of data to a destination.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous: see usage notes. <DD>Synchronous: see usage notes.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry </B></STRONG></DT>
<DD> <DD>
@ -80,8 +81,24 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer variable. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>src</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>Source process. <DD>The data to be sent.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
<DT><STRONG>dst</STRONG></DT>
<DD>Destination process.
<BR> <BR>
Scope: <B>global</B>. Scope: <B>global</B>.
<BR> <BR>
@ -90,12 +107,12 @@ Type: <B>required</B>.
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value <!-- MATH Specified as: an integer value <!-- MATH
$0<= src <= np-1$ $0<= dst <= np-1$
--> -->
<IMG <IMG
WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img140.png" SRC="img135.png"
ALT="$0&lt;= src &lt;= np-1$">. ALT="$0&lt;= dst &lt;= np-1$">.
<BR></DD> <BR></DD>
<DT><STRONG>m</STRONG></DT> <DT><STRONG>m</STRONG></DT>
<DD>Number of rows. <DD>Number of rows.
@ -131,22 +148,6 @@ same value on sending and receiving processes.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The data to be received.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
</DL> </DL>
<P> <P>
@ -154,36 +155,36 @@ not specified, size must agree as well.
<OL> <OL>
<LI>This subroutine implies a synchronization, but only between the <LI>This subroutine implies a synchronization, but only between the
calling process and the source process <IMG calling process and the destination process <IMG
WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img141.png" SRC="img139.png"
ALT="$src$">. ALT="$dst$">.
</LI> </LI>
</OL> </OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1594" <A NAME="tex2html1599"
HREF="node110.html"> HREF="node110.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1590" <A NAME="tex2html1595"
HREF="node93.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1586" <A NAME="tex2html1589"
HREF="node108.html"> HREF="node108.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1592" <A NAME="tex2html1597"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1595" <B> Next:</B> <A NAME="tex2html1600"
HREF="node110.html">Error handling</A> HREF="node110.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1591" <B> Up:</B> <A NAME="tex2html1596"
HREF="node93.html">Parallel environment routines</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1587" <B> Previous:</B> <A NAME="tex2html1590"
HREF="node108.html">psb_snd Send</A> HREF="node108.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1593" &nbsp; <B> <A NAME="tex2html1598"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html352" <A NAME="tex2html354"
HREF="node12.html"> HREF="node12.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html348" <A NAME="tex2html350"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html342" <A NAME="tex2html344"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html350" <A NAME="tex2html352"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html353" <B> Next:</B> <A NAME="tex2html355"
HREF="node12.html">get_local_rows Get</A> HREF="node12.html">get_local_rows Get</A>
<B> Up:</B> <A NAME="tex2html349" <B> Up:</B> <A NAME="tex2html351"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html343" <B> Previous:</B> <A NAME="tex2html345"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
&nbsp; <B> <A NAME="tex2html351" &nbsp; <B> <A NAME="tex2html353"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Error handling</TITLE> <TITLE>psb_rcv -- Receive data</TITLE>
<META NAME="description" CONTENT="Error handling"> <META NAME="description" CONTENT="psb_rcv -- Receive data">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,325 +18,172 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node111.html"> <LINK REL="previous" HREF="node109.html">
<LINK REL="previous" HREF="node93.html"> <LINK REL="up" HREF="node94.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node111.html"> <LINK REL="next" HREF="node111.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1606" <A NAME="tex2html1609"
HREF="node111.html"> HREF="node111.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1602" <A NAME="tex2html1605"
HREF="userhtml.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1596" <A NAME="tex2html1601"
HREF="node109.html"> HREF="node109.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1604" <A NAME="tex2html1607"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1607" <B> Next:</B> <A NAME="tex2html1610"
HREF="node111.html">Utilities</A> HREF="node111.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1603" <B> Up:</B> <A NAME="tex2html1606"
HREF="userhtml.html">userhtml</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1597" <B> Previous:</B> <A NAME="tex2html1602"
HREF="node109.html">psb_rcv Receive</A> HREF="node109.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1605" &nbsp; <B> <A NAME="tex2html1608"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION00090000000000000000"> <H2><A NAME="SECTION000816000000000000000">
Error handling</A> psb_rcv -- Receive data</A>
</H1> </H2>
<P>
The PSBLAS library error handling policy has been completely rewritten
in version 2.0. The idea behind the design of this new error handling
strategy is to keep error messages on a stack allowing the user to
trace back up to the point where the first error message has been
generated. Every routine in the PSBLAS-2.0 library has, as last
non-optional argument, an integer <code>info</code> variable; whenever,
inside the routine, an error is detected, this variable is set to a
value corresponding to a specific error code. Then this error code is
also pushed on the error stack and then either control is returned to
the caller routine or the execution is aborted, depending on the users
choice. At the time when the execution is aborted, an error message is
printed on standard output with a level of verbosity than can be
chosen by the user. If the execution is not aborted, then, the caller
routine checks the value returned in the <code>info</code> variable and, if
not zero, an error condition is raised. This process continues on all the
levels of nested calls until the level where the user decides to abort
the program execution.
<P>
Figure&nbsp;<A HREF="#fig:routerr">9</A> shows the layout of a generic <code>psb_foo</code>
routine with respect to the PSBLAS-2.0 error handling policy. It is
possible to see how, whenever an error condition is detected, the
<code>info</code> variable is set to the corresponding error code which is,
then, pushed on top of the stack by means of the
<code>psb_errpush</code>. An error condition may be directly detected inside
a routine or indirectly checking the error code returned returned by a
called routine. Whenever an error is encountered, after it has been
pushed on stack, the program execution skips to a point where the
error condition is handled; the error condition is handled either by
returning control to the caller routine or by calling the
<code>psb\_error</code> routine which prints the content of the error stack
and aborts the program execution, according to the choice made by the
user with <code>psb_set_erraction</code>. The default is to print the error
and terminate the program, but the user may choose to handle the error
explicitly.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="7058"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 9:</STRONG>
The layout of a generic <TT>psb_foo</TT>
routine with respect to PSBLAS-2.0 error handling policy.</CAPTION>
<TR><TD>
<BR>
<DIV ALIGN="CENTER">
<!-- MATH
$\fbox{\TheSbox}$
-->
<IMG
WIDTH="563" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img143.png"
ALT="\fbox{\TheSbox}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P> <P>
Figure&nbsp;<A HREF="#fig:errormsg">10</A> reports a sample error message generated by <PRE>
the PSBLAS-2.0 library. This error has been generated by the fact that call psb_rcv(icontxt, dat, src, m)
the user has chosen the invalid ``FOO'' storage format to represent </PRE>
the sparse matrix. From this error message it is possible to see that
the error has been detected inside the <code>psb_cest</code> subroutine
called by <code>psb_spasb</code> ... by process 0 (i.e. the root process).
<P>
<DIV ALIGN="CENTER"><A NAME="fig:errormsg"></A><A NAME="7059"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 10:</STRONG>
A sample PSBLAS-2.0 error
message. Process 0 detected an error condition inside the psb_cest subroutine</CAPTION>
<TR><TD>
<BR>
<DIV ALIGN="CENTER">
<!-- MATH
$\fbox{\TheSbox}$
-->
<IMG
WIDTH="563" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img143.png"
ALT="\fbox{\TheSbox}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
stack
<P>
<BR>
<IMG
WIDTH="423" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img145.png"
ALT="\begin{lstlisting}
call psb_errpush(err_c, r_name, i_err, a_err)
\end{lstlisting}">
<BR>
<P> <P>
This subroutine receives a packet of data to a destination.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Synchronous: see usage notes.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry </B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>err_c</STRONG></DT> <DT><STRONG>icontxt</STRONG></DT>
<DD>the error code <DD>the communication context identifying the virtual
parallel machine.
<BR> <BR>
Scope: <B>local</B> Scope: <B>global</B>.
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer. Specified as: an integer variable.
</DD> </DD>
<DT><STRONG>r_name</STRONG></DT> <DT><STRONG>src</STRONG></DT>
<DD>the soutine where the error has been caught. <DD>Source process.
<BR> <BR>
Scope: <B>local</B> Scope: <B>global</B>.
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a string. Specified as: an integer value <!-- MATH
<BR></DD> $0<= src <= np-1$
<DT><STRONG>i_err</STRONG></DT> -->
<DD>addional info for error code
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Specified as: an integer array
<BR></DD>
<DT><STRONG>a_err</STRONG></DT>
<DD>addional info for error code
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Specified as: a string.
<BR></DD>
</DL>
<P>
ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
execution
<P>
<BR>
<IMG <IMG
WIDTH="213" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img146.png" SRC="img140.png"
ALT="\begin{lstlisting} ALT="$0&lt;= src &lt;= np-1$">.
call psb_error(icontxt) <BR></DD>
\end{lstlisting}"> <DT><STRONG>m</STRONG></DT>
<BR> <DD>Number of rows.
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>.
<BR> <BR>
Type: <B>optional</B> Type: <B>Optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer. Specified as: an integer value <!-- MATH
$0<= m <= size(dat,1)$
-->
<IMG
WIDTH="171" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img136.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="27" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img137.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="82" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img138.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD> </DD>
</DL> </DL>
<P>
ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
messages.
<P>
<BR>
<IMG
WIDTH="261" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img147.png"
ALT="\begin{lstlisting}
call psb_set_errverbosity(v)
\end{lstlisting}">
<BR>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>v</STRONG></DT> <DT><STRONG>dat</STRONG></DT>
<DD>the verbosity level <DD>The data to be received.
<BR> <BR>
Scope: <B>global</B> Scope: <B>local</B>.
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an integer. Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD> </DD>
</DL> </DL>
<P> <P>
ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be <FONT SIZE="+1"><B>Notes</B></FONT>
taken upon error condition.
<P>
<BR>
<IMG
WIDTH="289" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img148.png"
ALT="\begin{lstlisting}
call psb_set_erraction(err_act)
\end{lstlisting}">
<BR>
<P> <OL>
<DL> <LI>This subroutine implies a synchronization, but only between the
<DT><STRONG>Type:</STRONG></DT> calling process and the source process <IMG
<DD>Asynchronous. WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
</DD> SRC="img141.png"
<DT><STRONG><B>On Entry</B></STRONG></DT> ALT="$src$">.
<DD> </LI>
</DD> </OL>
<DT><STRONG>err_act</STRONG></DT>
<DD>the type of action.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer. Possible values: <code>psb_act_ret</code>,
<code>psb_act_abort</code>.
</DD>
</DL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1606" <A NAME="tex2html1609"
HREF="node111.html"> HREF="node111.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1602" <A NAME="tex2html1605"
HREF="userhtml.html"> HREF="node94.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1596" <A NAME="tex2html1601"
HREF="node109.html"> HREF="node109.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1604" <A NAME="tex2html1607"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1607" <B> Next:</B> <A NAME="tex2html1610"
HREF="node111.html">Utilities</A> HREF="node111.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1603" <B> Up:</B> <A NAME="tex2html1606"
HREF="userhtml.html">userhtml</A> HREF="node94.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1597" <B> Previous:</B> <A NAME="tex2html1602"
HREF="node109.html">psb_rcv Receive</A> HREF="node109.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1605" &nbsp; <B> <A NAME="tex2html1608"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Utilities</TITLE> <TITLE>Error handling</TITLE>
<META NAME="description" CONTENT="Utilities"> <META NAME="description" CONTENT="Error handling">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -19,139 +19,142 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node112.html"> <LINK REL="next" HREF="node112.html">
<LINK REL="previous" HREF="node110.html"> <LINK REL="previous" HREF="node94.html">
<LINK REL="up" HREF="userhtml.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node112.html"> <LINK REL="next" HREF="node112.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1618" <A NAME="tex2html1621"
HREF="node112.html"> HREF="node112.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1614" <A NAME="tex2html1617"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1608" <A NAME="tex2html1611"
HREF="node110.html"> HREF="node110.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1616" <A NAME="tex2html1619"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1619" <B> Next:</B> <A NAME="tex2html1622"
HREF="node112.html">Preconditioner routines</A> HREF="node112.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1615" <B> Up:</B> <A NAME="tex2html1618"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1609" <B> Previous:</B> <A NAME="tex2html1612"
HREF="node110.html">Error handling</A> HREF="node110.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1617" &nbsp; <B> <A NAME="tex2html1620"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION000100000000000000000"></A> <H1><A NAME="SECTION00090000000000000000">
<A NAME="sec:util"></A> Error handling</A>
<BR>
Utilities
</H1> </H1>
<P> <P>
We have some utitlities available for input and output of The PSBLAS library error handling policy has been completely rewritten
sparsematrices; the interfaces to these routines are available in the in version 2.0. The idea behind the design of this new error handling
module <code>psb_util_mod</code>. strategy is to keep error messages on a stack allowing the user to
trace back up to the point where the first error message has been
generated. Every routine in the PSBLAS-2.0 library has, as last
non-optional argument, an integer <code>info</code> variable; whenever,
inside the routine, an error is detected, this variable is set to a
value corresponding to a specific error code. Then this error code is
also pushed on the error stack and then either control is returned to
the caller routine or the execution is aborted, depending on the users
choice. At the time when the execution is aborted, an error message is
printed on standard output with a level of verbosity than can be
chosen by the user. If the execution is not aborted, then, the caller
routine checks the value returned in the <code>info</code> variable and, if
not zero, an error condition is raised. This process continues on all the
levels of nested calls until the level where the user decides to abort
the program execution.
<P> <P>
ifstarsubroutinesubroutinehb_readRead a sparse matrix from a file in the Figure&nbsp;<A HREF="#fig:routerr">9</A> shows the layout of a generic <code>psb_foo</code>
Harwell-Boeing format routine with respect to the PSBLAS-2.0 error handling policy. It is
possible to see how, whenever an error condition is detected, the
<code>info</code> variable is set to the corresponding error code which is,
then, pushed on top of the stack by means of the
<code>psb_errpush</code>. An error condition may be directly detected inside
a routine or indirectly checking the error code returned returned by a
called routine. Whenever an error is encountered, after it has been
pushed on stack, the program execution skips to a point where the
error condition is handled; the error condition is handled either by
returning control to the caller routine or by calling the
<code>psb\_error</code> routine which prints the content of the error stack
and aborts the program execution, according to the choice made by the
user with <code>psb_set_erraction</code>. The default is to print the error
and terminate the program, but the user may choose to handle the error
explicitly.
<P> <P>
<BR>
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="7079"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 9:</STRONG>
The layout of a generic <TT>psb_foo</TT>
routine with respect to PSBLAS-2.0 error handling policy.</CAPTION>
<TR><TD>
<BR>
<DIV ALIGN="CENTER">
<!-- MATH
$\fbox{\TheSbox}$
-->
<IMG <IMG
WIDTH="461" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" WIDTH="563" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img149.png" SRC="img143.png"
ALT="\begin{lstlisting} ALT="\fbox{\TheSbox}">
call hb_read(a, iret, iunit, filename, b, mtitle) </DIV></TD></TR>
\end{lstlisting}"> </TABLE>
<BR> </DIV>
<P> <P>
<DL> Figure&nbsp;<A HREF="#fig:errormsg">10</A> reports a sample error message generated by
<DT><STRONG>Type:</STRONG></DT> the PSBLAS-2.0 library. This error has been generated by the fact that
<DD>Asynchronous. the user has chosen the invalid ``FOO'' storage format to represent
</DD> the sparse matrix. From this error message it is possible to see that
<DT><STRONG><B>On Entry </B></STRONG></DT> the error has been detected inside the <code>psb_cest</code> subroutine
<DD> called by <code>psb_spasb</code> ... by process 0 (i.e. the root process).
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be read.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P> <P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT> <DIV ALIGN="CENTER"><A NAME="fig:errormsg"></A><A NAME="7080"></A>
<DD> <TABLE>
</DD> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 10:</STRONG>
<DT><STRONG>a</STRONG></DT> A sample PSBLAS-2.0 error
<DD>the sparse matrix read from file. message. Process 0 detected an error condition inside the psb_cest subroutine</CAPTION>
<BR> <TR><TD>
Type:<B>required</B>. <BR>
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>. <DIV ALIGN="CENTER">
</DD> <!-- MATH
<DT><STRONG>b</STRONG></DT> $\fbox{\TheSbox}$
<DD>Rigth hand side(s). -->
<BR> <IMG
Type: <B>Optional</B> WIDTH="563" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
<BR> SRC="img143.png"
An array of type real or complex, rank 2 and having the ALLOCATABLE ALT="\fbox{\TheSbox}">
attribute; will be allocated and filled in if the input file contains </DIV></TD></TR>
a right hand side, otherwise will be left in the UNALLOCATED state. </TABLE>
</DD> </DIV>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>Optional</B>
<BR>
A charachter variable of length 72 holding a copy of the
matrix title as specified by the Harwell-Boeing format and contained
in the input file.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P> <P>
ifstarsubroutinesubroutinehb_writeWrite a sparse matrix to a file ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
in the Harwell-Boeing format stack
<P> <P>
<BR> <BR>
<IMG <IMG
WIDTH="538" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" WIDTH="423" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img150.png" SRC="img145.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call hb_write(a, iret, iunit, filename, key, rhs, mtitle) call psb_errpush(err_c, r_name, i_err, a_err)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
@ -160,86 +163,62 @@ call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>err_c</STRONG></DT>
<DD>the sparse matrix to be written. <DD>the error code
<BR> <BR>
Type:<B>required</B>. Scope: <B>local</B>
<BR> <BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>. Type: <B>required</B>
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side.
<BR> <BR>
Type: <B>Optional</B> Intent: <B>in</B>.
<BR> <BR>
An array of type real or complex, rank 1 and having the ALLOCATABLE Specified as: an integer.
attribute; will be allocated and filled in if the input file contains
a right hand side.
</DD> </DD>
<DT><STRONG>filename</STRONG></DT> <DT><STRONG>r_name</STRONG></DT>
<DD>The name of the file to be written to. <DD>the soutine where the error has been caught.
<BR> <BR>
Type:<B>optional</B>. Scope: <B>local</B>
<BR> <BR>
Specified as: a character variable containing a valid file name, or Type: <B>required</B>
<code>-</code>, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR> <BR>
Type:<B>optional</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>. Specified as: a string.
</DD> <BR></DD>
<DT><STRONG>key</STRONG></DT> <DT><STRONG>i_err</STRONG></DT>
<DD>Matrix key. <DD>addional info for error code
<BR> <BR>
Type: <B>Optional</B> Scope: <B>local</B>
<BR> <BR>
A charachter variable of length 8 holding the Type: <B>optional</B>
matrix key as specified by the Harwell-Boeing format and to be
written to file.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR> <BR>
Type: <B>Optional</B> Specified as: an integer array
<BR></DD>
<DT><STRONG>a_err</STRONG></DT>
<DD>addional info for error code
<BR> <BR>
A charachter variable of length 72 holding the Scope: <B>local</B>
matrix title as specified by the Harwell-Boeing format and to be
written to file.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR> <BR>
Type: <B>required</B> Type: <B>optional</B>
<BR> <BR>
An integer value; 0 means no error has been detected. Specified as: a string.
</DD> <BR></DD>
</DL> </DL>
<P> <P>
ifstarsubroutinesubroutinemm_mat_readRead a sparse matrix from a ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
file in the MatrixMarket format execution
<P> <P>
<BR> <BR>
<IMG <IMG
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" WIDTH="213" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img151.png" SRC="img146.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call mm_mat_read(a, iret, iunit, filename) call psb_error(icontxt)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
@ -248,57 +227,33 @@ call mm_mat_read(a, iret, iunit, filename)
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>filename</STRONG></DT> <DT><STRONG>icontxt</STRONG></DT>
<DD>The name of the file to be read. <DD>the communication context.
<BR> <BR>
Type:<B>optional</B>. Scope: <B>global</B>
<BR> <BR>
Specified as: a character variable containing a valid file name, or Type: <B>optional</B>
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR> <BR>
Type:<B>optional</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>. Specified as: an integer.
</DD> </DD>
</DL> </DL>
<P> <P>
<DL> ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
<DT><STRONG><B>On Return</B></STRONG></DT> messages.
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix read from file.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P> <P>
ifstarsubroutinesubroutinemm_vet_readRead a dense vector from a
file in the MatrixMarket format
<BR> <BR>
<IMG <IMG
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" WIDTH="261" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img152.png" SRC="img147.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call mm_vet_read(b, iret, iunit, filename) call psb_set_errverbosity(v)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
@ -307,138 +262,81 @@ call mm_vet_read(b, iret, iunit, filename)
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>filename</STRONG></DT> <DT><STRONG>v</STRONG></DT>
<DD>The name of the file to be read. <DD>the verbosity level
<BR> <BR>
Type:<B>optional</B>. Scope: <B>global</B>
<BR> <BR>
Specified as: a character variable containing a valid file name, or Type: <B>required</B>
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR> <BR>
Type:<B>optional</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>. Specified as: an integer.
</DD> </DD>
</DL> </DL>
<P> <P>
<DL> ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
<DT><STRONG><B>On Return</B></STRONG></DT> taken upon error condition.
<DD>
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side(s).
<BR>
Type: <B>required</B>
<BR>
An array of type real or complex, rank 2 and having the ALLOCATABLE
attribute; will be allocated and filled in if the input file contains
a right hand side, otherwise will be left in the UNALLOCATED state.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P> <P>
ifstarsubroutinesubroutinemm_mat_writeWrite a sparse matrix to a
file in the MatrixMarket format
<BR> <BR>
<IMG <IMG
WIDTH="480" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" WIDTH="289" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img153.png" SRC="img148.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call mm_mat_write(a, mtitle, iret, iunit, filename) call psb_set_erraction(err_act)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
<P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry </B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>err_act</STRONG></DT>
<DD>the sparse matrix to be written. <DD>the type of action.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>required</B>
<BR>
A charachter variable holding a descriptive title for the matrix to be
written to file.
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written to.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR> <BR>
Type:<B>optional</B>. Scope: <B>global</B>
<BR> <BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>. Type: <B>required</B>
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR> <BR>
Type: <B>required</B> Intent: <B>in</B>.
<BR> <BR>
An integer value; 0 means no error has been detected. Specified as: an integer. Possible values: <code>psb_act_ret</code>,
<code>psb_act_abort</code>.
</DD> </DD>
</DL> </DL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1618" <A NAME="tex2html1621"
HREF="node112.html"> HREF="node112.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1614" <A NAME="tex2html1617"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1608" <A NAME="tex2html1611"
HREF="node110.html"> HREF="node110.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1616" <A NAME="tex2html1619"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1619" <B> Next:</B> <A NAME="tex2html1622"
HREF="node112.html">Preconditioner routines</A> HREF="node112.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1615" <B> Up:</B> <A NAME="tex2html1618"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1609" <B> Previous:</B> <A NAME="tex2html1612"
HREF="node110.html">Error handling</A> HREF="node110.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1617" &nbsp; <B> <A NAME="tex2html1620"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Preconditioner routines</TITLE> <TITLE>Utilities</TITLE>
<META NAME="description" CONTENT="Preconditioner routines"> <META NAME="description" CONTENT="Utilities">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node118.html"> <LINK REL="next" HREF="node113.html">
<LINK REL="previous" HREF="node111.html"> <LINK REL="previous" HREF="node111.html">
<LINK REL="up" HREF="userhtml.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node113.html"> <LINK REL="next" HREF="node113.html">
@ -26,72 +26,421 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1630" <A NAME="tex2html1633"
HREF="node113.html"> HREF="node113.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1626" <A NAME="tex2html1629"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1620" <A NAME="tex2html1623"
HREF="node111.html"> HREF="node111.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1628" <A NAME="tex2html1631"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1631" <B> Next:</B> <A NAME="tex2html1634"
HREF="node113.html">psb_precinit Initialize</A> HREF="node113.html">Preconditioner routines</A>
<B> Up:</B> <A NAME="tex2html1627" <B> Up:</B> <A NAME="tex2html1630"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1621" <B> Previous:</B> <A NAME="tex2html1624"
HREF="node111.html">Utilities</A> HREF="node111.html">Error handling</A>
&nbsp; <B> <A NAME="tex2html1629" &nbsp; <B> <A NAME="tex2html1632"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION000110000000000000000"></A> <H1><A NAME="SECTION000100000000000000000"></A>
<A NAME="sec:precs"></A> <A NAME="sec:util"></A>
<BR> <BR>
Preconditioner routines Utilities
</H1> </H1>
<P> <P>
<A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple We have some utitlities available for input and output of
preconditioning techniques: sparsematrices; the interfaces to these routines are available in the
module <code>psb_util_mod</code>.
<UL>
<LI>Diagonal Scaling <P>
</LI> ifstarsubroutinesubroutinehb_readRead a sparse matrix from a file in the
<LI>Block Jacobi with ILU(0) factorization Harwell-Boeing format
</LI>
</UL> <P>
The supporting data type and subroutine interfaces are defined in the <BR>
module <code>psb_prec_mod</code>. <IMG
WIDTH="461" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
<P> SRC="img149.png"
<BR><HR> ALT="\begin{lstlisting}
<!--Table of Child-Links--> call hb_read(a, iret, iunit, filename, b, mtitle)
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> \end{lstlisting}">
<BR>
<UL>
<LI><A NAME="tex2html1632" <P>
HREF="node113.html">psb_precinit -- Initialize a preconditioner</A> <DL>
<LI><A NAME="tex2html1633" <DT><STRONG>Type:</STRONG></DT>
HREF="node114.html">psb_precbld -- Builds a preconditioner</A> <DD>Asynchronous.
<LI><A NAME="tex2html1634" </DD>
HREF="node115.html">psb_precaply -- Preconditioner application <DT><STRONG><B>On Entry </B></STRONG></DT>
routine</A> <DD>
<LI><A NAME="tex2html1635" </DD>
HREF="node116.html">psb_precdescr -- Prints a description of current <DT><STRONG>filename</STRONG></DT>
preconditioner</A> <DD>The name of the file to be read.
<LI><A NAME="tex2html1636" <BR>
HREF="node117.html">clone -- clone current Type:<B>optional</B>.
preconditioner</A> <BR>
</UL> Specified as: a character variable containing a valid file name, or
<!--End of Table of Child-Links--> <code>-</code>, in which case the default input unit 5 (i.e. standard input
<BR><HR> in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix read from file.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side(s).
<BR>
Type: <B>Optional</B>
<BR>
An array of type real or complex, rank 2 and having the ALLOCATABLE
attribute; will be allocated and filled in if the input file contains
a right hand side, otherwise will be left in the UNALLOCATED state.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>Optional</B>
<BR>
A charachter variable of length 72 holding a copy of the
matrix title as specified by the Harwell-Boeing format and contained
in the input file.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinehb_writeWrite a sparse matrix to a file
in the Harwell-Boeing format
<P>
<BR>
<IMG
WIDTH="538" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img150.png"
ALT="\begin{lstlisting}
call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix to be written.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side.
<BR>
Type: <B>Optional</B>
<BR>
An array of type real or complex, rank 1 and having the ALLOCATABLE
attribute; will be allocated and filled in if the input file contains
a right hand side.
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written to.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
<DT><STRONG>key</STRONG></DT>
<DD>Matrix key.
<BR>
Type: <B>Optional</B>
<BR>
A charachter variable of length 8 holding the
matrix key as specified by the Harwell-Boeing format and to be
written to file.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>Optional</B>
<BR>
A charachter variable of length 72 holding the
matrix title as specified by the Harwell-Boeing format and to be
written to file.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinemm_mat_readRead a sparse matrix from a
file in the MatrixMarket format
<P>
<BR>
<IMG
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img151.png"
ALT="\begin{lstlisting}
call mm_mat_read(a, iret, iunit, filename)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be read.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix read from file.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinemm_vet_readRead a dense vector from a
file in the MatrixMarket format
<BR>
<IMG
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img152.png"
ALT="\begin{lstlisting}
call mm_vet_read(b, iret, iunit, filename)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be read.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side(s).
<BR>
Type: <B>required</B>
<BR>
An array of type real or complex, rank 2 and having the ALLOCATABLE
attribute; will be allocated and filled in if the input file contains
a right hand side, otherwise will be left in the UNALLOCATED state.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinemm_mat_writeWrite a sparse matrix to a
file in the MatrixMarket format
<BR>
<IMG
WIDTH="480" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img153.png"
ALT="\begin{lstlisting}
call mm_mat_write(a, mtitle, iret, iunit, filename)
\end{lstlisting}">
<BR>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix to be written.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>required</B>
<BR>
A charachter variable holding a descriptive title for the matrix to be
written to file.
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written to.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1633"
HREF="node113.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1629"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1623"
HREF="node111.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1631"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1634"
HREF="node113.html">Preconditioner routines</A>
<B> Up:</B> <A NAME="tex2html1630"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1624"
HREF="node111.html">Error handling</A>
&nbsp; <B> <A NAME="tex2html1632"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_precinit -- Initialize a preconditioner</TITLE> <TITLE>Preconditioner routines</TITLE>
<META NAME="description" CONTENT="psb_precinit -- Initialize a preconditioner"> <META NAME="description" CONTENT="Preconditioner routines">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,125 +18,80 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node114.html"> <LINK REL="next" HREF="node119.html">
<LINK REL="previous" HREF="node112.html"> <LINK REL="previous" HREF="node112.html">
<LINK REL="up" HREF="node112.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node114.html"> <LINK REL="next" HREF="node114.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1647" <A NAME="tex2html1645"
HREF="node114.html"> HREF="node114.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1643" <A NAME="tex2html1641"
HREF="node112.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1637" <A NAME="tex2html1635"
HREF="node112.html"> HREF="node112.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1645" <A NAME="tex2html1643"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1648" <B> Next:</B> <A NAME="tex2html1646"
HREF="node114.html">psb_precbld Builds</A> HREF="node114.html">psb_precinit Initialize</A>
<B> Up:</B> <A NAME="tex2html1644" <B> Up:</B> <A NAME="tex2html1642"
HREF="node112.html">Preconditioner routines</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1638" <B> Previous:</B> <A NAME="tex2html1636"
HREF="node112.html">Preconditioner routines</A> HREF="node112.html">Utilities</A>
&nbsp; <B> <A NAME="tex2html1646" &nbsp; <B> <A NAME="tex2html1644"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000111000000000000000"> <H1><A NAME="SECTION000110000000000000000"></A>
psb_precinit -- Initialize a preconditioner</A> <A NAME="sec:precs"></A>
</H2> <BR>
Preconditioner routines
</H1>
<P> <P>
<PRE> <A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple
call psb_precinit(prec, ptype, info) preconditioning techniques:
</PRE>
<P> <UL>
<DL> <LI>Diagonal Scaling
<DT><STRONG>Type:</STRONG></DT> </LI>
<DD>Asynchronous. <LI>Block Jacobi with ILU(0) factorization
</DD> </LI>
<DT><STRONG><B>On Entry</B></STRONG></DT> </UL>
<DD> The supporting data type and subroutine interfaces are defined in the
</DD> module <code>psb_prec_mod</code>.
<DT><STRONG>ptype</STRONG></DT>
<DD>the type of preconditioner.
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a character string, see usage notes.
</DD>
<DT><STRONG><B>On Exit</B></STRONG></DT>
<DD><P>
</DD>
<DT><STRONG>prec</STRONG></DT>
<DD>Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
Error code: if no error, 0 is returned.
</DD>
</DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
Legal inputs to this subroutine are interpreted depending on the
<IMG
WIDTH="41" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img154.png"
ALT="$ptype$"> string as follows<A NAME="tex2html30"
HREF="footnode.html#foot7399"><SUP>3</SUP></A>:
<DL>
<DT><STRONG>NONE</STRONG></DT>
<DD>No preconditioning, i.e. the preconditioner is just a copy
operator.
</DD>
<DT><STRONG>DIAG</STRONG></DT>
<DD>Diagonal scaling; each entry of the input vector is
multiplied by the reciprocal of the sum of the absolute values of
the coefficients in the corresponding row of matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">;
</DD>
<DT><STRONG>BJAC</STRONG></DT>
<DD>Precondition by a factorization of the
block-diagonal of matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">, where block boundaries are determined
by the data allocation boundaries for each process; requires no
communication. Only the incomplete factorization <IMG
WIDTH="56" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img155.png"
ALT="$ILU(0)$"> is
currently implemented.
</DD>
</DL>
<P> <P>
<BR><HR> <BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html1647"
HREF="node114.html">psb_precinit -- Initialize a preconditioner</A>
<LI><A NAME="tex2html1648"
HREF="node115.html">psb_precbld -- Builds a preconditioner</A>
<LI><A NAME="tex2html1649"
HREF="node116.html">psb_precaply -- Preconditioner application
routine</A>
<LI><A NAME="tex2html1650"
HREF="node117.html">psb_precdescr -- Prints a description of current
preconditioner</A>
<LI><A NAME="tex2html1651"
HREF="node118.html">clone -- clone current
preconditioner</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_precbld -- Builds a preconditioner</TITLE> <TITLE>psb_precinit -- Initialize a preconditioner</TITLE>
<META NAME="description" CONTENT="psb_precbld -- Builds a preconditioner"> <META NAME="description" CONTENT="psb_precinit -- Initialize a preconditioner">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,137 +20,118 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node115.html"> <LINK REL="next" HREF="node115.html">
<LINK REL="previous" HREF="node113.html"> <LINK REL="previous" HREF="node113.html">
<LINK REL="up" HREF="node112.html"> <LINK REL="up" HREF="node113.html">
<LINK REL="next" HREF="node115.html"> <LINK REL="next" HREF="node115.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1659" <A NAME="tex2html1662"
HREF="node115.html"> HREF="node115.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1655" <A NAME="tex2html1658"
HREF="node112.html"> HREF="node113.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1649" <A NAME="tex2html1652"
HREF="node113.html"> HREF="node113.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1657" <A NAME="tex2html1660"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1660" <B> Next:</B> <A NAME="tex2html1663"
HREF="node115.html">psb_precaply Preconditioner</A> HREF="node115.html">psb_precbld Builds</A>
<B> Up:</B> <A NAME="tex2html1656" <B> Up:</B> <A NAME="tex2html1659"
HREF="node112.html">Preconditioner routines</A> HREF="node113.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1650" <B> Previous:</B> <A NAME="tex2html1653"
HREF="node113.html">psb_precinit Initialize</A> HREF="node113.html">Preconditioner routines</A>
&nbsp; <B> <A NAME="tex2html1658" &nbsp; <B> <A NAME="tex2html1661"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000112000000000000000"> <H2><A NAME="SECTION000111000000000000000">
psb_precbld -- Builds a preconditioner</A> psb_precinit -- Initialize a preconditioner</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_precbld(a, desc_a, prec, info,amold,vmold) call psb_precinit(prec, ptype, info)
</PRE> </PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>ptype</STRONG></DT>
<DD>the system sparse matrix. <DD>the type of preconditioner.
Scope: <B>local</B> Scope: <B>global</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>, target. Intent: <B>in</B>.
<BR> <BR>
Specified as: a sparse matrix data structure spdata<TT>psb_Tspmat_type</TT>. Specified as: a character string, see usage notes.
</DD>
<DT><STRONG><B>On Exit</B></STRONG></DT>
<DD><P>
</DD> </DD>
<DT><STRONG>prec</STRONG></DT> <DT><STRONG>prec</STRONG></DT>
<DD>the preconditioner. <DD>Scope: <B>local</B>
<BR>
Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an already initialized precondtioner data structure precdata<TT>psb_prec_type</TT> Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
<BR></DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>the problem communication descriptor.
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>, target.
<BR>
Specified as: a communication descriptor data structure descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>amold</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>The desired dynamic type for the internal matrix storage. <DD>Scope: <B>global</B>
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>.
</DD>
<DT><STRONG>vmold</STRONG></DT>
<DD>The desired dynamic type for the internal vector storage.
<BR>
Scope: <B>local</B>.
<BR> <BR>
Type: <B>optional</B>. Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>out</B>.
<BR> <BR>
Specified as: an object of a class derived from vbasedata<TT>psb_T_base_vect_type</TT>. Error code: if no error, 0 is returned.
<P>
</DD> </DD>
</DL> </DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
<P> Legal inputs to this subroutine are interpreted depending on the
<IMG
WIDTH="41" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img154.png"
ALT="$ptype$"> string as follows<A NAME="tex2html30"
HREF="footnode.html#foot7420"><SUP>3</SUP></A>:
<DL> <DL>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG>NONE</STRONG></DT>
<DD> <DD>No preconditioning, i.e. the preconditioner is just a copy
operator.
</DD> </DD>
<DT><STRONG>prec</STRONG></DT> <DT><STRONG>DIAG</STRONG></DT>
<DD>the preconditioner. <DD>Diagonal scaling; each entry of the input vector is
<BR> multiplied by the reciprocal of the sum of the absolute values of
Scope: <B>local</B> the coefficients in the corresponding row of matrix <IMG
<BR> WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
Type: <B>required</B> SRC="img1.png"
<BR> ALT="$A$">;
Intent: <B>inout</B>. </DD>
<BR> <DT><STRONG>BJAC</STRONG></DT>
Specified as: a precondtioner data structure precdata<TT>psb_prec_type</TT> <DD>Precondition by a factorization of the
<BR></DD> block-diagonal of matrix <IMG
<DT><STRONG>info</STRONG></DT> WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
<DD>Error code. SRC="img1.png"
<BR> ALT="$A$">, where block boundaries are determined
Scope: <B>local</B> by the data allocation boundaries for each process; requires no
<BR> communication. Only the incomplete factorization <IMG
Type: <B>required</B> WIDTH="56" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
<BR> SRC="img155.png"
Intent: <B>out</B>. ALT="$ILU(0)$"> is
<BR> currently implemented.
An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_precaply -- Preconditioner application routine</TITLE> <TITLE>psb_precbld -- Builds a preconditioner</TITLE>
<META NAME="description" CONTENT="psb_precaply -- Preconditioner application routine"> <META NAME="description" CONTENT="psb_precbld -- Builds a preconditioner">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,46 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node116.html"> <LINK REL="next" HREF="node116.html">
<LINK REL="previous" HREF="node114.html"> <LINK REL="previous" HREF="node114.html">
<LINK REL="up" HREF="node112.html"> <LINK REL="up" HREF="node113.html">
<LINK REL="next" HREF="node116.html"> <LINK REL="next" HREF="node116.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1671" <A NAME="tex2html1674"
HREF="node116.html"> HREF="node116.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1667" <A NAME="tex2html1670"
HREF="node112.html"> HREF="node113.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1661" <A NAME="tex2html1664"
HREF="node114.html"> HREF="node114.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1669" <A NAME="tex2html1672"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1672" <B> Next:</B> <A NAME="tex2html1675"
HREF="node116.html">psb_precdescr Prints</A> HREF="node116.html">psb_precaply Preconditioner</A>
<B> Up:</B> <A NAME="tex2html1668" <B> Up:</B> <A NAME="tex2html1671"
HREF="node112.html">Preconditioner routines</A> HREF="node113.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1662" <B> Previous:</B> <A NAME="tex2html1665"
HREF="node114.html">psb_precbld Builds</A> HREF="node114.html">psb_precinit Initialize</A>
&nbsp; <B> <A NAME="tex2html1670" &nbsp; <B> <A NAME="tex2html1673"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000113000000000000000"> <H2><A NAME="SECTION000112000000000000000">
psb_precaply -- Preconditioner application psb_precbld -- Builds a preconditioner</A>
routine</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_precaply(prec,x,y,desc_a,info,trans,work) call psb_precbld(a, desc_a, prec, info,amold,vmold)
call psb_precaply(prec,x,desc_a,info,trans)
</PRE> </PRE>
<P> <P>
@ -70,54 +68,60 @@ call psb_precaply(prec,x,desc_a,info,trans)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>prec</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the preconditioner. <DD>the system sparse matrix.
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>, target.
<BR> <BR>
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>. Specified as: a sparse matrix data structure spdata<TT>psb_Tspmat_type</TT>.
</DD> </DD>
<DT><STRONG>x</STRONG></DT> <DT><STRONG>prec</STRONG></DT>
<DD>the source vector. <DD>the preconditioner.
<BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>. Specified as: an already initialized precondtioner data structure precdata<TT>psb_prec_type</TT>
</DD> <BR></DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the problem communication descriptor. <DD>the problem communication descriptor.
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>, target.
<BR> <BR>
Specified as: a communication data structure descdata<TT>psb_desc_type</TT>. Specified as: a communication descriptor data structure descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>trans</STRONG></DT> <DT><STRONG>amold</STRONG></DT>
<DD>Scope: <DD>The desired dynamic type for the internal matrix storage.
<BR> <BR>
Type: <B>optional</B> Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a character. Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>.
</DD> </DD>
<DT><STRONG>work</STRONG></DT> <DT><STRONG>vmold</STRONG></DT>
<DD>an optional work space <DD>The desired dynamic type for the internal vector storage.
Scope: <B>local</B>
<BR> <BR>
Type: <B>optional</B> Scope: <B>local</B>.
<BR> <BR>
Intent: <B>inout</B>. Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR> <BR>
Specified as: a double precision array. Specified as: an object of a class derived from vbasedata<TT>psb_T_base_vect_type</TT>.
<P>
</DD> </DD>
</DL> </DL>
@ -126,16 +130,17 @@ Specified as: a double precision array.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>y</STRONG></DT> <DT><STRONG>prec</STRONG></DT>
<DD>the destination vector. <DD>the preconditioner.
<BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>. Specified as: a precondtioner data structure precdata<TT>psb_prec_type</TT>
</DD> <BR></DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_precdescr -- Prints a description of current preconditioner</TITLE> <TITLE>psb_precaply -- Preconditioner application routine</TITLE>
<META NAME="description" CONTENT="psb_precdescr -- Prints a description of current preconditioner"> <META NAME="description" CONTENT="psb_precaply -- Preconditioner application routine">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,52 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node117.html"> <LINK REL="next" HREF="node117.html">
<LINK REL="previous" HREF="node115.html"> <LINK REL="previous" HREF="node115.html">
<LINK REL="up" HREF="node112.html"> <LINK REL="up" HREF="node113.html">
<LINK REL="next" HREF="node117.html"> <LINK REL="next" HREF="node117.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1683" <A NAME="tex2html1686"
HREF="node117.html"> HREF="node117.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1679" <A NAME="tex2html1682"
HREF="node112.html"> HREF="node113.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1673" <A NAME="tex2html1676"
HREF="node115.html"> HREF="node115.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1681" <A NAME="tex2html1684"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1684" <B> Next:</B> <A NAME="tex2html1687"
HREF="node117.html">clone clone</A> HREF="node117.html">psb_precdescr Prints</A>
<B> Up:</B> <A NAME="tex2html1680" <B> Up:</B> <A NAME="tex2html1683"
HREF="node112.html">Preconditioner routines</A> HREF="node113.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1674" <B> Previous:</B> <A NAME="tex2html1677"
HREF="node115.html">psb_precaply Preconditioner</A> HREF="node115.html">psb_precbld Builds</A>
&nbsp; <B> <A NAME="tex2html1682" &nbsp; <B> <A NAME="tex2html1685"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000114000000000000000"> <H2><A NAME="SECTION000113000000000000000">
psb_precdescr -- Prints a description of current psb_precaply -- Preconditioner application
preconditioner</A> routine</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_precdescr(prec) call psb_precaply(prec,x,y,desc_a,info,trans,work)
call psb_precdescr(prec, iout) call psb_precaply(prec,x,desc_a,info,trans)
</PRE> </PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Synchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
@ -80,15 +80,72 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>. Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
</DD> </DD>
<DT><STRONG>iout</STRONG></DT> <DT><STRONG>x</STRONG></DT>
<DD>output unit. <DD>the source vector.
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>optiona</B> Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>the problem communication descriptor.
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a communication data structure descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>trans</STRONG></DT>
<DD>Scope:
<BR>
Type: <B>optional</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer number. Specified as: a character.
</DD>
<DT><STRONG>work</STRONG></DT>
<DD>an optional work space
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a double precision array.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the destination vector.
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>clone -- clone current preconditioner</TITLE> <TITLE>psb_precdescr -- Prints a description of current preconditioner</TITLE>
<META NAME="description" CONTENT="clone -- clone current preconditioner"> <META NAME="description" CONTENT="psb_precdescr -- Prints a description of current preconditioner">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,45 +18,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node118.html">
<LINK REL="previous" HREF="node116.html"> <LINK REL="previous" HREF="node116.html">
<LINK REL="up" HREF="node112.html"> <LINK REL="up" HREF="node113.html">
<LINK REL="next" HREF="node118.html"> <LINK REL="next" HREF="node118.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1693" <A NAME="tex2html1698"
HREF="node118.html"> HREF="node118.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1689" <A NAME="tex2html1694"
HREF="node112.html"> HREF="node113.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1685" <A NAME="tex2html1688"
HREF="node116.html"> HREF="node116.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1691" <A NAME="tex2html1696"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1694" <B> Next:</B> <A NAME="tex2html1699"
HREF="node118.html">Iterative Methods</A> HREF="node118.html">clone clone</A>
<B> Up:</B> <A NAME="tex2html1690" <B> Up:</B> <A NAME="tex2html1695"
HREF="node112.html">Preconditioner routines</A> HREF="node113.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1686" <B> Previous:</B> <A NAME="tex2html1689"
HREF="node116.html">psb_precdescr Prints</A> HREF="node116.html">psb_precaply Preconditioner</A>
&nbsp; <B> <A NAME="tex2html1692" &nbsp; <B> <A NAME="tex2html1697"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000115000000000000000"> <H2><A NAME="SECTION000114000000000000000">
clone -- clone current psb_precdescr -- Prints a description of current
preconditioner</A> preconditioner</A>
</H2> </H2>
<P>
<PRE> <PRE>
call prec%clone(precout,info) call psb_precdescr(prec)
call psb_precdescr(prec, iout)
</PRE> </PRE>
<P> <P>
@ -69,21 +72,23 @@ call prec%clone(precout,info)
</DD> </DD>
<DT><STRONG>prec</STRONG></DT> <DT><STRONG>prec</STRONG></DT>
<DD>the preconditioner. <DD>the preconditioner.
Scope: <B>local</B>
<BR> <BR>
Scope: <B>local</B>. Type: <B>required</B>
<BR></DD> <BR>
</DL> Intent: <B>in</B>.
<BR>
<P> Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>precout</STRONG></DT>
<DD>A copy of the input object.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>iout</STRONG></DT>
<DD>Return code. <DD>output unit.
Scope: <B>local</B>
<BR>
Type: <B>optiona</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer number.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Iterative Methods</TITLE> <TITLE>clone -- clone current preconditioner</TITLE>
<META NAME="description" CONTENT="Iterative Methods"> <META NAME="description" CONTENT="clone -- clone current preconditioner">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,61 +18,76 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node120.html"> <LINK REL="previous" HREF="node117.html">
<LINK REL="previous" HREF="node112.html"> <LINK REL="up" HREF="node113.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node119.html"> <LINK REL="next" HREF="node119.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1705" <A NAME="tex2html1708"
HREF="node119.html"> HREF="node119.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1701" <A NAME="tex2html1704"
HREF="userhtml.html"> HREF="node113.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1695" <A NAME="tex2html1700"
HREF="node117.html"> HREF="node117.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1703" <A NAME="tex2html1706"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1706" <B> Next:</B> <A NAME="tex2html1709"
HREF="node119.html">psb_krylov Krylov</A> HREF="node119.html">Iterative Methods</A>
<B> Up:</B> <A NAME="tex2html1702" <B> Up:</B> <A NAME="tex2html1705"
HREF="userhtml.html">userhtml</A> HREF="node113.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1696" <B> Previous:</B> <A NAME="tex2html1701"
HREF="node117.html">clone clone</A> HREF="node117.html">psb_precdescr Prints</A>
&nbsp; <B> <A NAME="tex2html1704" &nbsp; <B> <A NAME="tex2html1707"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION000120000000000000000"></A> <H2><A NAME="SECTION000115000000000000000">
<A NAME="sec:methods"></A> clone -- clone current
<BR> preconditioner</A>
Iterative Methods </H2>
</H1>
<PRE>
call prec%clone(precout,info)
</PRE>
<P> <P>
In this chapter we provide routines for preconditioners and iterative <DL>
methods. The interfaces for Krylov subspace methods are available in <DT><STRONG>Type:</STRONG></DT>
the module <code>psb_krylov_mod</code>. <DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>prec</STRONG></DT>
<DD>the preconditioner.
<BR>
Scope: <B>local</B>.
<BR></DD>
</DL>
<P> <P>
<BR><HR> <DL>
<!--Table of Child-Links--> <DT><STRONG><B>On Return</B></STRONG></DT>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> <DD>
</DD>
<DT><STRONG>precout</STRONG></DT>
<DD>A copy of the input object.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Return code.
</DD>
</DL>
<UL> <P>
<LI><A NAME="tex2html1707"
HREF="node119.html">psb_krylov -- Krylov Methods Driver
Routine</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR> <BR><HR>
</BODY> </BODY>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_krylov -- Krylov Methods Driver Routine</TITLE> <TITLE>Iterative Methods</TITLE>
<META NAME="description" CONTENT="psb_krylov -- Krylov Methods Driver Routine"> <META NAME="description" CONTENT="Iterative Methods">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,377 +18,62 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node118.html"> <LINK REL="next" HREF="node121.html">
<LINK REL="up" HREF="node118.html"> <LINK REL="previous" HREF="node113.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node120.html"> <LINK REL="next" HREF="node120.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1716" <A NAME="tex2html1720"
HREF="node120.html"> HREF="node120.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1712" <A NAME="tex2html1716"
HREF="node118.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1708" <A NAME="tex2html1710"
HREF="node118.html"> HREF="node118.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1714" <A NAME="tex2html1718"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1717" <B> Next:</B> <A NAME="tex2html1721"
HREF="node120.html">Bibliography</A> HREF="node120.html">psb_krylov Krylov</A>
<B> Up:</B> <A NAME="tex2html1713" <B> Up:</B> <A NAME="tex2html1717"
HREF="node118.html">Iterative Methods</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1709" <B> Previous:</B> <A NAME="tex2html1711"
HREF="node118.html">Iterative Methods</A> HREF="node118.html">clone clone</A>
&nbsp; <B> <A NAME="tex2html1715" &nbsp; <B> <A NAME="tex2html1719"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A> <H1><A NAME="SECTION000120000000000000000"></A>
<BR> <A NAME="sec:methods"></A>
psb_krylov -- Krylov Methods Driver
Routine
</H2>
<P>
This subroutine is a driver that provides a general interface for all
the Krylov-Subspace family methods implemented in PSBLAS version 2.
<P>
The stopping criterion is the normwise backward error, in the infinity
norm, i.e. the iteration is stopped when
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
\end{displaymath}
-->
<IMG
WIDTH="204" HEIGHT="44" BORDER="0"
SRC="img156.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
or the 2-norm residual reduction
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{\|b\|_2} < eps
\end{displaymath}
-->
<IMG
WIDTH="121" HEIGHT="44" BORDER="0"
SRC="img157.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
according to the value passed through the istop argument (see
later). In the above formulae, <IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img158.png"
ALT="$x_i$"> is the tentative solution and
<IMG
WIDTH="91" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img159.png"
ALT="$r_i=b-Ax_i$"> the corresponding residual at the <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
ALT="$i$">-th iteration.
<P>
<BR>
<IMG
WIDTH="482" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img160.png"
ALT="\begin{lstlisting}
call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&amp;
&amp; itmax,iter,err,itrace,irst,istop,cond)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>method</STRONG></DT>
<DD>a string that defines the iterative method to be
used. Supported values are:
<DL>
<DT><STRONG>CG:</STRONG></DT>
<DD>the Conjugate Gradient method;
</DD>
<DT><STRONG>CGS:</STRONG></DT>
<DD>the Conjugate Gradient Stabilized method;
<P>
</DD>
<DT><STRONG>BICG:</STRONG></DT>
<DD>the Bi-Conjugate Gradient method;
</DD>
<DT><STRONG>BICGSTAB:</STRONG></DT>
<DD>the Bi-Conjugate Gradient Stabilized method;
</DD>
<DT><STRONG>BICGSTABL:</STRONG></DT>
<DD>the Bi-Conjugate Gradient Stabilized method with restarting;
</DD>
<DT><STRONG>RGMRES:</STRONG></DT>
<DD>the Generalized Minimal Residual method with restarting.
</DD>
</DL>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the local portion of global sparse matrix
<IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>prec</STRONG></DT>
<DD>The data structure containing the preconditioner.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type precdata<TT>psb_prec_type</TT>.
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>The RHS vector.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>The initial guess.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>eps</STRONG></DT>
<DD>The stopping tolerance.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a real number.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>itmax</STRONG></DT>
<DD>The maximum number of iterations to perform.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="100" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img161.png"
ALT="$itmax = 1000$">.
<BR>
Specified as: an integer variable <IMG
WIDTH="75" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img162.png"
ALT="$itmax \ge 1$">.
</DD>
<DT><STRONG>itrace</STRONG></DT>
<DD>If <IMG
WIDTH="28" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img112.png"
ALT="$&gt;0$"> print out an informational message about
convergence every <IMG
WIDTH="46" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img163.png"
ALT="$itrace$"> iterations.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR></DD>
<DT><STRONG>irst</STRONG></DT>
<DD>An integer specifying the restart parameter.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Values: <IMG
WIDTH="60" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img164.png"
ALT="$irst&gt;0$">. This is employed for the BiCGSTABL or RGMRES
methods, otherwise it is ignored.
<P>
</DD>
<DT><STRONG>istop</STRONG></DT>
<DD>An integer specifying the stopping criterion.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
of the residual. Default: 2.
</DD>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>The computed solution.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>iter</STRONG></DT>
<DD>The number of iterations performed.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: an integer variable.
</DD>
<DT><STRONG>err</STRONG></DT>
<DD>The convergence estimate on exit.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: a real number.
</DD>
<DT><STRONG>cond</STRONG></DT>
<DD>An estimate of the condition number of matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">; only
available with the <IMG
WIDTH="29" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img165.png"
ALT="$CG$"> method.
<BR> <BR>
Scope: <B>global</B> Iterative Methods
<BR> </H1>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: a real number.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
<P> <P>
In this chapter we provide routines for preconditioners and iterative
methods. The interfaces for Krylov subspace methods are available in
the module <code>psb_krylov_mod</code>.
<P> <P>
<BR><HR>
<P> <!--Table of Child-Links-->
<HR> <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<!--Navigation Panel-->
<A NAME="tex2html1716" <UL>
HREF="node120.html"> <LI><A NAME="tex2html1722"
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> HREF="node120.html">psb_krylov -- Krylov Methods Driver
<A NAME="tex2html1712" Routine</A>
HREF="node118.html"> </UL>
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <!--End of Table of Child-Links-->
<A NAME="tex2html1708" <BR><HR>
HREF="node118.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1714"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1717"
HREF="node120.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1713"
HREF="node118.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1709"
HREF="node118.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1715"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html364" <A NAME="tex2html366"
HREF="node13.html"> HREF="node13.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html360" <A NAME="tex2html362"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html354" <A NAME="tex2html356"
HREF="node11.html"> HREF="node11.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html362" <A NAME="tex2html364"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html365" <B> Next:</B> <A NAME="tex2html367"
HREF="node13.html">get_local_cols Get</A> HREF="node13.html">get_local_cols Get</A>
<B> Up:</B> <A NAME="tex2html361" <B> Up:</B> <A NAME="tex2html363"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html355" <B> Previous:</B> <A NAME="tex2html357"
HREF="node11.html">Descriptor Methods</A> HREF="node11.html">Descriptor Methods</A>
&nbsp; <B> <A NAME="tex2html363" &nbsp; <B> <A NAME="tex2html365"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Bibliography</TITLE> <TITLE>psb_krylov -- Krylov Methods Driver Routine</TITLE>
<META NAME="description" CONTENT="Bibliography"> <META NAME="description" CONTENT="psb_krylov -- Krylov Methods Driver Routine">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,166 +18,377 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node121.html"> <LINK REL="previous" HREF="node119.html">
<LINK REL="previous" HREF="node118.html"> <LINK REL="up" HREF="node119.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node121.html"> <LINK REL="next" HREF="node121.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1728" <A NAME="tex2html1731"
HREF="node121.html"> HREF="node121.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1724" <A NAME="tex2html1727"
HREF="userhtml.html"> HREF="node119.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1718" <A NAME="tex2html1723"
HREF="node119.html"> HREF="node119.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1726" <A NAME="tex2html1729"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1729" <B> Next:</B> <A NAME="tex2html1732"
HREF="node121.html">About this document ...</A> HREF="node121.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1725" <B> Up:</B> <A NAME="tex2html1728"
HREF="userhtml.html">userhtml</A> HREF="node119.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1719" <B> Previous:</B> <A NAME="tex2html1724"
HREF="node119.html">psb_krylov Krylov</A> HREF="node119.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1727" &nbsp; <B> <A NAME="tex2html1730"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR><BR> <BR>
<BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000130000000000000000"> <H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
Bibliography</A> <BR>
</H2><DL COMPACT><DD><P></P><DT><A NAME="DesPat:11">1</A> psb_krylov -- Krylov Methods Driver
<DD> Routine
D.&nbsp;Barbieri, V.&nbsp;Cardellini, S.&nbsp;Filippone and D.&nbsp;Rouson </H2>
<EM>Design Patterns for Scientific Computations on Sparse Matrices</EM>,
HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
<P> <P>
<P></P><DT><A NAME="PARA04FOREST">2</A> This subroutine is a driver that provides a general interface for all
<DD> the Krylov-Subspace family methods implemented in PSBLAS version 2.
G.&nbsp;Bella, S.&nbsp;Filippone, A.&nbsp;De Maio and M.&nbsp;Testa,
<EM>A Simulation Model for Forest Fires</EM>, <P>
in J.&nbsp;Dongarra, K.&nbsp;Madsen, J.&nbsp;Wasniewski, editors, The stopping criterion is the normwise backward error, in the infinity
Proceedings of PARA&nbsp;04 Workshop on State of the Art norm, i.e. the iteration is stopped when
in Scientific Computing, pp.&nbsp;546-553, Lecture Notes in Computer Science, <BR><P></P>
Springer, 2005. <DIV ALIGN="CENTER">
<P></P><DT><A NAME="2007d">3</A> <!-- MATH
<DD> A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,<BR> \begin{displaymath}
2LEV-D2P4: a package of high-performance preconditioners,<BR> err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
Applicable Algebra in Engineering, Communications and Computing, \end{displaymath}
Volume 18, Number 3, May, 2007, pp. 223-239 -->
<P></P><DT><A NAME="2007c">4</A>
<DD> P. D'Ambra, S. Filippone, D. Di Serafino<BR> <IMG
On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners WIDTH="204" HEIGHT="44" BORDER="0"
<BR> SRC="img156.png"
Applied Numerical Mathematics, Elsevier Science, ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} &lt; eps \end{displaymath}">
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196. </DIV>
<BR CLEAR="ALL">
<P></P>
or the 2-norm residual reduction
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{\|b\|_2} < eps
\end{displaymath}
-->
<IMG
WIDTH="121" HEIGHT="44" BORDER="0"
SRC="img157.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
according to the value passed through the istop argument (see
later). In the above formulae, <IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img158.png"
ALT="$x_i$"> is the tentative solution and
<IMG
WIDTH="91" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img159.png"
ALT="$r_i=b-Ax_i$"> the corresponding residual at the <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
ALT="$i$">-th iteration.
<P> <P>
<P></P><DT><A NAME="BLAS2">5</A>
<DD>
Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R.,
An Extended Set of Fortran Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;14, 1-17, 1988.
<P></P><DT><A NAME="BLAS3">6</A>
<DD>
Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I.,
A Set of level 3 Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;16, 1-17, 1990.
<P></P><DT><A NAME="BLACS">7</A>
<DD>
J.&nbsp;J.&nbsp;Dongarra and R.&nbsp;C.&nbsp;Whaley,
<EM>A User's Guide to the BLACS v.&nbsp;1.1</EM>,
Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997).
<P></P><DT><A NAME="sblas97">8</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Marrone, G.&nbsp;Radicati and C.&nbsp;Vittoli,
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
a User Level Interface</EM>,
ACM Transactions on Mathematical Software, 23(3), pp.&nbsp;379-401, 1997.
<P></P><DT><A NAME="sblas02">9</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Heroux and R.&nbsp;Pozo,
<EM>An Overview of the Sparse Basic Linear
Algebra Subprograms: the New Standard from the BLAS Technical Forum</EM>,
ACM Transactions on Mathematical Software, 28(2), pp.&nbsp;239-267, 2002.
<P></P><DT><A NAME="PSBLAS">10</A>
<DD>
S.&nbsp;Filippone and M.&nbsp;Colajanni,
<EM>PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices</EM>,
<BR> <BR>
ACM Transactions on Mathematical Software, 26(4), pp.&nbsp;527-550, 2000. <IMG
<P></P><DT><A NAME="Sparse03">11</A> WIDTH="482" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
<DD> SRC="img160.png"
S.&nbsp;Filippone and A.&nbsp;Buttari, ALT="\begin{lstlisting}
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>, call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&amp;
&amp; itmax,iter,err,itrace,irst,istop,cond)
\end{lstlisting}">
<BR> <BR>
ACM Transactions on Mathematical Software, to appear.
<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
<DD>
S.&nbsp;Filippone, P.&nbsp;D'Ambra, M.&nbsp;Colajanni,
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
Applications Code on Linux Clusters</EM>,
in G.&nbsp;Joubert, A.&nbsp;Murli, F.&nbsp;Peters, M.&nbsp;Vanneschi, editors,
Parallel Computing - Advances &amp; Current Issues,
pp.&nbsp;441-448, Imperial College Press, 2002.
<P></P><DT><A NAME="DesignPatterns">13</A>
<DD>
Gamma, E., Helm, R., Johnson, R., and Vlissides,
J. 1995.
<EM>Design Patterns: Elements of Reusable Object-Oriented Software</EM>.
Addison-Wesley.
<P> <P>
<P></P><DT><A NAME="METIS">14</A> <DL>
<DD> <DT><STRONG>Type:</STRONG></DT>
Karypis, G. and Kumar, V., <DD>Synchronous.
<EM>METIS: Unstructured Graph Partitioning and Sparse Matrix </DD>
Ordering System</EM>. <DT><STRONG><B>On Entry</B></STRONG></DT>
Minneapolis, MN 55455: University of Minnesota, Department of
Computer Science, 1995.
Internet Address: <code>http://www.cs.umn.edu/~karypis</code>.
<P></P><DT><A NAME="BLAS1">15</A>
<DD> <DD>
Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., </DD>
Basic Linear Algebra Subprograms for Fortran usage, <DT><STRONG>method</STRONG></DT>
ACM Trans. Math. Softw. vol.&nbsp;5, 38-329, 1979. <DD>a string that defines the iterative method to be
used. Supported values are:
<DL>
<DT><STRONG>CG:</STRONG></DT>
<DD>the Conjugate Gradient method;
</DD>
<DT><STRONG>CGS:</STRONG></DT>
<DD>the Conjugate Gradient Stabilized method;
<P> <P>
<P></P><DT><A NAME="machiels">16</A> </DD>
<DD> <DT><STRONG>BICG:</STRONG></DT>
Machiels, L. and Deville, M. <DD>the Bi-Conjugate Gradient method;
<EM>Fortran 90: An entry to object-oriented programming for the solution
of partial differential equations.</EM> </DD>
ACM Trans. Math. Softw. vol.&nbsp;23, 32-49. <DT><STRONG>BICGSTAB:</STRONG></DT>
<P></P><DT><A NAME="metcalf">17</A> <DD>the Bi-Conjugate Gradient Stabilized method;
<DD>
Metcalf, M., Reid, J. and Cohen, M. </DD>
<EM>Fortran 95/2003 explained.</EM> <DT><STRONG>BICGSTABL:</STRONG></DT>
Oxford University Press, 2004. <DD>the Bi-Conjugate Gradient Stabilized method with restarting;
<P></P><DT><A NAME="RouXiaXu:11">18</A>
<DD> </DD>
Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The <DT><STRONG>RGMRES:</STRONG></DT>
Object-Oriented Way. Cambridge University Press (2011) <DD>the Generalized Minimal Residual method with restarting.
</DD>
</DL>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the local portion of global sparse matrix
<IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>prec</STRONG></DT>
<DD>The data structure containing the preconditioner.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type precdata<TT>psb_prec_type</TT>.
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>The RHS vector.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>The initial guess.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>eps</STRONG></DT>
<DD>The stopping tolerance.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a real number.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>itmax</STRONG></DT>
<DD>The maximum number of iterations to perform.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="100" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img161.png"
ALT="$itmax = 1000$">.
<BR>
Specified as: an integer variable <IMG
WIDTH="75" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img162.png"
ALT="$itmax \ge 1$">.
</DD>
<DT><STRONG>itrace</STRONG></DT>
<DD>If <IMG
WIDTH="28" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img112.png"
ALT="$&gt;0$"> print out an informational message about
convergence every <IMG
WIDTH="46" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img163.png"
ALT="$itrace$"> iterations.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR></DD>
<DT><STRONG>irst</STRONG></DT>
<DD>An integer specifying the restart parameter.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Values: <IMG
WIDTH="60" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img164.png"
ALT="$irst&gt;0$">. This is employed for the BiCGSTABL or RGMRES
methods, otherwise it is ignored.
<P> <P>
<P></P><DT><A NAME="MPI1">19</A> </DD>
<DT><STRONG>istop</STRONG></DT>
<DD>An integer specifying the stopping criterion.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
of the residual. Default: 2.
</DD>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
M.&nbsp;Snir, S.&nbsp;Otto, S.&nbsp;Huss-Lederman, D.&nbsp;Walker and J.&nbsp;Dongarra, </DD>
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition, <DT><STRONG>x</STRONG></DT>
MIT Press, 1998. <DD>The computed solution.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
</DD>
<DT><STRONG>iter</STRONG></DT>
<DD>The number of iterations performed.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: an integer variable.
</DD>
<DT><STRONG>err</STRONG></DT>
<DD>The convergence estimate on exit.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: a real number.
</DD>
<DT><STRONG>cond</STRONG></DT>
<DD>An estimate of the condition number of matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">; only
available with the <IMG
WIDTH="29" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img165.png"
ALT="$CG$"> method.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: a real number.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL> </DL>
<P> <P>
<BR><HR>
<P>
<P>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1731"
HREF="node121.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1727"
HREF="node119.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1723"
HREF="node119.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1729"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1732"
HREF="node121.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1728"
HREF="node119.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1724"
HREF="node119.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1730"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>About this document ...</TITLE> <TITLE>Bibliography</TITLE>
<META NAME="description" CONTENT="About this document ..."> <META NAME="description" CONTENT="Bibliography">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,52 +18,165 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node120.html"> <LINK REL="next" HREF="node122.html">
<LINK REL="previous" HREF="node119.html">
<LINK REL="up" HREF="userhtml.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node122.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png"> <A NAME="tex2html1743"
<A NAME="tex2html1734" HREF="node122.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1739"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1730" <A NAME="tex2html1733"
HREF="node120.html"> HREF="node120.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1736" <A NAME="tex2html1741"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Up:</B> <A NAME="tex2html1735" <B> Next:</B> <A NAME="tex2html1744"
HREF="node122.html">About this document ...</A>
<B> Up:</B> <A NAME="tex2html1740"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1731" <B> Previous:</B> <A NAME="tex2html1734"
HREF="node120.html">Bibliography</A> HREF="node120.html">psb_krylov Krylov</A>
&nbsp; <B> <A NAME="tex2html1737" &nbsp; <B> <A NAME="tex2html1742"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR><BR>
<BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000130000000000000000">
Bibliography</A>
</H2><DL COMPACT><DD><P></P><DT><A NAME="DesPat:11">1</A>
<DD>
D.&nbsp;Barbieri, V.&nbsp;Cardellini, S.&nbsp;Filippone and D.&nbsp;Rouson
<EM>Design Patterns for Scientific Computations on Sparse Matrices</EM>,
HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
<P>
<P></P><DT><A NAME="PARA04FOREST">2</A>
<DD>
G.&nbsp;Bella, S.&nbsp;Filippone, A.&nbsp;De Maio and M.&nbsp;Testa,
<EM>A Simulation Model for Forest Fires</EM>,
in J.&nbsp;Dongarra, K.&nbsp;Madsen, J.&nbsp;Wasniewski, editors,
Proceedings of PARA&nbsp;04 Workshop on State of the Art
in Scientific Computing, pp.&nbsp;546-553, Lecture Notes in Computer Science,
Springer, 2005.
<P></P><DT><A NAME="2007d">3</A>
<DD> A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,<BR>
2LEV-D2P4: a package of high-performance preconditioners,<BR>
Applicable Algebra in Engineering, Communications and Computing,
Volume 18, Number 3, May, 2007, pp. 223-239
<P></P><DT><A NAME="2007c">4</A>
<DD> P. D'Ambra, S. Filippone, D. Di Serafino<BR>
On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners
<BR>
Applied Numerical Mathematics, Elsevier Science,
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
<H1><A NAME="SECTION000140000000000000000">
About this document ...</A>
</H1>
<P>
This document was generated using the
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2008 (1.71)
<P> <P>
Copyright &#169; 1993, 1994, 1995, 1996, <P></P><DT><A NAME="BLAS2">5</A>
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>, <DD>
Computer Based Learning Unit, University of Leeds. Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R.,
An Extended Set of Fortran Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;14, 1-17, 1988.
<P></P><DT><A NAME="BLAS3">6</A>
<DD>
Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I.,
A Set of level 3 Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;16, 1-17, 1990.
<P></P><DT><A NAME="BLACS">7</A>
<DD>
J.&nbsp;J.&nbsp;Dongarra and R.&nbsp;C.&nbsp;Whaley,
<EM>A User's Guide to the BLACS v.&nbsp;1.1</EM>,
Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997).
<P></P><DT><A NAME="sblas97">8</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Marrone, G.&nbsp;Radicati and C.&nbsp;Vittoli,
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
a User Level Interface</EM>,
ACM Transactions on Mathematical Software, 23(3), pp.&nbsp;379-401, 1997.
<P></P><DT><A NAME="sblas02">9</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Heroux and R.&nbsp;Pozo,
<EM>An Overview of the Sparse Basic Linear
Algebra Subprograms: the New Standard from the BLAS Technical Forum</EM>,
ACM Transactions on Mathematical Software, 28(2), pp.&nbsp;239-267, 2002.
<P></P><DT><A NAME="PSBLAS">10</A>
<DD>
S.&nbsp;Filippone and M.&nbsp;Colajanni,
<EM>PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices</EM>,
<BR>
ACM Transactions on Mathematical Software, 26(4), pp.&nbsp;527-550, 2000.
<P></P><DT><A NAME="Sparse03">11</A>
<DD>
S.&nbsp;Filippone and A.&nbsp;Buttari,
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
<BR> <BR>
Copyright &#169; 1997, 1998, 1999, ACM Transactions on Mathematical Software, to appear.
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>, <P></P><DT><A NAME="KIVA3PSBLAS">12</A>
Mathematics Department, Macquarie University, Sydney. <DD>
S.&nbsp;Filippone, P.&nbsp;D'Ambra, M.&nbsp;Colajanni,
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
Applications Code on Linux Clusters</EM>,
in G.&nbsp;Joubert, A.&nbsp;Murli, F.&nbsp;Peters, M.&nbsp;Vanneschi, editors,
Parallel Computing - Advances &amp; Current Issues,
pp.&nbsp;441-448, Imperial College Press, 2002.
<P></P><DT><A NAME="DesignPatterns">13</A>
<DD>
Gamma, E., Helm, R., Johnson, R., and Vlissides,
J. 1995.
<EM>Design Patterns: Elements of Reusable Object-Oriented Software</EM>.
Addison-Wesley.
<P>
<P></P><DT><A NAME="METIS">14</A>
<DD>
Karypis, G. and Kumar, V.,
<EM>METIS: Unstructured Graph Partitioning and Sparse Matrix
Ordering System</EM>.
Minneapolis, MN 55455: University of Minnesota, Department of
Computer Science, 1995.
Internet Address: <code>http://www.cs.umn.edu/~karypis</code>.
<P></P><DT><A NAME="BLAS1">15</A>
<DD>
Lawson, C., Hanson, R., Kincaid, D. and Krogh, F.,
Basic Linear Algebra Subprograms for Fortran usage,
ACM Trans. Math. Softw. vol.&nbsp;5, 38-329, 1979.
<P> <P>
The command line arguments were: <BR> <P></P><DT><A NAME="machiels">16</A>
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT> <DD>
Machiels, L. and Deville, M.
<EM>Fortran 90: An entry to object-oriented programming for the solution
of partial differential equations.</EM>
ACM Trans. Math. Softw. vol.&nbsp;23, 32-49.
<P></P><DT><A NAME="metcalf">17</A>
<DD>
Metcalf, M., Reid, J. and Cohen, M.
<EM>Fortran 95/2003 explained.</EM>
Oxford University Press, 2004.
<P></P><DT><A NAME="RouXiaXu:11">18</A>
<DD>
Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
Object-Oriented Way. Cambridge University Press (2011)
<P>
<P></P><DT><A NAME="MPI1">19</A>
<DD>
M.&nbsp;Snir, S.&nbsp;Otto, S.&nbsp;Huss-Lederman, D.&nbsp;Walker and J.&nbsp;Dongarra,
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
MIT Press, 1998.
</DL>
<P> <P>
The translation was initiated by Salvatore Filippone on 2014-03-25
<BR><HR> <BR><HR>
</BODY> </BODY>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Bibliography</TITLE> <TITLE>About this document ...</TITLE>
<META NAME="description" CONTENT="Bibliography"> <META NAME="description" CONTENT="About this document ...">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,165 +18,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node123.html"> <LINK REL="previous" HREF="node121.html">
<LINK REL="previous" HREF="node120.html">
<LINK REL="up" HREF="userhtml.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node123.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1737" <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
HREF="node123.html"> <A NAME="tex2html1749"
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1733"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1727" <A NAME="tex2html1745"
HREF="node121.html"> HREF="node121.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1735" <A NAME="tex2html1751"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1738" <B> Up:</B> <A NAME="tex2html1750"
HREF="node123.html">About this document ...</A>
<B> Up:</B> <A NAME="tex2html1734"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1728" <B> Previous:</B> <A NAME="tex2html1746"
HREF="node121.html">psb_krylov Krylov</A> HREF="node121.html">Bibliography</A>
&nbsp; <B> <A NAME="tex2html1736" &nbsp; <B> <A NAME="tex2html1752"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR><BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000130000000000000000">
Bibliography</A>
</H2><DL COMPACT><DD><P></P><DT><A NAME="DesPat:11">1</A>
<DD>
D.&nbsp;Barbieri, V.&nbsp;Cardellini, S.&nbsp;Filippone and D.&nbsp;Rouson
<EM>Design Patterns for Scientific Computations on Sparse Matrices</EM>,
HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
<P>
<P></P><DT><A NAME="PARA04FOREST">2</A>
<DD>
G.&nbsp;Bella, S.&nbsp;Filippone, A.&nbsp;De Maio and M.&nbsp;Testa,
<EM>A Simulation Model for Forest Fires</EM>,
in J.&nbsp;Dongarra, K.&nbsp;Madsen, J.&nbsp;Wasniewski, editors,
Proceedings of PARA&nbsp;04 Workshop on State of the Art
in Scientific Computing, pp.&nbsp;546-553, Lecture Notes in Computer Science,
Springer, 2005.
<P></P><DT><A NAME="2007d">3</A>
<DD> A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,<BR>
2LEV-D2P4: a package of high-performance preconditioners,<BR>
Applicable Algebra in Engineering, Communications and Computing,
Volume 18, Number 3, May, 2007, pp. 223-239
<P></P><DT><A NAME="2007c">4</A>
<DD> P. D'Ambra, S. Filippone, D. Di Serafino<BR>
On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners
<BR>
Applied Numerical Mathematics, Elsevier Science,
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
<P>
<P></P><DT><A NAME="BLAS2">5</A>
<DD>
Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R.,
An Extended Set of Fortran Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;14, 1-17, 1988.
<P></P><DT><A NAME="BLAS3">6</A>
<DD>
Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I.,
A Set of level 3 Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;16, 1-17, 1990.
<P></P><DT><A NAME="BLACS">7</A>
<DD>
J.&nbsp;J.&nbsp;Dongarra and R.&nbsp;C.&nbsp;Whaley,
<EM>A User's Guide to the BLACS v.&nbsp;1.1</EM>,
Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997).
<P></P><DT><A NAME="sblas97">8</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Marrone, G.&nbsp;Radicati and C.&nbsp;Vittoli,
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
a User Level Interface</EM>,
ACM Transactions on Mathematical Software, 23(3), pp.&nbsp;379-401, 1997.
<P></P><DT><A NAME="sblas02">9</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Heroux and R.&nbsp;Pozo,
<EM>An Overview of the Sparse Basic Linear
Algebra Subprograms: the New Standard from the BLAS Technical Forum</EM>,
ACM Transactions on Mathematical Software, 28(2), pp.&nbsp;239-267, 2002.
<P></P><DT><A NAME="PSBLAS">10</A>
<DD>
S.&nbsp;Filippone and M.&nbsp;Colajanni,
<EM>PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices</EM>,
<BR> <BR>
ACM Transactions on Mathematical Software, 26(4), pp.&nbsp;527-550, 2000.
<P></P><DT><A NAME="Sparse03">11</A>
<DD>
S.&nbsp;Filippone and A.&nbsp;Buttari,
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
<BR> <BR>
ACM Transactions on Mathematical Software, to appear. <!--End of Navigation Panel-->
<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
<DD>
S.&nbsp;Filippone, P.&nbsp;D'Ambra, M.&nbsp;Colajanni,
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
Applications Code on Linux Clusters</EM>,
in G.&nbsp;Joubert, A.&nbsp;Murli, F.&nbsp;Peters, M.&nbsp;Vanneschi, editors,
Parallel Computing - Advances &amp; Current Issues,
pp.&nbsp;441-448, Imperial College Press, 2002.
<P></P><DT><A NAME="DesignPatterns">13</A>
<DD>
Gamma, E., Helm, R., Johnson, R., and Vlissides,
J. 1995.
<EM>Design Patterns: Elements of Reusable Object-Oriented Software</EM>.
Addison-Wesley.
<P>
<P></P><DT><A NAME="METIS">14</A>
<DD>
Karypis, G. and Kumar, V.,
<EM>METIS: Unstructured Graph Partitioning and Sparse Matrix
Ordering System</EM>.
Minneapolis, MN 55455: University of Minnesota, Department of
Computer Science, 1995.
Internet Address: <code>http://www.cs.umn.edu/~karypis</code>.
<P></P><DT><A NAME="BLAS1">15</A>
<DD>
Lawson, C., Hanson, R., Kincaid, D. and Krogh, F.,
Basic Linear Algebra Subprograms for Fortran usage,
ACM Trans. Math. Softw. vol.&nbsp;5, 38-329, 1979.
<H1><A NAME="SECTION000140000000000000000">
About this document ...</A>
</H1>
<P>
This document was generated using the
<A HREF="http://www.latex2html.org/"><STRONG>LaTeX</STRONG>2<tt>HTML</tt></A> translator Version 2008 (1.71)
<P> <P>
<P></P><DT><A NAME="machiels">16</A> Copyright &#169; 1993, 1994, 1995, 1996,
<DD> <A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
Machiels, L. and Deville, M. Computer Based Learning Unit, University of Leeds.
<EM>Fortran 90: An entry to object-oriented programming for the solution <BR>
of partial differential equations.</EM> Copyright &#169; 1997, 1998, 1999,
ACM Trans. Math. Softw. vol.&nbsp;23, 32-49. <A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
<P></P><DT><A NAME="metcalf">17</A> Mathematics Department, Macquarie University, Sydney.
<DD>
Metcalf, M., Reid, J. and Cohen, M.
<EM>Fortran 95/2003 explained.</EM>
Oxford University Press, 2004.
<P></P><DT><A NAME="RouXiaXu:11">18</A>
<DD>
Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
Object-Oriented Way. Cambridge University Press (2011)
<P> <P>
<P></P><DT><A NAME="MPI1">19</A> The command line arguments were: <BR>
<DD> <STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
M.&nbsp;Snir, S.&nbsp;Otto, S.&nbsp;Huss-Lederman, D.&nbsp;Walker and J.&nbsp;Dongarra,
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
MIT Press, 1998.
</DL>
<P> <P>
The translation was initiated by Salvatore Filippone on 2014-03-25
<BR><HR> <BR><HR>
</BODY> </BODY>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html376" <A NAME="tex2html378"
HREF="node14.html"> HREF="node14.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html372" <A NAME="tex2html374"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html366" <A NAME="tex2html368"
HREF="node12.html"> HREF="node12.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html374" <A NAME="tex2html376"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html377" <B> Next:</B> <A NAME="tex2html379"
HREF="node14.html">get_global_rows Get</A> HREF="node14.html">get_global_rows Get</A>
<B> Up:</B> <A NAME="tex2html373" <B> Up:</B> <A NAME="tex2html375"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html367" <B> Previous:</B> <A NAME="tex2html369"
HREF="node12.html">get_local_rows Get</A> HREF="node12.html">get_local_rows Get</A>
&nbsp; <B> <A NAME="tex2html375" &nbsp; <B> <A NAME="tex2html377"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html388" <A NAME="tex2html390"
HREF="node15.html"> HREF="node15.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html384" <A NAME="tex2html386"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html378" <A NAME="tex2html380"
HREF="node13.html"> HREF="node13.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html386" <A NAME="tex2html388"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html389" <B> Next:</B> <A NAME="tex2html391"
HREF="node15.html">get_global_cols Get</A> HREF="node15.html">get_global_cols Get</A>
<B> Up:</B> <A NAME="tex2html385" <B> Up:</B> <A NAME="tex2html387"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html379" <B> Previous:</B> <A NAME="tex2html381"
HREF="node13.html">get_local_cols Get</A> HREF="node13.html">get_local_cols Get</A>
&nbsp; <B> <A NAME="tex2html387" &nbsp; <B> <A NAME="tex2html389"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html400" <A NAME="tex2html402"
HREF="node16.html"> HREF="node16.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html396" <A NAME="tex2html398"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html390" <A NAME="tex2html392"
HREF="node14.html"> HREF="node14.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html398" <A NAME="tex2html400"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html401" <B> Next:</B> <A NAME="tex2html403"
HREF="node16.html">get_context Get</A> HREF="node16.html">get_context Get</A>
<B> Up:</B> <A NAME="tex2html397" <B> Up:</B> <A NAME="tex2html399"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html391" <B> Previous:</B> <A NAME="tex2html393"
HREF="node14.html">get_global_rows Get</A> HREF="node14.html">get_global_rows Get</A>
&nbsp; <B> <A NAME="tex2html399" &nbsp; <B> <A NAME="tex2html401"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html412" <A NAME="tex2html414"
HREF="node17.html"> HREF="node17.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html408" <A NAME="tex2html410"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html402" <A NAME="tex2html404"
HREF="node15.html"> HREF="node15.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html410" <A NAME="tex2html412"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html413" <B> Next:</B> <A NAME="tex2html415"
HREF="node17.html">Clone clone</A> HREF="node17.html">Clone clone</A>
<B> Up:</B> <A NAME="tex2html409" <B> Up:</B> <A NAME="tex2html411"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html403" <B> Previous:</B> <A NAME="tex2html405"
HREF="node15.html">get_global_cols Get</A> HREF="node15.html">get_global_cols Get</A>
&nbsp; <B> <A NAME="tex2html411" &nbsp; <B> <A NAME="tex2html413"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html424" <A NAME="tex2html426"
HREF="node18.html"> HREF="node18.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html420" <A NAME="tex2html422"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html414" <A NAME="tex2html416"
HREF="node16.html"> HREF="node16.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html422" <A NAME="tex2html424"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html425" <B> Next:</B> <A NAME="tex2html427"
HREF="node18.html">psb_cd_get_large_threshold Get</A> HREF="node18.html">psb_cd_get_large_threshold Get</A>
<B> Up:</B> <A NAME="tex2html421" <B> Up:</B> <A NAME="tex2html423"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html415" <B> Previous:</B> <A NAME="tex2html417"
HREF="node16.html">get_context Get</A> HREF="node16.html">get_context Get</A>
&nbsp; <B> <A NAME="tex2html423" &nbsp; <B> <A NAME="tex2html425"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html436" <A NAME="tex2html438"
HREF="node19.html"> HREF="node19.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html432" <A NAME="tex2html434"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html426" <A NAME="tex2html428"
HREF="node17.html"> HREF="node17.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html434" <A NAME="tex2html436"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html437" <B> Next:</B> <A NAME="tex2html439"
HREF="node19.html">psb_cd_set_large_threshold Set</A> HREF="node19.html">psb_cd_set_large_threshold Set</A>
<B> Up:</B> <A NAME="tex2html433" <B> Up:</B> <A NAME="tex2html435"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html427" <B> Previous:</B> <A NAME="tex2html429"
HREF="node17.html">Clone clone</A> HREF="node17.html">Clone clone</A>
&nbsp; <B> <A NAME="tex2html435" &nbsp; <B> <A NAME="tex2html437"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html448" <A NAME="tex2html450"
HREF="node20.html"> HREF="node20.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html444" <A NAME="tex2html446"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html438" <A NAME="tex2html440"
HREF="node18.html"> HREF="node18.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html446" <A NAME="tex2html448"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html449" <B> Next:</B> <A NAME="tex2html451"
HREF="node20.html">Named Constants</A> HREF="node20.html">Named Constants</A>
<B> Up:</B> <A NAME="tex2html445" <B> Up:</B> <A NAME="tex2html447"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html439" <B> Previous:</B> <A NAME="tex2html441"
HREF="node18.html">psb_cd_get_large_threshold Get</A> HREF="node18.html">psb_cd_get_large_threshold Get</A>
&nbsp; <B> <A NAME="tex2html447" &nbsp; <B> <A NAME="tex2html449"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html196" <A NAME="tex2html197"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html192" <A NAME="tex2html193"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html186" <A NAME="tex2html187"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html194" <A NAME="tex2html195"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html197" <B> Next:</B> <A NAME="tex2html198"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Up:</B> <A NAME="tex2html193" <B> Up:</B> <A NAME="tex2html194"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html187" <B> Previous:</B> <A NAME="tex2html188"
HREF="node1.html">Contents</A> HREF="node1.html">Contents</A>
&nbsp; <B> <A NAME="tex2html195" &nbsp; <B> <A NAME="tex2html196"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -71,7 +71,7 @@ passing.
<P> <P>
The PSBLAS library version 3 is implemented in The PSBLAS library version 3 is implemented in
the Fortran&nbsp;2003&nbsp;[<A the Fortran&nbsp;2003&nbsp;[<A
HREF="node120.html#metcalf">17</A>] programming language, with reuse and/or HREF="node121.html#metcalf">17</A>] programming language, with reuse and/or
adaptation of existing Fortran&nbsp;77 and Fortran&nbsp;95 software, plus a adaptation of existing Fortran&nbsp;77 and Fortran&nbsp;95 software, plus a
handful of C routines. handful of C routines.
@ -81,11 +81,11 @@ mostly in the handling of requirements for evolution and adaptation of
the library to new computing architectures and integration of the library to new computing architectures and integration of
new algorithms. new algorithms.
For a detailed discussion of our design see&nbsp;[<A For a detailed discussion of our design see&nbsp;[<A
HREF="node120.html#Sparse03">11</A>]; other HREF="node121.html#Sparse03">11</A>]; other
works discussing advanced programming in Fortran&nbsp;2003 works discussing advanced programming in Fortran&nbsp;2003
include&nbsp;[<A include&nbsp;[<A
HREF="node120.html#DesPat:11">1</A>,<A HREF="node121.html#DesPat:11">1</A>,<A
HREF="node120.html#RouXiaXu:11">18</A>]; sufficient support for HREF="node121.html#RouXiaXu:11">18</A>]; sufficient support for
Fortran&nbsp;2003 is now available from many compilers, including the GNU Fortran&nbsp;2003 is now available from many compilers, including the GNU
Fortran compiler from the Free Software Foundation (as of version 4.6). Fortran compiler from the Free Software Foundation (as of version 4.6).
@ -94,7 +94,7 @@ Previous approaches have been based on mixing Fortran&nbsp;95, with its
support for object-based design, with other languages; these have support for object-based design, with other languages; these have
been advocated by a number of authors, been advocated by a number of authors,
e.g.&nbsp;[<A e.g.&nbsp;[<A
HREF="node120.html#machiels">16</A>]. Moreover, the Fortran&nbsp;95 facilities for dynamic HREF="node121.html#machiels">16</A>]. Moreover, the Fortran&nbsp;95 facilities for dynamic
memory management and interface overloading greatly enhance the memory management and interface overloading greatly enhance the
usability of the PSBLAS usability of the PSBLAS
subroutines. In this way, the library can take care of runtime memory subroutines. In this way, the library can take care of runtime memory
@ -105,12 +105,12 @@ implementation or compilation time.
The presentation of the The presentation of the
PSBLAS library follows the general structure of the proposal for PSBLAS library follows the general structure of the proposal for
serial Sparse BLAS&nbsp;[<A serial Sparse BLAS&nbsp;[<A
HREF="node120.html#sblas97">8</A>,<A HREF="node121.html#sblas97">8</A>,<A
HREF="node120.html#sblas02">9</A>], which in its turn is based on the HREF="node121.html#sblas02">9</A>], which in its turn is based on the
proposal for BLAS on dense matrices&nbsp;[<A proposal for BLAS on dense matrices&nbsp;[<A
HREF="node120.html#BLAS1">15</A>,<A HREF="node121.html#BLAS1">15</A>,<A
HREF="node120.html#BLAS2">5</A>,<A HREF="node121.html#BLAS2">5</A>,<A
HREF="node120.html#BLAS3">6</A>]. HREF="node121.html#BLAS3">6</A>].
<P> <P>
The applicability of sparse iterative solvers to many different areas The applicability of sparse iterative solvers to many different areas
@ -144,26 +144,26 @@ computational fluid dynamics applications.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html196" <A NAME="tex2html197"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html192" <A NAME="tex2html193"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html186" <A NAME="tex2html187"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html194" <A NAME="tex2html195"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html197" <B> Next:</B> <A NAME="tex2html198"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Up:</B> <A NAME="tex2html193" <B> Up:</B> <A NAME="tex2html194"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html187" <B> Previous:</B> <A NAME="tex2html188"
HREF="node1.html">Contents</A> HREF="node1.html">Contents</A>
&nbsp; <B> <A NAME="tex2html195" &nbsp; <B> <A NAME="tex2html196"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html458" <A NAME="tex2html460"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html454" <A NAME="tex2html456"
HREF="node10.html"> HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html450" <A NAME="tex2html452"
HREF="node19.html"> HREF="node19.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html456" <A NAME="tex2html458"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html459" <B> Next:</B> <A NAME="tex2html461"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Up:</B> <A NAME="tex2html455" <B> Up:</B> <A NAME="tex2html457"
HREF="node10.html">Descriptor data structure</A> HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html451" <B> Previous:</B> <A NAME="tex2html453"
HREF="node19.html">psb_cd_set_large_threshold Set</A> HREF="node19.html">psb_cd_set_large_threshold Set</A>
&nbsp; <B> <A NAME="tex2html457" &nbsp; <B> <A NAME="tex2html459"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node39.html"> <LINK REL="next" HREF="node40.html">
<LINK REL="previous" HREF="node10.html"> <LINK REL="previous" HREF="node10.html">
<LINK REL="up" HREF="node9.html"> <LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node22.html"> <LINK REL="next" HREF="node22.html">
@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html470" <A NAME="tex2html472"
HREF="node22.html"> HREF="node22.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html466" <A NAME="tex2html468"
HREF="node9.html"> HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html460" <A NAME="tex2html462"
HREF="node20.html"> HREF="node20.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html468" <A NAME="tex2html470"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html471" <B> Next:</B> <A NAME="tex2html473"
HREF="node22.html">Sparse Matrix Methods</A> HREF="node22.html">Sparse Matrix Methods</A>
<B> Up:</B> <A NAME="tex2html467" <B> Up:</B> <A NAME="tex2html469"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html461" <B> Previous:</B> <A NAME="tex2html463"
HREF="node20.html">Named Constants</A> HREF="node20.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html469" &nbsp; <B> <A NAME="tex2html471"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -60,9 +60,9 @@ The spdata<TT>psb_Tspmat_type</TT> class
contains all information about the local portion of the sparse matrix and contains all information about the local portion of the sparse matrix and
its storage mode. Its design is its storage mode. Its design is
based on the STATE design pattern&nbsp;[<A based on the STATE design pattern&nbsp;[<A
HREF="node120.html#DesignPatterns">13</A>] as detailed HREF="node121.html#DesignPatterns">13</A>] as detailed
in&nbsp;[<A in&nbsp;[<A
HREF="node120.html#Sparse03">11</A>]; the type declaration is shown in HREF="node121.html#Sparse03">11</A>]; the type declaration is shown in
figure&nbsp;<A HREF="#fig:spmattype">4</A> where <code>T</code> is a placeholder for the figure&nbsp;<A HREF="#fig:spmattype">4</A> where <code>T</code> is a placeholder for the
data type and precision variants data type and precision variants
<DL> <DL>
@ -85,7 +85,7 @@ specific layout can be chosen dynamically among the predefined types,
or an entirely new storage layout can be implemented and passed to the or an entirely new storage layout can be implemented and passed to the
library at runtime via the <code>psb_spasb</code> routine. library at runtime via the <code>psb_spasb</code> routine.
<DIV ALIGN="CENTER"><A NAME="fig:spmattype"></A><A NAME="850"></A> <DIV ALIGN="CENTER"><A NAME="fig:spmattype"></A><A NAME="861"></A>
<TABLE> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
The PSBLAS defined data type that The PSBLAS defined data type that
@ -144,69 +144,71 @@ variants are obtained by conversion to/from it.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL> <UL>
<LI><A NAME="tex2html472" <LI><A NAME="tex2html474"
HREF="node22.html">Sparse Matrix Methods</A> HREF="node22.html">Sparse Matrix Methods</A>
<LI><A NAME="tex2html473" <LI><A NAME="tex2html475"
HREF="node23.html">get_nrows -- Get number of rows in a sparse matrix</A> HREF="node23.html">get_nrows -- Get number of rows in a sparse matrix</A>
<LI><A NAME="tex2html474" <LI><A NAME="tex2html476"
HREF="node24.html">get_ncols -- Get number of columns in a sparse HREF="node24.html">get_ncols -- Get number of columns in a sparse
matrix</A> matrix</A>
<LI><A NAME="tex2html475" <LI><A NAME="tex2html477"
HREF="node25.html">get_nnzeros -- Get number of nonzero elements HREF="node25.html">get_nnzeros -- Get number of nonzero elements
in a sparse matrix</A> in a sparse matrix</A>
<LI><A NAME="tex2html476" <LI><A NAME="tex2html478"
HREF="node26.html">get_size -- Get maximum number of nonzero elements HREF="node26.html">get_size -- Get maximum number of nonzero elements
in a sparse matrix</A> in a sparse matrix</A>
<LI><A NAME="tex2html477" <LI><A NAME="tex2html479"
HREF="node27.html">sizeof -- Get memory occupation in bytes HREF="node27.html">sizeof -- Get memory occupation in bytes
of a sparse matrix</A> of a sparse matrix</A>
<LI><A NAME="tex2html478" <LI><A NAME="tex2html480"
HREF="node28.html">get_fmt -- Short description of the dynamic type</A> HREF="node28.html">get_fmt -- Short description of the dynamic type</A>
<LI><A NAME="tex2html479" <LI><A NAME="tex2html481"
HREF="node29.html">is_bld, is_upd, is_asb -- Status check</A> HREF="node29.html">is_bld, is_upd, is_asb -- Status check</A>
<LI><A NAME="tex2html480" <LI><A NAME="tex2html482"
HREF="node30.html">is_lower, is_upper, is_triangle, is_unit -- HREF="node30.html">is_lower, is_upper, is_triangle, is_unit --
Format check</A> Format check</A>
<LI><A NAME="tex2html481"
HREF="node31.html">cscnv -- Convert to a different storage format</A>
<LI><A NAME="tex2html482"
HREF="node32.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html483" <LI><A NAME="tex2html483"
HREF="node33.html">clip_diag -- Cut out main diagonal</A> HREF="node31.html">cscnv -- Convert to a different storage format</A>
<LI><A NAME="tex2html484" <LI><A NAME="tex2html484"
HREF="node34.html">tril -- Return the lower triangle</A> HREF="node32.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html485" <LI><A NAME="tex2html485"
HREF="node35.html">triu -- Return the upper triangle</A> HREF="node33.html">get_diag -- Get main diagonal</A>
<LI><A NAME="tex2html486" <LI><A NAME="tex2html486"
HREF="node36.html">psb_set_mat_default -- Set default storage format</A> HREF="node34.html">clip_diag -- Cut out main diagonal</A>
<LI><A NAME="tex2html487" <LI><A NAME="tex2html487"
HREF="node37.html">clone -- Clone current object</A> HREF="node35.html">tril -- Return the lower triangle</A>
<LI><A NAME="tex2html488" <LI><A NAME="tex2html488"
HREF="node38.html">Named Constants</A> HREF="node36.html">triu -- Return the upper triangle</A>
<LI><A NAME="tex2html489"
HREF="node37.html">psb_set_mat_default -- Set default storage format</A>
<LI><A NAME="tex2html490"
HREF="node38.html">clone -- Clone current object</A>
<LI><A NAME="tex2html491"
HREF="node39.html">Named Constants</A>
</UL> </UL>
<!--End of Table of Child-Links--> <!--End of Table of Child-Links-->
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html470" <A NAME="tex2html472"
HREF="node22.html"> HREF="node22.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html466" <A NAME="tex2html468"
HREF="node9.html"> HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html460" <A NAME="tex2html462"
HREF="node20.html"> HREF="node20.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html468" <A NAME="tex2html470"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html471" <B> Next:</B> <A NAME="tex2html473"
HREF="node22.html">Sparse Matrix Methods</A> HREF="node22.html">Sparse Matrix Methods</A>
<B> Up:</B> <A NAME="tex2html467" <B> Up:</B> <A NAME="tex2html469"
HREF="node9.html">Data Structures and Classes</A> HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html461" <B> Previous:</B> <A NAME="tex2html463"
HREF="node20.html">Named Constants</A> HREF="node20.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html469" &nbsp; <B> <A NAME="tex2html471"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html499" <A NAME="tex2html502"
HREF="node23.html"> HREF="node23.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html495" <A NAME="tex2html498"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html489" <A NAME="tex2html492"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html497" <A NAME="tex2html500"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html500" <B> Next:</B> <A NAME="tex2html503"
HREF="node23.html">get_nrows Get</A> HREF="node23.html">get_nrows Get</A>
<B> Up:</B> <A NAME="tex2html496" <B> Up:</B> <A NAME="tex2html499"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html490" <B> Previous:</B> <A NAME="tex2html493"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
&nbsp; <B> <A NAME="tex2html498" &nbsp; <B> <A NAME="tex2html501"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html511" <A NAME="tex2html514"
HREF="node24.html"> HREF="node24.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html507" <A NAME="tex2html510"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html501" <A NAME="tex2html504"
HREF="node22.html"> HREF="node22.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html509" <A NAME="tex2html512"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html512" <B> Next:</B> <A NAME="tex2html515"
HREF="node24.html">get_ncols Get</A> HREF="node24.html">get_ncols Get</A>
<B> Up:</B> <A NAME="tex2html508" <B> Up:</B> <A NAME="tex2html511"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html502" <B> Previous:</B> <A NAME="tex2html505"
HREF="node22.html">Sparse Matrix Methods</A> HREF="node22.html">Sparse Matrix Methods</A>
&nbsp; <B> <A NAME="tex2html510" &nbsp; <B> <A NAME="tex2html513"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html523" <A NAME="tex2html526"
HREF="node25.html"> HREF="node25.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html519" <A NAME="tex2html522"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html513" <A NAME="tex2html516"
HREF="node23.html"> HREF="node23.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html521" <A NAME="tex2html524"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html524" <B> Next:</B> <A NAME="tex2html527"
HREF="node25.html">get_nnzeros Get</A> HREF="node25.html">get_nnzeros Get</A>
<B> Up:</B> <A NAME="tex2html520" <B> Up:</B> <A NAME="tex2html523"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html514" <B> Previous:</B> <A NAME="tex2html517"
HREF="node23.html">get_nrows Get</A> HREF="node23.html">get_nrows Get</A>
&nbsp; <B> <A NAME="tex2html522" &nbsp; <B> <A NAME="tex2html525"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html535" <A NAME="tex2html538"
HREF="node26.html"> HREF="node26.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html531" <A NAME="tex2html534"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html525" <A NAME="tex2html528"
HREF="node24.html"> HREF="node24.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html533" <A NAME="tex2html536"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html536" <B> Next:</B> <A NAME="tex2html539"
HREF="node26.html">get_size Get</A> HREF="node26.html">get_size Get</A>
<B> Up:</B> <A NAME="tex2html532" <B> Up:</B> <A NAME="tex2html535"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html526" <B> Previous:</B> <A NAME="tex2html529"
HREF="node24.html">get_ncols Get</A> HREF="node24.html">get_ncols Get</A>
&nbsp; <B> <A NAME="tex2html534" &nbsp; <B> <A NAME="tex2html537"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html547" <A NAME="tex2html550"
HREF="node27.html"> HREF="node27.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html543" <A NAME="tex2html546"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html537" <A NAME="tex2html540"
HREF="node25.html"> HREF="node25.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html545" <A NAME="tex2html548"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html548" <B> Next:</B> <A NAME="tex2html551"
HREF="node27.html">sizeof Get</A> HREF="node27.html">sizeof Get</A>
<B> Up:</B> <A NAME="tex2html544" <B> Up:</B> <A NAME="tex2html547"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html538" <B> Previous:</B> <A NAME="tex2html541"
HREF="node25.html">get_nnzeros Get</A> HREF="node25.html">get_nnzeros Get</A>
&nbsp; <B> <A NAME="tex2html546" &nbsp; <B> <A NAME="tex2html549"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -28,26 +28,26 @@ of a sparse matrix">
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html559" <A NAME="tex2html562"
HREF="node28.html"> HREF="node28.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html555" <A NAME="tex2html558"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html549" <A NAME="tex2html552"
HREF="node26.html"> HREF="node26.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html557" <A NAME="tex2html560"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html560" <B> Next:</B> <A NAME="tex2html563"
HREF="node28.html">get_fmt Short</A> HREF="node28.html">get_fmt Short</A>
<B> Up:</B> <A NAME="tex2html556" <B> Up:</B> <A NAME="tex2html559"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html550" <B> Previous:</B> <A NAME="tex2html553"
HREF="node26.html">get_size Get</A> HREF="node26.html">get_size Get</A>
&nbsp; <B> <A NAME="tex2html558" &nbsp; <B> <A NAME="tex2html561"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html571" <A NAME="tex2html574"
HREF="node29.html"> HREF="node29.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html567" <A NAME="tex2html570"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html561" <A NAME="tex2html564"
HREF="node27.html"> HREF="node27.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html569" <A NAME="tex2html572"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html572" <B> Next:</B> <A NAME="tex2html575"
HREF="node29.html">is_bld, is_upd, is_asb </A> HREF="node29.html">is_bld, is_upd, is_asb </A>
<B> Up:</B> <A NAME="tex2html568" <B> Up:</B> <A NAME="tex2html571"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html562" <B> Previous:</B> <A NAME="tex2html565"
HREF="node27.html">sizeof Get</A> HREF="node27.html">sizeof Get</A>
&nbsp; <B> <A NAME="tex2html570" &nbsp; <B> <A NAME="tex2html573"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html583" <A NAME="tex2html586"
HREF="node30.html"> HREF="node30.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html579" <A NAME="tex2html582"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html573" <A NAME="tex2html576"
HREF="node28.html"> HREF="node28.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html581" <A NAME="tex2html584"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html584" <B> Next:</B> <A NAME="tex2html587"
HREF="node30.html">is_lower, is_upper, is_triangle, is_unit</A> HREF="node30.html">is_lower, is_upper, is_triangle, is_unit</A>
<B> Up:</B> <A NAME="tex2html580" <B> Up:</B> <A NAME="tex2html583"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html574" <B> Previous:</B> <A NAME="tex2html577"
HREF="node28.html">get_fmt Short</A> HREF="node28.html">get_fmt Short</A>
&nbsp; <B> <A NAME="tex2html582" &nbsp; <B> <A NAME="tex2html585"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html208" <A NAME="tex2html209"
HREF="node4.html"> HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html204" <A NAME="tex2html205"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html198" <A NAME="tex2html199"
HREF="node2.html"> HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html206" <A NAME="tex2html207"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html209" <B> Next:</B> <A NAME="tex2html210"
HREF="node4.html">Basic Nomenclature</A> HREF="node4.html">Basic Nomenclature</A>
<B> Up:</B> <A NAME="tex2html205" <B> Up:</B> <A NAME="tex2html206"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html199" <B> Previous:</B> <A NAME="tex2html200"
HREF="node2.html">Introduction</A> HREF="node2.html">Introduction</A>
&nbsp; <B> <A NAME="tex2html207" &nbsp; <B> <A NAME="tex2html208"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -78,10 +78,10 @@ calls to the serial sparse BLAS subroutines.
In a similar way, the inter-process message exchanges are encapsulated In a similar way, the inter-process message exchanges are encapsulated
in an applicaiton layer that has been strongly inspired by the Basic in an applicaiton layer that has been strongly inspired by the Basic
Linear Algebra Communication Subroutines (BLACS) library&nbsp;[<A Linear Algebra Communication Subroutines (BLACS) library&nbsp;[<A
HREF="node120.html#BLACS">7</A>]. HREF="node121.html#BLACS">7</A>].
Usually there is no need to deal directly with MPI; however, in some Usually there is no need to deal directly with MPI; however, in some
cases, MPI routines are used directly to improve efficiency. For cases, MPI routines are used directly to improve efficiency. For
further details on our communication layer see Sec.&nbsp;<A HREF="node93.html#sec:parenv">7</A>. further details on our communication layer see Sec.&nbsp;<A HREF="node94.html#sec:parenv">7</A>.
<P> <P>
@ -134,7 +134,7 @@ equation indices to processes.
In particular it is consistent with the In particular it is consistent with the
usage of graph partitioning tools commonly available in the usage of graph partitioning tools commonly available in the
literature, e.g. METIS&nbsp;[<A literature, e.g. METIS&nbsp;[<A
HREF="node120.html#METIS">14</A>]. HREF="node121.html#METIS">14</A>].
Dense vectors conform to sparse Dense vectors conform to sparse
matrices, that is, the entries of a vector follow the same distribution matrices, that is, the entries of a vector follow the same distribution
of the matrix rows. of the matrix rows.
@ -154,43 +154,43 @@ bottleneck would make this option unattractive in most cases.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL> <UL>
<LI><A NAME="tex2html210"
HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html211" <LI><A NAME="tex2html211"
HREF="node5.html">Library contents</A> HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html212" <LI><A NAME="tex2html212"
HREF="node5.html">Library contents</A>
<LI><A NAME="tex2html213"
HREF="node6.html">Application structure</A> HREF="node6.html">Application structure</A>
<UL> <UL>
<LI><A NAME="tex2html213" <LI><A NAME="tex2html214"
HREF="node7.html">User-defined index mappings</A> HREF="node7.html">User-defined index mappings</A>
</UL> </UL>
<BR> <BR>
<LI><A NAME="tex2html214" <LI><A NAME="tex2html215"
HREF="node8.html">Programming model</A> HREF="node8.html">Programming model</A>
</UL> </UL>
<!--End of Table of Child-Links--> <!--End of Table of Child-Links-->
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html208" <A NAME="tex2html209"
HREF="node4.html"> HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html204" <A NAME="tex2html205"
HREF="userhtml.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html198" <A NAME="tex2html199"
HREF="node2.html"> HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html206" <A NAME="tex2html207"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html209" <B> Next:</B> <A NAME="tex2html210"
HREF="node4.html">Basic Nomenclature</A> HREF="node4.html">Basic Nomenclature</A>
<B> Up:</B> <A NAME="tex2html205" <B> Up:</B> <A NAME="tex2html206"
HREF="userhtml.html">userhtml</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html199" <B> Previous:</B> <A NAME="tex2html200"
HREF="node2.html">Introduction</A> HREF="node2.html">Introduction</A>
&nbsp; <B> <A NAME="tex2html207" &nbsp; <B> <A NAME="tex2html208"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html595" <A NAME="tex2html598"
HREF="node31.html"> HREF="node31.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html591" <A NAME="tex2html594"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html585" <A NAME="tex2html588"
HREF="node29.html"> HREF="node29.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html593" <A NAME="tex2html596"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html596" <B> Next:</B> <A NAME="tex2html599"
HREF="node31.html">cscnv Convert</A> HREF="node31.html">cscnv Convert</A>
<B> Up:</B> <A NAME="tex2html592" <B> Up:</B> <A NAME="tex2html595"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html586" <B> Previous:</B> <A NAME="tex2html589"
HREF="node29.html">is_bld, is_upd, is_asb </A> HREF="node29.html">is_bld, is_upd, is_asb </A>
&nbsp; <B> <A NAME="tex2html594" &nbsp; <B> <A NAME="tex2html597"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html607" <A NAME="tex2html610"
HREF="node32.html"> HREF="node32.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html603" <A NAME="tex2html606"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html597" <A NAME="tex2html600"
HREF="node30.html"> HREF="node30.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html605" <A NAME="tex2html608"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html608" <B> Next:</B> <A NAME="tex2html611"
HREF="node32.html">csclip Reduce</A> HREF="node32.html">csclip Reduce</A>
<B> Up:</B> <A NAME="tex2html604" <B> Up:</B> <A NAME="tex2html607"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html598" <B> Previous:</B> <A NAME="tex2html601"
HREF="node30.html">is_lower, is_upper, is_triangle, is_unit</A> HREF="node30.html">is_lower, is_upper, is_triangle, is_unit</A>
&nbsp; <B> <A NAME="tex2html606" &nbsp; <B> <A NAME="tex2html609"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html619" <A NAME="tex2html622"
HREF="node33.html"> HREF="node33.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html615" <A NAME="tex2html618"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html609" <A NAME="tex2html612"
HREF="node31.html"> HREF="node31.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html617" <A NAME="tex2html620"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html620" <B> Next:</B> <A NAME="tex2html623"
HREF="node33.html">clip_diag Cut</A> HREF="node33.html">get_diag Get</A>
<B> Up:</B> <A NAME="tex2html616" <B> Up:</B> <A NAME="tex2html619"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html610" <B> Previous:</B> <A NAME="tex2html613"
HREF="node31.html">cscnv Convert</A> HREF="node31.html">cscnv Convert</A>
&nbsp; <B> <A NAME="tex2html618" &nbsp; <B> <A NAME="tex2html621"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>clip_diag -- Cut out main diagonal</TITLE> <TITLE>get_diag -- Get main diagonal</TITLE>
<META NAME="description" CONTENT="clip_diag -- Cut out main diagonal"> <META NAME="description" CONTENT="get_diag -- Get main diagonal">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -26,41 +26,41 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html631" <A NAME="tex2html634"
HREF="node34.html"> HREF="node34.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html627" <A NAME="tex2html630"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html621" <A NAME="tex2html624"
HREF="node32.html"> HREF="node32.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html629" <A NAME="tex2html632"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html632" <B> Next:</B> <A NAME="tex2html635"
HREF="node34.html">tril Return</A> HREF="node34.html">clip_diag Cut</A>
<B> Up:</B> <A NAME="tex2html628" <B> Up:</B> <A NAME="tex2html631"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html622" <B> Previous:</B> <A NAME="tex2html625"
HREF="node32.html">csclip Reduce</A> HREF="node32.html">csclip Reduce</A>
&nbsp; <B> <A NAME="tex2html630" &nbsp; <B> <A NAME="tex2html633"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION000421200000000000000"> <H3><A NAME="SECTION000421200000000000000">
clip_diag -- Cut out main diagonal</A> get_diag -- Get main diagonal</A>
</H3> </H3>
<PRE> <PRE>
call a%clip_diag(b,info) call a%get_diag(d,info)
</PRE> </PRE>
<P> <P>
Returns a copy of <code>a</code> without the main diagonal. Returns a copy of the main diagonal.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
@ -80,10 +80,10 @@ Scope: <B>local</B>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>b</STRONG></DT> <DT><STRONG>d</STRONG></DT>
<DD>A copy of <code>a</code> without the main diagonal. <DD>A copy of the main diagonal.
<BR> <BR>
A variable of type <code>psb_Tspmat_type</code>. A one-dimensional array of the appropriate type.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Return code. <DD>Return code.

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>tril -- Return the lower triangle</TITLE> <TITLE>clip_diag -- Cut out main diagonal</TITLE>
<META NAME="description" CONTENT="tril -- Return the lower triangle"> <META NAME="description" CONTENT="clip_diag -- Cut out main diagonal">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -26,44 +26,41 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html643" <A NAME="tex2html646"
HREF="node35.html"> HREF="node35.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html639" <A NAME="tex2html642"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html633" <A NAME="tex2html636"
HREF="node33.html"> HREF="node33.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html641" <A NAME="tex2html644"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html644" <B> Next:</B> <A NAME="tex2html647"
HREF="node35.html">triu Return</A> HREF="node35.html">tril Return</A>
<B> Up:</B> <A NAME="tex2html640" <B> Up:</B> <A NAME="tex2html643"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html634" <B> Previous:</B> <A NAME="tex2html637"
HREF="node33.html">clip_diag Cut</A> HREF="node33.html">get_diag Get</A>
&nbsp; <B> <A NAME="tex2html642" &nbsp; <B> <A NAME="tex2html645"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION000421300000000000000"> <H3><A NAME="SECTION000421300000000000000">
tril -- Return the lower triangle</A> clip_diag -- Cut out main diagonal</A>
</H3> </H3>
<PRE> <PRE>
call a%tril(b,info[,&amp; call a%clip_diag(b,info)
&amp; diag,imin,imax,jmin,jmax,rscale,cscale])
</PRE> </PRE>
<P> <P>
Returns the lower triangular part of submatrix Returns a copy of <code>a</code> without the main diagonal.
<code>A(imin:imax,jmin:jmax)</code>, optionally rescaling row/col indices to
the range <code>1:imax-imin+1,1:jmax-jmin+1</code>.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
@ -78,25 +75,13 @@ A variable of type <code>psb_Tspmat_type</code>.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>.
<BR></DD> <BR></DD>
<DT><STRONG>diag</STRONG></DT>
<DD>How many additional diagonals above the main one, default 0.
</DD>
<DT><STRONG>imin,imax,jmin,jmax</STRONG></DT>
<DD>Minimum and maximum row and column indices.
<BR>
Type: optional.
</DD>
<DT><STRONG>rscale,cscale</STRONG></DT>
<DD>Whether to rescale row/column indices.
Type: optional.
</DD>
</DL> </DL>
<DL> <DL>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>b</STRONG></DT> <DT><STRONG>b</STRONG></DT>
<DD>A copy of a subtriangle of <code>a</code>. <DD>A copy of <code>a</code> without the main diagonal.
<BR> <BR>
A variable of type <code>psb_Tspmat_type</code>. A variable of type <code>psb_Tspmat_type</code>.
</DD> </DD>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>triu -- Return the upper triangle</TITLE> <TITLE>tril -- Return the lower triangle</TITLE>
<META NAME="description" CONTENT="triu -- Return the upper triangle"> <META NAME="description" CONTENT="tril -- Return the lower triangle">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -26,42 +26,42 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html655" <A NAME="tex2html658"
HREF="node36.html"> HREF="node36.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html651" <A NAME="tex2html654"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html645" <A NAME="tex2html648"
HREF="node34.html"> HREF="node34.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html653" <A NAME="tex2html656"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html656" <B> Next:</B> <A NAME="tex2html659"
HREF="node36.html">psb_set_mat_default Set</A> HREF="node36.html">triu Return</A>
<B> Up:</B> <A NAME="tex2html652" <B> Up:</B> <A NAME="tex2html655"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html646" <B> Previous:</B> <A NAME="tex2html649"
HREF="node34.html">tril Return</A> HREF="node34.html">clip_diag Cut</A>
&nbsp; <B> <A NAME="tex2html654" &nbsp; <B> <A NAME="tex2html657"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION000421400000000000000"> <H3><A NAME="SECTION000421400000000000000">
triu -- Return the upper triangle</A> tril -- Return the lower triangle</A>
</H3> </H3>
<PRE> <PRE>
call a%triu(b,info[,&amp; call a%tril(b,info[,&amp;
&amp; diag,imin,imax,jmin,jmax,rscale,cscale]) &amp; diag,imin,imax,jmin,jmax,rscale,cscale])
</PRE> </PRE>
<P> <P>
Returns the upper triangular part of submatrix Returns the lower triangular part of submatrix
<code>A(imin:imax,jmin:jmax)</code>, optionally rescaling row/col indices to <code>A(imin:imax,jmin:jmax)</code>, optionally rescaling row/col indices to
the range <code>1:imax-imin+1,1:jmax-jmin+1</code>. the range <code>1:imax-imin+1,1:jmax-jmin+1</code>.
<DL> <DL>
@ -79,7 +79,7 @@ A variable of type <code>psb_Tspmat_type</code>.
Scope: <B>local</B>. Scope: <B>local</B>.
<BR></DD> <BR></DD>
<DT><STRONG>diag</STRONG></DT> <DT><STRONG>diag</STRONG></DT>
<DD>How many additional diagonals below the main one, default 0. <DD>How many additional diagonals above the main one, default 0.
</DD> </DD>
<DT><STRONG>imin,imax,jmin,jmax</STRONG></DT> <DT><STRONG>imin,imax,jmin,jmax</STRONG></DT>
<DD>Minimum and maximum row and column indices. <DD>Minimum and maximum row and column indices.

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_set_mat_default -- Set default storage format</TITLE> <TITLE>triu -- Return the upper triangle</TITLE>
<META NAME="description" CONTENT="psb_set_mat_default -- Set default storage format"> <META NAME="description" CONTENT="triu -- Return the upper triangle">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -26,41 +26,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html667" <A NAME="tex2html670"
HREF="node37.html"> HREF="node37.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html663" <A NAME="tex2html666"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html657" <A NAME="tex2html660"
HREF="node35.html"> HREF="node35.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html665" <A NAME="tex2html668"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html668" <B> Next:</B> <A NAME="tex2html671"
HREF="node37.html">clone Clone</A> HREF="node37.html">psb_set_mat_default Set</A>
<B> Up:</B> <A NAME="tex2html664" <B> Up:</B> <A NAME="tex2html667"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html658" <B> Previous:</B> <A NAME="tex2html661"
HREF="node35.html">triu Return</A> HREF="node35.html">tril Return</A>
&nbsp; <B> <A NAME="tex2html666" &nbsp; <B> <A NAME="tex2html669"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION000421500000000000000"> <H3><A NAME="SECTION000421500000000000000">
psb_set_mat_default -- Set default storage format</A> triu -- Return the upper triangle</A>
</H3> </H3>
<P>
<PRE> <PRE>
call psb_set_mat_default(a) call a%triu(b,info[,&amp;
&amp; diag,imin,imax,jmin,jmax,rscale,cscale])
</PRE> </PRE>
<P> <P>
Returns the upper triangular part of submatrix
<code>A(imin:imax,jmin:jmax)</code>, optionally rescaling row/col indices to
the range <code>1:imax-imin+1,1:jmax-jmin+1</code>.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Asynchronous.
@ -69,10 +72,36 @@ call psb_set_mat_default(a)
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>a variable of <code>class(psb_T_base_sparse_mat)</code> requesting <DD>the sparse matrix.
a new default storage format. <BR>
A variable of type <code>psb_Tspmat_type</code>.
<BR>
Scope: <B>local</B>.
<BR></DD>
<DT><STRONG>diag</STRONG></DT>
<DD>How many additional diagonals below the main one, default 0.
</DD>
<DT><STRONG>imin,imax,jmin,jmax</STRONG></DT>
<DD>Minimum and maximum row and column indices.
<BR>
Type: optional.
</DD>
<DT><STRONG>rscale,cscale</STRONG></DT>
<DD>Whether to rescale row/column indices.
Type: optional.
</DD>
</DL>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>A copy of a subtriangle of <code>a</code>.
<BR> <BR>
Type: required. A variable of type <code>psb_Tspmat_type</code>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Return code.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>clone -- Clone current object</TITLE> <TITLE>psb_set_mat_default -- Set default storage format</TITLE>
<META NAME="description" CONTENT="clone -- Clone current object"> <META NAME="description" CONTENT="psb_set_mat_default -- Set default storage format">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html679" <A NAME="tex2html682"
HREF="node38.html"> HREF="node38.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html675" <A NAME="tex2html678"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html669" <A NAME="tex2html672"
HREF="node36.html"> HREF="node36.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html677" <A NAME="tex2html680"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html680" <B> Next:</B> <A NAME="tex2html683"
HREF="node38.html">Named Constants</A> HREF="node38.html">clone Clone</A>
<B> Up:</B> <A NAME="tex2html676" <B> Up:</B> <A NAME="tex2html679"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html670" <B> Previous:</B> <A NAME="tex2html673"
HREF="node36.html">psb_set_mat_default Set</A> HREF="node36.html">triu Return</A>
&nbsp; <B> <A NAME="tex2html678" &nbsp; <B> <A NAME="tex2html681"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION000421600000000000000"> <H3><A NAME="SECTION000421600000000000000">
clone -- Clone current object</A> psb_set_mat_default -- Set default storage format</A>
</H3> </H3>
<P> <P>
<PRE> <PRE>
call a%clone(b,info) call psb_set_mat_default(a)
</PRE> </PRE>
<P> <P>
@ -69,22 +69,10 @@ call a%clone(b,info)
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix. <DD>a variable of <code>class(psb_T_base_sparse_mat)</code> requesting
a new default storage format.
<BR> <BR>
Scope: <B>local</B>. Type: required.
<BR></DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>A copy of the input object.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Return code.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Named Constants</TITLE> <TITLE>clone -- Clone current object</TITLE>
<META NAME="description" CONTENT="Named Constants"> <META NAME="description" CONTENT="clone -- Clone current object">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,6 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node39.html">
<LINK REL="previous" HREF="node37.html"> <LINK REL="previous" HREF="node37.html">
<LINK REL="up" HREF="node21.html"> <LINK REL="up" HREF="node21.html">
<LINK REL="next" HREF="node39.html"> <LINK REL="next" HREF="node39.html">
@ -25,56 +26,65 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html689" <A NAME="tex2html694"
HREF="node39.html"> HREF="node39.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html685" <A NAME="tex2html690"
HREF="node21.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html681" <A NAME="tex2html684"
HREF="node37.html"> HREF="node37.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html687" <A NAME="tex2html692"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html690" <B> Next:</B> <A NAME="tex2html695"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node39.html">Named Constants</A>
<B> Up:</B> <A NAME="tex2html686" <B> Up:</B> <A NAME="tex2html691"
HREF="node21.html">Sparse Matrix class</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html682" <B> Previous:</B> <A NAME="tex2html685"
HREF="node37.html">clone Clone</A> HREF="node37.html">psb_set_mat_default Set</A>
&nbsp; <B> <A NAME="tex2html688" &nbsp; <B> <A NAME="tex2html693"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION000421700000000000000"></A> <H3><A NAME="SECTION000421700000000000000">
<A NAME="sec:sp_constants"></A> clone -- Clone current object</A>
<BR>
Named Constants
</H3> </H3>
<P>
<PRE>
call a%clone(b,info)
</PRE>
<P>
<DL> <DL>
<DT><STRONG>psb_dupl_ovwrt_</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Duplicate coefficients should be overwritten <DD>Asynchronous.
(i.e. ignore duplications)
</DD> </DD>
<DT><STRONG>psb_dupl_add_</STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>Duplicate coefficients should be added; <DD>
</DD> </DD>
<DT><STRONG>psb_dupl_err_</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>Duplicate coefficients should trigger an error conditino <DD>the sparse matrix.
</DD> <BR>
<DT><STRONG>psb_upd_dflt_</STRONG></DT> Scope: <B>local</B>.
<DD>Default update strategy for matrix coefficients; <BR></DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD> </DD>
<DT><STRONG>psb_upd_srch_</STRONG></DT> <DT><STRONG>b</STRONG></DT>
<DD>Update strategy based on search into the data structure; <DD>A copy of the input object.
</DD> </DD>
<DT><STRONG>psb_upd_perm_</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Update strategy based on additional <DD>Return code.
permutation data (see tools routine description).
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Dense Vector Data Structure</TITLE> <TITLE>Named Constants</TITLE>
<META NAME="description" CONTENT="Dense Vector Data Structure"> <META NAME="description" CONTENT="Named Constants">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,147 +18,68 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node45.html"> <LINK REL="previous" HREF="node38.html">
<LINK REL="previous" HREF="node21.html"> <LINK REL="up" HREF="node21.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node40.html"> <LINK REL="next" HREF="node40.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html701" <A NAME="tex2html704"
HREF="node40.html"> HREF="node40.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html697" <A NAME="tex2html700"
HREF="node9.html"> HREF="node21.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html691" <A NAME="tex2html696"
HREF="node38.html"> HREF="node38.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html699" <A NAME="tex2html702"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html702" <B> Next:</B> <A NAME="tex2html705"
HREF="node40.html">Vector Methods</A> HREF="node40.html">Dense Vector Data Structure</A>
<B> Up:</B> <A NAME="tex2html698" <B> Up:</B> <A NAME="tex2html701"
HREF="node9.html">Data Structures and Classes</A> HREF="node21.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html692" <B> Previous:</B> <A NAME="tex2html697"
HREF="node38.html">Named Constants</A> HREF="node38.html">clone Clone</A>
&nbsp; <B> <A NAME="tex2html700" &nbsp; <B> <A NAME="tex2html703"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00043000000000000000"></A> <H3><A NAME="SECTION000421800000000000000"></A>
<A NAME="sec:vecttype"></A> <A NAME="sec:sp_constants"></A>
<BR> <BR>
Dense Vector Data Structure Named Constants
</H2> </H3>
The vdata<TT>psb_T_vect_type</TT> data structure
encapsulates the dense vectors in a way similar to sparse matrices,
i.e. including a base type vbasedata<TT> psb_T_base_vect_type</TT>.
The user will not, in general, access the vector components directly,
but rather via the routines of sec.&nbsp;<A HREF="node65.html#sec:toolsrout">6</A>. Among other
simple things, we define here an extraction method that can be used to
get a full copy of the part of the vector stored on the local
process.
<P>
The type declaration is shown in
figure&nbsp;<A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
data type and precision variants
<DL> <DL>
<DT><STRONG>I</STRONG></DT> <DT><STRONG>psb_dupl_ovwrt_</STRONG></DT>
<DD>Integer; <DD>Duplicate coefficients should be overwritten
(i.e. ignore duplications)
</DD>
<DT><STRONG>psb_dupl_add_</STRONG></DT>
<DD>Duplicate coefficients should be added;
</DD> </DD>
<DT><STRONG>S</STRONG></DT> <DT><STRONG>psb_dupl_err_</STRONG></DT>
<DD>Single precision real; <DD>Duplicate coefficients should trigger an error conditino
</DD> </DD>
<DT><STRONG>D</STRONG></DT> <DT><STRONG>psb_upd_dflt_</STRONG></DT>
<DD>Double precision real; <DD>Default update strategy for matrix coefficients;
</DD> </DD>
<DT><STRONG>C</STRONG></DT> <DT><STRONG>psb_upd_srch_</STRONG></DT>
<DD>Single precision complex; <DD>Update strategy based on search into the data structure;
</DD> </DD>
<DT><STRONG>Z</STRONG></DT> <DT><STRONG>psb_upd_perm_</STRONG></DT>
<DD>Double precision complex. <DD>Update strategy based on additional
permutation data (see tools routine description).
</DD> </DD>
</DL> </DL>
The actual data is contained in the polymorphic component <code>v%v</code>;
the separation between the application and the actual data is
essential for cases where it is necessary to link to data storage made
available elsewhere outside the direct control of the
compiler/application, e.g. data stored in a graphics accelerator's
private memory.
<DIV ALIGN="CENTER"><A NAME="fig:vectype"></A><A NAME="853"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
The PSBLAS defined data type that
contains a dense vector.</CAPTION>
<TR><TD><DIV ALIGN="CENTER">
</DIV><TABLE WIDTH="85%">
<TR><TD>
<PRE>
type psb_T_base_vect_type
TYPE(KIND_), allocatable :: v(:)
end type psb_T_base_vect_type
type psb_T_vect_type
class(psb_T_base_vect_type), allocatable :: v
end type psb_T_vect_type
</PRE></TD></TR>
</TABLE>
<DIV ALIGN="CENTER">
</DIV></TD></TR>
</TABLE>
</DIV>
<P> <P>
<BR><HR> <BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html703"
HREF="node40.html">Vector Methods</A>
<LI><A NAME="tex2html704"
HREF="node41.html">get_nrows -- Get number of rows in a dense vector</A>
<LI><A NAME="tex2html705"
HREF="node42.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
<LI><A NAME="tex2html706"
HREF="node43.html">get_vect -- Get a copy of the vector contents</A>
<LI><A NAME="tex2html707"
HREF="node44.html">clone -- Clone current object</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html701"
HREF="node40.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html697"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html691"
HREF="node38.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html699"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html702"
HREF="node40.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html698"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html692"
HREF="node38.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html700"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html225" <A NAME="tex2html226"
HREF="node5.html"> HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html221" <A NAME="tex2html222"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html215" <A NAME="tex2html216"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html223" <A NAME="tex2html224"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html226" <B> Next:</B> <A NAME="tex2html227"
HREF="node5.html">Library contents</A> HREF="node5.html">Library contents</A>
<B> Up:</B> <A NAME="tex2html222" <B> Up:</B> <A NAME="tex2html223"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html216" <B> Previous:</B> <A NAME="tex2html217"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
&nbsp; <B> <A NAME="tex2html224" &nbsp; <B> <A NAME="tex2html225"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -126,8 +126,8 @@ Overlap points do not usually exist in the basic data
distributions; however they are a feature of Domain Decomposition distributions; however they are a feature of Domain Decomposition
Schwarz preconditioners which are the subject of related research Schwarz preconditioners which are the subject of related research
work&nbsp;[<A work&nbsp;[<A
HREF="node120.html#2007c">4</A>,<A HREF="node121.html#2007c">4</A>,<A
HREF="node120.html#2007d">3</A>]. HREF="node121.html#2007d">3</A>].
<P> <P>
We denote the sets of internal, boundary and halo points for a given We denote the sets of internal, boundary and halo points for a given
@ -197,26 +197,26 @@ points in the literature.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html225" <A NAME="tex2html226"
HREF="node5.html"> HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html221" <A NAME="tex2html222"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html215" <A NAME="tex2html216"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html223" <A NAME="tex2html224"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html226" <B> Next:</B> <A NAME="tex2html227"
HREF="node5.html">Library contents</A> HREF="node5.html">Library contents</A>
<B> Up:</B> <A NAME="tex2html222" <B> Up:</B> <A NAME="tex2html223"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html216" <B> Previous:</B> <A NAME="tex2html217"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
&nbsp; <B> <A NAME="tex2html224" &nbsp; <B> <A NAME="tex2html225"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Vector Methods</TITLE> <TITLE>Dense Vector Data Structure</TITLE>
<META NAME="description" CONTENT="Vector Methods"> <META NAME="description" CONTENT="Dense Vector Data Structure">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,43 +18,147 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node41.html"> <LINK REL="next" HREF="node46.html">
<LINK REL="previous" HREF="node39.html"> <LINK REL="previous" HREF="node21.html">
<LINK REL="up" HREF="node39.html"> <LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node41.html"> <LINK REL="next" HREF="node41.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html718" <A NAME="tex2html716"
HREF="node41.html"> HREF="node41.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html714" <A NAME="tex2html712"
HREF="node39.html"> HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html708" <A NAME="tex2html706"
HREF="node39.html"> HREF="node39.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html716" <A NAME="tex2html714"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html719" <B> Next:</B> <A NAME="tex2html717"
HREF="node41.html">get_nrows Get</A> HREF="node41.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html715" <B> Up:</B> <A NAME="tex2html713"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html709" <B> Previous:</B> <A NAME="tex2html707"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node39.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html717" &nbsp; <B> <A NAME="tex2html715"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION00043100000000000000"> <H2><A NAME="SECTION00043000000000000000"></A>
Vector Methods</A> <A NAME="sec:vecttype"></A>
</H3> <BR>
Dense Vector Data Structure
</H2>
The vdata<TT>psb_T_vect_type</TT> data structure
encapsulates the dense vectors in a way similar to sparse matrices,
i.e. including a base type vbasedata<TT> psb_T_base_vect_type</TT>.
The user will not, in general, access the vector components directly,
but rather via the routines of sec.&nbsp;<A HREF="node66.html#sec:toolsrout">6</A>. Among other
simple things, we define here an extraction method that can be used to
get a full copy of the part of the vector stored on the local
process.
<P>
The type declaration is shown in
figure&nbsp;<A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
data type and precision variants
<DL>
<DT><STRONG>I</STRONG></DT>
<DD>Integer;
</DD>
<DT><STRONG>S</STRONG></DT>
<DD>Single precision real;
</DD>
<DT><STRONG>D</STRONG></DT>
<DD>Double precision real;
</DD>
<DT><STRONG>C</STRONG></DT>
<DD>Single precision complex;
</DD>
<DT><STRONG>Z</STRONG></DT>
<DD>Double precision complex.
</DD>
</DL>
The actual data is contained in the polymorphic component <code>v%v</code>;
the separation between the application and the actual data is
essential for cases where it is necessary to link to data storage made
available elsewhere outside the direct control of the
compiler/application, e.g. data stored in a graphics accelerator's
private memory.
<DIV ALIGN="CENTER"><A NAME="fig:vectype"></A><A NAME="864"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
The PSBLAS defined data type that
contains a dense vector.</CAPTION>
<TR><TD><DIV ALIGN="CENTER">
</DIV><TABLE WIDTH="85%">
<TR><TD>
<PRE>
type psb_T_base_vect_type
TYPE(KIND_), allocatable :: v(:)
end type psb_T_base_vect_type
type psb_T_vect_type
class(psb_T_base_vect_type), allocatable :: v
end type psb_T_vect_type
</PRE></TD></TR>
</TABLE>
<DIV ALIGN="CENTER">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
<BR><HR> <BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html718"
HREF="node41.html">Vector Methods</A>
<LI><A NAME="tex2html719"
HREF="node42.html">get_nrows -- Get number of rows in a dense vector</A>
<LI><A NAME="tex2html720"
HREF="node43.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
<LI><A NAME="tex2html721"
HREF="node44.html">get_vect -- Get a copy of the vector contents</A>
<LI><A NAME="tex2html722"
HREF="node45.html">clone -- Clone current object</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html716"
HREF="node41.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html712"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html706"
HREF="node39.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html714"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html717"
HREF="node41.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html713"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html707"
HREF="node39.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html715"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>get_nrows -- Get number of rows in a dense vector</TITLE> <TITLE>Vector Methods</TITLE>
<META NAME="description" CONTENT="get_nrows -- Get number of rows in a dense vector"> <META NAME="description" CONTENT="Vector Methods">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,72 +20,40 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node42.html"> <LINK REL="next" HREF="node42.html">
<LINK REL="previous" HREF="node40.html"> <LINK REL="previous" HREF="node40.html">
<LINK REL="up" HREF="node39.html"> <LINK REL="up" HREF="node40.html">
<LINK REL="next" HREF="node42.html"> <LINK REL="next" HREF="node42.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html730" <A NAME="tex2html733"
HREF="node42.html"> HREF="node42.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html726" <A NAME="tex2html729"
HREF="node39.html"> HREF="node40.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html720" <A NAME="tex2html723"
HREF="node40.html"> HREF="node40.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html728" <A NAME="tex2html731"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html731" <B> Next:</B> <A NAME="tex2html734"
HREF="node42.html">sizeof Get</A> HREF="node42.html">get_nrows Get</A>
<B> Up:</B> <A NAME="tex2html727" <B> Up:</B> <A NAME="tex2html730"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node40.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html721" <B> Previous:</B> <A NAME="tex2html724"
HREF="node40.html">Vector Methods</A> HREF="node40.html">Dense Vector Data Structure</A>
&nbsp; <B> <A NAME="tex2html729" &nbsp; <B> <A NAME="tex2html732"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION00043200000000000000"> <H3><A NAME="SECTION00043100000000000000">
get_nrows -- Get number of rows in a dense vector</A> Vector Methods</A>
</H3> </H3>
<P>
<PRE>
nr = v%get_nrows()
</PRE>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>v</STRONG></DT>
<DD>the dense vector
<BR>
Scope: <B>local</B>
<BR></DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>Function value</STRONG></DT>
<DD>The number of rows of dense vector <code>v</code>.
</DD>
</DL>
<P>
<BR><HR> <BR><HR>
</BODY> </BODY>

@ -7,10 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>sizeof -- Get memory occupation in bytes <TITLE>get_nrows -- Get number of rows in a dense vector</TITLE>
of a dense vector</TITLE> <META NAME="description" CONTENT="get_nrows -- Get number of rows in a dense vector">
<META NAME="description" CONTENT="sizeof -- Get memory occupation in bytes
of a dense vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -22,45 +20,44 @@ of a dense vector">
<LINK REL="next" HREF="node43.html"> <LINK REL="next" HREF="node43.html">
<LINK REL="previous" HREF="node41.html"> <LINK REL="previous" HREF="node41.html">
<LINK REL="up" HREF="node39.html"> <LINK REL="up" HREF="node40.html">
<LINK REL="next" HREF="node43.html"> <LINK REL="next" HREF="node43.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html742" <A NAME="tex2html745"
HREF="node43.html"> HREF="node43.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html738" <A NAME="tex2html741"
HREF="node39.html"> HREF="node40.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html732" <A NAME="tex2html735"
HREF="node41.html"> HREF="node41.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html740" <A NAME="tex2html743"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html743" <B> Next:</B> <A NAME="tex2html746"
HREF="node43.html">get_vect Get</A> HREF="node43.html">sizeof Get</A>
<B> Up:</B> <A NAME="tex2html739" <B> Up:</B> <A NAME="tex2html742"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node40.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html733" <B> Previous:</B> <A NAME="tex2html736"
HREF="node41.html">get_nrows Get</A> HREF="node41.html">Vector Methods</A>
&nbsp; <B> <A NAME="tex2html741" &nbsp; <B> <A NAME="tex2html744"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION00043300000000000000"> <H3><A NAME="SECTION00043200000000000000">
sizeof -- Get memory occupation in bytes get_nrows -- Get number of rows in a dense vector</A>
of a dense vector</A>
</H3> </H3>
<P> <P>
<PRE> <PRE>
memory_size = v%sizeof() nr = v%get_nrows()
</PRE> </PRE>
<P> <P>
@ -84,7 +81,7 @@ Scope: <B>local</B>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>The memory occupation in bytes. <DD>The number of rows of dense vector <code>v</code>.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>get_vect -- Get a copy of the vector contents</TITLE> <TITLE>sizeof -- Get memory occupation in bytes
<META NAME="description" CONTENT="get_vect -- Get a copy of the vector contents"> of a dense vector</TITLE>
<META NAME="description" CONTENT="sizeof -- Get memory occupation in bytes
of a dense vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,44 +22,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node44.html"> <LINK REL="next" HREF="node44.html">
<LINK REL="previous" HREF="node42.html"> <LINK REL="previous" HREF="node42.html">
<LINK REL="up" HREF="node39.html"> <LINK REL="up" HREF="node40.html">
<LINK REL="next" HREF="node44.html"> <LINK REL="next" HREF="node44.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html754" <A NAME="tex2html757"
HREF="node44.html"> HREF="node44.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html750" <A NAME="tex2html753"
HREF="node39.html"> HREF="node40.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html744" <A NAME="tex2html747"
HREF="node42.html"> HREF="node42.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html752" <A NAME="tex2html755"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html755" <B> Next:</B> <A NAME="tex2html758"
HREF="node44.html">clone Clone</A> HREF="node44.html">get_vect Get</A>
<B> Up:</B> <A NAME="tex2html751" <B> Up:</B> <A NAME="tex2html754"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node40.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html745" <B> Previous:</B> <A NAME="tex2html748"
HREF="node42.html">sizeof Get</A> HREF="node42.html">get_nrows Get</A>
&nbsp; <B> <A NAME="tex2html753" &nbsp; <B> <A NAME="tex2html756"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION00043400000000000000"> <H3><A NAME="SECTION00043300000000000000">
get_vect -- Get a copy of the vector contents</A> sizeof -- Get memory occupation in bytes
of a dense vector</A>
</H3> </H3>
<P> <P>
<PRE> <PRE>
extv = v%get_vect() memory_size = v%sizeof()
</PRE> </PRE>
<P> <P>
@ -81,8 +84,7 @@ Scope: <B>local</B>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>An allocatable array holding a copy of the dense <DD>The memory occupation in bytes.
vector contents.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>clone -- Clone current object</TITLE> <TITLE>get_vect -- Get a copy of the vector contents</TITLE>
<META NAME="description" CONTENT="clone -- Clone current object"> <META NAME="description" CONTENT="get_vect -- Get a copy of the vector contents">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,44 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node45.html">
<LINK REL="previous" HREF="node43.html"> <LINK REL="previous" HREF="node43.html">
<LINK REL="up" HREF="node39.html"> <LINK REL="up" HREF="node40.html">
<LINK REL="next" HREF="node45.html"> <LINK REL="next" HREF="node45.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html764" <A NAME="tex2html769"
HREF="node45.html"> HREF="node45.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html760" <A NAME="tex2html765"
HREF="node39.html"> HREF="node40.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html756" <A NAME="tex2html759"
HREF="node43.html"> HREF="node43.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html762" <A NAME="tex2html767"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html765" <B> Next:</B> <A NAME="tex2html770"
HREF="node45.html">Preconditioner data structure</A> HREF="node45.html">clone Clone</A>
<B> Up:</B> <A NAME="tex2html761" <B> Up:</B> <A NAME="tex2html766"
HREF="node39.html">Dense Vector Data Structure</A> HREF="node40.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html757" <B> Previous:</B> <A NAME="tex2html760"
HREF="node43.html">get_vect Get</A> HREF="node43.html">sizeof Get</A>
&nbsp; <B> <A NAME="tex2html763" &nbsp; <B> <A NAME="tex2html768"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H3><A NAME="SECTION00043500000000000000"> <H3><A NAME="SECTION00043400000000000000">
clone -- Clone current object</A> get_vect -- Get a copy of the vector contents</A>
</H3> </H3>
<P>
<PRE> <PRE>
call x%clone(y,info) extv = v%get_vect()
</PRE> </PRE>
<P> <P>
@ -66,10 +68,10 @@ call x%clone(y,info)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>x</STRONG></DT> <DT><STRONG>v</STRONG></DT>
<DD>the dense vector. <DD>the dense vector
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>
<BR></DD> <BR></DD>
</DL> </DL>
@ -78,11 +80,9 @@ Scope: <B>local</B>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>y</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>A copy of the input object. <DD>An allocatable array holding a copy of the dense
</DD> vector contents.
<DT><STRONG>info</STRONG></DT>
<DD>Return code.
</DD> </DD>
</DL> </DL>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Preconditioner data structure</TITLE> <TITLE>clone -- Clone current object</TITLE>
<META NAME="description" CONTENT="Preconditioner data structure"> <META NAME="description" CONTENT="clone -- Clone current object">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,70 +18,73 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node39.html"> <LINK REL="previous" HREF="node44.html">
<LINK REL="up" HREF="node9.html"> <LINK REL="up" HREF="node40.html">
<LINK REL="next" HREF="node46.html"> <LINK REL="next" HREF="node46.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html774" <A NAME="tex2html779"
HREF="node46.html"> HREF="node46.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html770" <A NAME="tex2html775"
HREF="node9.html"> HREF="node40.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html766" <A NAME="tex2html771"
HREF="node44.html"> HREF="node44.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html772" <A NAME="tex2html777"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html775" <B> Next:</B> <A NAME="tex2html780"
HREF="node46.html">Computational routines</A> HREF="node46.html">Preconditioner data structure</A>
<B> Up:</B> <A NAME="tex2html771" <B> Up:</B> <A NAME="tex2html776"
HREF="node9.html">Data Structures and Classes</A> HREF="node40.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html767" <B> Previous:</B> <A NAME="tex2html772"
HREF="node44.html">clone Clone</A> HREF="node44.html">get_vect Get</A>
&nbsp; <B> <A NAME="tex2html773" &nbsp; <B> <A NAME="tex2html778"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00044000000000000000"></A> <H3><A NAME="SECTION00043500000000000000">
<A NAME="sec:prec"></A> clone -- Clone current object</A>
<BR> </H3>
Preconditioner data structure
</H2> <PRE>
Our base library offers support for simple well known preconditioners call x%clone(y,info)
like Diagonal Scaling or Block Jacobi with incomplete </PRE>
factorization ILU(0).
<P> <P>
A preconditioner is held in the precdata<TT> psb_prec_type</TT> data structure reported in <DL>
figure&nbsp;<A HREF="#fig:prectype">6</A>. The <code>psb_prec_type</code> <DT><STRONG>Type:</STRONG></DT>
data type may contain a simple preconditioning matrix with the <DD>Asynchronous.
associated communication descriptor.The internal preconditioner is allocated appropriately with the </DD>
dynamic type corresponding to the desired preconditioner. <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>the dense vector.
<BR>
Scope: <B>local</B>.
<BR></DD>
</DL>
<DIV ALIGN="CENTER"><A NAME="fig:prectype"></A><A NAME="855"></A> <P>
<TABLE> <DL>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 6:</STRONG> <DT><STRONG><B>On Return</B></STRONG></DT>
The PSBLAS defined data type that contains a preconditioner.</CAPTION> <DD>
<TR><TD><FONT SIZE="-1"> </FONT> </DD>
<DIV ALIGN="CENTER"></DIV><TABLE WIDTH="90%"> <DT><STRONG>y</STRONG></DT>
<TR><TD> <DD>A copy of the input object.
<PRE> </DD>
type psb_Tprec_type <DT><STRONG>info</STRONG></DT>
class(psb_T_base_prec_type), allocatable :: prec <DD>Return code.
end type psb_Tprec_type </DD>
</PRE></TD></TR> </DL>
</TABLE>
<DIV ALIGN="CENTER"></DIV></TD></TR>
</TABLE>
</DIV>
<P> <P>
<BR><HR> <BR><HR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Computational routines</TITLE> <TITLE>Preconditioner data structure</TITLE>
<META NAME="description" CONTENT="Computational routines"> <META NAME="description" CONTENT="Preconditioner data structure">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,78 +18,72 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node60.html"> <LINK REL="previous" HREF="node40.html">
<LINK REL="previous" HREF="node9.html"> <LINK REL="up" HREF="node9.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node47.html"> <LINK REL="next" HREF="node47.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html786" <A NAME="tex2html789"
HREF="node47.html"> HREF="node47.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html782" <A NAME="tex2html785"
HREF="userhtml.html"> HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html776" <A NAME="tex2html781"
HREF="node45.html"> HREF="node45.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html784" <A NAME="tex2html787"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html787" <B> Next:</B> <A NAME="tex2html790"
HREF="node47.html">psb_geaxpby General</A> HREF="node47.html">Computational routines</A>
<B> Up:</B> <A NAME="tex2html783" <B> Up:</B> <A NAME="tex2html786"
HREF="userhtml.html">userhtml</A> HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html777" <B> Previous:</B> <A NAME="tex2html782"
HREF="node45.html">Preconditioner data structure</A> HREF="node45.html">clone Clone</A>
&nbsp; <B> <A NAME="tex2html785" &nbsp; <B> <A NAME="tex2html788"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION00050000000000000000"> <H2><A NAME="SECTION00044000000000000000"></A>
Computational routines</A> <A NAME="sec:prec"></A>
</H1> <BR>
Preconditioner data structure
</H2>
Our base library offers support for simple well known preconditioners
like Diagonal Scaling or Block Jacobi with incomplete
factorization ILU(0).
<P> <P>
<BR><HR> A preconditioner is held in the precdata<TT> psb_prec_type</TT> data structure reported in
<!--Table of Child-Links--> figure&nbsp;<A HREF="#fig:prectype">6</A>. The <code>psb_prec_type</code>
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> data type may contain a simple preconditioning matrix with the
associated communication descriptor.The internal preconditioner is allocated appropriately with the
dynamic type corresponding to the desired preconditioner.
<UL> <DIV ALIGN="CENTER"><A NAME="fig:prectype"></A><A NAME="866"></A>
<LI><A NAME="tex2html788" <TABLE>
HREF="node47.html">psb_geaxpby -- General Dense Matrix Sum</A> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 6:</STRONG>
<LI><A NAME="tex2html789" The PSBLAS defined data type that contains a preconditioner.</CAPTION>
HREF="node48.html">psb_gedot -- Dot Product</A> <TR><TD><FONT SIZE="-1"> </FONT>
<LI><A NAME="tex2html790" <DIV ALIGN="CENTER"></DIV><TABLE WIDTH="90%">
HREF="node49.html">psb_gedots -- Generalized Dot Product</A> <TR><TD>
<LI><A NAME="tex2html791" <PRE>
HREF="node50.html">psb_geamax -- Infinity-Norm of Vector</A> type psb_Tprec_type
<LI><A NAME="tex2html792" class(psb_T_base_prec_type), allocatable :: prec
HREF="node51.html">psb_geamaxs -- Generalized Infinity Norm</A> end type psb_Tprec_type
<LI><A NAME="tex2html793" </PRE></TD></TR>
HREF="node52.html">psb_geasum -- 1-Norm of Vector</A> </TABLE>
<LI><A NAME="tex2html794" <DIV ALIGN="CENTER"></DIV></TD></TR>
HREF="node53.html">psb_geasums -- Generalized 1-Norm of Vector</A> </TABLE>
<LI><A NAME="tex2html795" </DIV>
HREF="node54.html">psb_genrm2 -- 2-Norm of Vector</A>
<LI><A NAME="tex2html796" <P>
HREF="node55.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
<LI><A NAME="tex2html797"
HREF="node56.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
<LI><A NAME="tex2html798"
HREF="node57.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
<LI><A NAME="tex2html799"
HREF="node58.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
<LI><A NAME="tex2html800"
HREF="node59.html">psb_spsm -- Triangular System Solve</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR> <BR><HR>
</BODY> </BODY>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_geaxpby -- General Dense Matrix Sum</TITLE> <TITLE>Computational routines</TITLE>
<META NAME="description" CONTENT="psb_geaxpby -- General Dense Matrix Sum"> <META NAME="description" CONTENT="Computational routines">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,264 +18,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node48.html"> <LINK REL="next" HREF="node61.html">
<LINK REL="previous" HREF="node46.html"> <LINK REL="previous" HREF="node9.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node48.html"> <LINK REL="next" HREF="node48.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html811" <A NAME="tex2html801"
HREF="node48.html"> HREF="node48.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html807" <A NAME="tex2html797"
HREF="node46.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html801" <A NAME="tex2html791"
HREF="node46.html"> HREF="node46.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html809" <A NAME="tex2html799"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html812" <B> Next:</B> <A NAME="tex2html802"
HREF="node48.html">psb_gedot Dot</A> HREF="node48.html">psb_geaxpby General</A>
<B> Up:</B> <A NAME="tex2html808" <B> Up:</B> <A NAME="tex2html798"
HREF="node46.html">Computational routines</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html802" <B> Previous:</B> <A NAME="tex2html792"
HREF="node46.html">Computational routines</A> HREF="node46.html">Preconditioner data structure</A>
&nbsp; <B> <A NAME="tex2html810" &nbsp; <B> <A NAME="tex2html800"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00051000000000000000"> <H1><A NAME="SECTION00050000000000000000">
psb_geaxpby -- General Dense Matrix Sum</A> Computational routines</A>
</H2> </H1>
<P>
This subroutine is an interface to the computational kernel for
dense matrix sum:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
y \leftarrow \alpha\> x+ \beta y
\end{displaymath}
-->
<IMG
WIDTH="93" HEIGHT="27" BORDER="0"
SRC="img19.png"
ALT="\begin{displaymath}y \leftarrow \alpha\&gt; x+ \beta y \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P>
<PRE>
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1792"></A>
<TABLE>
<CAPTION><STRONG>Table 1:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">, <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type
specified in Table&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>beta</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of the global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P>
</DD>
</DL>
<P> <P>
<DL> <BR><HR>
<DT><STRONG><B>On Return</B></STRONG></DT> <!--Table of Child-Links-->
<DD> <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of result submatrix <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P> <UL>
<HR> <LI><A NAME="tex2html803"
<!--Navigation Panel--> HREF="node48.html">psb_geaxpby -- General Dense Matrix Sum</A>
<A NAME="tex2html811" <LI><A NAME="tex2html804"
HREF="node48.html"> HREF="node49.html">psb_gedot -- Dot Product</A>
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <LI><A NAME="tex2html805"
<A NAME="tex2html807" HREF="node50.html">psb_gedots -- Generalized Dot Product</A>
HREF="node46.html"> <LI><A NAME="tex2html806"
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> HREF="node51.html">psb_geamax -- Infinity-Norm of Vector</A>
<A NAME="tex2html801" <LI><A NAME="tex2html807"
HREF="node46.html"> HREF="node52.html">psb_geamaxs -- Generalized Infinity Norm</A>
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <LI><A NAME="tex2html808"
<A NAME="tex2html809" HREF="node53.html">psb_geasum -- 1-Norm of Vector</A>
HREF="node1.html"> <LI><A NAME="tex2html809"
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> HREF="node54.html">psb_geasums -- Generalized 1-Norm of Vector</A>
<BR> <LI><A NAME="tex2html810"
<B> Next:</B> <A NAME="tex2html812" HREF="node55.html">psb_genrm2 -- 2-Norm of Vector</A>
HREF="node48.html">psb_gedot Dot</A> <LI><A NAME="tex2html811"
<B> Up:</B> <A NAME="tex2html808" HREF="node56.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
HREF="node46.html">Computational routines</A> <LI><A NAME="tex2html812"
<B> Previous:</B> <A NAME="tex2html802" HREF="node57.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
HREF="node46.html">Computational routines</A> <LI><A NAME="tex2html813"
&nbsp; <B> <A NAME="tex2html810" HREF="node58.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
HREF="node1.html">Contents</A></B> <LI><A NAME="tex2html814"
<!--End of Navigation Panel--> HREF="node59.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
<LI><A NAME="tex2html815"
HREF="node60.html">psb_spsm -- Triangular System Solve</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_gedot -- Dot Product</TITLE> <TITLE>psb_geaxpby -- General Dense Matrix Sum</TITLE>
<META NAME="description" CONTENT="psb_gedot -- Dot Product"> <META NAME="description" CONTENT="psb_geaxpby -- General Dense Matrix Sum">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,132 +20,100 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node49.html"> <LINK REL="next" HREF="node49.html">
<LINK REL="previous" HREF="node47.html"> <LINK REL="previous" HREF="node47.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node49.html"> <LINK REL="next" HREF="node49.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html823" <A NAME="tex2html826"
HREF="node49.html"> HREF="node49.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html819" <A NAME="tex2html822"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html813" <A NAME="tex2html816"
HREF="node47.html"> HREF="node47.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html821" <A NAME="tex2html824"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html824" <B> Next:</B> <A NAME="tex2html827"
HREF="node49.html">psb_gedots Generalized</A> HREF="node49.html">psb_gedot Dot</A>
<B> Up:</B> <A NAME="tex2html820" <B> Up:</B> <A NAME="tex2html823"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html814" <B> Previous:</B> <A NAME="tex2html817"
HREF="node47.html">psb_geaxpby General</A> HREF="node47.html">Computational routines</A>
&nbsp; <B> <A NAME="tex2html822" &nbsp; <B> <A NAME="tex2html825"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00052000000000000000"> <H2><A NAME="SECTION00051000000000000000">
psb_gedot -- Dot Product</A> psb_geaxpby -- General Dense Matrix Sum</A>
</H2> </H2>
<P> <P>
This function computes dot product between two vectors <IMG This subroutine is an interface to the computational kernel for
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" dense matrix sum:
SRC="img20.png"
ALT="$x$"> and
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> are real vectors
it computes dot-product as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
dot \leftarrow x^T y y \leftarrow \alpha\> x+ \beta y
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="74" HEIGHT="27" BORDER="0" WIDTH="93" HEIGHT="27" BORDER="0"
SRC="img24.png" SRC="img19.png"
ALT="\begin{displaymath}dot \leftarrow x^T y\end{displaymath}"> ALT="\begin{displaymath}y \leftarrow \alpha\&gt; x+ \beta y \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
Else if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> are complex vectors then it computes dot-product as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
dot \leftarrow x^H y
\end{displaymath}
-->
<IMG
WIDTH="76" HEIGHT="27" BORDER="0"
SRC="img25.png"
ALT="\begin{displaymath}dot \leftarrow x^H y\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P> <P>
<PRE> <PRE>
psb_gedot(x, y, desc_a, info) call psb_geaxpby(alpha, x, beta, y, desc_a, info)
</PRE> </PRE>
<P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1793"></A> <DIV ALIGN="CENTER"><A NAME="1813"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 2:</STRONG> <CAPTION><STRONG>Table 1:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"
ALT="$dot$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">, <IMG ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$"></TD> ALT="$y$">, <IMG
<TD ALIGN="LEFT"><B>Function</B></TD> WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">, <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_gedot</TD> <TD ALIGN="LEFT">psb_geaxpby</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_gedot</TD> <TD ALIGN="LEFT">psb_geaxpby</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedot</TD> <TD ALIGN="LEFT">psb_geaxpby</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedot</TD> <TD ALIGN="LEFT">psb_geaxpby</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -162,6 +130,20 @@ Data types</CAPTION>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>x</STRONG></DT> <DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix <DD>the local portion of global dense matrix
<IMG <IMG
@ -175,9 +157,9 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type
Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG specified in Table&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> must be the same of <IMG ALT="$x$"> must be the same of <IMG
@ -185,8 +167,22 @@ Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG
SRC="img21.png" SRC="img21.png"
ALT="$y$">. ALT="$y$">.
</DD> </DD>
<DT><STRONG>beta</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>y</STRONG></DT> <DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix <DD>the local portion of the global dense matrix
<IMG <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
@ -196,11 +192,10 @@ Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
containing numbers of type specified in indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$"> must be the same of <IMG ALT="$y$"> must be the same of <IMG
@ -221,21 +216,27 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P> <P>
</DD> </DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>y</STRONG></DT>
<DD>is the dot product of subvectors <IMG <DD>the local portion of result submatrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$">. ALT="$y$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>local</B>
<BR> <BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90dot">2</A>. Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -253,26 +254,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html823" <A NAME="tex2html826"
HREF="node49.html"> HREF="node49.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html819" <A NAME="tex2html822"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html813" <A NAME="tex2html816"
HREF="node47.html"> HREF="node47.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html821" <A NAME="tex2html824"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html824" <B> Next:</B> <A NAME="tex2html827"
HREF="node49.html">psb_gedots Generalized</A> HREF="node49.html">psb_gedot Dot</A>
<B> Up:</B> <A NAME="tex2html820" <B> Up:</B> <A NAME="tex2html823"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html814" <B> Previous:</B> <A NAME="tex2html817"
HREF="node47.html">psb_geaxpby General</A> HREF="node47.html">Computational routines</A>
&nbsp; <B> <A NAME="tex2html822" &nbsp; <B> <A NAME="tex2html825"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_gedots -- Generalized Dot Product</TITLE> <TITLE>psb_gedot -- Dot Product</TITLE>
<META NAME="description" CONTENT="psb_gedots -- Generalized Dot Product"> <META NAME="description" CONTENT="psb_gedot -- Dot Product">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,117 +20,132 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node50.html"> <LINK REL="next" HREF="node50.html">
<LINK REL="previous" HREF="node48.html"> <LINK REL="previous" HREF="node48.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node50.html"> <LINK REL="next" HREF="node50.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html835" <A NAME="tex2html838"
HREF="node50.html"> HREF="node50.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html831" <A NAME="tex2html834"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html825" <A NAME="tex2html828"
HREF="node48.html"> HREF="node48.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html833" <A NAME="tex2html836"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html836" <B> Next:</B> <A NAME="tex2html839"
HREF="node50.html">psb_geamax Infinity-Norm</A> HREF="node50.html">psb_gedots Generalized</A>
<B> Up:</B> <A NAME="tex2html832" <B> Up:</B> <A NAME="tex2html835"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html826" <B> Previous:</B> <A NAME="tex2html829"
HREF="node48.html">psb_gedot Dot</A> HREF="node48.html">psb_geaxpby General</A>
&nbsp; <B> <A NAME="tex2html834" &nbsp; <B> <A NAME="tex2html837"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00053000000000000000"> <H2><A NAME="SECTION00052000000000000000">
psb_gedots -- Generalized Dot Product</A> psb_gedot -- Dot Product</A>
</H2> </H2>
<P> <P>
This subroutine computes a series of dot products among the columns of This function computes dot product between two vectors <IMG
two dense matrices <IMG WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> and <IMG ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$">: ALT="$y$"> are real vectors
it computes dot-product as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
res(i) \leftarrow x(:,i)^T y(:,i) dot \leftarrow x^T y
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="150" HEIGHT="28" BORDER="0" WIDTH="74" HEIGHT="27" BORDER="0"
SRC="img27.png" SRC="img24.png"
ALT="\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\end{displaymath}"> ALT="\begin{displaymath}dot \leftarrow x^T y\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
If the matrices are complex, then the Else if <IMG
usual convention applies, i.e. the conjugate transpose of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is
used. If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> and <IMG ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$"> are of rank one, then <IMG ALT="$y$"> are complex vectors then it computes dot-product as:
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" <BR><P></P>
SRC="img28.png" <DIV ALIGN="CENTER">
ALT="$res$"> is a scalar, else it <!-- MATH
is a rank one array. \begin{displaymath}
dot \leftarrow x^H y
\end{displaymath}
-->
<IMG
WIDTH="76" HEIGHT="27" BORDER="0"
SRC="img25.png"
ALT="\begin{displaymath}dot \leftarrow x^H y\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P> <P>
<PRE> <PRE>
call psb_gedots(res, x, y, desc_a, info) psb_gedot(x, y, desc_a, info)
</PRE> </PRE>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1794"></A> <DIV ALIGN="CENTER"><A NAME="1814"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 3:</STRONG> <CAPTION><STRONG>Table 2:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png" SRC="img26.png"
ALT="$res$">, <IMG ALT="$dot$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">, <IMG ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$"></TD> ALT="$y$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Function</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_gedots</TD> <TD ALIGN="LEFT">psb_gedot</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_gedots</TD> <TD ALIGN="LEFT">psb_gedot</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedots</TD> <TD ALIGN="LEFT">psb_gedot</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedots</TD> <TD ALIGN="LEFT">psb_gedot</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -152,7 +167,7 @@ Data types</CAPTION>
<IMG <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -162,7 +177,7 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90mdot">3</A>. The rank of <IMG Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> must be the same of <IMG ALT="$x$"> must be the same of <IMG
@ -185,7 +200,7 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90mdot">3</A>. The rank of <IMG Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$"> must be the same of <IMG ALT="$y$"> must be the same of <IMG
@ -203,11 +218,13 @@ Type: <B>required</B>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>res</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>is the dot product of subvectors <IMG <DD>is the dot product of subvectors <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
@ -218,10 +235,7 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Intent: <B>out</B>. Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90dot">2</A>.
<BR>
Specified as: a number or a rank-one array of the data type indicated
in Table&nbsp;<A HREF="#tab:f90dot">2</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -239,26 +253,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html835" <A NAME="tex2html838"
HREF="node50.html"> HREF="node50.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html831" <A NAME="tex2html834"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html825" <A NAME="tex2html828"
HREF="node48.html"> HREF="node48.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html833" <A NAME="tex2html836"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html836" <B> Next:</B> <A NAME="tex2html839"
HREF="node50.html">psb_geamax Infinity-Norm</A> HREF="node50.html">psb_gedots Generalized</A>
<B> Up:</B> <A NAME="tex2html832" <B> Up:</B> <A NAME="tex2html835"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html826" <B> Previous:</B> <A NAME="tex2html829"
HREF="node48.html">psb_gedot Dot</A> HREF="node48.html">psb_geaxpby General</A>
&nbsp; <B> <A NAME="tex2html834" &nbsp; <B> <A NAME="tex2html837"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html237" <A NAME="tex2html238"
HREF="node6.html"> HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html233" <A NAME="tex2html234"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html227" <A NAME="tex2html228"
HREF="node4.html"> HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html235" <A NAME="tex2html236"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html238" <B> Next:</B> <A NAME="tex2html239"
HREF="node6.html">Application structure</A> HREF="node6.html">Application structure</A>
<B> Up:</B> <A NAME="tex2html234" <B> Up:</B> <A NAME="tex2html235"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html228" <B> Previous:</B> <A NAME="tex2html229"
HREF="node4.html">Basic Nomenclature</A> HREF="node4.html">Basic Nomenclature</A>
&nbsp; <B> <A NAME="tex2html236" &nbsp; <B> <A NAME="tex2html237"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -128,7 +128,7 @@ internally defined in the PSBLAS software package:
</LI> </LI>
</UL> </UL>
For example the <code>psb_geins</code>, <code>psb_spins</code> and For example the <code>psb_geins</code>, <code>psb_spins</code> and
<code>psb_cdins</code> perform the same action (see&nbsp;<A HREF="node65.html#sec:toolsrout">6</A>) on <code>psb_cdins</code> perform the same action (see&nbsp;<A HREF="node66.html#sec:toolsrout">6</A>) on
dense matrices, sparse matrices and communication descriptors dense matrices, sparse matrices and communication descriptors
respectively. respectively.
Interface overloading allows the usage of the same subroutine Interface overloading allows the usage of the same subroutine
@ -169,26 +169,26 @@ whose current value is <code>3.0.0</code>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html237" <A NAME="tex2html238"
HREF="node6.html"> HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html233" <A NAME="tex2html234"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html227" <A NAME="tex2html228"
HREF="node4.html"> HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html235" <A NAME="tex2html236"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html238" <B> Next:</B> <A NAME="tex2html239"
HREF="node6.html">Application structure</A> HREF="node6.html">Application structure</A>
<B> Up:</B> <A NAME="tex2html234" <B> Up:</B> <A NAME="tex2html235"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html228" <B> Previous:</B> <A NAME="tex2html229"
HREF="node4.html">Basic Nomenclature</A> HREF="node4.html">Basic Nomenclature</A>
&nbsp; <B> <A NAME="tex2html236" &nbsp; <B> <A NAME="tex2html237"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_geamax -- Infinity-Norm of Vector</TITLE> <TITLE>psb_gedots -- Generalized Dot Product</TITLE>
<META NAME="description" CONTENT="psb_geamax -- Infinity-Norm of Vector"> <META NAME="description" CONTENT="psb_gedots -- Generalized Dot Product">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,127 +20,117 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node51.html"> <LINK REL="next" HREF="node51.html">
<LINK REL="previous" HREF="node49.html"> <LINK REL="previous" HREF="node49.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node51.html"> <LINK REL="next" HREF="node51.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html847" <A NAME="tex2html850"
HREF="node51.html"> HREF="node51.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html843" <A NAME="tex2html846"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html837" <A NAME="tex2html840"
HREF="node49.html"> HREF="node49.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html845" <A NAME="tex2html848"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html848" <B> Next:</B> <A NAME="tex2html851"
HREF="node51.html">psb_geamaxs Generalized</A> HREF="node51.html">psb_geamax Infinity-Norm</A>
<B> Up:</B> <A NAME="tex2html844" <B> Up:</B> <A NAME="tex2html847"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html838" <B> Previous:</B> <A NAME="tex2html841"
HREF="node49.html">psb_gedots Generalized</A> HREF="node49.html">psb_gedot Dot</A>
&nbsp; <B> <A NAME="tex2html846" &nbsp; <B> <A NAME="tex2html849"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00054000000000000000"> <H2><A NAME="SECTION00053000000000000000">
psb_geamax -- Infinity-Norm of Vector</A> psb_gedots -- Generalized Dot Product</A>
</H2> </H2>
<P> <P>
This function computes This subroutine computes a series of dot products among the columns of
the infinity-norm of a vector <IMG two dense matrices <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$"> and <IMG
<BR> WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
If <IMG SRC="img21.png"
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" ALT="$y$">:
SRC="img20.png"
ALT="$x$"> is a real vector
it computes infinity norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
amax \leftarrow \max_i |x_i| res(i) \leftarrow x(:,i)^T y(:,i)
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="118" HEIGHT="36" BORDER="0" WIDTH="150" HEIGHT="28" BORDER="0"
SRC="img29.png" SRC="img27.png"
ALT="\begin{displaymath}amax \leftarrow \max_i \vert x_i\vert\end{displaymath}"> ALT="\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
else if <IMG If the matrices are complex, then the
usual convention applies, i.e. the conjugate transpose of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> is a complex vector then it computes the infinity-norm as: ALT="$x$"> is
<BR><P></P> used. If <IMG
<DIV ALIGN="CENTER"> WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
<!-- MATH SRC="img20.png"
\begin{displaymath} ALT="$x$"> and <IMG
amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)} WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
\end{displaymath} SRC="img21.png"
--> ALT="$y$"> are of rank one, then <IMG
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
<IMG SRC="img28.png"
WIDTH="233" HEIGHT="36" BORDER="0" ALT="$res$"> is a scalar, else it
SRC="img30.png" is a rank one array.
ALT="\begin{displaymath}amax \leftarrow \max_i {(\vert re(x_i)\vert + \vert im(x_i)\vert)}\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P> <P>
<PRE> <PRE>
psb_geamax(x, desc_a, info) call psb_gedots(res, x, y, desc_a, info)
</PRE> </PRE>
<P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1795"></A> <DIV ALIGN="CENTER"><A NAME="1815"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 4:</STRONG> <CAPTION><STRONG>Table 3:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="44" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img31.png" SRC="img28.png"
ALT="$amax$"></TD> ALT="$res$">, <IMG
<TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$">, <IMG
<TD ALIGN="LEFT"><B>Function</B></TD> WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Real</TD> <TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Real</TD> <TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">Short Precision Complex</TD> <TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">Long Precision Complex</TD> <TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -163,7 +153,6 @@ Data types</CAPTION>
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -171,9 +160,38 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90amax">4</A>. Table&nbsp;<A HREF="#tab:f90mdot">3</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90mdot">3</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -185,21 +203,25 @@ Type: <B>required</B>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>res</STRONG></DT>
<DD>is the infinity norm of subvector <IMG <DD>is the dot product of subvectors <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Specified as: a long precision real number. Intent: <B>out</B>.
<BR>
Specified as: a number or a rank-one array of the data type indicated
in Table&nbsp;<A HREF="#tab:f90dot">2</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -217,26 +239,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html847" <A NAME="tex2html850"
HREF="node51.html"> HREF="node51.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html843" <A NAME="tex2html846"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html837" <A NAME="tex2html840"
HREF="node49.html"> HREF="node49.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html845" <A NAME="tex2html848"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html848" <B> Next:</B> <A NAME="tex2html851"
HREF="node51.html">psb_geamaxs Generalized</A> HREF="node51.html">psb_geamax Infinity-Norm</A>
<B> Up:</B> <A NAME="tex2html844" <B> Up:</B> <A NAME="tex2html847"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html838" <B> Previous:</B> <A NAME="tex2html841"
HREF="node49.html">psb_gedots Generalized</A> HREF="node49.html">psb_gedot Dot</A>
&nbsp; <B> <A NAME="tex2html846" &nbsp; <B> <A NAME="tex2html849"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_geamaxs -- Generalized Infinity Norm</TITLE> <TITLE>psb_geamax -- Infinity-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_geamaxs -- Generalized Infinity Norm"> <META NAME="description" CONTENT="psb_geamax -- Infinity-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,102 +20,127 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node52.html"> <LINK REL="next" HREF="node52.html">
<LINK REL="previous" HREF="node50.html"> <LINK REL="previous" HREF="node50.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node52.html"> <LINK REL="next" HREF="node52.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html859" <A NAME="tex2html862"
HREF="node52.html"> HREF="node52.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html855" <A NAME="tex2html858"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html849" <A NAME="tex2html852"
HREF="node50.html"> HREF="node50.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html857" <A NAME="tex2html860"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html860" <B> Next:</B> <A NAME="tex2html863"
HREF="node52.html">psb_geasum 1-Norm</A> HREF="node52.html">psb_geamaxs Generalized</A>
<B> Up:</B> <A NAME="tex2html856" <B> Up:</B> <A NAME="tex2html859"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html850" <B> Previous:</B> <A NAME="tex2html853"
HREF="node50.html">psb_geamax Infinity-Norm</A> HREF="node50.html">psb_gedots Generalized</A>
&nbsp; <B> <A NAME="tex2html858" &nbsp; <B> <A NAME="tex2html861"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00055000000000000000"> <H2><A NAME="SECTION00054000000000000000">
psb_geamaxs -- Generalized Infinity Norm</A> psb_geamax -- Infinity-Norm of Vector</A>
</H2> </H2>
<P> <P>
This subroutine computes a series of infinity norms on the columns of This function computes
a dense matrix <IMG the infinity-norm of a vector <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">: ALT="$x$">.
<BR>
If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a real vector
it computes infinity norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
amax \leftarrow \max_i |x_i|
\end{displaymath}
-->
<IMG
WIDTH="118" HEIGHT="36" BORDER="0"
SRC="img29.png"
ALT="\begin{displaymath}amax \leftarrow \max_i \vert x_i\vert\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
else if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a complex vector then it computes the infinity-norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
res(i) \leftarrow \max_k |x(k,i)| amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="147" HEIGHT="36" BORDER="0" WIDTH="233" HEIGHT="36" BORDER="0"
SRC="img32.png" SRC="img30.png"
ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath}"> ALT="\begin{displaymath}amax \leftarrow \max_i {(\vert re(x_i)\vert + \vert im(x_i)\vert)}\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
<P> <P>
<PRE> <PRE>
call psb_geamaxs(res, x, desc_a, info) psb_geamax(x, desc_a, info)
</PRE> </PRE>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1796"></A> <DIV ALIGN="CENTER"><A NAME="1816"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 5:</STRONG> <CAPTION><STRONG>Table 4:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="44" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png" SRC="img31.png"
ALT="$res$"></TD> ALT="$amax$"></TD>
<TD ALIGN="LEFT"><IMG <TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Function</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Real</TD> <TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_geamaxs</TD> <TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Real</TD> <TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_geamaxs</TD> <TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Complex</TD> <TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_geamaxs</TD> <TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Complex</TD> <TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_geamaxs</TD> <TD ALIGN="LEFT">psb_geamax</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -138,6 +163,7 @@ Data types</CAPTION>
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -145,9 +171,9 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90mamax">5</A>. Table&nbsp;<A HREF="#tab:f90amax">4</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -159,21 +185,21 @@ Type: <B>required</B>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>res</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>is the infinity norm of the columns of <IMG <DD>is the infinity norm of subvector <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Intent: <B>out</B>. Specified as: a long precision real number.
<BR>
Specified as: a number or a rank-one array of long precision real numbers.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -191,26 +217,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html859" <A NAME="tex2html862"
HREF="node52.html"> HREF="node52.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html855" <A NAME="tex2html858"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html849" <A NAME="tex2html852"
HREF="node50.html"> HREF="node50.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html857" <A NAME="tex2html860"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html860" <B> Next:</B> <A NAME="tex2html863"
HREF="node52.html">psb_geasum 1-Norm</A> HREF="node52.html">psb_geamaxs Generalized</A>
<B> Up:</B> <A NAME="tex2html856" <B> Up:</B> <A NAME="tex2html859"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html850" <B> Previous:</B> <A NAME="tex2html853"
HREF="node50.html">psb_geamax Infinity-Norm</A> HREF="node50.html">psb_gedots Generalized</A>
&nbsp; <B> <A NAME="tex2html858" &nbsp; <B> <A NAME="tex2html861"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_geasum -- 1-Norm of Vector</TITLE> <TITLE>psb_geamaxs -- Generalized Infinity Norm</TITLE>
<META NAME="description" CONTENT="psb_geasum -- 1-Norm of Vector"> <META NAME="description" CONTENT="psb_geamaxs -- Generalized Infinity Norm">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,126 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node53.html"> <LINK REL="next" HREF="node53.html">
<LINK REL="previous" HREF="node51.html"> <LINK REL="previous" HREF="node51.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node53.html"> <LINK REL="next" HREF="node53.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html871" <A NAME="tex2html874"
HREF="node53.html"> HREF="node53.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html867" <A NAME="tex2html870"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html861" <A NAME="tex2html864"
HREF="node51.html"> HREF="node51.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html869" <A NAME="tex2html872"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html872" <B> Next:</B> <A NAME="tex2html875"
HREF="node53.html">psb_geasums Generalized</A> HREF="node53.html">psb_geasum 1-Norm</A>
<B> Up:</B> <A NAME="tex2html868" <B> Up:</B> <A NAME="tex2html871"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html862" <B> Previous:</B> <A NAME="tex2html865"
HREF="node51.html">psb_geamaxs Generalized</A> HREF="node51.html">psb_geamax Infinity-Norm</A>
&nbsp; <B> <A NAME="tex2html870" &nbsp; <B> <A NAME="tex2html873"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00056000000000000000"> <H2><A NAME="SECTION00055000000000000000">
psb_geasum -- 1-Norm of Vector</A> psb_geamaxs -- Generalized Infinity Norm</A>
</H2> </H2>
<P> <P>
This function computes the 1-norm of a vector <IMG This subroutine computes a series of infinity norms on the columns of
a dense matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">:
<BR>
If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a real vector
it computes 1-norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
asum \leftarrow \|x_i\|
\end{displaymath}
-->
<IMG
WIDTH="92" HEIGHT="28" BORDER="0"
SRC="img33.png"
ALT="\begin{displaymath}asum \leftarrow \Vert x_i\Vert\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
else if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a complex vector then it computes 1-norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1 res(i) \leftarrow \max_k |x(k,i)|
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="205" HEIGHT="28" BORDER="0" WIDTH="147" HEIGHT="36" BORDER="0"
SRC="img34.png" SRC="img32.png"
ALT="\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}"> ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
<P> <P>
<PRE> <PRE>
psb_geasum(x, desc_a, info) call psb_geamaxs(res, x, desc_a, info)
</PRE> </PRE>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1797"></A> <DIV ALIGN="CENTER"><A NAME="1817"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 6:</STRONG> <CAPTION><STRONG>Table 5:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img35.png" SRC="img28.png"
ALT="$asum$"></TD> ALT="$res$"></TD>
<TD ALIGN="LEFT"><IMG <TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Function</B></TD> <TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Real</TD> <TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_geasum</TD> <TD ALIGN="LEFT">psb_geamaxs</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Real</TD> <TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_geasum</TD> <TD ALIGN="LEFT">psb_geamaxs</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Complex</TD> <TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_geasum</TD> <TD ALIGN="LEFT">psb_geamaxs</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Complex</TD> <TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_geasum</TD> <TD ALIGN="LEFT">psb_geamaxs</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -162,7 +138,6 @@ Data types</CAPTION>
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -172,7 +147,7 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90asum">6</A>. Table&nbsp;<A HREF="#tab:f90mamax">5</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -184,21 +159,21 @@ Type: <B>required</B>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>res</STRONG></DT>
<DD>is the 1-norm of vector <IMG <DD>is the infinity norm of the columns of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Specified as: a long precision real number. Intent: <B>out</B>.
<BR>
Specified as: a number or a rank-one array of long precision real numbers.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -216,26 +191,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html871" <A NAME="tex2html874"
HREF="node53.html"> HREF="node53.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html867" <A NAME="tex2html870"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html861" <A NAME="tex2html864"
HREF="node51.html"> HREF="node51.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html869" <A NAME="tex2html872"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html872" <B> Next:</B> <A NAME="tex2html875"
HREF="node53.html">psb_geasums Generalized</A> HREF="node53.html">psb_geasum 1-Norm</A>
<B> Up:</B> <A NAME="tex2html868" <B> Up:</B> <A NAME="tex2html871"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html862" <B> Previous:</B> <A NAME="tex2html865"
HREF="node51.html">psb_geamaxs Generalized</A> HREF="node51.html">psb_geamax Infinity-Norm</A>
&nbsp; <B> <A NAME="tex2html870" &nbsp; <B> <A NAME="tex2html873"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_geasums -- Generalized 1-Norm of Vector</TITLE> <TITLE>psb_geasum -- 1-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_geasums -- Generalized 1-Norm of Vector"> <META NAME="description" CONTENT="psb_geasum -- 1-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,62 +20,42 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node54.html"> <LINK REL="next" HREF="node54.html">
<LINK REL="previous" HREF="node52.html"> <LINK REL="previous" HREF="node52.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node54.html"> <LINK REL="next" HREF="node54.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html883" <A NAME="tex2html886"
HREF="node54.html"> HREF="node54.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html879" <A NAME="tex2html882"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html873" <A NAME="tex2html876"
HREF="node52.html"> HREF="node52.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html881" <A NAME="tex2html884"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html884" <B> Next:</B> <A NAME="tex2html887"
HREF="node54.html">psb_genrm2 2-Norm</A> HREF="node54.html">psb_geasums Generalized</A>
<B> Up:</B> <A NAME="tex2html880" <B> Up:</B> <A NAME="tex2html883"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html874" <B> Previous:</B> <A NAME="tex2html877"
HREF="node52.html">psb_geasum 1-Norm</A> HREF="node52.html">psb_geamaxs Generalized</A>
&nbsp; <B> <A NAME="tex2html882" &nbsp; <B> <A NAME="tex2html885"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00057000000000000000"> <H2><A NAME="SECTION00056000000000000000">
psb_geasums -- Generalized 1-Norm of Vector</A> psb_geasum -- 1-Norm of Vector</A>
</H2> </H2>
<P> <P>
This subroutine computes a series of 1-norms on the columns of
a dense matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \leftarrow \max_k |x(k,i)|
\end{displaymath}
-->
<IMG
WIDTH="147" HEIGHT="36" BORDER="0"
SRC="img32.png"
ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
This function computes the 1-norm of a vector <IMG This function computes the 1-norm of a vector <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
@ -84,20 +64,20 @@ This function computes the 1-norm of a vector <IMG
If <IMG If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> is a real vector ALT="$x$"> is a real vector
it computes 1-norm as: it computes 1-norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
res(i) \leftarrow \|x_i\| asum \leftarrow \|x_i\|
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="94" HEIGHT="28" BORDER="0" WIDTH="92" HEIGHT="28" BORDER="0"
SRC="img36.png" SRC="img33.png"
ALT="\begin{displaymath}res(i) \leftarrow \Vert x_i\Vert\end{displaymath}"> ALT="\begin{displaymath}asum \leftarrow \Vert x_i\Vert\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
@ -109,57 +89,57 @@ else if <IMG
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1 asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="206" HEIGHT="28" BORDER="0" WIDTH="205" HEIGHT="28" BORDER="0"
SRC="img37.png" SRC="img34.png"
ALT="\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}"> ALT="\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
<P> <P>
<PRE> <PRE>
call psb_geasums(res, x, desc_a, info) psb_geasum(x, desc_a, info)
</PRE> </PRE>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1798"></A> <DIV ALIGN="CENTER"><A NAME="1818"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 7:</STRONG> <CAPTION><STRONG>Table 6:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png" SRC="img35.png"
ALT="$res$"></TD> ALT="$asum$"></TD>
<TD ALIGN="LEFT"><IMG <TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Function</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Real</TD> <TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_geasums</TD> <TD ALIGN="LEFT">psb_geasum</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Real</TD> <TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_geasums</TD> <TD ALIGN="LEFT">psb_geasum</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Complex</TD> <TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_geasums</TD> <TD ALIGN="LEFT">psb_geasum</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Complex</TD> <TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_geasums</TD> <TD ALIGN="LEFT">psb_geasum</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -192,7 +172,7 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90asums">7</A>. Table&nbsp;<A HREF="#tab:f90asum">6</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -210,17 +190,14 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>res</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>contains the 1-norm of (the columns of) <IMG <DD>is the 1-norm of vector <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Intent: <B>out</B>.
<BR>
Short as: a long precision real number.
Specified as: a long precision real number. Specified as: a long precision real number.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
@ -239,26 +216,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html883" <A NAME="tex2html886"
HREF="node54.html"> HREF="node54.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html879" <A NAME="tex2html882"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html873" <A NAME="tex2html876"
HREF="node52.html"> HREF="node52.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html881" <A NAME="tex2html884"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html884" <B> Next:</B> <A NAME="tex2html887"
HREF="node54.html">psb_genrm2 2-Norm</A> HREF="node54.html">psb_geasums Generalized</A>
<B> Up:</B> <A NAME="tex2html880" <B> Up:</B> <A NAME="tex2html883"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html874" <B> Previous:</B> <A NAME="tex2html877"
HREF="node52.html">psb_geasum 1-Norm</A> HREF="node52.html">psb_geamaxs Generalized</A>
&nbsp; <B> <A NAME="tex2html882" &nbsp; <B> <A NAME="tex2html885"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_genrm2 -- 2-Norm of Vector</TITLE> <TITLE>psb_geasums -- Generalized 1-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_genrm2 -- 2-Norm of Vector"> <META NAME="description" CONTENT="psb_geasums -- Generalized 1-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,43 +20,63 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node55.html"> <LINK REL="next" HREF="node55.html">
<LINK REL="previous" HREF="node53.html"> <LINK REL="previous" HREF="node53.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node55.html"> <LINK REL="next" HREF="node55.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html895" <A NAME="tex2html898"
HREF="node55.html"> HREF="node55.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html891" <A NAME="tex2html894"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html885" <A NAME="tex2html888"
HREF="node53.html"> HREF="node53.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html893" <A NAME="tex2html896"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html896" <B> Next:</B> <A NAME="tex2html899"
HREF="node55.html">psb_genrm2s Generalized</A> HREF="node55.html">psb_genrm2 2-Norm</A>
<B> Up:</B> <A NAME="tex2html892" <B> Up:</B> <A NAME="tex2html895"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html886" <B> Previous:</B> <A NAME="tex2html889"
HREF="node53.html">psb_geasums Generalized</A> HREF="node53.html">psb_geasum 1-Norm</A>
&nbsp; <B> <A NAME="tex2html894" &nbsp; <B> <A NAME="tex2html897"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00058000000000000000"> <H2><A NAME="SECTION00057000000000000000">
psb_genrm2 -- 2-Norm of Vector</A> psb_geasums -- Generalized 1-Norm of Vector</A>
</H2> </H2>
<P> <P>
This function computes the 2-norm of a vector <IMG This subroutine computes a series of 1-norms on the columns of
a dense matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \leftarrow \max_k |x(k,i)|
\end{displaymath}
-->
<IMG
WIDTH="147" HEIGHT="36" BORDER="0"
SRC="img32.png"
ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,i)\vert \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
This function computes the 1-norm of a vector <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
@ -64,77 +84,82 @@ This function computes the 2-norm of a vector <IMG
If <IMG If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> is a real vector ALT="$x$"> is a real vector
it computes 2-norm as: it computes 1-norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
nrm2 \leftarrow \sqrt{x^T x} res(i) \leftarrow \|x_i\|
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="106" HEIGHT="24" BORDER="0" WIDTH="94" HEIGHT="28" BORDER="0"
SRC="img38.png" SRC="img36.png"
ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^T x}\end{displaymath}"> ALT="\begin{displaymath}res(i) \leftarrow \Vert x_i\Vert\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
else if <IMG else if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> is a complex vector then it computes 2-norm as: ALT="$x$"> is a complex vector then it computes 1-norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
nrm2 \leftarrow \sqrt{x^H x} res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="108" HEIGHT="24" BORDER="0" WIDTH="206" HEIGHT="28" BORDER="0"
SRC="img39.png" SRC="img37.png"
ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath}"> ALT="\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
<P>
<PRE>
call psb_geasums(res, x, desc_a, info)
</PRE>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1799"></A> <DIV ALIGN="CENTER"><A NAME="1819"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 8:</STRONG> <CAPTION><STRONG>Table 7:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img40.png" SRC="img28.png"
ALT="$nrm2$"></TD> ALT="$res$"></TD>
<TD ALIGN="LEFT"><IMG <TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Function</B></TD> <TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Real</TD> <TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_genrm2</TD> <TD ALIGN="LEFT">psb_geasums</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Real</TD> <TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_genrm2</TD> <TD ALIGN="LEFT">psb_geasums</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Complex</TD> <TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_genrm2</TD> <TD ALIGN="LEFT">psb_geasums</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Complex</TD> <TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_genrm2</TD> <TD ALIGN="LEFT">psb_geasums</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -143,11 +168,6 @@ Data types</CAPTION>
</DIV><P></P> </DIV><P></P>
<BR> <BR>
<P>
<PRE>
psb_genrm2(x, desc_a, info)
</PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -161,7 +181,8 @@ psb_genrm2(x, desc_a, info)
<IMG <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -169,9 +190,9 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90nrm2">8</A>. Table&nbsp;<A HREF="#tab:f90asums">7</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -189,17 +210,18 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function Value</STRONG></DT> <DT><STRONG>res</STRONG></DT>
<DD>is the 2-norm of subvector <IMG <DD>contains the 1-norm of (the columns of) <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Type: <B>required</B> Intent: <B>out</B>.
<BR> <BR>
Specified as: a long precision real number. Short as: a long precision real number.
Specified as: a long precision real number.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -217,26 +239,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html895" <A NAME="tex2html898"
HREF="node55.html"> HREF="node55.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html891" <A NAME="tex2html894"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html885" <A NAME="tex2html888"
HREF="node53.html"> HREF="node53.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html893" <A NAME="tex2html896"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html896" <B> Next:</B> <A NAME="tex2html899"
HREF="node55.html">psb_genrm2s Generalized</A> HREF="node55.html">psb_genrm2 2-Norm</A>
<B> Up:</B> <A NAME="tex2html892" <B> Up:</B> <A NAME="tex2html895"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html886" <B> Previous:</B> <A NAME="tex2html889"
HREF="node53.html">psb_geasums Generalized</A> HREF="node53.html">psb_geasum 1-Norm</A>
&nbsp; <B> <A NAME="tex2html894" &nbsp; <B> <A NAME="tex2html897"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_genrm2s -- Generalized 2-Norm of Vector</TITLE> <TITLE>psb_genrm2 -- 2-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_genrm2s -- Generalized 2-Norm of Vector"> <META NAME="description" CONTENT="psb_genrm2 -- 2-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,102 +20,121 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node56.html"> <LINK REL="next" HREF="node56.html">
<LINK REL="previous" HREF="node54.html"> <LINK REL="previous" HREF="node54.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node56.html"> <LINK REL="next" HREF="node56.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html907" <A NAME="tex2html910"
HREF="node56.html"> HREF="node56.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html903" <A NAME="tex2html906"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html897" <A NAME="tex2html900"
HREF="node54.html"> HREF="node54.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html905" <A NAME="tex2html908"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html908" <B> Next:</B> <A NAME="tex2html911"
HREF="node56.html">psb_spnrm1 1-Norm</A> HREF="node56.html">psb_genrm2s Generalized</A>
<B> Up:</B> <A NAME="tex2html904" <B> Up:</B> <A NAME="tex2html907"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html898" <B> Previous:</B> <A NAME="tex2html901"
HREF="node54.html">psb_genrm2 2-Norm</A> HREF="node54.html">psb_geasums Generalized</A>
&nbsp; <B> <A NAME="tex2html906" &nbsp; <B> <A NAME="tex2html909"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00059000000000000000"> <H2><A NAME="SECTION00058000000000000000">
psb_genrm2s -- Generalized 2-Norm of Vector</A> psb_genrm2 -- 2-Norm of Vector</A>
</H2> </H2>
<P> <P>
This subroutine computes a series of 2-norms on the columns of This function computes the 2-norm of a vector <IMG
a dense matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">: ALT="$x$">.
<BR>
If <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a real vector
it computes 2-norm as:
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
res(i) \leftarrow \|x(:,i)\|_2 nrm2 \leftarrow \sqrt{x^T x}
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="124" HEIGHT="28" BORDER="0" WIDTH="106" HEIGHT="24" BORDER="0"
SRC="img41.png" SRC="img38.png"
ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath}"> ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^T x}\end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
else if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a complex vector then it computes 2-norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
nrm2 \leftarrow \sqrt{x^H x}
\end{displaymath}
-->
<P> <IMG
<PRE> WIDTH="108" HEIGHT="24" BORDER="0"
call psb_genrm2s(res, x, desc_a, info) SRC="img39.png"
</PRE> ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1800"></A> <DIV ALIGN="CENTER"><A NAME="1820"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 9:</STRONG> <CAPTION><STRONG>Table 8:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png" SRC="img40.png"
ALT="$res$"></TD> ALT="$nrm2$"></TD>
<TD ALIGN="LEFT"><IMG <TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Function</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Real</TD> <TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD> <TD ALIGN="LEFT">psb_genrm2</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Real</TD> <TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD> <TD ALIGN="LEFT">psb_genrm2</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">Short Precision Complex</TD> <TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD> <TD ALIGN="LEFT">psb_genrm2</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">Long Precision Complex</TD> <TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD> <TD ALIGN="LEFT">psb_genrm2</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -124,6 +143,11 @@ Data types</CAPTION>
</DIV><P></P> </DIV><P></P>
<BR> <BR>
<P>
<PRE>
psb_genrm2(x, desc_a, info)
</PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -137,8 +161,7 @@ Data types</CAPTION>
<IMG <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -146,9 +169,9 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90nrm2s">9</A>. Table&nbsp;<A HREF="#tab:f90nrm2">8</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -166,17 +189,17 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>res</STRONG></DT> <DT><STRONG>Function Value</STRONG></DT>
<DD>contains the 1-norm of (the columns of) <IMG <DD>is the 2-norm of subvector <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Intent: <B>out</B>. Type: <B>required</B>
<BR> <BR>
Specified as: a long precision real number. Specified as: a long precision real number.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -194,26 +217,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html907" <A NAME="tex2html910"
HREF="node56.html"> HREF="node56.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html903" <A NAME="tex2html906"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html897" <A NAME="tex2html900"
HREF="node54.html"> HREF="node54.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html905" <A NAME="tex2html908"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html908" <B> Next:</B> <A NAME="tex2html911"
HREF="node56.html">psb_spnrm1 1-Norm</A> HREF="node56.html">psb_genrm2s Generalized</A>
<B> Up:</B> <A NAME="tex2html904" <B> Up:</B> <A NAME="tex2html907"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html898" <B> Previous:</B> <A NAME="tex2html901"
HREF="node54.html">psb_genrm2 2-Norm</A> HREF="node54.html">psb_geasums Generalized</A>
&nbsp; <B> <A NAME="tex2html906" &nbsp; <B> <A NAME="tex2html909"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spnrm1 -- 1-Norm of Sparse Matrix</TITLE> <TITLE>psb_genrm2s -- Generalized 2-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_spnrm1 -- 1-Norm of Sparse Matrix"> <META NAME="description" CONTENT="psb_genrm2s -- Generalized 2-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,102 +20,102 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node57.html"> <LINK REL="next" HREF="node57.html">
<LINK REL="previous" HREF="node55.html"> <LINK REL="previous" HREF="node55.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node57.html"> <LINK REL="next" HREF="node57.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html919" <A NAME="tex2html922"
HREF="node57.html"> HREF="node57.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html915" <A NAME="tex2html918"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html909" <A NAME="tex2html912"
HREF="node55.html"> HREF="node55.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html917" <A NAME="tex2html920"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html920" <B> Next:</B> <A NAME="tex2html923"
HREF="node57.html">psb_spnrmi Infinity</A> HREF="node57.html">psb_spnrm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html916" <B> Up:</B> <A NAME="tex2html919"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html910" <B> Previous:</B> <A NAME="tex2html913"
HREF="node55.html">psb_genrm2s Generalized</A> HREF="node55.html">psb_genrm2 2-Norm</A>
&nbsp; <B> <A NAME="tex2html918" &nbsp; <B> <A NAME="tex2html921"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000510000000000000000"> <H2><A NAME="SECTION00059000000000000000">
psb_spnrm1 -- 1-Norm of Sparse Matrix</A> psb_genrm2s -- Generalized 2-Norm of Vector</A>
</H2> </H2>
<P> <P>
This function computes the 1-norm of a matrix <IMG This subroutine computes a series of 2-norms on the columns of
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" a dense matrix <IMG
SRC="img1.png" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
ALT="$A$">: SRC="img20.png"
<BR> ALT="$x$">:
<P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
nrm1 \leftarrow \|A\|_1 res(i) \leftarrow \|x(:,i)\|_2
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="98" HEIGHT="28" BORDER="0" WIDTH="124" HEIGHT="28" BORDER="0"
SRC="img42.png" SRC="img41.png"
ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}"> ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
where:
<DL> <P>
<DT><STRONG><IMG <PRE>
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" call psb_genrm2s(res, x, desc_a, info)
SRC="img1.png" </PRE>
ALT="$A$"></STRONG></DT>
<DD>represents the global matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">
</DD>
</DL>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1801"></A> <DIV ALIGN="CENTER"><A NAME="1821"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 10:</STRONG> <CAPTION><STRONG>Table 9:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img28.png"
ALT="$A$"></TD> ALT="$res$"></TD>
<TD ALIGN="LEFT"><B>Function</B></TD> <TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD> <TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD> <TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD> <TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD> <TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_genrm2s</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -124,11 +124,6 @@ Data types</CAPTION>
</DIV><P></P> </DIV><P></P>
<BR> <BR>
<P>
<PRE>
psb_spnrm1(A, desc_a, info)
</PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -137,20 +132,23 @@ psb_spnrm1(A, desc_a, info)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>x</STRONG></DT>
<DD>the local portion of the global sparse matrix <DD>the local portion of global dense matrix
<IMG <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img20.png"
ALT="$A$">. ALT="$x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type spdata<TT>psb_Tspmat_type</TT>. Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90nrm2s">9</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -162,19 +160,23 @@ Type: <B>required</B>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>res</STRONG></DT>
<DD>is the 1-norm of sparse submatrix <IMG <DD>contains the 1-norm of (the columns of) <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img20.png"
ALT="$A$">. ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Specified as: a long precision real number. Intent: <B>out</B>.
<BR>
Specified as: a long precision real number.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -192,26 +194,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html919" <A NAME="tex2html922"
HREF="node57.html"> HREF="node57.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html915" <A NAME="tex2html918"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html909" <A NAME="tex2html912"
HREF="node55.html"> HREF="node55.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html917" <A NAME="tex2html920"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html920" <B> Next:</B> <A NAME="tex2html923"
HREF="node57.html">psb_spnrmi Infinity</A> HREF="node57.html">psb_spnrm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html916" <B> Up:</B> <A NAME="tex2html919"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html910" <B> Previous:</B> <A NAME="tex2html913"
HREF="node55.html">psb_genrm2s Generalized</A> HREF="node55.html">psb_genrm2 2-Norm</A>
&nbsp; <B> <A NAME="tex2html918" &nbsp; <B> <A NAME="tex2html921"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spnrmi -- Infinity Norm of Sparse Matrix</TITLE> <TITLE>psb_spnrm1 -- 1-Norm of Sparse Matrix</TITLE>
<META NAME="description" CONTENT="psb_spnrmi -- Infinity Norm of Sparse Matrix"> <META NAME="description" CONTENT="psb_spnrm1 -- 1-Norm of Sparse Matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,43 +20,43 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node58.html"> <LINK REL="next" HREF="node58.html">
<LINK REL="previous" HREF="node56.html"> <LINK REL="previous" HREF="node56.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node58.html"> <LINK REL="next" HREF="node58.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html931" <A NAME="tex2html934"
HREF="node58.html"> HREF="node58.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html927" <A NAME="tex2html930"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html921" <A NAME="tex2html924"
HREF="node56.html"> HREF="node56.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html929" <A NAME="tex2html932"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html932" <B> Next:</B> <A NAME="tex2html935"
HREF="node58.html">psb_spmm Sparse</A> HREF="node58.html">psb_spnrmi Infinity</A>
<B> Up:</B> <A NAME="tex2html928" <B> Up:</B> <A NAME="tex2html931"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html922" <B> Previous:</B> <A NAME="tex2html925"
HREF="node56.html">psb_spnrm1 1-Norm</A> HREF="node56.html">psb_genrm2s Generalized</A>
&nbsp; <B> <A NAME="tex2html930" &nbsp; <B> <A NAME="tex2html933"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000511000000000000000"> <H2><A NAME="SECTION000510000000000000000">
psb_spnrmi -- Infinity Norm of Sparse Matrix</A> psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
</H2> </H2>
<P> <P>
This function computes the infinity-norm of a matrix <IMG This function computes the 1-norm of a matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img1.png"
ALT="$A$">: ALT="$A$">:
@ -66,14 +66,14 @@ This function computes the infinity-norm of a matrix <IMG
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
nrmi \leftarrow \|A\|_\infty nrm1 \leftarrow \|A\|_1
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="101" HEIGHT="28" BORDER="0" WIDTH="98" HEIGHT="28" BORDER="0"
SRC="img43.png" SRC="img42.png"
ALT="\begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath}"> ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
@ -92,9 +92,9 @@ where:
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1802"></A> <DIV ALIGN="CENTER"><A NAME="1822"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 11:</STRONG> <CAPTION><STRONG>Table 10:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
@ -106,16 +106,16 @@ Data types</CAPTION>
<TD ALIGN="LEFT"><B>Function</B></TD> <TD ALIGN="LEFT"><B>Function</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_spnrmi</TD> <TD ALIGN="LEFT">psb_spnrm1</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spnrmi</TD> <TD ALIGN="LEFT">psb_spnrm1</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_spnrmi</TD> <TD ALIGN="LEFT">psb_spnrm1</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_spnrmi</TD> <TD ALIGN="LEFT">psb_spnrm1</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -126,7 +126,7 @@ Data types</CAPTION>
<P> <P>
<PRE> <PRE>
psb_spnrmi(A, desc_a, info) psb_spnrm1(A, desc_a, info)
</PRE> </PRE>
<P> <P>
@ -167,7 +167,7 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<DD> <DD>
</DD> </DD>
<DT><STRONG>Function value</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>is the infinity-norm of sparse submatrix <IMG <DD>is the 1-norm of sparse submatrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img1.png"
ALT="$A$">. ALT="$A$">.
@ -192,26 +192,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html931" <A NAME="tex2html934"
HREF="node58.html"> HREF="node58.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html927" <A NAME="tex2html930"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html921" <A NAME="tex2html924"
HREF="node56.html"> HREF="node56.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html929" <A NAME="tex2html932"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html932" <B> Next:</B> <A NAME="tex2html935"
HREF="node58.html">psb_spmm Sparse</A> HREF="node58.html">psb_spnrmi Infinity</A>
<B> Up:</B> <A NAME="tex2html928" <B> Up:</B> <A NAME="tex2html931"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html922" <B> Previous:</B> <A NAME="tex2html925"
HREF="node56.html">psb_spnrm1 1-Norm</A> HREF="node56.html">psb_genrm2s Generalized</A>
&nbsp; <B> <A NAME="tex2html930" &nbsp; <B> <A NAME="tex2html933"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spmm -- Sparse Matrix by Dense Matrix Product</TITLE> <TITLE>psb_spnrmi -- Infinity Norm of Sparse Matrix</TITLE>
<META NAME="description" CONTENT="psb_spmm -- Sparse Matrix by Dense Matrix Product"> <META NAME="description" CONTENT="psb_spnrmi -- Infinity Norm of Sparse Matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,130 +20,70 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node59.html"> <LINK REL="next" HREF="node59.html">
<LINK REL="previous" HREF="node57.html"> <LINK REL="previous" HREF="node57.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node59.html"> <LINK REL="next" HREF="node59.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html943" <A NAME="tex2html946"
HREF="node59.html"> HREF="node59.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html939" <A NAME="tex2html942"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html933" <A NAME="tex2html936"
HREF="node57.html"> HREF="node57.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html941" <A NAME="tex2html944"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html944" <B> Next:</B> <A NAME="tex2html947"
HREF="node59.html">psb_spsm Triangular</A> HREF="node59.html">psb_spmm Sparse</A>
<B> Up:</B> <A NAME="tex2html940" <B> Up:</B> <A NAME="tex2html943"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html934" <B> Previous:</B> <A NAME="tex2html937"
HREF="node57.html">psb_spnrmi Infinity</A> HREF="node57.html">psb_spnrm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html942" &nbsp; <B> <A NAME="tex2html945"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000512000000000000000"> <H2><A NAME="SECTION000511000000000000000">
psb_spmm -- Sparse Matrix by Dense Matrix psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
Product</A>
</H2> </H2>
<P> <P>
This subroutine computes the Sparse Matrix by Dense Matrix Product: This function computes the infinity-norm of a matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
<P> SRC="img1.png"
<BR> ALT="$A$">:
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A x + \beta y
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_no_tra"></A><IMG
WIDTH="102" HEIGHT="27" BORDER="0"
SRC="img44.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(1)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<BR>
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A^T x + \beta y
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_tra"></A><IMG
WIDTH="112" HEIGHT="27" BORDER="0"
SRC="img45.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A^T x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(2)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<BR> <BR>
<DIV ALIGN="RIGHT"> <P>
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{equation} \begin{displaymath}
y \leftarrow \alpha A^H x + \beta y nrmi \leftarrow \|A\|_\infty
\end{equation} \end{displaymath}
--> -->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_con"></A><IMG
WIDTH="114" HEIGHT="27" BORDER="0"
SRC="img46.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A^H x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(3)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<P> <IMG
WIDTH="101" HEIGHT="28" BORDER="0"
SRC="img43.png"
ALT="\begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
where: where:
<DL> <DL>
<DT><STRONG><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></STRONG></DT>
<DD>is the global dense matrix <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img47.png"
ALT="$x_{:, :}$">
</DD>
<DT><STRONG><IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"></STRONG></DT>
<DD>is the global dense matrix <IMG
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img48.png"
ALT="$y_{:, :}$">
</DD>
<DT><STRONG><IMG <DT><STRONG><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img1.png"
ALT="$A$"></STRONG></DT> ALT="$A$"></STRONG></DT>
<DD>is the global sparse matrix <IMG <DD>represents the global matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img1.png"
ALT="$A$"> ALT="$A$">
@ -152,9 +92,9 @@ where:
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1803"></A> <DIV ALIGN="CENTER"><A NAME="1823"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 12:</STRONG> <CAPTION><STRONG>Table 11:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
@ -162,32 +102,20 @@ Data types</CAPTION>
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img1.png"
ALT="$A$">, <IMG ALT="$A$"></TD>
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" <TD ALIGN="LEFT"><B>Function</B></TD>
SRC="img20.png"
ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">, <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_spmm</TD> <TD ALIGN="LEFT">psb_spnrmi</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spmm</TD> <TD ALIGN="LEFT">psb_spnrmi</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_spmm</TD> <TD ALIGN="LEFT">psb_spnrmi</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_spmm</TD> <TD ALIGN="LEFT">psb_spnrmi</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -198,10 +126,8 @@ Data types</CAPTION>
<P> <P>
<PRE> <PRE>
call psb_spmm(alpha, a, x, beta, y, desc_a, info) psb_spnrmi(A, desc_a, info)
call psb_spmm(alpha, a, x, beta, y,desc_a, info, &amp; </PRE>
&amp; trans, work)
</PRE>
<P> <P>
<DL> <DL>
@ -211,23 +137,8 @@ call psb_spmm(alpha, a, x, beta, y,desc_a, info, &amp;
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the local portion of the sparse matrix <DD>the local portion of the global sparse matrix
<IMG <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png" SRC="img1.png"
@ -241,68 +152,6 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type spdata<TT>psb_Tspmat_type</TT>. Specified as: an object of type spdata<TT>psb_Tspmat_type</TT>.
</DD> </DD>
<DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>beta</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
<BR> <BR>
@ -314,74 +163,18 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>trans</STRONG></DT>
<DD>indicates what kind of operation to perform.
<DL>
<DT><STRONG>trans = N</STRONG></DT>
<DD>the operation is specified by equation <A HREF="#eq:f90spmm_no_tra">1</A>
</DD>
<DT><STRONG>trans = T</STRONG></DT>
<DD>the operation is specified by equation
<A HREF="#eq:f90spmm_tra">2</A>
</DD>
<DT><STRONG>trans = C</STRONG></DT>
<DD>the operation is specified by equation
<A HREF="#eq:f90spmm_con">3</A>
</DD>
</DL>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="79" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img49.png"
ALT="$trans = N$">
<BR>
Specified as: a character variable.
<P>
</DD>
<DT><STRONG>work</STRONG></DT>
<DD>work array.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> with
the TARGET attribute.
<P>
</DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>y</STRONG></DT> <DT><STRONG>Function value</STRONG></DT>
<DD>the local portion of result matrix <IMG <DD>is the infinity-norm of sparse submatrix <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img21.png" SRC="img1.png"
ALT="$y$">. ALT="$A$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR> <BR>
Intent: <B>inout</B>. Scope: <B>global</B>
<BR> <BR>
Specified as: an array of rank one or two Specified as: a long precision real number.
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -399,26 +192,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html943" <A NAME="tex2html946"
HREF="node59.html"> HREF="node59.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html939" <A NAME="tex2html942"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html933" <A NAME="tex2html936"
HREF="node57.html"> HREF="node57.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html941" <A NAME="tex2html944"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html944" <B> Next:</B> <A NAME="tex2html947"
HREF="node59.html">psb_spsm Triangular</A> HREF="node59.html">psb_spmm Sparse</A>
<B> Up:</B> <A NAME="tex2html940" <B> Up:</B> <A NAME="tex2html943"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html934" <B> Previous:</B> <A NAME="tex2html937"
HREF="node57.html">psb_spnrmi Infinity</A> HREF="node57.html">psb_spnrm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html942" &nbsp; <B> <A NAME="tex2html945"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spsm -- Triangular System Solve</TITLE> <TITLE>psb_spmm -- Sparse Matrix by Dense Matrix Product</TITLE>
<META NAME="description" CONTENT="psb_spsm -- Triangular System Solve"> <META NAME="description" CONTENT="psb_spmm -- Sparse Matrix by Dense Matrix Product">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,71 +18,105 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node60.html">
<LINK REL="previous" HREF="node58.html"> <LINK REL="previous" HREF="node58.html">
<LINK REL="up" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="next" HREF="node60.html"> <LINK REL="next" HREF="node60.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html953" <A NAME="tex2html958"
HREF="node60.html"> HREF="node60.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html949" <A NAME="tex2html954"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html945" <A NAME="tex2html948"
HREF="node58.html"> HREF="node58.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html951" <A NAME="tex2html956"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html954" <B> Next:</B> <A NAME="tex2html959"
HREF="node60.html">Communication routines</A> HREF="node60.html">psb_spsm Triangular</A>
<B> Up:</B> <A NAME="tex2html950" <B> Up:</B> <A NAME="tex2html955"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html946" <B> Previous:</B> <A NAME="tex2html949"
HREF="node58.html">psb_spmm Sparse</A> HREF="node58.html">psb_spnrmi Infinity</A>
&nbsp; <B> <A NAME="tex2html952" &nbsp; <B> <A NAME="tex2html957"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000513000000000000000"> <H2><A NAME="SECTION000512000000000000000">
psb_spsm -- Triangular System Solve</A> psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
</H2> </H2>
<P> <P>
This subroutine computes the Triangular System Solve: This subroutine computes the Sparse Matrix by Dense Matrix Product:
<P> <P>
<P></P> <BR>
<DIV ALIGN="CENTER"> <DIV ALIGN="RIGHT">
<!-- MATH <!-- MATH
\begin{eqnarray*} \begin{equation}
y &\leftarrow& \alpha T^{-1} x + \beta y\\ y \leftarrow \alpha A x + \beta y
y &\leftarrow& \alpha D T^{-1} x + \beta y\\ \end{equation}
y &\leftarrow& \alpha T^{-1} D x + \beta y\\
y &\leftarrow& \alpha T^{-T} x + \beta y\\
y &\leftarrow& \alpha D T^{-T} x + \beta y\\
y &\leftarrow& \alpha T^{-T} D x + \beta y\\
y &\leftarrow& \alpha T^{-H} x + \beta y\\
y &\leftarrow& \alpha D T^{-H} x + \beta y\\
y &\leftarrow& \alpha T^{-H} D x + \beta y\\
\end{eqnarray*}
--> -->
<IMG <TABLE WIDTH="100%" ALIGN="CENTER">
WIDTH="160" HEIGHT="239" BORDER="0" <TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_no_tra"></A><IMG
SRC="img50.png" WIDTH="102" HEIGHT="27" BORDER="0"
ALT="\begin{eqnarray*} SRC="img44.png"
y &amp;\leftarrow&amp; \alpha T^{-1} x + \beta y\\ ALT="\begin{displaymath}
y &amp;\leftarrow&amp; \al... y \leftarrow \alpha A x + \beta y
...-H} x + \beta y\\ \end{displaymath}"></TD>
y &amp;\leftarrow&amp; \alpha T^{-H} D x + \beta y\\ <TD WIDTH=10 ALIGN="RIGHT">
\end{eqnarray*}"></DIV> (1)</TD></TR>
<BR CLEAR="ALL"><P></P> </TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<BR>
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A^T x + \beta y
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_tra"></A><IMG
WIDTH="112" HEIGHT="27" BORDER="0"
SRC="img45.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A^T x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(2)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<BR>
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A^H x + \beta y
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_con"></A><IMG
WIDTH="114" HEIGHT="27" BORDER="0"
SRC="img46.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A^H x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(3)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<P> <P>
where: where:
@ -107,50 +141,34 @@ where:
</DD> </DD>
<DT><STRONG><IMG <DT><STRONG><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png" SRC="img1.png"
ALT="$T$"></STRONG></DT> ALT="$A$"></STRONG></DT>
<DD>is the global sparse block triangular submatrix <IMG <DD>is the global sparse matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png" SRC="img1.png"
ALT="$T$"> ALT="$A$">
</DD>
<DT><STRONG><IMG
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img52.png"
ALT="$D$"></STRONG></DT>
<DD>is the scaling diagonal matrix.
</DD> </DD>
</DL> </DL>
<P>
<PRE>
call psb_spsm(alpha, t, x, beta, y, desc_a, info)
call psb_spsm(alpha, t, x, beta, y, desc_a, info,&amp;
&amp; trans, unit, choice, diag, work)
</PRE>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1804"></A> <DIV ALIGN="CENTER"><A NAME="1824"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 13:</STRONG> <CAPTION><STRONG>Table 12:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png" SRC="img1.png"
ALT="$T$">, <IMG ALT="$A$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">, <IMG ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$">, <IMG ALT="$y$">, <IMG
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img52.png"
ALT="$D$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png" SRC="img22.png"
ALT="$\alpha$">, <IMG ALT="$\alpha$">, <IMG
@ -160,16 +178,16 @@ Data types</CAPTION>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_spsm</TD> <TD ALIGN="LEFT">psb_spmm</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spsm</TD> <TD ALIGN="LEFT">psb_spmm</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_spsm</TD> <TD ALIGN="LEFT">psb_spmm</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_spsm</TD> <TD ALIGN="LEFT">psb_spmm</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -178,6 +196,13 @@ Data types</CAPTION>
</DIV><P></P> </DIV><P></P>
<BR> <BR>
<P>
<PRE>
call psb_spmm(alpha, a, x, beta, y, desc_a, info)
call psb_spmm(alpha, a, x, beta, y,desc_a, info, &amp;
&amp; trans, work)
</PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
@ -199,14 +224,14 @@ Type: <B>required</B>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a number of the data type indicated in Specified as: a number of the data type indicated in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>. Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD> </DD>
<DT><STRONG>t</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the global portion of the sparse matrix <DD>the local portion of the sparse matrix
<IMG <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png" SRC="img1.png"
ALT="$T$">. ALT="$A$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -214,8 +239,7 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an object type specified in Specified as: an object of type spdata<TT>psb_Tspmat_type</TT>.
&#167;&nbsp;<A HREF="node9.html#sec:datastruct">3</A>.
</DD> </DD>
<DT><STRONG>x</STRONG></DT> <DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix <DD>the local portion of global dense matrix
@ -233,7 +257,7 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>. The rank of <IMG Table&nbsp;<A HREF="#tab:f90spmm">12</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> must be the same of <IMG ALT="$x$"> must be the same of <IMG
@ -253,7 +277,7 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90spsm">13</A>. Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD> </DD>
<DT><STRONG>y</STRONG></DT> <DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix <DD>the local portion of global dense matrix
@ -271,7 +295,7 @@ Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>. The rank of <IMG Table&nbsp;<A HREF="#tab:f90spmm">12</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$"> must be the same of <IMG ALT="$y$"> must be the same of <IMG
@ -291,16 +315,18 @@ Intent: <B>in</B>.
Specified as: an object of type descdata<TT>psb_desc_type</TT>. Specified as: an object of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>trans</STRONG></DT> <DT><STRONG>trans</STRONG></DT>
<DD>specify with <EM>unitd</EM> the operation to perform. <DD>indicates what kind of operation to perform.
<DL> <DL>
<DT><STRONG>trans = 'N'</STRONG></DT> <DT><STRONG>trans = N</STRONG></DT>
<DD>the operation is with no transposed matrix <DD>the operation is specified by equation <A HREF="#eq:f90spmm_no_tra">1</A>
</DD> </DD>
<DT><STRONG>trans = 'T'</STRONG></DT> <DT><STRONG>trans = T</STRONG></DT>
<DD>the operation is with transposed matrix. <DD>the operation is specified by equation
<A HREF="#eq:f90spmm_tra">2</A>
</DD> </DD>
<DT><STRONG>trans = 'C'</STRONG></DT> <DT><STRONG>trans = C</STRONG></DT>
<DD>the operation is with conjugate transposed matrix. <DD>the operation is specified by equation
<A HREF="#eq:f90spmm_con">3</A>
</DD> </DD>
</DL> </DL>
Scope: <B>global</B> Scope: <B>global</B>
@ -315,82 +341,11 @@ Default: <IMG
ALT="$trans = N$"> ALT="$trans = N$">
<BR> <BR>
Specified as: a character variable. Specified as: a character variable.
</DD>
<DT><STRONG>unitd</STRONG></DT> <P>
<DD>specify with <EM>trans</EM> the operation to perform.
<DL>
<DT><STRONG>unitd = 'U'</STRONG></DT>
<DD>the operation is with no scaling
</DD>
<DT><STRONG>unitd = 'L'</STRONG></DT>
<DD>the operation is with left scaling
</DD>
<DT><STRONG>unitd = 'R'</STRONG></DT>
<DD>the operation is with right scaling.
</DD>
</DL>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="76" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img53.png"
ALT="$unitd = U$">
<BR>
Specified as: a character variable.
</DD>
<DT><STRONG>choice</STRONG></DT>
<DD>specifies the update of overlap elements to be performed
on exit:
<DL>
<DT></DT>
<DD><code>psb_none_</code>
</DD>
<DT></DT>
<DD><code>psb_sum_</code>
</DD>
<DT></DT>
<DD><code>psb_avg_</code>
</DD>
<DT></DT>
<DD><code>psb_square_root_</code>
</DD>
</DL>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <code>psb_avg_</code>
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>diag</STRONG></DT>
<DD>the diagonal scaling matrix.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <!-- MATH
$diag(1) = 1 (no scaling)$
-->
<IMG
WIDTH="165" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img54.png"
ALT="$diag(1) = 1 (no scaling)$">
<BR>
Specified as: a rank one array containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90spsm">13</A>.
</DD> </DD>
<DT><STRONG>work</STRONG></DT> <DT><STRONG>work</STRONG></DT>
<DD>a work array. <DD>work array.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -401,8 +356,11 @@ Intent: <B>inout</B>.
Specified as: a rank one array of the same type of <IMG Specified as: a rank one array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> with the ALT="$x$"> and <IMG
TARGET attribute. WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> with
the TARGET attribute.
<P> <P>
</DD> </DD>
@ -410,12 +368,10 @@ TARGET attribute.
<DD> <DD>
</DD> </DD>
<DT><STRONG>y</STRONG></DT> <DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix <DD>the local portion of result matrix <IMG
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png" SRC="img21.png"
ALT="$y$">. ALT="$y$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -425,7 +381,7 @@ Intent: <B>inout</B>.
<BR> <BR>
Specified as: an array of rank one or two Specified as: an array of rank one or two
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>. Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -443,26 +399,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html953" <A NAME="tex2html958"
HREF="node60.html"> HREF="node60.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html949" <A NAME="tex2html954"
HREF="node46.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html945" <A NAME="tex2html948"
HREF="node58.html"> HREF="node58.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html951" <A NAME="tex2html956"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html954" <B> Next:</B> <A NAME="tex2html959"
HREF="node60.html">Communication routines</A> HREF="node60.html">psb_spsm Triangular</A>
<B> Up:</B> <A NAME="tex2html950" <B> Up:</B> <A NAME="tex2html955"
HREF="node46.html">Computational routines</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html946" <B> Previous:</B> <A NAME="tex2html949"
HREF="node58.html">psb_spmm Sparse</A> HREF="node58.html">psb_spnrmi Infinity</A>
&nbsp; <B> <A NAME="tex2html952" &nbsp; <B> <A NAME="tex2html957"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html249" <A NAME="tex2html250"
HREF="node7.html"> HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html245" <A NAME="tex2html246"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html239" <A NAME="tex2html240"
HREF="node5.html"> HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html247" <A NAME="tex2html248"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html250" <B> Next:</B> <A NAME="tex2html251"
HREF="node7.html">User-defined index mappings</A> HREF="node7.html">User-defined index mappings</A>
<B> Up:</B> <A NAME="tex2html246" <B> Up:</B> <A NAME="tex2html247"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html240" <B> Previous:</B> <A NAME="tex2html241"
HREF="node5.html">Library contents</A> HREF="node5.html">Library contents</A>
&nbsp; <B> <A NAME="tex2html248" &nbsp; <B> <A NAME="tex2html249"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
@ -249,32 +249,32 @@ from optimal.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> <A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL> <UL>
<LI><A NAME="tex2html251" <LI><A NAME="tex2html252"
HREF="node7.html">User-defined index mappings</A> HREF="node7.html">User-defined index mappings</A>
</UL> </UL>
<!--End of Table of Child-Links--> <!--End of Table of Child-Links-->
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html249" <A NAME="tex2html250"
HREF="node7.html"> HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html245" <A NAME="tex2html246"
HREF="node3.html"> HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html239" <A NAME="tex2html240"
HREF="node5.html"> HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html247" <A NAME="tex2html248"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html250" <B> Next:</B> <A NAME="tex2html251"
HREF="node7.html">User-defined index mappings</A> HREF="node7.html">User-defined index mappings</A>
<B> Up:</B> <A NAME="tex2html246" <B> Up:</B> <A NAME="tex2html247"
HREF="node3.html">General overview</A> HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html240" <B> Previous:</B> <A NAME="tex2html241"
HREF="node5.html">Library contents</A> HREF="node5.html">Library contents</A>
&nbsp; <B> <A NAME="tex2html248" &nbsp; <B> <A NAME="tex2html249"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Communication routines</TITLE> <TITLE>psb_spsm -- Triangular System Solve</TITLE>
<META NAME="description" CONTENT="Communication routines"> <META NAME="description" CONTENT="psb_spsm -- Triangular System Solve">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,63 +18,453 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node65.html"> <LINK REL="previous" HREF="node59.html">
<LINK REL="previous" HREF="node46.html"> <LINK REL="up" HREF="node47.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node61.html"> <LINK REL="next" HREF="node61.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html965" <A NAME="tex2html968"
HREF="node61.html"> HREF="node61.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html961" <A NAME="tex2html964"
HREF="userhtml.html"> HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html955" <A NAME="tex2html960"
HREF="node59.html"> HREF="node59.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html963" <A NAME="tex2html966"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html966" <B> Next:</B> <A NAME="tex2html969"
HREF="node61.html">psb_halo Halo</A> HREF="node61.html">Communication routines</A>
<B> Up:</B> <A NAME="tex2html962" <B> Up:</B> <A NAME="tex2html965"
HREF="userhtml.html">userhtml</A> HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html956" <B> Previous:</B> <A NAME="tex2html961"
HREF="node59.html">psb_spsm Triangular</A> HREF="node59.html">psb_spmm Sparse</A>
&nbsp; <B> <A NAME="tex2html964" &nbsp; <B> <A NAME="tex2html967"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION00060000000000000000"> <H2><A NAME="SECTION000513000000000000000">
Communication routines</A> psb_spsm -- Triangular System Solve</A>
</H1> </H2>
The routines in this chapter implement various global communication operators
on vectors associated with a discretization mesh. For auxiliary communication
routines not tied to a discretization space see&nbsp;<A HREF="node65.html#sec:toolsrout">6</A>.
<P> <P>
<BR><HR> This subroutine computes the Triangular System Solve:
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> <P>
<P></P>
<UL> <DIV ALIGN="CENTER">
<LI><A NAME="tex2html967" <!-- MATH
HREF="node61.html">psb_halo -- Halo Data Communication</A> \begin{eqnarray*}
<LI><A NAME="tex2html968" y &\leftarrow& \alpha T^{-1} x + \beta y\\
HREF="node62.html">psb_ovrl -- Overlap Update</A> y &\leftarrow& \alpha D T^{-1} x + \beta y\\
<LI><A NAME="tex2html969" y &\leftarrow& \alpha T^{-1} D x + \beta y\\
HREF="node63.html">psb_gather -- Gather Global Dense Matrix</A> y &\leftarrow& \alpha T^{-T} x + \beta y\\
<LI><A NAME="tex2html970" y &\leftarrow& \alpha D T^{-T} x + \beta y\\
HREF="node64.html">psb_scatter -- Scatter Global Dense Matrix</A> y &\leftarrow& \alpha T^{-T} D x + \beta y\\
</UL> y &\leftarrow& \alpha T^{-H} x + \beta y\\
<!--End of Table of Child-Links--> y &\leftarrow& \alpha D T^{-H} x + \beta y\\
<BR><HR> y &\leftarrow& \alpha T^{-H} D x + \beta y\\
\end{eqnarray*}
-->
<IMG
WIDTH="160" HEIGHT="239" BORDER="0"
SRC="img50.png"
ALT="\begin{eqnarray*}
y &amp;\leftarrow&amp; \alpha T^{-1} x + \beta y\\
y &amp;\leftarrow&amp; \al...
...-H} x + \beta y\\
y &amp;\leftarrow&amp; \alpha T^{-H} D x + \beta y\\
\end{eqnarray*}"></DIV>
<BR CLEAR="ALL"><P></P>
<P>
where:
<DL>
<DT><STRONG><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></STRONG></DT>
<DD>is the global dense matrix <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img47.png"
ALT="$x_{:, :}$">
</DD>
<DT><STRONG><IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"></STRONG></DT>
<DD>is the global dense matrix <IMG
WIDTH="23" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img48.png"
ALT="$y_{:, :}$">
</DD>
<DT><STRONG><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png"
ALT="$T$"></STRONG></DT>
<DD>is the global sparse block triangular submatrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png"
ALT="$T$">
</DD>
<DT><STRONG><IMG
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img52.png"
ALT="$D$"></STRONG></DT>
<DD>is the scaling diagonal matrix.
</DD>
</DL>
<P>
<PRE>
call psb_spsm(alpha, t, x, beta, y, desc_a, info)
call psb_spsm(alpha, t, x, beta, y, desc_a, info,&amp;
&amp; trans, unit, choice, diag, work)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1825"></A>
<TABLE>
<CAPTION><STRONG>Table 13:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png"
ALT="$T$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">, <IMG
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img52.png"
ALT="$D$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">, <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_spsm</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spsm</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_spsm</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_spsm</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>.
</DD>
<DT><STRONG>t</STRONG></DT>
<DD>the global portion of the sparse matrix
<IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img51.png"
ALT="$T$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an object type specified in
&#167;&nbsp;<A HREF="node9.html#sec:datastruct">3</A>.
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>. The rank of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>beta</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90spsm">13</A>.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>trans</STRONG></DT>
<DD>specify with <EM>unitd</EM> the operation to perform.
<DL>
<DT><STRONG>trans = 'N'</STRONG></DT>
<DD>the operation is with no transposed matrix
</DD>
<DT><STRONG>trans = 'T'</STRONG></DT>
<DD>the operation is with transposed matrix.
</DD>
<DT><STRONG>trans = 'C'</STRONG></DT>
<DD>the operation is with conjugate transposed matrix.
</DD>
</DL>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="79" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img49.png"
ALT="$trans = N$">
<BR>
Specified as: a character variable.
</DD>
<DT><STRONG>unitd</STRONG></DT>
<DD>specify with <EM>trans</EM> the operation to perform.
<DL>
<DT><STRONG>unitd = 'U'</STRONG></DT>
<DD>the operation is with no scaling
</DD>
<DT><STRONG>unitd = 'L'</STRONG></DT>
<DD>the operation is with left scaling
</DD>
<DT><STRONG>unitd = 'R'</STRONG></DT>
<DD>the operation is with right scaling.
</DD>
</DL>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="76" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img53.png"
ALT="$unitd = U$">
<BR>
Specified as: a character variable.
</DD>
<DT><STRONG>choice</STRONG></DT>
<DD>specifies the update of overlap elements to be performed
on exit:
<DL>
<DT></DT>
<DD><code>psb_none_</code>
</DD>
<DT></DT>
<DD><code>psb_sum_</code>
</DD>
<DT></DT>
<DD><code>psb_avg_</code>
</DD>
<DT></DT>
<DD><code>psb_square_root_</code>
</DD>
</DL>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <code>psb_avg_</code>
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>diag</STRONG></DT>
<DD>the diagonal scaling matrix.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <!-- MATH
$diag(1) = 1 (no scaling)$
-->
<IMG
WIDTH="165" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img54.png"
ALT="$diag(1) = 1 (no scaling)$">
<BR>
Specified as: a rank one array containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90spsm">13</A>.
</DD>
<DT><STRONG>work</STRONG></DT>
<DD>a work array.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> with the
TARGET attribute.
<P>
</DD>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an array of rank one or two
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spsm">13</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html968"
HREF="node61.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html964"
HREF="node47.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html960"
HREF="node59.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html966"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html969"
HREF="node61.html">Communication routines</A>
<B> Up:</B> <A NAME="tex2html965"
HREF="node47.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html961"
HREF="node59.html">psb_spmm Sparse</A>
&nbsp; <B> <A NAME="tex2html967"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_halo -- Halo Data Communication</TITLE> <TITLE>Communication routines</TITLE>
<META NAME="description" CONTENT="psb_halo -- Halo Data Communication"> <META NAME="description" CONTENT="Communication routines">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,640 +18,63 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node62.html"> <LINK REL="next" HREF="node66.html">
<LINK REL="previous" HREF="node60.html"> <LINK REL="previous" HREF="node47.html">
<LINK REL="up" HREF="node60.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node62.html"> <LINK REL="next" HREF="node62.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html981" <A NAME="tex2html980"
HREF="node62.html"> HREF="node62.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html977" <A NAME="tex2html976"
HREF="node60.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html971" <A NAME="tex2html970"
HREF="node60.html"> HREF="node60.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html979" <A NAME="tex2html978"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html982" <B> Next:</B> <A NAME="tex2html981"
HREF="node62.html">psb_ovrl Overlap</A> HREF="node62.html">psb_halo Halo</A>
<B> Up:</B> <A NAME="tex2html978" <B> Up:</B> <A NAME="tex2html977"
HREF="node60.html">Communication routines</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html972" <B> Previous:</B> <A NAME="tex2html971"
HREF="node60.html">Communication routines</A> HREF="node60.html">psb_spsm Triangular</A>
&nbsp; <B> <A NAME="tex2html980" &nbsp; <B> <A NAME="tex2html979"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00061000000000000000"> <H1><A NAME="SECTION00060000000000000000">
psb_halo -- Halo Data Communication</A> Communication routines</A>
</H2> </H1>
The routines in this chapter implement various global communication operators
on vectors associated with a discretization mesh. For auxiliary communication
routines not tied to a discretization space see&nbsp;<A HREF="node66.html#sec:toolsrout">6</A>.
<P> <P>
These subroutines gathers the values of the halo <BR><HR>
elements, and (optionally) scale the result: <!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<P>
<BR><P></P> <UL>
<DIV ALIGN="CENTER"> <LI><A NAME="tex2html982"
<!-- MATH HREF="node62.html">psb_halo -- Halo Data Communication</A>
\begin{displaymath} <LI><A NAME="tex2html983"
x \leftarrow \alpha x HREF="node63.html">psb_ovrl -- Overlap Update</A>
\end{displaymath} <LI><A NAME="tex2html984"
--> HREF="node64.html">psb_gather -- Gather Global Dense Matrix</A>
<LI><A NAME="tex2html985"
<IMG HREF="node65.html">psb_scatter -- Scatter Global Dense Matrix</A>
WIDTH="53" HEIGHT="24" BORDER="0" </UL>
SRC="img55.png" <!--End of Table of Child-Links-->
ALT="\begin{displaymath}x \leftarrow \alpha x \end{displaymath}"> <BR><HR>
</DIV>
<BR CLEAR="ALL">
<P></P>
where:
<DL>
<DT><STRONG><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></STRONG></DT>
<DD>is a global dense submatrix.
</DD>
</DL>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="3183"></A>
<TABLE>
<CAPTION><STRONG>Table 14:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR>
<TR><TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT">psb_halo</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_halo</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_halo</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_halo</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_halo</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR>
<P>
<BR>
<IMG
WIDTH="461" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img56.png"
ALT="\begin{lstlisting}
call psb_halo(x, desc_a, info)
call psb_halo(x, desc_a, info, alpha, work, data)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>global dense matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90halo">14</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Default: <IMG
WIDTH="73" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img57.png"
ALT="$alpha = 1 $">
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90halo">14</A>.
</DD>
<DT><STRONG>work</STRONG></DT>
<DD>the work array.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>data</STRONG></DT>
<DD>index list selector.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Specified as: an integer. Values:<code>psb_comm_halo_</code>,<code>psb_comm_mov_</code>,
<code>psb_comm_ext_</code>, default: <code>psb_comm_halo_</code>. Chooses the
index list on which to base the data exchange.
<P>
</DD>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>global dense result matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Returned as: a rank one or two array
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90halo">14</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>the local portion of result submatrix <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value that contains an error code.
</DD>
</DL>
<DIV ALIGN="CENTER"><A NAME="fig:try8x8"></A><A NAME="3185"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 7:</STRONG>
Sample discretization mesh.</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<IMG
WIDTH="357" HEIGHT="313" ALIGN="BOTTOM" BORDER="0"
SRC="img59.png"
ALT="\includegraphics[scale=0.45]{figures/try8x8.eps}">
<!-- MATH
$\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}$
-->
<IMG
WIDTH="1" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
SRC="img58.png"
ALT="\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
<FONT SIZE="+1"><B>Usage Example</B></FONT>
Consider the discretization mesh depicted in fig.&nbsp;<A HREF="#fig:try8x8">7</A>,
partitioned among two processes as shown by the dashed line; the data
distribution is such that each process will own 32 entries in the
index space, with a halo made of 8 entries placed at local indices 33
through 40. If process 0 assigns an initial value of 1 to its entries
in the <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> vector, and process 1 assigns a value of 2, then after a
call to <code>psb_halo</code> the contents of the local vectors will be the
following:
<BR>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 ALIGN="CENTER">
<TR><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
Process 0</FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
Process 1</FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
I </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> I </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 49 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 50 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 51 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 52 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 53 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 54 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 55 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 56 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 57 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 58 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 59 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 60 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 61 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 62 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 63 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 64 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
</TABLE></DIV>
<BR>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html981"
HREF="node62.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html977"
HREF="node60.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html971"
HREF="node60.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html979"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html982"
HREF="node62.html">psb_ovrl Overlap</A>
<B> Up:</B> <A NAME="tex2html978"
HREF="node60.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html972"
HREF="node60.html">Communication routines</A>
&nbsp; <B> <A NAME="tex2html980"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_ovrl -- Overlap Update</TITLE> <TITLE>psb_halo -- Halo Data Communication</TITLE>
<META NAME="description" CONTENT="psb_ovrl -- Overlap Update"> <META NAME="description" CONTENT="psb_halo -- Halo Data Communication">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,57 +20,58 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node63.html"> <LINK REL="next" HREF="node63.html">
<LINK REL="previous" HREF="node61.html"> <LINK REL="previous" HREF="node61.html">
<LINK REL="up" HREF="node60.html"> <LINK REL="up" HREF="node61.html">
<LINK REL="next" HREF="node63.html"> <LINK REL="next" HREF="node63.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html993" <A NAME="tex2html996"
HREF="node63.html"> HREF="node63.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html989" <A NAME="tex2html992"
HREF="node60.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html983" <A NAME="tex2html986"
HREF="node61.html"> HREF="node61.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html991" <A NAME="tex2html994"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html994" <B> Next:</B> <A NAME="tex2html997"
HREF="node63.html">psb_gather Gather</A> HREF="node63.html">psb_ovrl Overlap</A>
<B> Up:</B> <A NAME="tex2html990" <B> Up:</B> <A NAME="tex2html993"
HREF="node60.html">Communication routines</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html984" <B> Previous:</B> <A NAME="tex2html987"
HREF="node61.html">psb_halo Halo</A> HREF="node61.html">Communication routines</A>
&nbsp; <B> <A NAME="tex2html992" &nbsp; <B> <A NAME="tex2html995"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00062000000000000000"> <H2><A NAME="SECTION00061000000000000000">
psb_ovrl -- Overlap Update</A> psb_halo -- Halo Data Communication</A>
</H2> </H2>
<P> <P>
These subroutines applies an overlap operator to the input vector: These subroutines gathers the values of the halo
elements, and (optionally) scale the result:
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
x \leftarrow Q x x \leftarrow \alpha x
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="55" HEIGHT="27" BORDER="0" WIDTH="53" HEIGHT="24" BORDER="0"
SRC="img60.png" SRC="img55.png"
ALT="\begin{displaymath}x \leftarrow Q x \end{displaymath}"> ALT="\begin{displaymath}x \leftarrow \alpha x \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
@ -80,52 +81,42 @@ where:
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></STRONG></DT> ALT="$x$"></STRONG></DT>
<DD>is the global dense submatrix <IMG <DD>is a global dense submatrix.
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">
</DD>
<DT><STRONG><IMG
WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img61.png"
ALT="$Q$"></STRONG></DT>
<DD>is the overlap operator; it is the composition of two
operators <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img62.png"
ALT="$ P_a$"> and <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img63.png"
ALT="$ P^{T}$">.
</DD> </DD>
</DL> </DL>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="3187"></A> <DIV ALIGN="CENTER"><A NAME="3204"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 15:</STRONG> <CAPTION><STRONG>Table 14:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">, <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT">psb_halo</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_ovrl</TD> <TD ALIGN="LEFT">psb_halo</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_ovrl</TD> <TD ALIGN="LEFT">psb_halo</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_ovrl</TD> <TD ALIGN="LEFT">psb_halo</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_ovrl</TD> <TD ALIGN="LEFT">psb_halo</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -137,13 +128,13 @@ Data types</CAPTION>
<P> <P>
<BR> <BR>
<IMG <IMG
WIDTH="576" HEIGHT="35" ALIGN="BOTTOM" BORDER="0" WIDTH="461" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img64.png" SRC="img56.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call psb_ovrl(x, desc_a, info) call psb_halo(x, desc_a, info)
call psb_ovrl(x, desc_a, info, update=update_type, work=work) call psb_halo(x, desc_a, info, alpha, work, data)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
<P> <P>
<DL> <DL>
@ -167,7 +158,7 @@ Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90ovrl">15</A>. Table&nbsp;<A HREF="#tab:f90halo">14</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -180,40 +171,24 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>update</STRONG></DT> <DT><STRONG>alpha</STRONG></DT>
<DD>Update operator. <DD>the scalar <IMG
<BR><DL> WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
<DT><STRONG>update = psb_none_</STRONG></DT> SRC="img22.png"
<DD>Do nothing; ALT="$\alpha$">.
</DD> <BR>
<DT><STRONG>update = psb_add_</STRONG></DT>
<DD>Sum overlap entries, i.e. apply <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img65.png"
ALT="$P^T$">;
</DD>
<DT><STRONG>update = psb_avg_</STRONG></DT>
<DD>Average overlap entries, i.e. apply <IMG
WIDTH="44" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
SRC="img66.png"
ALT="$P_aP^T$">;
</DD>
</DL>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Intent: <B>in</B>. Type: <B>optional</B>
<BR> <BR>
Default: <!-- MATH Intent: <B>in</B>.
$update\_type = psb\_avg\_$
-->
<IMG
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img67.png"
ALT="$update\_type = psb\_avg\_ $">
<BR> <BR>
Scope: <B>global</B> Default: <IMG
WIDTH="73" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img57.png"
ALT="$alpha = 1 $">
<BR> <BR>
Specified as: a integer variable. Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90halo">14</A>.
</DD> </DD>
<DT><STRONG>work</STRONG></DT> <DT><STRONG>work</STRONG></DT>
<DD>the work array. <DD>the work array.
@ -224,10 +199,21 @@ Type: <B>optional</B>
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a one dimensional array of the same type of <IMG Specified as: a rank one array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$">. ALT="$x$">.
</DD>
<DT><STRONG>data</STRONG></DT>
<DD>index list selector.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Specified as: an integer. Values:<code>psb_comm_halo_</code>,<code>psb_comm_mov_</code>,
<code>psb_comm_ext_</code>, default: <code>psb_comm_halo_</code>. Chooses the
index list on which to base the data exchange.
<P> <P>
</DD> </DD>
@ -246,12 +232,15 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: an array of rank one or two Returned as: a rank one or two array
containing numbers of type specified in containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90ovrl">15</A>. Table&nbsp;<A HREF="#tab:f90halo">14</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>the local portion of result submatrix <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
@ -259,80 +248,46 @@ Type: <B>required</B>
<BR> <BR>
Intent: <B>out</B>. Intent: <B>out</B>.
<BR> <BR>
An integer value; 0 means no error has been detected. An integer value that contains an error code.
</DD> </DD>
</DL> </DL>
<P> <DIV ALIGN="CENTER"><A NAME="fig:try8x8"></A><A NAME="3206"></A>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>If there is no overlap in the data distribution associated with
the descriptor, no operations are performed;
</LI>
<LI>The operator <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img63.png"
ALT="$ P^{T}$"> performs the reduction sum of overlap
elements; it is a ``prolongation'' operator <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img65.png"
ALT="$P^T$"> that
replicates overlap elements, accounting for the physical replication
of data;
</LI>
<LI>The operator <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img62.png"
ALT="$ P_a$"> performs a scaling on the overlap elements by
the amount of replication; thus, when combined with the reduction
operator, it implements the average of replicated elements over all of
their instances.
</LI>
</OL>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:try8x8_ov"></A><A NAME="3189"></A>
<TABLE> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 7:</STRONG>
Sample discretization mesh.</CAPTION> Sample discretization mesh.</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<IMG <IMG
WIDTH="533" HEIGHT="453" ALIGN="BOTTOM" BORDER="0" WIDTH="357" HEIGHT="313" ALIGN="BOTTOM" BORDER="0"
SRC="img69.png" SRC="img59.png"
ALT="\includegraphics[scale=0.65]{figures/try8x8_ov.eps}"> ALT="\includegraphics[scale=0.45]{figures/try8x8.eps}">
<!-- MATH <!-- MATH
$\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}$ $\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}$
--> -->
<IMG <IMG
WIDTH="76" HEIGHT="2" ALIGN="BOTTOM" BORDER="0" WIDTH="1" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
SRC="img68.png" SRC="img58.png"
ALT="\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}"> ALT="\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}">
</DIV></TD></TR> </DIV></TD></TR>
</TABLE> </TABLE>
</DIV> </DIV>
<FONT SIZE="+1"><B>Example of use</B></FONT> <P>
Consider the discretization mesh depicted in fig.&nbsp;<A HREF="#fig:try8x8_ov">8</A>, <FONT SIZE="+1"><B>Usage Example</B></FONT>
partitioned among two processes as shown by the dashed lines, with an Consider the discretization mesh depicted in fig.&nbsp;<A HREF="#fig:try8x8">7</A>,
overlap of 1 extra layer with respect to the partition of partitioned among two processes as shown by the dashed line; the data
fig.&nbsp;<A HREF="node61.html#fig:try8x8">7</A>; the data distribution is such that each process will own 32 entries in the
distribution is such that each process will own 40 entries in the index space, with a halo made of 8 entries placed at local indices 33
index space, with an overlap of 16 entries placed at local indices 25 through 40. If process 0 assigns an initial value of 1 to its entries
through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries
in the <IMG in the <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png" SRC="img20.png"
ALT="$x$"> vector, and process 1 assigns a value of 2, then after a ALT="$x$"> vector, and process 1 assigns a value of 2, then after a
call to <code>psb_ovrl</code> with <code>psb_avg_</code> and a call to call to <code>psb_halo</code> the contents of the local vectors will be the
<code>psb_halo_</code> the contents of the local vectors will be the following:
following (showing a transition among the two subdomains)
<P>
<BR> <BR>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 ALIGN="CENTER"> <TABLE CELLPADDING=3 ALIGN="CENTER">
@ -355,7 +310,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
2 </FONT></TD> 2 </FONT></TD>
@ -363,7 +318,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
3 </FONT></TD> 3 </FONT></TD>
@ -371,7 +326,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
4 </FONT></TD> 4 </FONT></TD>
@ -379,7 +334,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
5 </FONT></TD> 5 </FONT></TD>
@ -387,7 +342,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
6 </FONT></TD> 6 </FONT></TD>
@ -395,7 +350,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
7 </FONT></TD> 7 </FONT></TD>
@ -403,7 +358,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
8 </FONT></TD> 8 </FONT></TD>
@ -411,7 +366,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
9 </FONT></TD> 9 </FONT></TD>
@ -510,7 +465,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
21 </FONT></TD> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
@ -518,7 +473,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
22 </FONT></TD> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
@ -526,7 +481,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
23 </FONT></TD> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
@ -534,7 +489,7 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
24 </FONT></TD> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
@ -542,195 +497,131 @@ Process 1</FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
25 </FONT></TD> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 57 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 57 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
26 </FONT></TD> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 58 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 58 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
27 </FONT></TD> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 59 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 59 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
28 </FONT></TD> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 60 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 60 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
29 </FONT></TD> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 61 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 61 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
30 </FONT></TD> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 62 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 62 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
31 </FONT></TD> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 63 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 63 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
32 </FONT></TD> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 64 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 64 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
33 </FONT></TD> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
34 </FONT></TD> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
35 </FONT></TD> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
36 </FONT></TD> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
37 </FONT></TD> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
38 </FONT></TD> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
39 </FONT></TD> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1"> <TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
40 </FONT></TD> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD> <TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD> <TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR> </TR>
</TABLE></DIV> </TABLE></DIV>
@ -739,26 +630,26 @@ Process 1</FONT></TD>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html993" <A NAME="tex2html996"
HREF="node63.html"> HREF="node63.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html989" <A NAME="tex2html992"
HREF="node60.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html983" <A NAME="tex2html986"
HREF="node61.html"> HREF="node61.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html991" <A NAME="tex2html994"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html994" <B> Next:</B> <A NAME="tex2html997"
HREF="node63.html">psb_gather Gather</A> HREF="node63.html">psb_ovrl Overlap</A>
<B> Up:</B> <A NAME="tex2html990" <B> Up:</B> <A NAME="tex2html993"
HREF="node60.html">Communication routines</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html984" <B> Previous:</B> <A NAME="tex2html987"
HREF="node61.html">psb_halo Halo</A> HREF="node61.html">Communication routines</A>
&nbsp; <B> <A NAME="tex2html992" &nbsp; <B> <A NAME="tex2html995"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_gather -- Gather Global Dense Matrix</TITLE> <TITLE>psb_ovrl -- Overlap Update</TITLE>
<META NAME="description" CONTENT="psb_gather -- Gather Global Dense Matrix"> <META NAME="description" CONTENT="psb_ovrl -- Overlap Update">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,123 +20,112 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node64.html"> <LINK REL="next" HREF="node64.html">
<LINK REL="previous" HREF="node62.html"> <LINK REL="previous" HREF="node62.html">
<LINK REL="up" HREF="node60.html"> <LINK REL="up" HREF="node61.html">
<LINK REL="next" HREF="node64.html"> <LINK REL="next" HREF="node64.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1005" <A NAME="tex2html1008"
HREF="node64.html"> HREF="node64.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1001" <A NAME="tex2html1004"
HREF="node60.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html995" <A NAME="tex2html998"
HREF="node62.html"> HREF="node62.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1003" <A NAME="tex2html1006"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1006" <B> Next:</B> <A NAME="tex2html1009"
HREF="node64.html">psb_scatter Scatter</A> HREF="node64.html">psb_gather Gather</A>
<B> Up:</B> <A NAME="tex2html1002" <B> Up:</B> <A NAME="tex2html1005"
HREF="node60.html">Communication routines</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html996" <B> Previous:</B> <A NAME="tex2html999"
HREF="node62.html">psb_ovrl Overlap</A> HREF="node62.html">psb_halo Halo</A>
&nbsp; <B> <A NAME="tex2html1004" &nbsp; <B> <A NAME="tex2html1007"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00063000000000000000"> <H2><A NAME="SECTION00062000000000000000">
psb_gather -- Gather Global Dense Matrix</A> psb_ovrl -- Overlap Update</A>
</H2> </H2>
<P> <P>
These subroutines collect the portions of global dense matrix These subroutines applies an overlap operator to the input vector:
distributed over all process into one single array stored on one
process.
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
glob\_x \leftarrow collect(loc\_x_i) x \leftarrow Q x
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="162" HEIGHT="28" BORDER="0" WIDTH="55" HEIGHT="27" BORDER="0"
SRC="img70.png" SRC="img60.png"
ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}"> ALT="\begin{displaymath}x \leftarrow Q x \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
where: where:
<DL> <DL>
<DT><STRONG><IMG <DT><STRONG><IMG
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img71.png" SRC="img20.png"
ALT="$glob\_x$"></STRONG></DT> ALT="$x$"></STRONG></DT>
<DD>is the global submatrix <!-- MATH <DD>is the global dense submatrix <IMG
$glob\_x_{1:m,1:n}$ WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
--> SRC="img20.png"
<IMG ALT="$x$">
WIDTH="90" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img72.png"
ALT="$glob\_x_{1:m,1:n}$">
</DD>
<DT><STRONG><IMG
WIDTH="44" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img73.png"
ALT="$loc\_x_i$"></STRONG></DT>
<DD>is the local portion of global dense matrix on
process <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
ALT="$i$">.
</DD> </DD>
<DT><STRONG><IMG <DT><STRONG><IMG
WIDTH="48" HEIGHT="14" ALIGN="BOTTOM" BORDER="0" WIDTH="17" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img74.png" SRC="img61.png"
ALT="$collect$"></STRONG></DT> ALT="$Q$"></STRONG></DT>
<DD>is the collect function. <DD>is the overlap operator; it is the composition of two
operators <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img62.png"
ALT="$ P_a$"> and <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img63.png"
ALT="$ P^{T}$">.
</DD> </DD>
</DL> </DL>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="3191"></A> <DIV ALIGN="CENTER"><A NAME="3208"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 16:</STRONG> <CAPTION><STRONG>Table 15:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER"> <TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG <TR><TD ALIGN="LEFT"><IMG
WIDTH="34" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img75.png" SRC="img20.png"
ALT="$x_i, y$"></TD> ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT">psb_gather</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_gather</TD> <TD ALIGN="LEFT">psb_ovrl</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_gather</TD> <TD ALIGN="LEFT">psb_ovrl</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_gather</TD> <TD ALIGN="LEFT">psb_ovrl</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_gather</TD> <TD ALIGN="LEFT">psb_ovrl</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -148,13 +137,13 @@ Data types</CAPTION>
<P> <P>
<BR> <BR>
<IMG <IMG
WIDTH="471" HEIGHT="35" ALIGN="BOTTOM" BORDER="0" WIDTH="576" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img76.png" SRC="img64.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call psb_gather(glob_x, loc_x, desc_a, info, root) call psb_ovrl(x, desc_a, info)
call psb_gather(glob_x, loc_x, desc_a, info, root) call psb_ovrl(x, desc_a, info, update=update_type, work=work)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
<P> <P>
<DL> <DL>
@ -164,21 +153,21 @@ call psb_gather(glob_x, loc_x, desc_a, info, root)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>loc_x</STRONG></DT> <DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix <DD>global dense matrix <IMG
<IMG WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" SRC="img20.png"
SRC="img71.png" ALT="$x$">.
ALT="$glob\_x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
indicated in Table&nbsp;<A HREF="#tab:gather">16</A>. containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90ovrl">15</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -191,43 +180,75 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>root</STRONG></DT> <DT><STRONG>update</STRONG></DT>
<DD>The process that holds the global copy. If <IMG <DD>Update operator.
WIDTH="75" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" <BR><DL>
SRC="img77.png" <DT><STRONG>update = psb_none_</STRONG></DT>
ALT="$root=-1$"> all <DD>Do nothing;
the processes will have a copy of the global vector. </DD>
<BR> <DT><STRONG>update = psb_add_</STRONG></DT>
<DD>Sum overlap entries, i.e. apply <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img65.png"
ALT="$P^T$">;
</DD>
<DT><STRONG>update = psb_avg_</STRONG></DT>
<DD>Average overlap entries, i.e. apply <IMG
WIDTH="44" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
SRC="img66.png"
ALT="$P_aP^T$">;
</DD>
</DL>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer variable <!-- MATH Default: <!-- MATH
$-1\le root\le np-1$ $update\_type = psb\_avg\_$
--> -->
<IMG <IMG
WIDTH="140" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png" SRC="img67.png"
ALT="$-1\le root\le np-1$">, default <IMG ALT="$update\_type = psb\_avg\_ $">
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" <BR>
SRC="img79.png" Scope: <B>global</B>
ALT="$-1$">. <BR>
Specified as: a integer variable.
</DD>
<DT><STRONG>work</STRONG></DT>
<DD>the work array.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a one dimensional array of the same type of <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<P>
</DD> </DD>
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>glob_x</STRONG></DT> <DT><STRONG>x</STRONG></DT>
<DD>The array where the local parts must be gathered. <DD>global dense result matrix <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>out</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a rank one or two array with the <code>ALLOCATABLE</code> attribute. Specified as: an array of rank one or two
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90ovrl">15</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -242,29 +263,502 @@ An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>If there is no overlap in the data distribution associated with
the descriptor, no operations are performed;
</LI>
<LI>The operator <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img63.png"
ALT="$ P^{T}$"> performs the reduction sum of overlap
elements; it is a ``prolongation'' operator <IMG
WIDTH="27" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img65.png"
ALT="$P^T$"> that
replicates overlap elements, accounting for the physical replication
of data;
</LI>
<LI>The operator <IMG
WIDTH="22" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img62.png"
ALT="$ P_a$"> performs a scaling on the overlap elements by
the amount of replication; thus, when combined with the reduction
operator, it implements the average of replicated elements over all of
their instances.
</LI>
</OL>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:try8x8_ov"></A><A NAME="3210"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8:</STRONG>
Sample discretization mesh.</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<IMG
WIDTH="533" HEIGHT="453" ALIGN="BOTTOM" BORDER="0"
SRC="img69.png"
ALT="\includegraphics[scale=0.65]{figures/try8x8_ov.eps}">
<!-- MATH
$\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}$
-->
<IMG
WIDTH="76" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
SRC="img68.png"
ALT="\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}">
</DIV></TD></TR>
</TABLE>
</DIV>
<FONT SIZE="+1"><B>Example of use</B></FONT>
Consider the discretization mesh depicted in fig.&nbsp;<A HREF="#fig:try8x8_ov">8</A>,
partitioned among two processes as shown by the dashed lines, with an
overlap of 1 extra layer with respect to the partition of
fig.&nbsp;<A HREF="node62.html#fig:try8x8">7</A>; the data
distribution is such that each process will own 40 entries in the
index space, with an overlap of 16 entries placed at local indices 25
through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries
in the <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> vector, and process 1 assigns a value of 2, then after a
call to <code>psb_ovrl</code> with <code>psb_avg_</code> and a call to
<code>psb_halo_</code> the contents of the local vectors will be the
following (showing a transition among the two subdomains)
<P>
<BR>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 ALIGN="CENTER">
<TR><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
Process 0</FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="CENTER" COLSPAN=3><FONT SIZE="-1">
Process 1</FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
I </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> I </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> GLOB(I) </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> X(I) </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 1 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 2 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 3 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 4 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 5 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 6 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 7 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 8 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 9 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 10 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 11 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 12 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 13 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 14 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 15 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 16 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 49 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 50 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 51 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 52 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 53 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 54 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 55 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 56 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 57 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 58 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 59 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 60 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 61 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 62 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 63 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 64 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 33 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 25 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 34 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 26 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 35 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 27 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 36 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 28 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 37 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 29 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 38 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 30 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 39 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 31 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 40 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 32 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.5 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 41 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 17 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 42 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 18 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 43 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 19 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 44 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 20 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 45 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 21 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 46 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 22 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 47 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 23 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
<TD ALIGN="LEFT">&nbsp;</TD><TD ALIGN="RIGHT"><FONT SIZE="-1"> 48 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 24 </FONT></TD>
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
</TR>
</TABLE></DIV>
<BR>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1005" <A NAME="tex2html1008"
HREF="node64.html"> HREF="node64.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1001" <A NAME="tex2html1004"
HREF="node60.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html995" <A NAME="tex2html998"
HREF="node62.html"> HREF="node62.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1003" <A NAME="tex2html1006"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1006" <B> Next:</B> <A NAME="tex2html1009"
HREF="node64.html">psb_scatter Scatter</A> HREF="node64.html">psb_gather Gather</A>
<B> Up:</B> <A NAME="tex2html1002" <B> Up:</B> <A NAME="tex2html1005"
HREF="node60.html">Communication routines</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html996" <B> Previous:</B> <A NAME="tex2html999"
HREF="node62.html">psb_ovrl Overlap</A> HREF="node62.html">psb_halo Halo</A>
&nbsp; <B> <A NAME="tex2html1004" &nbsp; <B> <A NAME="tex2html1007"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_scatter -- Scatter Global Dense Matrix</TITLE> <TITLE>psb_gather -- Gather Global Dense Matrix</TITLE>
<META NAME="description" CONTENT="psb_scatter -- Scatter Global Dense Matrix"> <META NAME="description" CONTENT="psb_gather -- Gather Global Dense Matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,59 +18,61 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node65.html">
<LINK REL="previous" HREF="node63.html"> <LINK REL="previous" HREF="node63.html">
<LINK REL="up" HREF="node60.html"> <LINK REL="up" HREF="node61.html">
<LINK REL="next" HREF="node65.html"> <LINK REL="next" HREF="node65.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1015" <A NAME="tex2html1020"
HREF="node65.html"> HREF="node65.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1011" <A NAME="tex2html1016"
HREF="node60.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1007" <A NAME="tex2html1010"
HREF="node63.html"> HREF="node63.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1013" <A NAME="tex2html1018"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1016" <B> Next:</B> <A NAME="tex2html1021"
HREF="node65.html">Data management routines</A> HREF="node65.html">psb_scatter Scatter</A>
<B> Up:</B> <A NAME="tex2html1012" <B> Up:</B> <A NAME="tex2html1017"
HREF="node60.html">Communication routines</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html1008" <B> Previous:</B> <A NAME="tex2html1011"
HREF="node63.html">psb_gather Gather</A> HREF="node63.html">psb_ovrl Overlap</A>
&nbsp; <B> <A NAME="tex2html1014" &nbsp; <B> <A NAME="tex2html1019"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00064000000000000000"> <H2><A NAME="SECTION00063000000000000000">
psb_scatter -- Scatter Global Dense Matrix</A> psb_gather -- Gather Global Dense Matrix</A>
</H2> </H2>
<P> <P>
These subroutines scatters the portions of global dense matrix owned These subroutines collect the portions of global dense matrix
by a process to all the processes in the processes grid. distributed over all process into one single array stored on one
process.
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
<!-- MATH <!-- MATH
\begin{displaymath} \begin{displaymath}
loc\_x_i \leftarrow scatter(glob\_x) glob\_x \leftarrow collect(loc\_x_i)
\end{displaymath} \end{displaymath}
--> -->
<IMG <IMG
WIDTH="167" HEIGHT="28" BORDER="0" WIDTH="162" HEIGHT="28" BORDER="0"
SRC="img80.png" SRC="img70.png"
ALT="\begin{displaymath}loc\_x_i \leftarrow scatter(glob\_x) \end{displaymath}"> ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}">
</DIV> </DIV>
<BR CLEAR="ALL"> <BR CLEAR="ALL">
<P></P> <P></P>
@ -80,7 +82,7 @@ where:
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img71.png" SRC="img71.png"
ALT="$glob\_x$"></STRONG></DT> ALT="$glob\_x$"></STRONG></DT>
<DD>is the global matrix <!-- MATH <DD>is the global submatrix <!-- MATH
$glob\_x_{1:m,1:n}$ $glob\_x_{1:m,1:n}$
--> -->
<IMG <IMG
@ -99,18 +101,18 @@ process <IMG
ALT="$i$">. ALT="$i$">.
</DD> </DD>
<DT><STRONG><IMG <DT><STRONG><IMG
WIDTH="54" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" WIDTH="48" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img81.png" SRC="img74.png"
ALT="$scatter$"></STRONG></DT> ALT="$collect$"></STRONG></DT>
<DD>is the scatter function. <DD>is the collect function.
</DD> </DD>
</DL> </DL>
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="3192"></A> <DIV ALIGN="CENTER"><A NAME="3212"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 17:</STRONG> <CAPTION><STRONG>Table 16:</STRONG>
Data types</CAPTION> Data types</CAPTION>
<TR><TD> <TR><TD>
<DIV ALIGN="CENTER"> <DIV ALIGN="CENTER">
@ -122,19 +124,19 @@ Data types</CAPTION>
<TD ALIGN="LEFT"><B>Subroutine</B></TD> <TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Integer</TD> <TR><TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT">psb_scatter</TD> <TD ALIGN="LEFT">psb_gather</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD> <TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_scatter</TD> <TD ALIGN="LEFT">psb_gather</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD> <TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_scatter</TD> <TD ALIGN="LEFT">psb_gather</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD> <TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_scatter</TD> <TD ALIGN="LEFT">psb_gather</TD>
</TR> </TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD> <TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_scatter</TD> <TD ALIGN="LEFT">psb_gather</TD>
</TR> </TR>
</TABLE> </TABLE>
</DIV> </DIV>
@ -146,11 +148,11 @@ Data types</CAPTION>
<P> <P>
<BR> <BR>
<IMG <IMG
WIDTH="480" HEIGHT="35" ALIGN="BOTTOM" BORDER="0" WIDTH="471" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img82.png" SRC="img76.png"
ALT="\begin{lstlisting} ALT="\begin{lstlisting}
call psb_scatter(glob_x, loc_x, desc_a, info, root) call psb_gather(glob_x, loc_x, desc_a, info, root)
call psb_scatter(glob_x, loc_x, desc_a, info, root) call psb_gather(glob_x, loc_x, desc_a, info, root)
\end{lstlisting}"> \end{lstlisting}">
<BR> <BR>
@ -162,16 +164,21 @@ call psb_scatter(glob_x, loc_x, desc_a, info, root)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>glob_x</STRONG></DT> <DT><STRONG>loc_x</STRONG></DT>
<DD>The array that must be scattered into local pieces. <DD>the local portion of global dense matrix
<IMG
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img71.png"
ALT="$glob\_x$">.
<BR> <BR>
Scope: <B>global</B> Scope: <B>local</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a rank one or two array. Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
indicated in Table&nbsp;<A HREF="#tab:gather">16</A>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications. <DD>contains data structures for communications.
@ -189,7 +196,7 @@ Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
WIDTH="75" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" WIDTH="75" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img77.png" SRC="img77.png"
ALT="$root=-1$"> all ALT="$root=-1$"> all
the processes have a copy of the global vector. the processes will have a copy of the global vector.
<BR> <BR>
Scope: <B>global</B> Scope: <B>global</B>
<BR> <BR>
@ -211,21 +218,16 @@ Specified as: an integer variable <!-- MATH
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>loc_x</STRONG></DT> <DT><STRONG>glob_x</STRONG></DT>
<DD>the local portion of global dense matrix <DD>The array where the local parts must be gathered.
<IMG
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img71.png"
ALT="$glob\_x$">.
<BR> <BR>
Scope: <B>local</B> Scope: <B>global</B>
<BR> <BR>
Type: <B>required</B> Type: <B>required</B>
<BR> <BR>
Intent: <B>out</B>. Intent: <B>out</B>.
<BR> <BR>
Specified as: a rank one or two array containing numbers of the type Specified as: a rank one or two array with the <code>ALLOCATABLE</code> attribute.
indicated in Table&nbsp;<A HREF="#tab:scatter">17</A>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -243,26 +245,26 @@ An integer value; 0 means no error has been detected.
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1015" <A NAME="tex2html1020"
HREF="node65.html"> HREF="node65.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1011" <A NAME="tex2html1016"
HREF="node60.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1007" <A NAME="tex2html1010"
HREF="node63.html"> HREF="node63.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1013" <A NAME="tex2html1018"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1016" <B> Next:</B> <A NAME="tex2html1021"
HREF="node65.html">Data management routines</A> HREF="node65.html">psb_scatter Scatter</A>
<B> Up:</B> <A NAME="tex2html1012" <B> Up:</B> <A NAME="tex2html1017"
HREF="node60.html">Communication routines</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html1008" <B> Previous:</B> <A NAME="tex2html1011"
HREF="node63.html">psb_gather Gather</A> HREF="node63.html">psb_ovrl Overlap</A>
&nbsp; <B> <A NAME="tex2html1014" &nbsp; <B> <A NAME="tex2html1019"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>Data management routines</TITLE> <TITLE>psb_scatter -- Scatter Global Dense Matrix</TITLE>
<META NAME="description" CONTENT="Data management routines"> <META NAME="description" CONTENT="psb_scatter -- Scatter Global Dense Matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,119 +18,253 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node93.html"> <LINK REL="previous" HREF="node64.html">
<LINK REL="previous" HREF="node60.html"> <LINK REL="up" HREF="node61.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node66.html"> <LINK REL="next" HREF="node66.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1027" <A NAME="tex2html1030"
HREF="node66.html"> HREF="node66.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1023" <A NAME="tex2html1026"
HREF="userhtml.html"> HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1017" <A NAME="tex2html1022"
HREF="node64.html"> HREF="node64.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1025" <A NAME="tex2html1028"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1028" <B> Next:</B> <A NAME="tex2html1031"
HREF="node66.html">psb_cdall Allocates</A> HREF="node66.html">Data management routines</A>
<B> Up:</B> <A NAME="tex2html1024" <B> Up:</B> <A NAME="tex2html1027"
HREF="userhtml.html">userhtml</A> HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html1018" <B> Previous:</B> <A NAME="tex2html1023"
HREF="node64.html">psb_scatter Scatter</A> HREF="node64.html">psb_gather Gather</A>
&nbsp; <B> <A NAME="tex2html1026" &nbsp; <B> <A NAME="tex2html1029"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H1><A NAME="SECTION00070000000000000000"></A> <H2><A NAME="SECTION00064000000000000000">
<A NAME="sec:toolsrout"></A> psb_scatter -- Scatter Global Dense Matrix</A>
</H2>
<P>
These subroutines scatters the portions of global dense matrix owned
by a process to all the processes in the processes grid.
<P>
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
loc\_x_i \leftarrow scatter(glob\_x)
\end{displaymath}
-->
<IMG
WIDTH="167" HEIGHT="28" BORDER="0"
SRC="img80.png"
ALT="\begin{displaymath}loc\_x_i \leftarrow scatter(glob\_x) \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
where:
<DL>
<DT><STRONG><IMG
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img71.png"
ALT="$glob\_x$"></STRONG></DT>
<DD>is the global matrix <!-- MATH
$glob\_x_{1:m,1:n}$
-->
<IMG
WIDTH="90" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img72.png"
ALT="$glob\_x_{1:m,1:n}$">
</DD>
<DT><STRONG><IMG
WIDTH="44" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img73.png"
ALT="$loc\_x_i$"></STRONG></DT>
<DD>is the local portion of global dense matrix on
process <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
ALT="$i$">.
</DD>
<DT><STRONG><IMG
WIDTH="54" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img81.png"
ALT="$scatter$"></STRONG></DT>
<DD>is the scatter function.
</DD>
</DL>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="3213"></A>
<TABLE>
<CAPTION><STRONG>Table 17:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT"><IMG
WIDTH="34" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img75.png"
ALT="$x_i, y$"></TD>
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
</TR>
<TR><TD ALIGN="LEFT">Integer</TD>
<TD ALIGN="LEFT">psb_scatter</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_scatter</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_scatter</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_scatter</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_scatter</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR> <BR>
Data management routines
</H1>
<P> <P>
<BR><HR> <BR>
<!--Table of Child-Links--> <IMG
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A> WIDTH="480" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img82.png"
ALT="\begin{lstlisting}
call psb_scatter(glob_x, loc_x, desc_a, info, root)
call psb_scatter(glob_x, loc_x, desc_a, info, root)
\end{lstlisting}">
<BR>
<UL> <P>
<LI><A NAME="tex2html1029" <DL>
HREF="node66.html">psb_cdall -- Allocates a communication descriptor</A> <DT><STRONG>Type:</STRONG></DT>
<LI><A NAME="tex2html1030" <DD>Synchronous.
HREF="node67.html">psb_cdins -- Communication descriptor insert </DD>
routine</A> <DT><STRONG><B>On Entry</B></STRONG></DT>
<LI><A NAME="tex2html1031" <DD>
HREF="node68.html">psb_cdasb -- Communication descriptor assembly </DD>
routine</A> <DT><STRONG>glob_x</STRONG></DT>
<LI><A NAME="tex2html1032" <DD>The array that must be scattered into local pieces.
HREF="node69.html">psb_cdcpy -- Copies a communication descriptor</A> <BR>
<LI><A NAME="tex2html1033" Scope: <B>global</B>
HREF="node70.html">psb_cdfree -- Frees a communication descriptor</A> <BR>
<LI><A NAME="tex2html1034" Type: <B>required</B>
HREF="node71.html">psb_cdbldext -- Build an extended communication <BR>
descriptor</A> Intent: <B>in</B>.
<LI><A NAME="tex2html1035" <BR>
HREF="node72.html">psb_spall -- Allocates a sparse matrix</A> Specified as: a rank one or two array.
<LI><A NAME="tex2html1036" </DD>
HREF="node73.html">psb_spins -- Insert a cloud of elements into a sparse <DT><STRONG>desc_a</STRONG></DT>
matrix</A> <DD>contains data structures for communications.
<LI><A NAME="tex2html1037" <BR>
HREF="node74.html">psb_spasb -- Sparse matrix assembly routine</A> Scope: <B>local</B>
<LI><A NAME="tex2html1038" <BR>
HREF="node75.html">psb_spfree -- Frees a sparse matrix</A> Type: <B>required</B>
<LI><A NAME="tex2html1039" <BR>
HREF="node76.html">psb_sprn -- Reinit sparse matrix structure for psblas Intent: <B>in</B>.
routines.</A> <BR>
<LI><A NAME="tex2html1040" Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
HREF="node77.html">psb_geall -- Allocates a dense matrix</A> </DD>
<LI><A NAME="tex2html1041" <DT><STRONG>root</STRONG></DT>
HREF="node78.html">psb_geins -- Dense matrix insertion routine</A> <DD>The process that holds the global copy. If <IMG
<LI><A NAME="tex2html1042" WIDTH="75" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
HREF="node79.html">psb_geasb -- Assembly a dense matrix</A> SRC="img77.png"
<LI><A NAME="tex2html1043" ALT="$root=-1$"> all
HREF="node80.html">psb_gefree -- Frees a dense matrix</A> the processes have a copy of the global vector.
<LI><A NAME="tex2html1044" <BR>
HREF="node81.html">psb_gelp -- Applies a left permutation to a dense Scope: <B>global</B>
matrix</A> <BR>
<LI><A NAME="tex2html1045" Type: <B>optional</B>
HREF="node82.html">psb_glob_to_loc -- Global to local indices <BR>
convertion</A> Intent: <B>in</B>.
<LI><A NAME="tex2html1046" <BR>
HREF="node83.html">psb_loc_to_glob -- Local to global indices Specified as: an integer variable <!-- MATH
conversion</A> $-1\le root\le np-1$
<LI><A NAME="tex2html1047" -->
HREF="node84.html">psb_is_owned -- </A> <IMG
<LI><A NAME="tex2html1048" WIDTH="140" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
HREF="node85.html">psb_owned_index -- </A> SRC="img78.png"
<LI><A NAME="tex2html1049" ALT="$-1\le root\le np-1$">, default <IMG
HREF="node86.html">psb_is_local -- </A> WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
<LI><A NAME="tex2html1050" SRC="img79.png"
HREF="node87.html">psb_local_index -- </A> ALT="$-1$">.
<LI><A NAME="tex2html1051" </DD>
HREF="node88.html">psb_get_boundary -- Extract list of boundary <DT><STRONG><B>On Return</B></STRONG></DT>
elements</A> <DD>
<LI><A NAME="tex2html1052" </DD>
HREF="node89.html">psb_get_overlap -- Extract list of overlap <DT><STRONG>loc_x</STRONG></DT>
elements</A> <DD>the local portion of global dense matrix
<LI><A NAME="tex2html1053" <IMG
HREF="node90.html">psb_sp_getrow -- Extract row(s) from a sparse WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
matrix</A> SRC="img71.png"
<LI><A NAME="tex2html1054" ALT="$glob\_x$">.
HREF="node91.html">psb_sizeof -- Memory occupation</A> <BR>
<LI><A NAME="tex2html1055" Scope: <B>local</B>
HREF="node92.html">Sorting utilities -- </A> <BR>
</UL> Type: <B>required</B>
<!--End of Table of Child-Links--> <BR>
<BR><HR> Intent: <B>out</B>.
<BR>
Specified as: a rank one or two array containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:scatter">17</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1030"
HREF="node66.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1026"
HREF="node61.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1022"
HREF="node64.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1028"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1031"
HREF="node66.html">Data management routines</A>
<B> Up:</B> <A NAME="tex2html1027"
HREF="node61.html">Communication routines</A>
<B> Previous:</B> <A NAME="tex2html1023"
HREF="node64.html">psb_gather Gather</A>
&nbsp; <B> <A NAME="tex2html1029"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_cdall -- Allocates a communication descriptor</TITLE> <TITLE>Data management routines</TITLE>
<META NAME="description" CONTENT="psb_cdall -- Allocates a communication descriptor"> <META NAME="description" CONTENT="Data management routines">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -18,435 +18,119 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node67.html"> <LINK REL="next" HREF="node94.html">
<LINK REL="previous" HREF="node65.html"> <LINK REL="previous" HREF="node61.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node67.html"> <LINK REL="next" HREF="node67.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1066" <A NAME="tex2html1042"
HREF="node67.html"> HREF="node67.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1062" <A NAME="tex2html1038"
HREF="node65.html"> HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1056" <A NAME="tex2html1032"
HREF="node65.html"> HREF="node65.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1064" <A NAME="tex2html1040"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1067" <B> Next:</B> <A NAME="tex2html1043"
HREF="node67.html">psb_cdins Communication</A> HREF="node67.html">psb_cdall Allocates</A>
<B> Up:</B> <A NAME="tex2html1063" <B> Up:</B> <A NAME="tex2html1039"
HREF="node65.html">Data management routines</A> HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1057" <B> Previous:</B> <A NAME="tex2html1033"
HREF="node65.html">Data management routines</A> HREF="node65.html">psb_scatter Scatter</A>
&nbsp; <B> <A NAME="tex2html1065" &nbsp; <B> <A NAME="tex2html1041"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00071000000000000000"> <H1><A NAME="SECTION00070000000000000000"></A>
psb_cdall -- Allocates a communication descriptor</A> <A NAME="sec:toolsrout"></A>
</H2>
<P>
<PRE>
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx])
call psb_cdall(icontxt, desc_a, info,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
</PRE>
<P>
This subroutine initializes the communication descriptor associated
with an index space. One of the optional arguments
<code>parts</code>, <code>vg</code>, <code>vl</code>, <code>nl</code> or <code>repl</code>
must be specified, thereby choosing
the specific initialization strategy.
<DL>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</DD>
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value.
</DD>
<DT><STRONG>vg</STRONG></DT>
<DD>Data allocation: each index <!-- MATH
$i\in \{1\dots mg\}$
-->
<IMG
WIDTH="99" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$i\in \{1\dots mg\}$"> is allocated
to process <IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$vg(i)$">.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array.
</DD>
<DT><STRONG>flag</STRONG></DT>
<DD>Specifies whether entries in <IMG
WIDTH="21" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img85.png"
ALT="$vg$"> are zero- or one-based.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img86.png"
ALT="$0,1$">, default <IMG
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img87.png"
ALT="$0$">.
<P>
</DD>
<DT><STRONG>mg</STRONG></DT>
<DD>the (global) number of rows of the problem.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value. It is required if <code>parts</code> or
<code>repl</code> is specified, it is optional if <code>vg</code> is specified.
</DD>
<DT><STRONG>parts</STRONG></DT>
<DD>the subroutine that defines the partitioning scheme.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a subroutine.
</DD>
<DT><STRONG>vl</STRONG></DT>
<DD>Data allocation: the set of global indices
<IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img88.png"
ALT="$vl(1:nl)$"> belonging to the calling process.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array.
</DD>
<DT><STRONG>nl</STRONG></DT>
<DD>Data allocation: in a generalized block-row distribution the
number of indices belonging to the current process.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value. May be specified together with
<code>vl</code>.
</DD>
<DT><STRONG>repl</STRONG></DT>
<DD>Data allocation: build a replicated index space
(i.e. all processes own all indices).
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: the logical value <code>.true.</code>
</DD>
<DT><STRONG>globalcheck</STRONG></DT>
<DD>Data allocation: do global checks on the local
index lists <code>vl</code>
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a logical value, default: <code>.true.</code>
</DD>
<DT><STRONG>lidx</STRONG></DT>
<DD>Data allocation: the set of local indices
<IMG
WIDTH="81" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img89.png"
ALT="$lidx(1:nl)$"> to be assigned to the global indices <IMG
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img90.png"
ALT="$vl$">.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR> <BR>
Scope: <B>local</B> Data management routines
<BR> </H1>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P> <P>
<FONT SIZE="+1"><B>Notes</B></FONT> <BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<OL> <UL>
<LI>One of the optional arguments <code>parts</code>, <code>vg</code>, <LI><A NAME="tex2html1044"
<code>vl</code>, <code>nl</code> or <code>repl</code> must be specified, thereby choosing the HREF="node67.html">psb_cdall -- Allocates a communication descriptor</A>
initialization strategy as follows: <LI><A NAME="tex2html1045"
<DL> HREF="node68.html">psb_cdins -- Communication descriptor insert
<DT><STRONG>parts</STRONG></DT> routine</A>
<DD>In this case we have a subroutine specifying the mapping <LI><A NAME="tex2html1046"
between global indices and process/local index pairs. If this HREF="node69.html">psb_cdasb -- Communication descriptor assembly
optional argument is specified, then it is mandatory to routine</A>
specify the argument <code>mg</code> as well. <LI><A NAME="tex2html1047"
The subroutine must conform to the following interface: HREF="node70.html">psb_cdcpy -- Copies a communication descriptor</A>
<PRE> <LI><A NAME="tex2html1048"
interface HREF="node71.html">psb_cdfree -- Frees a communication descriptor</A>
subroutine psb_parts(glob_index,mg,np,pv,nv) <LI><A NAME="tex2html1049"
integer, intent (in) :: glob_index,np,mg HREF="node72.html">psb_cdbldext -- Build an extended communication
integer, intent (out) :: nv, pv(*) descriptor</A>
end subroutine psb_parts <LI><A NAME="tex2html1050"
end interface HREF="node73.html">psb_spall -- Allocates a sparse matrix</A>
</PRE> <LI><A NAME="tex2html1051"
The input arguments are: HREF="node74.html">psb_spins -- Insert a cloud of elements into a sparse
<DL> matrix</A>
<DT><STRONG>glob_index</STRONG></DT> <LI><A NAME="tex2html1052"
<DD>The global index to be mapped; HREF="node75.html">psb_spasb -- Sparse matrix assembly routine</A>
<LI><A NAME="tex2html1053"
</DD> HREF="node76.html">psb_spfree -- Frees a sparse matrix</A>
<DT><STRONG>np</STRONG></DT> <LI><A NAME="tex2html1054"
<DD>The number of processes in the mapping; HREF="node77.html">psb_sprn -- Reinit sparse matrix structure for psblas
routines.</A>
</DD> <LI><A NAME="tex2html1055"
<DT><STRONG>mg</STRONG></DT> HREF="node78.html">psb_geall -- Allocates a dense matrix</A>
<DD>The total number of global rows in the mapping; <LI><A NAME="tex2html1056"
HREF="node79.html">psb_geins -- Dense matrix insertion routine</A>
</DD> <LI><A NAME="tex2html1057"
</DL> HREF="node80.html">psb_geasb -- Assembly a dense matrix</A>
The output arguments are: <LI><A NAME="tex2html1058"
<DL> HREF="node81.html">psb_gefree -- Frees a dense matrix</A>
<DT><STRONG>nv</STRONG></DT> <LI><A NAME="tex2html1059"
<DD>The number of entries in <code>pv</code>; HREF="node82.html">psb_gelp -- Applies a left permutation to a dense
matrix</A>
</DD> <LI><A NAME="tex2html1060"
<DT><STRONG>pv</STRONG></DT> HREF="node83.html">psb_glob_to_loc -- Global to local indices
<DD>A vector containing the indices of the processes to convertion</A>
which the global index should be assigend; each entry must satisfy <LI><A NAME="tex2html1061"
<!-- MATH HREF="node84.html">psb_loc_to_glob -- Local to global indices
$0\le pv(i) < np$ conversion</A>
--> <LI><A NAME="tex2html1062"
<IMG HREF="node85.html">psb_is_owned -- </A>
WIDTH="107" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" <LI><A NAME="tex2html1063"
SRC="img91.png" HREF="node86.html">psb_owned_index -- </A>
ALT="$0\le pv(i) &lt; np$">; if <IMG <LI><A NAME="tex2html1064"
WIDTH="51" HEIGHT="30" ALIGN="MIDDLE" BORDER="0" HREF="node87.html">psb_is_local -- </A>
SRC="img92.png" <LI><A NAME="tex2html1065"
ALT="$nv&gt;1$"> we have an index assigned to multiple HREF="node88.html">psb_local_index -- </A>
processes, i.e. we have an overlap among the subdomains. <LI><A NAME="tex2html1066"
HREF="node89.html">psb_get_boundary -- Extract list of boundary
</DD> elements</A>
</DL> <LI><A NAME="tex2html1067"
</DD> HREF="node90.html">psb_get_overlap -- Extract list of overlap
<DT><STRONG>vg</STRONG></DT> elements</A>
<DD>In this case the association between an index and a process <LI><A NAME="tex2html1068"
is specified via an integer vector <code>vg(1:mg)</code>; HREF="node91.html">psb_sp_getrow -- Extract row(s) from a sparse
each index <!-- MATH matrix</A>
$i \in \{1\dots mg\}$ <LI><A NAME="tex2html1069"
--> HREF="node92.html">psb_sizeof -- Memory occupation</A>
<IMG <LI><A NAME="tex2html1070"
WIDTH="99" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" HREF="node93.html">Sorting utilities -- </A>
SRC="img83.png" </UL>
ALT="$i\in \{1\dots mg\}$"> is assigned to process <IMG <!--End of Table of Child-Links-->
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" <BR><HR>
SRC="img84.png"
ALT="$vg(i)$">.
The vector <code>vg</code> must be identical on all
calling processes; its entries may have the ranges <IMG
WIDTH="94" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img93.png"
ALT="$(0\dots np-1)$">
or <IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img94.png"
ALT="$(1\dots np)$"> according to the value of <code>flag</code>.
The size <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
ALT="$mg$"> may be specified via the optional argument <code>mg</code>;
the default is to use the entire vector <code>vg</code>, thus having
<code>mg=size(vg)</code>.
</DD>
<DT><STRONG>vl</STRONG></DT>
<DD>In this case we are specifying the list of indices
<code>vl(1:nl)</code> assigned to the current process; thus, the global
problem size <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
ALT="$mg$"> is given by
the range of the aggregate of the individual vectors <code>vl</code> specified
in the calling processes. The size may be specified via the optional
argument <code>nl</code>; the default is to use the entire vector
<code>vl</code>, thus having <code>nl=size(vl)</code>.
If <code>globalcheck=.true.</code> the subroutine will check how many
times each entry in the global index space <IMG
WIDTH="70" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img96.png"
ALT="$(1\dots mg)$"> is
specified in the input lists <code>vl</code>, thus allowing for the
presence of overlap in the input, and checking for ``orphan''
indices. If <code>globalcheck=.false.</code>, the subroutine will not
check for overlap, and may be significantly faster, but the user
is implicitly guaranteeing that there are neither orphan nor
overlap indices.
</DD>
<DT><STRONG>lidx</STRONG></DT>
<DD>The optional argument <code>lidx</code> is available for
those cases in which the user has already established a
global-to-local mapping; if it is specified, each index in
<code>vl(i)</code> will be mapped to the corresponding local index
<code>lidx(i)</code>. When specifying the argument <code>lidx</code> the user
would also likely employ <code>lidx</code> in calls to <code>psb_cdins</code>
and <code>local</code> in calls to <code>psb_spins</code> and <code>psb_geins</code>;
see also sec.&nbsp;<A HREF="node7.html#sec:usermaps">2.3.1</A>.
</DD>
<DT><STRONG>nl</STRONG></DT>
<DD>If this argument is specified alone (i.e. without <code>vl</code>)
the result is a generalized row-block distribution in which each
process <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img97.png"
ALT="$I$"> gets assigned a consecutive chunk of <IMG
WIDTH="60" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img98.png"
ALT="$N_I=nl$"> global
indices.
</DD>
<DT><STRONG>repl</STRONG></DT>
<DD>This arguments specifies to replicate all indices on
all processes. This is a special purpose data allocation that is
useful in the construction of some multilevel preconditioners.
</DD>
</DL>
</LI>
<LI>On exit from this routine the descriptor is in the build
state.
</LI>
<LI>Calling the routine with <code>vg</code> or <code>parts</code> implies that
every process will scan the entire index space to figure out the
local indices.
</LI>
<LI>Overlapped indices are possible with both <code>parts</code> and
<code>vl</code> invocations.
</LI>
<LI>When the subroutine is invoked with <code>vl</code> in
conjunction with <code>globalcheck=.true.</code>, it will perform a scan
of the index space to search for overlap or orphan indices.
</LI>
<LI>When the subroutine is invoked with <code>vl</code> in
conjunction with <code>globalcheck=.false.</code>, no index space scan
will take place. Thus it is the responsibility of the user to make
sure that the indices specified in <code>vl</code> have neither orphans nor
overlaps; if this assumption fails, results will be
unpredictable.
</LI>
<LI>Orphan and overlap indices are
impossible by construction when the subroutine is invoked with
<code>nl</code> (alone), or <code>vg</code>.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1066"
HREF="node67.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1062"
HREF="node65.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1056"
HREF="node65.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1064"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1067"
HREF="node67.html">psb_cdins Communication</A>
<B> Up:</B> <A NAME="tex2html1063"
HREF="node65.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1057"
HREF="node65.html">Data management routines</A>
&nbsp; <B> <A NAME="tex2html1065"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_cdins -- Communication descriptor insert routine</TITLE> <TITLE>psb_cdall -- Allocates a communication descriptor</TITLE>
<META NAME="description" CONTENT="psb_cdins -- Communication descriptor insert routine"> <META NAME="description" CONTENT="psb_cdall -- Allocates a communication descriptor">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,141 +20,207 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node68.html"> <LINK REL="next" HREF="node68.html">
<LINK REL="previous" HREF="node66.html"> <LINK REL="previous" HREF="node66.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node68.html"> <LINK REL="next" HREF="node68.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1078" <A NAME="tex2html1081"
HREF="node68.html"> HREF="node68.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1074" <A NAME="tex2html1077"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1068" <A NAME="tex2html1071"
HREF="node66.html"> HREF="node66.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1076" <A NAME="tex2html1079"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1079" <B> Next:</B> <A NAME="tex2html1082"
HREF="node68.html">psb_cdasb Communication</A> HREF="node68.html">psb_cdins Communication</A>
<B> Up:</B> <A NAME="tex2html1075" <B> Up:</B> <A NAME="tex2html1078"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1069" <B> Previous:</B> <A NAME="tex2html1072"
HREF="node66.html">psb_cdall Allocates</A> HREF="node66.html">Data management routines</A>
&nbsp; <B> <A NAME="tex2html1077" &nbsp; <B> <A NAME="tex2html1080"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00072000000000000000"> <H2><A NAME="SECTION00071000000000000000">
psb_cdins -- Communication descriptor insert psb_cdall -- Allocates a communication descriptor</A>
routine</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla]) call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx]) call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx])
call psb_cdall(icontxt, desc_a, info,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
</PRE> </PRE>
<P> <P>
This subroutine examines the edges of the graph associated with the This subroutine initializes the communication descriptor associated
discretization mesh (and isomorphic to the sparsity pattern of a with an index space. One of the optional arguments
linear system coefficient matrix), storing them as necessary into the <code>parts</code>, <code>vg</code>, <code>vl</code>, <code>nl</code> or <code>repl</code>
communication descriptor. In the first form the edges are specified as must be specified, thereby choosing
pairs of indices <IMG the specific initialization strategy.
WIDTH="77" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" <DL>
SRC="img99.png" <DT><STRONG><B>On Entry </B></STRONG></DT>
ALT="$ia(i),ja(i)$">; the starting index <IMG <DD>
WIDTH="35" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" </DD>
SRC="img100.png" <DT><STRONG>Type:</STRONG></DT>
ALT="$ia(i)$"> should <DD>Synchronous.
belong to the current process. </DD>
In the second form only the remote indices <IMG <DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value.
</DD>
<DT><STRONG>vg</STRONG></DT>
<DD>Data allocation: each index <!-- MATH
$i\in \{1\dots mg\}$
-->
<IMG
WIDTH="99" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$i\in \{1\dots mg\}$"> is allocated
to process <IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img101.png" SRC="img84.png"
ALT="$ja(i)$"> are specified. ALT="$vg(i)$">.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array.
</DD>
<DT><STRONG>flag</STRONG></DT>
<DD>Specifies whether entries in <IMG
WIDTH="21" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img85.png"
ALT="$vg$"> are zero- or one-based.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img86.png"
ALT="$0,1$">, default <IMG
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img87.png"
ALT="$0$">.
<P> <P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG>mg</STRONG></DT>
<DD> <DD>the (global) number of rows of the problem.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value. It is required if <code>parts</code> or
<code>repl</code> is specified, it is optional if <code>vg</code> is specified.
</DD>
<DT><STRONG>parts</STRONG></DT>
<DD>the subroutine that defines the partitioning scheme.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a subroutine.
</DD> </DD>
<DT><STRONG>nz</STRONG></DT> <DT><STRONG>vl</STRONG></DT>
<DD>the number of points being inserted. <DD>Data allocation: the set of global indices
<IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img88.png"
ALT="$vl(1:nl)$"> belonging to the calling process.
<BR> <BR>
Scope: <B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type: <B>required</B>. Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. Specified as: an integer array.
</DD> </DD>
<DT><STRONG>ia</STRONG></DT> <DT><STRONG>nl</STRONG></DT>
<DD>the indices of the starting vertex of the edges being inserted. <DD>Data allocation: in a generalized block-row distribution the
number of indices belonging to the current process.
<BR> <BR>
Scope: <B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type: <B>required</B>. Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer array of length <IMG Specified as: an integer value. May be specified together with
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" <code>vl</code>.
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
<DT><STRONG>ja</STRONG></DT> <DT><STRONG>repl</STRONG></DT>
<DD>the indices of the end vertex of the edges being inserted. <DD>Data allocation: build a replicated index space
(i.e. all processes own all indices).
<BR> <BR>
Scope: <B>local</B>. Scope:<B>global</B>.
<BR> <BR>
Type: <B>required</B>. Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer array of length <IMG Specified as: the logical value <code>.true.</code>
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
<DT><STRONG>mask</STRONG></DT> <DT><STRONG>globalcheck</STRONG></DT>
<DD>Mask entries in <code>ja</code>, they are inserted only when the <DD>Data allocation: do global checks on the local
corresponding <code>mask</code> entries are <code>.true.</code> index lists <code>vl</code>
<BR> <BR>
Scope: <B>local</B>. Scope:<B>global</B>.
<BR> <BR>
Type: <B>optional</B>. Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a logical array of length <IMG Specified as: a logical value, default: <code>.true.</code>
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">, default <code>.true.</code>.
</DD> </DD>
<DT><STRONG>lidx</STRONG></DT> <DT><STRONG>lidx</STRONG></DT>
<DD>User defined local indices for <code>ja</code>. <DD>Data allocation: the set of local indices
<IMG
WIDTH="81" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img89.png"
ALT="$lidx(1:nl)$"> to be assigned to the global indices <IMG
WIDTH="17" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img90.png"
ALT="$vl$">.
<BR> <BR>
Scope: <B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type: <B>optional</B>. Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer array of length <IMG Specified as: an integer array.
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
</DL> </DL>
@ -164,13 +230,13 @@ Specified as: an integer array of length <IMG
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the updated communication descriptor. <DD>the communication descriptor.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type:<B>required</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>out</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
@ -185,75 +251,200 @@ Intent: <B>out</B>.
<BR> <BR>
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
<DT><STRONG>ila</STRONG></DT> </DL>
<DD>the local indices of the starting vertex of the edges being inserted.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD>
<DT><STRONG>jla</STRONG></DT>
<DD>the local indices of the end vertex of the edges being inserted.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
<P> <P>
</DD>
</DL>
<FONT SIZE="+1"><B>Notes</B></FONT> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <OL>
<LI>This routine may only be called if the descriptor is in the <LI>One of the optional arguments <code>parts</code>, <code>vg</code>,
build state; <code>vl</code>, <code>nl</code> or <code>repl</code> must be specified, thereby choosing the
initialization strategy as follows:
<DL>
<DT><STRONG>parts</STRONG></DT>
<DD>In this case we have a subroutine specifying the mapping
between global indices and process/local index pairs. If this
optional argument is specified, then it is mandatory to
specify the argument <code>mg</code> as well.
The subroutine must conform to the following interface:
<PRE>
interface
subroutine psb_parts(glob_index,mg,np,pv,nv)
integer, intent (in) :: glob_index,np,mg
integer, intent (out) :: nv, pv(*)
end subroutine psb_parts
end interface
</PRE>
The input arguments are:
<DL>
<DT><STRONG>glob_index</STRONG></DT>
<DD>The global index to be mapped;
</DD>
<DT><STRONG>np</STRONG></DT>
<DD>The number of processes in the mapping;
</DD>
<DT><STRONG>mg</STRONG></DT>
<DD>The total number of global rows in the mapping;
</DD>
</DL>
The output arguments are:
<DL>
<DT><STRONG>nv</STRONG></DT>
<DD>The number of entries in <code>pv</code>;
</DD>
<DT><STRONG>pv</STRONG></DT>
<DD>A vector containing the indices of the processes to
which the global index should be assigend; each entry must satisfy
<!-- MATH
$0\le pv(i) < np$
-->
<IMG
WIDTH="107" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img91.png"
ALT="$0\le pv(i) &lt; np$">; if <IMG
WIDTH="51" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img92.png"
ALT="$nv&gt;1$"> we have an index assigned to multiple
processes, i.e. we have an overlap among the subdomains.
</DD>
</DL>
</DD>
<DT><STRONG>vg</STRONG></DT>
<DD>In this case the association between an index and a process
is specified via an integer vector <code>vg(1:mg)</code>;
each index <!-- MATH
$i \in \{1\dots mg\}$
-->
<IMG
WIDTH="99" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$i\in \{1\dots mg\}$"> is assigned to process <IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$vg(i)$">.
The vector <code>vg</code> must be identical on all
calling processes; its entries may have the ranges <IMG
WIDTH="94" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img93.png"
ALT="$(0\dots np-1)$">
or <IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img94.png"
ALT="$(1\dots np)$"> according to the value of <code>flag</code>.
The size <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
ALT="$mg$"> may be specified via the optional argument <code>mg</code>;
the default is to use the entire vector <code>vg</code>, thus having
<code>mg=size(vg)</code>.
</DD>
<DT><STRONG>vl</STRONG></DT>
<DD>In this case we are specifying the list of indices
<code>vl(1:nl)</code> assigned to the current process; thus, the global
problem size <IMG
WIDTH="27" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img95.png"
ALT="$mg$"> is given by
the range of the aggregate of the individual vectors <code>vl</code> specified
in the calling processes. The size may be specified via the optional
argument <code>nl</code>; the default is to use the entire vector
<code>vl</code>, thus having <code>nl=size(vl)</code>.
If <code>globalcheck=.true.</code> the subroutine will check how many
times each entry in the global index space <IMG
WIDTH="70" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img96.png"
ALT="$(1\dots mg)$"> is
specified in the input lists <code>vl</code>, thus allowing for the
presence of overlap in the input, and checking for ``orphan''
indices. If <code>globalcheck=.false.</code>, the subroutine will not
check for overlap, and may be significantly faster, but the user
is implicitly guaranteeing that there are neither orphan nor
overlap indices.
</DD>
<DT><STRONG>lidx</STRONG></DT>
<DD>The optional argument <code>lidx</code> is available for
those cases in which the user has already established a
global-to-local mapping; if it is specified, each index in
<code>vl(i)</code> will be mapped to the corresponding local index
<code>lidx(i)</code>. When specifying the argument <code>lidx</code> the user
would also likely employ <code>lidx</code> in calls to <code>psb_cdins</code>
and <code>local</code> in calls to <code>psb_spins</code> and <code>psb_geins</code>;
see also sec.&nbsp;<A HREF="node7.html#sec:usermaps">2.3.1</A>.
</DD>
<DT><STRONG>nl</STRONG></DT>
<DD>If this argument is specified alone (i.e. without <code>vl</code>)
the result is a generalized row-block distribution in which each
process <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img97.png"
ALT="$I$"> gets assigned a consecutive chunk of <IMG
WIDTH="60" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img98.png"
ALT="$N_I=nl$"> global
indices.
</DD>
<DT><STRONG>repl</STRONG></DT>
<DD>This arguments specifies to replicate all indices on
all processes. This is a special purpose data allocation that is
useful in the construction of some multilevel preconditioners.
</DD>
</DL>
</LI> </LI>
<LI>This routine automatically ignores edges that do not <LI>On exit from this routine the descriptor is in the build
insist on the current process, i.e. edges for which neither the starting state.
nor the end vertex belong to the current process.
</LI> </LI>
<LI>The second form of this routine will be useful when dealing with <LI>Calling the routine with <code>vg</code> or <code>parts</code> implies that
user-specified index mappings; see also&nbsp;<A HREF="node7.html#sec:usermaps">2.3.1</A>. every process will scan the entire index space to figure out the
local indices.
</LI>
<LI>Overlapped indices are possible with both <code>parts</code> and
<code>vl</code> invocations.
</LI>
<LI>When the subroutine is invoked with <code>vl</code> in
conjunction with <code>globalcheck=.true.</code>, it will perform a scan
of the index space to search for overlap or orphan indices.
</LI>
<LI>When the subroutine is invoked with <code>vl</code> in
conjunction with <code>globalcheck=.false.</code>, no index space scan
will take place. Thus it is the responsibility of the user to make
sure that the indices specified in <code>vl</code> have neither orphans nor
overlaps; if this assumption fails, results will be
unpredictable.
</LI>
<LI>Orphan and overlap indices are
impossible by construction when the subroutine is invoked with
<code>nl</code> (alone), or <code>vg</code>.
</LI> </LI>
</OL> </OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1078" <A NAME="tex2html1081"
HREF="node68.html"> HREF="node68.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1074" <A NAME="tex2html1077"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1068" <A NAME="tex2html1071"
HREF="node66.html"> HREF="node66.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1076" <A NAME="tex2html1079"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1079" <B> Next:</B> <A NAME="tex2html1082"
HREF="node68.html">psb_cdasb Communication</A> HREF="node68.html">psb_cdins Communication</A>
<B> Up:</B> <A NAME="tex2html1075" <B> Up:</B> <A NAME="tex2html1078"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1069" <B> Previous:</B> <A NAME="tex2html1072"
HREF="node66.html">psb_cdall Allocates</A> HREF="node66.html">Data management routines</A>
&nbsp; <B> <A NAME="tex2html1077" &nbsp; <B> <A NAME="tex2html1080"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_cdasb -- Communication descriptor assembly routine</TITLE> <TITLE>psb_cdins -- Communication descriptor insert routine</TITLE>
<META NAME="description" CONTENT="psb_cdasb -- Communication descriptor assembly routine"> <META NAME="description" CONTENT="psb_cdins -- Communication descriptor insert routine">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,65 +20,141 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node69.html"> <LINK REL="next" HREF="node69.html">
<LINK REL="previous" HREF="node67.html"> <LINK REL="previous" HREF="node67.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node69.html"> <LINK REL="next" HREF="node69.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1090" <A NAME="tex2html1093"
HREF="node69.html"> HREF="node69.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1086" <A NAME="tex2html1089"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1080" <A NAME="tex2html1083"
HREF="node67.html"> HREF="node67.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1088" <A NAME="tex2html1091"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1091" <B> Next:</B> <A NAME="tex2html1094"
HREF="node69.html">psb_cdcpy Copies</A> HREF="node69.html">psb_cdasb Communication</A>
<B> Up:</B> <A NAME="tex2html1087" <B> Up:</B> <A NAME="tex2html1090"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1081" <B> Previous:</B> <A NAME="tex2html1084"
HREF="node67.html">psb_cdins Communication</A> HREF="node67.html">psb_cdall Allocates</A>
&nbsp; <B> <A NAME="tex2html1089" &nbsp; <B> <A NAME="tex2html1092"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00073000000000000000"> <H2><A NAME="SECTION00072000000000000000">
psb_cdasb -- Communication descriptor assembly psb_cdins -- Communication descriptor insert
routine</A> routine</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_cdasb(desc_a, info) call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
</PRE> </PRE>
<P>
This subroutine examines the edges of the graph associated with the
discretization mesh (and isomorphic to the sparsity pattern of a
linear system coefficient matrix), storing them as necessary into the
communication descriptor. In the first form the edges are specified as
pairs of indices <IMG
WIDTH="77" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img99.png"
ALT="$ia(i),ja(i)$">; the starting index <IMG
WIDTH="35" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img100.png"
ALT="$ia(i)$"> should
belong to the current process.
In the second form only the remote indices <IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img101.png"
ALT="$ja(i)$"> are specified.
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>nz</STRONG></DT>
<DD>the communication descriptor. <DD>the number of points being inserted.
<BR> <BR>
Scope:<B>local</B>. Scope: <B>local</B>.
<BR> <BR>
Type:<B>required</B>. Type: <B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: an integer value.
</DD>
<DT><STRONG>ia</STRONG></DT>
<DD>the indices of the starting vertex of the edges being inserted.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD>
<DT><STRONG>ja</STRONG></DT>
<DD>the indices of the end vertex of the edges being inserted.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD>
<DT><STRONG>mask</STRONG></DT>
<DD>Mask entries in <code>ja</code>, they are inserted only when the
corresponding <code>mask</code> entries are <code>.true.</code>
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a logical array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">, default <code>.true.</code>.
</DD>
<DT><STRONG>lidx</STRONG></DT>
<DD>User defined local indices for <code>ja</code>.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
</DL> </DL>
@ -88,7 +164,7 @@ Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor. <DD>the updated communication descriptor.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
@ -109,17 +185,77 @@ Intent: <B>out</B>.
<BR> <BR>
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
<DT><STRONG>ila</STRONG></DT>
<DD>the local indices of the starting vertex of the edges being inserted.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD>
<DT><STRONG>jla</STRONG></DT>
<DD>the local indices of the end vertex of the edges being inserted.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: an integer array of length <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
<P>
</DD>
</DL> </DL>
<FONT SIZE="+1"><B>Notes</B></FONT> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <OL>
<LI>On exit from this routine the descriptor is in the assembled <LI>This routine may only be called if the descriptor is in the
state. build state;
</LI>
<LI>This routine automatically ignores edges that do not
insist on the current process, i.e. edges for which neither the starting
nor the end vertex belong to the current process.
</LI>
<LI>The second form of this routine will be useful when dealing with
user-specified index mappings; see also&nbsp;<A HREF="node7.html#sec:usermaps">2.3.1</A>.
</LI> </LI>
</OL> </OL>
<P> <P>
<BR><HR> <HR>
<!--Navigation Panel-->
<A NAME="tex2html1093"
HREF="node69.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1089"
HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1083"
HREF="node67.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1091"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1094"
HREF="node69.html">psb_cdasb Communication</A>
<B> Up:</B> <A NAME="tex2html1090"
HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1084"
HREF="node67.html">psb_cdall Allocates</A>
&nbsp; <B> <A NAME="tex2html1092"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_cdcpy -- Copies a communication descriptor</TITLE> <TITLE>psb_cdasb -- Communication descriptor assembly routine</TITLE>
<META NAME="description" CONTENT="psb_cdcpy -- Copies a communication descriptor"> <META NAME="description" CONTENT="psb_cdasb -- Communication descriptor assembly routine">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,66 +20,65 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node70.html"> <LINK REL="next" HREF="node70.html">
<LINK REL="previous" HREF="node68.html"> <LINK REL="previous" HREF="node68.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node70.html"> <LINK REL="next" HREF="node70.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1102" <A NAME="tex2html1105"
HREF="node70.html"> HREF="node70.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1098" <A NAME="tex2html1101"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1092" <A NAME="tex2html1095"
HREF="node68.html"> HREF="node68.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1100" <A NAME="tex2html1103"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1103" <B> Next:</B> <A NAME="tex2html1106"
HREF="node70.html">psb_cdfree Frees</A> HREF="node70.html">psb_cdcpy Copies</A>
<B> Up:</B> <A NAME="tex2html1099" <B> Up:</B> <A NAME="tex2html1102"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1093" <B> Previous:</B> <A NAME="tex2html1096"
HREF="node68.html">psb_cdasb Communication</A> HREF="node68.html">psb_cdins Communication</A>
&nbsp; <B> <A NAME="tex2html1101" &nbsp; <B> <A NAME="tex2html1104"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00074000000000000000"> <H2><A NAME="SECTION00073000000000000000">
psb_cdcpy -- Copies a communication descriptor</A> psb_cdasb -- Communication descriptor assembly
routine</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_cdcpy(desc_in, desc_out, info) call psb_cdasb(desc_a, info)
</PRE> </PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Synchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_in</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor. <DD>the communication descriptor.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type:<B>required</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
</DL> </DL>
@ -88,14 +87,14 @@ Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_out</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor copy. <DD>the communication descriptor.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type:<B>required</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>out</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
@ -111,6 +110,13 @@ Intent: <B>out</B>.
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>On exit from this routine the descriptor is in the assembled
state.
</LI>
</OL>
<P> <P>
<BR><HR> <BR><HR>

@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html260" <A NAME="tex2html261"
HREF="node8.html"> HREF="node8.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html256" <A NAME="tex2html257"
HREF="node6.html"> HREF="node6.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html252" <A NAME="tex2html253"
HREF="node6.html"> HREF="node6.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html258" <A NAME="tex2html259"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html261" <B> Next:</B> <A NAME="tex2html262"
HREF="node8.html">Programming model</A> HREF="node8.html">Programming model</A>
<B> Up:</B> <A NAME="tex2html257" <B> Up:</B> <A NAME="tex2html258"
HREF="node6.html">Application structure</A> HREF="node6.html">Application structure</A>
<B> Previous:</B> <A NAME="tex2html253" <B> Previous:</B> <A NAME="tex2html254"
HREF="node6.html">Application structure</A> HREF="node6.html">Application structure</A>
&nbsp; <B> <A NAME="tex2html259" &nbsp; <B> <A NAME="tex2html260"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_cdfree -- Frees a communication descriptor</TITLE> <TITLE>psb_cdcpy -- Copies a communication descriptor</TITLE>
<META NAME="description" CONTENT="psb_cdfree -- Frees a communication descriptor"> <META NAME="description" CONTENT="psb_cdcpy -- Copies a communication descriptor">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,64 +20,66 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node71.html"> <LINK REL="next" HREF="node71.html">
<LINK REL="previous" HREF="node69.html"> <LINK REL="previous" HREF="node69.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node71.html"> <LINK REL="next" HREF="node71.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1114" <A NAME="tex2html1117"
HREF="node71.html"> HREF="node71.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1110" <A NAME="tex2html1113"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1104" <A NAME="tex2html1107"
HREF="node69.html"> HREF="node69.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1112" <A NAME="tex2html1115"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1115" <B> Next:</B> <A NAME="tex2html1118"
HREF="node71.html">psb_cdbldext Build</A> HREF="node71.html">psb_cdfree Frees</A>
<B> Up:</B> <A NAME="tex2html1111" <B> Up:</B> <A NAME="tex2html1114"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1105" <B> Previous:</B> <A NAME="tex2html1108"
HREF="node69.html">psb_cdcpy Copies</A> HREF="node69.html">psb_cdasb Communication</A>
&nbsp; <B> <A NAME="tex2html1113" &nbsp; <B> <A NAME="tex2html1116"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00075000000000000000"> <H2><A NAME="SECTION00074000000000000000">
psb_cdfree -- Frees a communication descriptor</A> psb_cdcpy -- Copies a communication descriptor</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_cdfree(desc_a, info) call psb_cdcpy(desc_in, desc_out, info)
</PRE> </PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_in</STRONG></DT>
<DD>the communication descriptor to be freed. <DD>the communication descriptor.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type:<B>required</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<P>
</DD> </DD>
</DL> </DL>
@ -86,6 +88,17 @@ Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_out</STRONG></DT>
<DD>the communication descriptor copy.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_cdbldext -- Build an extended communication descriptor</TITLE> <TITLE>psb_cdfree -- Frees a communication descriptor</TITLE>
<META NAME="description" CONTENT="psb_cdbldext -- Build an extended communication descriptor"> <META NAME="description" CONTENT="psb_cdfree -- Frees a communication descriptor">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,51 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node72.html"> <LINK REL="next" HREF="node72.html">
<LINK REL="previous" HREF="node70.html"> <LINK REL="previous" HREF="node70.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node72.html"> <LINK REL="next" HREF="node72.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1126" <A NAME="tex2html1129"
HREF="node72.html"> HREF="node72.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1122" <A NAME="tex2html1125"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1116" <A NAME="tex2html1119"
HREF="node70.html"> HREF="node70.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1124" <A NAME="tex2html1127"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1127" <B> Next:</B> <A NAME="tex2html1130"
HREF="node72.html">psb_spall Allocates</A> HREF="node72.html">psb_cdbldext Build</A>
<B> Up:</B> <A NAME="tex2html1123" <B> Up:</B> <A NAME="tex2html1126"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1117" <B> Previous:</B> <A NAME="tex2html1120"
HREF="node70.html">psb_cdfree Frees</A> HREF="node70.html">psb_cdcpy Copies</A>
&nbsp; <B> <A NAME="tex2html1125" &nbsp; <B> <A NAME="tex2html1128"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00076000000000000000"> <H2><A NAME="SECTION00075000000000000000">
psb_cdbldext -- Build an extended communication psb_cdfree -- Frees a communication descriptor</A>
descriptor</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype) call psb_cdfree(desc_a, info)
</PRE> </PRE>
<P> <P>
This subroutine builds an extended communication descriptor, based on
the input descriptor <code>desc_a</code> and on the stencil specified
through the input sparse matrix <code>a</code>.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Synchronous.
@ -72,54 +68,16 @@ through the input sparse matrix <code>a</code>.
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT>
<DD>A sparse matrix
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data type.
</DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor. <DD>the communication descriptor to be freed.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type:<B>required</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>nl</STRONG></DT>
<DD>the number of additional layers desired.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <IMG
WIDTH="48" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img103.png"
ALT="$nl\ge 0$">.
</DD>
<DT><STRONG>extype</STRONG></DT>
<DD>the kind of estension required.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>optional </B>.
<BR>
Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<code>psb_ovt_xhal_</code>, <code>psb_ovt_asov_</code>, default: <code>psb_ovt_xhal_</code>
<P>
</DD> </DD>
</DL> </DL>
@ -128,17 +86,6 @@ Specified as: an integer value
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_out</STRONG></DT>
<DD>the extended communication descriptor.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>
@ -153,48 +100,7 @@ An integer value; 0 means no error has been detected.
</DL> </DL>
<P> <P>
<FONT SIZE="+1"><B>Notes</B></FONT> <BR><HR>
<OL>
<LI>Specifying <code>psb_ovt_xhal_</code> for the <code>extype</code> argument
the user will obtain a descriptor for a domain partition in which
the additional layers are fetched as part of an (extended) halo;
however the index-to-process mapping is identical to that of the
base descriptor;
</LI>
<LI>Specifying <code>psb_ovt_asov_</code> for the <code>extype</code> argument
the user will obtain a descriptor with an overlapped decomposition:
the additional layer is aggregated to the local subdomain (and thus
is an overlap), and a new halo extending beyond the last additional
layer is formed.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1126"
HREF="node72.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1122"
HREF="node65.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1116"
HREF="node70.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1124"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1127"
HREF="node72.html">psb_spall Allocates</A>
<B> Up:</B> <A NAME="tex2html1123"
HREF="node65.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1117"
HREF="node70.html">psb_cdfree Frees</A>
&nbsp; <B> <A NAME="tex2html1125"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spall -- Allocates a sparse matrix</TITLE> <TITLE>psb_cdbldext -- Build an extended communication descriptor</TITLE>
<META NAME="description" CONTENT="psb_spall -- Allocates a sparse matrix"> <META NAME="description" CONTENT="psb_cdbldext -- Build an extended communication descriptor">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,47 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node73.html"> <LINK REL="next" HREF="node73.html">
<LINK REL="previous" HREF="node71.html"> <LINK REL="previous" HREF="node71.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node73.html"> <LINK REL="next" HREF="node73.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1138" <A NAME="tex2html1141"
HREF="node73.html"> HREF="node73.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1134" <A NAME="tex2html1137"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1128" <A NAME="tex2html1131"
HREF="node71.html"> HREF="node71.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1136" <A NAME="tex2html1139"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1139" <B> Next:</B> <A NAME="tex2html1142"
HREF="node73.html">psb_spins Insert</A> HREF="node73.html">psb_spall Allocates</A>
<B> Up:</B> <A NAME="tex2html1135" <B> Up:</B> <A NAME="tex2html1138"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1129" <B> Previous:</B> <A NAME="tex2html1132"
HREF="node71.html">psb_cdbldext Build</A> HREF="node71.html">psb_cdfree Frees</A>
&nbsp; <B> <A NAME="tex2html1137" &nbsp; <B> <A NAME="tex2html1140"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00077000000000000000"> <H2><A NAME="SECTION00076000000000000000">
psb_spall -- Allocates a sparse matrix</A> psb_cdbldext -- Build an extended communication
descriptor</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_spall(a, desc_a, info, nnz) call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
</PRE> </PRE>
<P> <P>
This subroutine builds an extended communication descriptor, based on
the input descriptor <code>desc_a</code> and on the stencil specified
through the input sparse matrix <code>a</code>.
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Synchronous.
@ -68,6 +72,16 @@ call psb_spall(a, desc_a, info, nnz)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT>
<DD>A sparse matrix
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a structured data type.
</DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor. <DD>the communication descriptor.
<BR> <BR>
@ -77,19 +91,35 @@ Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>nl</STRONG></DT>
<DD>the number of additional layers desired.
<BR>
Scope:<B>global</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <IMG
WIDTH="48" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img103.png"
ALT="$nl\ge 0$">.
</DD> </DD>
<DT><STRONG>nnz</STRONG></DT> <DT><STRONG>extype</STRONG></DT>
<DD>An estimate of the number of nonzeroes in the local <DD>the kind of estension required.
part of the assembled matrix.
<BR> <BR>
Scope: <B>global</B>. Scope:<B>global</B>.
<BR> <BR>
Type: <B>optional</B>. Type:<B>optional </B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. Specified as: an integer value
<code>psb_ovt_xhal_</code>, <code>psb_ovt_asov_</code>, default: <code>psb_ovt_xhal_</code>
<P>
</DD> </DD>
</DL> </DL>
@ -98,16 +128,16 @@ Specified as: an integer value.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>desc_out</STRONG></DT>
<DD>the matrix to be allocated. <DD>the extended communication descriptor.
<BR> <BR>
Scope:<B>local</B> Scope:<B>local</B>.
<BR> <BR>
Type:<B>required</B> Type:<B>required</B>.
<BR> <BR>
Intent: <B>out</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
@ -121,47 +151,48 @@ Intent: <B>out</B>.
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <OL>
<LI>On exit from this routine the sparse matrix is in the build <LI>Specifying <code>psb_ovt_xhal_</code> for the <code>extype</code> argument
state. the user will obtain a descriptor for a domain partition in which
</LI> the additional layers are fetched as part of an (extended) halo;
<LI>The descriptor may be in either the build or assembled state. however the index-to-process mapping is identical to that of the
base descriptor;
</LI> </LI>
<LI>Providing a good estimate for the number of nonzeroes <IMG <LI>Specifying <code>psb_ovt_asov_</code> for the <code>extype</code> argument
WIDTH="31" HEIGHT="13" ALIGN="BOTTOM" BORDER="0" the user will obtain a descriptor with an overlapped decomposition:
SRC="img104.png" the additional layer is aggregated to the local subdomain (and thus
ALT="$nnz$"> in is an overlap), and a new halo extending beyond the last additional
the assembled matrix may substantially improve performance in the layer is formed.
matrix build phase, as it will reduce or eliminate the need for
(potentially multiple) data reallocations.
</LI> </LI>
</OL> </OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1138" <A NAME="tex2html1141"
HREF="node73.html"> HREF="node73.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1134" <A NAME="tex2html1137"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1128" <A NAME="tex2html1131"
HREF="node71.html"> HREF="node71.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1136" <A NAME="tex2html1139"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1139" <B> Next:</B> <A NAME="tex2html1142"
HREF="node73.html">psb_spins Insert</A> HREF="node73.html">psb_spall Allocates</A>
<B> Up:</B> <A NAME="tex2html1135" <B> Up:</B> <A NAME="tex2html1138"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1129" <B> Previous:</B> <A NAME="tex2html1132"
HREF="node71.html">psb_cdbldext Build</A> HREF="node71.html">psb_cdfree Frees</A>
&nbsp; <B> <A NAME="tex2html1137" &nbsp; <B> <A NAME="tex2html1140"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spins -- Insert a cloud of elements into a sparse matrix</TITLE> <TITLE>psb_spall -- Allocates a sparse matrix</TITLE>
<META NAME="description" CONTENT="psb_spins -- Insert a cloud of elements into a sparse matrix"> <META NAME="description" CONTENT="psb_spall -- Allocates a sparse matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,82 +20,56 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node74.html"> <LINK REL="next" HREF="node74.html">
<LINK REL="previous" HREF="node72.html"> <LINK REL="previous" HREF="node72.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node74.html"> <LINK REL="next" HREF="node74.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1150" <A NAME="tex2html1153"
HREF="node74.html"> HREF="node74.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1146" <A NAME="tex2html1149"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1140" <A NAME="tex2html1143"
HREF="node72.html"> HREF="node72.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1148" <A NAME="tex2html1151"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1151" <B> Next:</B> <A NAME="tex2html1154"
HREF="node74.html">psb_spasb Sparse</A> HREF="node74.html">psb_spins Insert</A>
<B> Up:</B> <A NAME="tex2html1147" <B> Up:</B> <A NAME="tex2html1150"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1141" <B> Previous:</B> <A NAME="tex2html1144"
HREF="node72.html">psb_spall Allocates</A> HREF="node72.html">psb_cdbldext Build</A>
&nbsp; <B> <A NAME="tex2html1149" &nbsp; <B> <A NAME="tex2html1152"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00078000000000000000"> <H2><A NAME="SECTION00077000000000000000">
psb_spins -- Insert a cloud of elements into a sparse psb_spall -- Allocates a sparse matrix</A>
matrix</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local]) call psb_spall(a, desc_a, info, nnz)
</PRE> </PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous. <DD>Synchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>nz</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the number of elements to be inserted. <DD>the communication descriptor.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer scalar.
</DD>
<DT><STRONG>ia</STRONG></DT>
<DD>the row indices of the elements to be inserted.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer array of size <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD>
<DT><STRONG>ja</STRONG></DT>
<DD>the column indices of the elements to be inserted.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
@ -103,51 +77,19 @@ Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer array of size <IMG Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
<DT><STRONG>val</STRONG></DT> <DT><STRONG>nnz</STRONG></DT>
<DD>the elements to be inserted. <DD>An estimate of the number of nonzeroes in the local
part of the assembled matrix.
<BR> <BR>
Scope:<B>local</B>. Scope: <B>global</B>.
<BR> <BR>
Type:<B>required</B>. Type: <B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an array of size <IMG Specified as: an integer value.
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">. Must be of the same type and kind
of the coefficients of the sparse matrix <IMG
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img105.png"
ALT="$a$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>The communication descriptor.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a variable of type descdata<TT>psb_desc_type</TT>.
<BR></DD>
<DT><STRONG>local</STRONG></DT>
<DD>Whether the entries in the indices vectors <code>ia</code>,
<code>ja</code> are already in local numbering.
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a logical value; default: <code>.false.</code>.
<P>
</DD> </DD>
</DL> </DL>
@ -157,27 +99,16 @@ Specified as: a logical value; default: <code>.false.</code>.
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the matrix into which elements will be inserted. <DD>the matrix to be allocated.
<BR> <BR>
Scope:<B>local</B> Scope:<B>local</B>
<BR> <BR>
Type:<B>required</B> Type:<B>required</B>
<BR> <BR>
Intent: <B>inout</B>. Intent: <B>out</B>.
<BR> <BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>. Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>The communication descriptor.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a variable of type descdata<TT>psb_desc_type</TT>.
<BR></DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>
@ -190,84 +121,47 @@ Intent: <B>out</B>.
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <OL>
<LI>On entry to this routine the descriptor may be in either the <LI>On exit from this routine the sparse matrix is in the build
build or assembled state. state.
</LI>
<LI>On entry to this routine the sparse matrix may be in either the
build or update state.
</LI>
<LI>If the descriptor is in the build state, then the sparse matrix
must also be in the build state; the action of the routine is to
(implicitly) call <code>psb_cdins</code> to add entries to the sparsity
pattern; each sparse matrix entry implicitly defines a graph edge,
that is passed to the descriptor routine for the appropriate
processing;
</LI>
<LI>The coefficients to be inserted are represented by the ordered
triples <!-- MATH
$ia(i),ja(i),val(i)$
-->
<IMG
WIDTH="123" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img106.png"
ALT="$ia(i),ja(i),val(i)$">, for <IMG
WIDTH="92" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img107.png"
ALT="$i=1,\dots,nz$">; these triples
should belong to the current process, i.e. <IMG
WIDTH="35" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img100.png"
ALT="$ia(i)$"> should be one of
the local indices, but are otherwise arbitrary;
</LI>
<LI>There is no
requirement that a given row must be passed in its entirety to a
single call to this routine: the buildup of a row may be split into
as many calls as desired;
</LI>
<LI>Coefficients from different rows may also be mixed up freely
in a single call, according to the application needs;
</LI>
<LI>Any coefficients from matrix rows not owned by the calling
process are silently ignored;
</LI> </LI>
<LI>If the descriptor is in the assembled state, then any entries in <LI>The descriptor may be in either the build or assembled state.
the sparse matrix that would generate additional communication
requirements are ignored;
</LI> </LI>
<LI>If the matrix is in the update state, any entries in positions <LI>Providing a good estimate for the number of nonzeroes <IMG
that were not present in the original matrix are ignored. WIDTH="31" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img104.png"
ALT="$nnz$"> in
the assembled matrix may substantially improve performance in the
matrix build phase, as it will reduce or eliminate the need for
(potentially multiple) data reallocations.
</LI> </LI>
</OL> </OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1150" <A NAME="tex2html1153"
HREF="node74.html"> HREF="node74.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1146" <A NAME="tex2html1149"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1140" <A NAME="tex2html1143"
HREF="node72.html"> HREF="node72.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1148" <A NAME="tex2html1151"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1151" <B> Next:</B> <A NAME="tex2html1154"
HREF="node74.html">psb_spasb Sparse</A> HREF="node74.html">psb_spins Insert</A>
<B> Up:</B> <A NAME="tex2html1147" <B> Up:</B> <A NAME="tex2html1150"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1141" <B> Previous:</B> <A NAME="tex2html1144"
HREF="node72.html">psb_spall Allocates</A> HREF="node72.html">psb_cdbldext Build</A>
&nbsp; <B> <A NAME="tex2html1149" &nbsp; <B> <A NAME="tex2html1152"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spasb -- Sparse matrix assembly routine</TITLE> <TITLE>psb_spins -- Insert a cloud of elements into a sparse matrix</TITLE>
<META NAME="description" CONTENT="psb_spasb -- Sparse matrix assembly routine"> <META NAME="description" CONTENT="psb_spins -- Insert a cloud of elements into a sparse matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,56 +20,57 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node75.html"> <LINK REL="next" HREF="node75.html">
<LINK REL="previous" HREF="node73.html"> <LINK REL="previous" HREF="node73.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node75.html"> <LINK REL="next" HREF="node75.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1162" <A NAME="tex2html1165"
HREF="node75.html"> HREF="node75.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1158" <A NAME="tex2html1161"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1152" <A NAME="tex2html1155"
HREF="node73.html"> HREF="node73.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1160" <A NAME="tex2html1163"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1163" <B> Next:</B> <A NAME="tex2html1166"
HREF="node75.html">psb_spfree Frees</A> HREF="node75.html">psb_spasb Sparse</A>
<B> Up:</B> <A NAME="tex2html1159" <B> Up:</B> <A NAME="tex2html1162"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1153" <B> Previous:</B> <A NAME="tex2html1156"
HREF="node73.html">psb_spins Insert</A> HREF="node73.html">psb_spall Allocates</A>
&nbsp; <B> <A NAME="tex2html1161" &nbsp; <B> <A NAME="tex2html1164"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION00079000000000000000"> <H2><A NAME="SECTION00078000000000000000">
psb_spasb -- Sparse matrix assembly routine</A> psb_spins -- Insert a cloud of elements into a sparse
matrix</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold) call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
</PRE> </PRE>
<P> <P>
<DL> <DL>
<DT><STRONG>Type:</STRONG></DT> <DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous. <DD>Asynchronous.
</DD> </DD>
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>nz</STRONG></DT>
<DD>the communication descriptor. <DD>the number of elements to be inserted.
<BR> <BR>
Scope:<B>local</B>. Scope:<B>local</B>.
<BR> <BR>
@ -77,52 +78,76 @@ Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: an integer scalar.
</DD> </DD>
<DT><STRONG>afmt</STRONG></DT> <DT><STRONG>ia</STRONG></DT>
<DD>the storage format for the sparse matrix. <DD>the row indices of the elements to be inserted.
<BR> <BR>
Scope: <B>local</B>. Scope:<B>local</B>.
<BR> <BR>
Type: <B>optional</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an array of characters. Defalt: 'CSR'. Specified as: an integer array of size <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
<DT><STRONG>upd</STRONG></DT> <DT><STRONG>ja</STRONG></DT>
<DD>Provide for updates to the matrix coefficients. <DD>the column indices of the elements to be inserted.
<BR> <BR>
Scope: <B>global</B>. Scope:<B>local</B>.
<BR> <BR>
Type: <B>optional</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: integer, possible values: <code>psb_upd_srch_</code>, <code>psb_upd_perm_</code> Specified as: an integer array of size <IMG
WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">.
</DD> </DD>
<DT><STRONG>dupl</STRONG></DT> <DT><STRONG>val</STRONG></DT>
<DD>How to handle duplicate coefficients. <DD>the elements to be inserted.
<BR> <BR>
Scope: <B>global</B>. Scope:<B>local</B>.
<BR> <BR>
Type: <B>optional</B>. Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: integer, possible values: <code>psb_dupl_ovwrt_</code>, Specified as: an array of size <IMG
<code>psb_dupl_add_</code>, <code>psb_dupl_err_</code>. WIDTH="21" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img102.png"
ALT="$nz$">. Must be of the same type and kind
of the coefficients of the sparse matrix <IMG
WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img105.png"
ALT="$a$">.
</DD> </DD>
<DT><STRONG>mold</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>The desired dynamic type for the internal matrix storage. <DD>The communication descriptor.
<BR> <BR>
Scope: <B>local</B>. Scope: <B>local</B>.
<BR> <BR>
Type: <B>optional</B>. Type: <B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR>
Specified as: a variable of type descdata<TT>psb_desc_type</TT>.
<BR></DD>
<DT><STRONG>local</STRONG></DT>
<DD>Whether the entries in the indices vectors <code>ia</code>,
<code>ja</code> are already in local numbering.
<BR>
Scope:<B>local</B>.
<BR> <BR>
Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>. Type:<B>optional</B>.
<BR>
Specified as: a logical value; default: <code>.false.</code>.
<P>
</DD> </DD>
</DL> </DL>
@ -132,7 +157,7 @@ Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the matrix to be assembled. <DD>the matrix into which elements will be inserted.
<BR> <BR>
Scope:<B>local</B> Scope:<B>local</B>
<BR> <BR>
@ -142,6 +167,17 @@ Intent: <B>inout</B>.
<BR> <BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>. Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>The communication descriptor.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a variable of type descdata<TT>psb_desc_type</TT>.
<BR></DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>
@ -159,51 +195,79 @@ An integer value; 0 means no error has been detected.
<FONT SIZE="+1"><B>Notes</B></FONT> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <OL>
<LI>On entry to this routine the descriptor must be in the <LI>On entry to this routine the descriptor may be in either the
assembled state, i.e. <code>psb_cdasb</code> must already have been called. build or assembled state.
</LI>
<LI>On entry to this routine the sparse matrix may be in either the
build or update state.
</LI>
<LI>If the descriptor is in the build state, then the sparse matrix
must also be in the build state; the action of the routine is to
(implicitly) call <code>psb_cdins</code> to add entries to the sparsity
pattern; each sparse matrix entry implicitly defines a graph edge,
that is passed to the descriptor routine for the appropriate
processing;
</LI>
<LI>The coefficients to be inserted are represented by the ordered
triples <!-- MATH
$ia(i),ja(i),val(i)$
-->
<IMG
WIDTH="123" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img106.png"
ALT="$ia(i),ja(i),val(i)$">, for <IMG
WIDTH="92" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img107.png"
ALT="$i=1,\dots,nz$">; these triples
should belong to the current process, i.e. <IMG
WIDTH="35" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img100.png"
ALT="$ia(i)$"> should be one of
the local indices, but are otherwise arbitrary;
</LI> </LI>
<LI>The sparse matrix may be in either the build or update state; <LI>There is no
requirement that a given row must be passed in its entirety to a
single call to this routine: the buildup of a row may be split into
as many calls as desired;
</LI> </LI>
<LI>Duplicate entries are detected and handled in both build and <LI>Coefficients from different rows may also be mixed up freely
update state, with the exception of the error action that is only in a single call, according to the application needs;
taken in the build state, i.e. on the first assembly;
</LI> </LI>
<LI>If the update choice is <code>psb_upd_perm_</code>, then subsequent <LI>Any coefficients from matrix rows not owned by the calling
calls to <code>psb_spins</code> to update the matrix must be arranged in process are silently ignored;
such a way as to produce exactly the same sequence of coefficient
values as encountered at the first assembly;
</LI> </LI>
<LI>The output storage format need not be the same on all <LI>If the descriptor is in the assembled state, then any entries in
processes; the sparse matrix that would generate additional communication
requirements are ignored;
</LI> </LI>
<LI>On exit from this routine the matrix is in the assembled state, <LI>If the matrix is in the update state, any entries in positions
and thus is suitable for the computational routines. that were not present in the original matrix are ignored.
</LI> </LI>
</OL> </OL>
<P> <P>
<HR> <HR>
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1162" <A NAME="tex2html1165"
HREF="node75.html"> HREF="node75.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1158" <A NAME="tex2html1161"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1152" <A NAME="tex2html1155"
HREF="node73.html"> HREF="node73.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1160" <A NAME="tex2html1163"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1163" <B> Next:</B> <A NAME="tex2html1166"
HREF="node75.html">psb_spfree Frees</A> HREF="node75.html">psb_spasb Sparse</A>
<B> Up:</B> <A NAME="tex2html1159" <B> Up:</B> <A NAME="tex2html1162"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1153" <B> Previous:</B> <A NAME="tex2html1156"
HREF="node73.html">psb_spins Insert</A> HREF="node73.html">psb_spall Allocates</A>
&nbsp; <B> <A NAME="tex2html1161" &nbsp; <B> <A NAME="tex2html1164"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_spfree -- Frees a sparse matrix</TITLE> <TITLE>psb_spasb -- Sparse matrix assembly routine</TITLE>
<META NAME="description" CONTENT="psb_spfree -- Frees a sparse matrix"> <META NAME="description" CONTENT="psb_spasb -- Sparse matrix assembly routine">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node76.html"> <LINK REL="next" HREF="node76.html">
<LINK REL="previous" HREF="node74.html"> <LINK REL="previous" HREF="node74.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node76.html"> <LINK REL="next" HREF="node76.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1174" <A NAME="tex2html1177"
HREF="node76.html"> HREF="node76.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1170" <A NAME="tex2html1173"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1164" <A NAME="tex2html1167"
HREF="node74.html"> HREF="node74.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1172" <A NAME="tex2html1175"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1175" <B> Next:</B> <A NAME="tex2html1178"
HREF="node76.html">psb_sprn Reinit</A> HREF="node76.html">psb_spfree Frees</A>
<B> Up:</B> <A NAME="tex2html1171" <B> Up:</B> <A NAME="tex2html1174"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1165" <B> Previous:</B> <A NAME="tex2html1168"
HREF="node74.html">psb_spasb Sparse</A> HREF="node74.html">psb_spins Insert</A>
&nbsp; <B> <A NAME="tex2html1173" &nbsp; <B> <A NAME="tex2html1176"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000710000000000000000"> <H2><A NAME="SECTION00079000000000000000">
psb_spfree -- Frees a sparse matrix</A> psb_spasb -- Sparse matrix assembly routine</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_spfree(a, desc_a, info) call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
</PRE> </PRE>
<P> <P>
@ -68,17 +68,6 @@ call psb_spfree(a, desc_a, info)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT>
<DD>the matrix to be freed.
<BR>
Scope:<B>local</B>
<BR>
Type:<B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>the communication descriptor. <DD>the communication descriptor.
<BR> <BR>
@ -90,6 +79,51 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>afmt</STRONG></DT>
<DD>the storage format for the sparse matrix.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an array of characters. Defalt: 'CSR'.
</DD>
<DT><STRONG>upd</STRONG></DT>
<DD>Provide for updates to the matrix coefficients.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: integer, possible values: <code>psb_upd_srch_</code>, <code>psb_upd_perm_</code>
</DD>
<DT><STRONG>dupl</STRONG></DT>
<DD>How to handle duplicate coefficients.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: integer, possible values: <code>psb_dupl_ovwrt_</code>,
<code>psb_dupl_add_</code>, <code>psb_dupl_err_</code>.
</DD>
<DT><STRONG>mold</STRONG></DT>
<DD>The desired dynamic type for the internal matrix storage.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>.
</DD>
</DL> </DL>
<P> <P>
@ -97,6 +131,17 @@ Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT>
<DD>the matrix to be assembled.
<BR>
Scope:<B>local</B>
<BR>
Type:<B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>
@ -111,7 +156,56 @@ An integer value; 0 means no error has been detected.
</DL> </DL>
<P> <P>
<BR><HR> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>On entry to this routine the descriptor must be in the
assembled state, i.e. <code>psb_cdasb</code> must already have been called.
</LI>
<LI>The sparse matrix may be in either the build or update state;
</LI>
<LI>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>If the update choice is <code>psb_upd_perm_</code>, then subsequent
calls to <code>psb_spins</code> 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>The output storage format need not be the same on all
processes;
</LI>
<LI>On exit from this routine the matrix is in the assembled state,
and thus is suitable for the computational routines.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1177"
HREF="node76.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1173"
HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1167"
HREF="node74.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1175"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1178"
HREF="node76.html">psb_spfree Frees</A>
<B> Up:</B> <A NAME="tex2html1174"
HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1168"
HREF="node74.html">psb_spins Insert</A>
&nbsp; <B> <A NAME="tex2html1176"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_sprn -- Reinit sparse matrix structure for psblas routines.</TITLE> <TITLE>psb_spfree -- Frees a sparse matrix</TITLE>
<META NAME="description" CONTENT="psb_sprn -- Reinit sparse matrix structure for psblas routines."> <META NAME="description" CONTENT="psb_spfree -- Frees a sparse matrix">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node77.html"> <LINK REL="next" HREF="node77.html">
<LINK REL="previous" HREF="node75.html"> <LINK REL="previous" HREF="node75.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node77.html"> <LINK REL="next" HREF="node77.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1186" <A NAME="tex2html1189"
HREF="node77.html"> HREF="node77.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1182" <A NAME="tex2html1185"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1176" <A NAME="tex2html1179"
HREF="node75.html"> HREF="node75.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1184" <A NAME="tex2html1187"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1187" <B> Next:</B> <A NAME="tex2html1190"
HREF="node77.html">psb_geall Allocates</A> HREF="node77.html">psb_sprn Reinit</A>
<B> Up:</B> <A NAME="tex2html1183" <B> Up:</B> <A NAME="tex2html1186"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1177" <B> Previous:</B> <A NAME="tex2html1180"
HREF="node75.html">psb_spfree Frees</A> HREF="node75.html">psb_spasb Sparse</A>
&nbsp; <B> <A NAME="tex2html1185" &nbsp; <B> <A NAME="tex2html1188"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000711000000000000000"> <H2><A NAME="SECTION000710000000000000000">
psb_sprn -- Reinit sparse matrix structure for psblas psb_spfree -- Frees a sparse matrix</A>
routines.</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_sprn(a, decsc_a, info, clear) call psb_spfree(a, desc_a, info)
</PRE> </PRE>
<P> <P>
@ -70,7 +69,7 @@ call psb_sprn(a, decsc_a, info, clear)
<DD> <DD>
</DD> </DD>
<DT><STRONG>a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>the matrix to be reinitialized. <DD>the matrix to be freed.
<BR> <BR>
Scope:<B>local</B> Scope:<B>local</B>
<BR> <BR>
@ -91,17 +90,6 @@ Intent: <B>in</B>.
<BR> <BR>
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
</DD> </DD>
<DT><STRONG>clear</STRONG></DT>
<DD>Choose whether to zero out matrix coefficients
<BR>
Scope:<B>local</B>.
<BR>
Type:<B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Default: true.
</DD>
</DL> </DL>
<P> <P>
@ -121,13 +109,6 @@ Intent: <B>out</B>.
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>On exit from this routine the sparse matrix is in the update
state.
</LI>
</OL>
<P> <P>
<BR><HR> <BR><HR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others --> Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML> <HTML>
<HEAD> <HEAD>
<TITLE>psb_geall -- Allocates a dense matrix</TITLE> <TITLE>psb_sprn -- Reinit sparse matrix structure for psblas routines.</TITLE>
<META NAME="description" CONTENT="psb_geall -- Allocates a dense matrix"> <META NAME="description" CONTENT="psb_sprn -- Reinit sparse matrix structure for psblas routines.">
<META NAME="keywords" CONTENT="userhtml"> <META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document"> <META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global"> <META NAME="distribution" CONTENT="global">
@ -20,44 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node78.html"> <LINK REL="next" HREF="node78.html">
<LINK REL="previous" HREF="node76.html"> <LINK REL="previous" HREF="node76.html">
<LINK REL="up" HREF="node65.html"> <LINK REL="up" HREF="node66.html">
<LINK REL="next" HREF="node78.html"> <LINK REL="next" HREF="node78.html">
</HEAD> </HEAD>
<BODY > <BODY >
<!--Navigation Panel--> <!--Navigation Panel-->
<A NAME="tex2html1198" <A NAME="tex2html1201"
HREF="node78.html"> HREF="node78.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1194" <A NAME="tex2html1197"
HREF="node65.html"> HREF="node66.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1188" <A NAME="tex2html1191"
HREF="node76.html"> HREF="node76.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1196" <A NAME="tex2html1199"
HREF="node1.html"> HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR> <BR>
<B> Next:</B> <A NAME="tex2html1199" <B> Next:</B> <A NAME="tex2html1202"
HREF="node78.html">psb_geins Dense</A> HREF="node78.html">psb_geall Allocates</A>
<B> Up:</B> <A NAME="tex2html1195" <B> Up:</B> <A NAME="tex2html1198"
HREF="node65.html">Data management routines</A> HREF="node66.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1189" <B> Previous:</B> <A NAME="tex2html1192"
HREF="node76.html">psb_sprn Reinit</A> HREF="node76.html">psb_spfree Frees</A>
&nbsp; <B> <A NAME="tex2html1197" &nbsp; <B> <A NAME="tex2html1200"
HREF="node1.html">Contents</A></B> HREF="node1.html">Contents</A></B>
<BR> <BR>
<BR> <BR>
<!--End of Navigation Panel--> <!--End of Navigation Panel-->
<H2><A NAME="SECTION000712000000000000000"> <H2><A NAME="SECTION000711000000000000000">
psb_geall -- Allocates a dense matrix</A> psb_sprn -- Reinit sparse matrix structure for psblas
routines.</A>
</H2> </H2>
<P> <P>
<PRE> <PRE>
call psb_geall(x, desc_a, info, n, lb) call psb_sprn(a, decsc_a, info, clear)
</PRE> </PRE>
<P> <P>
@ -68,52 +69,38 @@ call psb_geall(x, desc_a, info, n, lb)
<DT><STRONG><B>On Entry</B></STRONG></DT> <DT><STRONG><B>On Entry</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>desc_a</STRONG></DT> <DT><STRONG>a</STRONG></DT>
<DD>The communication descriptor. <DD>the matrix to be reinitialized.
<BR> <BR>
Scope: <B>local</B> Scope:<B>local</B>
<BR> <BR>
Type: <B>required</B> Type:<B>required</B>
<BR> <BR>
Intent: <B>in</B>. Intent: <B>inout</B>.
<BR> <BR>
Specified as: a variable of type descdata<TT>psb_desc_type</TT>. Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
<BR></DD> </DD>
<DT><STRONG>n</STRONG></DT> <DT><STRONG>desc_a</STRONG></DT>
<DD>The number of columns of the dense matrix to be allocated. <DD>the communication descriptor.
<BR> <BR>
Scope: <B>local</B> Scope:<B>local</B>.
<BR> <BR>
Type: <B>optional</B> Type:<B>required</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: Integer scalar, default <IMG Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img108.png"
ALT="$1$">. It is not a valid argument if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a
rank-1 array.
</DD> </DD>
<DT><STRONG>lb</STRONG></DT> <DT><STRONG>clear</STRONG></DT>
<DD>The lower bound for the column index range of the dense matrix to be allocated. <DD>Choose whether to zero out matrix coefficients
<BR> <BR>
Scope: <B>local</B> Scope:<B>local</B>.
<BR> <BR>
Type: <B>optional</B> Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: Integer scalar, default <IMG Default: true.
WIDTH="12" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img108.png"
ALT="$1$">. It is not a valid argument if <IMG
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a
rank-1 array.
</DD> </DD>
</DL> </DL>
@ -122,18 +109,6 @@ rank-1 array.
<DT><STRONG><B>On Return</B></STRONG></DT> <DT><STRONG><B>On Return</B></STRONG></DT>
<DD> <DD>
</DD> </DD>
<DT><STRONG>x</STRONG></DT>
<DD>The dense matrix to be allocated.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
Specified as: a rank one or two array with the ALLOCATABLE attribute
or an object of type vdata<TT>psb_T_vect_type</TT>, of type real, complex or integer.
<BR></DD>
<DT><STRONG>info</STRONG></DT> <DT><STRONG>info</STRONG></DT>
<DD>Error code. <DD>Error code.
<BR> <BR>
@ -146,32 +121,16 @@ Intent: <B>out</B>.
An integer value; 0 means no error has been detected. An integer value; 0 means no error has been detected.
</DD> </DD>
</DL> </DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>On exit from this routine the sparse matrix is in the update
state.
</LI>
</OL>
<P> <P>
<HR> <BR><HR>
<!--Navigation Panel-->
<A NAME="tex2html1198"
HREF="node78.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1194"
HREF="node65.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1188"
HREF="node76.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1196"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1199"
HREF="node78.html">psb_geins Dense</A>
<B> Up:</B> <A NAME="tex2html1195"
HREF="node65.html">Data management routines</A>
<B> Previous:</B> <A NAME="tex2html1189"
HREF="node76.html">psb_sprn Reinit</A>
&nbsp; <B> <A NAME="tex2html1197"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY> </BODY>
</HTML> </HTML>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save