mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
psblas3:
Updated docs.
This commit is contained in:
@@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="previous" HREF="node120.html">
|
||||
<LINK REL="previous" HREF="node121.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
</HEAD>
|
||||
|
||||
@@ -104,8 +104,8 @@ sample scatter/gather routines.
|
||||
.
|
||||
</PRE>
|
||||
</DD>
|
||||
<DT><A NAME="foot7399">... follows</A><A
|
||||
HREF="node113.html#tex2html30"><SUP>3</SUP></A></DT>
|
||||
<DT><A NAME="foot7420">... follows</A><A
|
||||
HREF="node114.html#tex2html30"><SUP>3</SUP></A></DT>
|
||||
<DD>The string is case-insensitive
|
||||
|
||||
<PRE>.
|
||||
|
||||
+135
-133
@@ -149,227 +149,229 @@ of a sparse matrix</A>
|
||||
<LI><A NAME="tex2html66"
|
||||
HREF="node32.html">csclip -- Reduce to a submatrix</A>
|
||||
<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"
|
||||
HREF="node34.html">tril -- Return the lower triangle</A>
|
||||
HREF="node34.html">clip_diag -- Cut out main diagonal</A>
|
||||
<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"
|
||||
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"
|
||||
HREF="node37.html">clone -- Clone current object</A>
|
||||
HREF="node37.html">psb_set_mat_default -- Set default storage format</A>
|
||||
<LI><A NAME="tex2html72"
|
||||
HREF="node38.html">Named Constants</A>
|
||||
</UL>
|
||||
HREF="node38.html">clone -- Clone current object</A>
|
||||
<LI><A NAME="tex2html73"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<UL>
|
||||
HREF="node39.html">Named Constants</A>
|
||||
</UL>
|
||||
<LI><A NAME="tex2html74"
|
||||
HREF="node40.html">Vector Methods</A>
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<UL>
|
||||
<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"
|
||||
HREF="node42.html">sizeof -- Get memory occupation in bytes
|
||||
of a dense vector</A>
|
||||
HREF="node42.html">get_nrows -- Get number of rows in a dense vector</A>
|
||||
<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"
|
||||
HREF="node44.html">clone -- Clone current object</A>
|
||||
</UL>
|
||||
HREF="node44.html">get_vect -- Get a copy of the vector contents</A>
|
||||
<LI><A NAME="tex2html79"
|
||||
HREF="node45.html">Preconditioner data structure</A>
|
||||
HREF="node45.html">clone -- Clone current object</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html80"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<UL>
|
||||
HREF="node46.html">Preconditioner data structure</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<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"
|
||||
HREF="node48.html">psb_gedot -- Dot Product</A>
|
||||
HREF="node48.html">psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
<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"
|
||||
HREF="node50.html">psb_geamax -- Infinity-Norm of Vector</A>
|
||||
HREF="node50.html">psb_gedots -- Generalized Dot Product</A>
|
||||
<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"
|
||||
HREF="node52.html">psb_geasum -- 1-Norm of Vector</A>
|
||||
HREF="node52.html">psb_geamaxs -- Generalized Infinity Norm</A>
|
||||
<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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
HREF="node58.html">psb_spmm -- Sparse Matrix by Dense Matrix
|
||||
Product</A>
|
||||
HREF="node58.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
|
||||
<LI><A NAME="tex2html93"
|
||||
HREF="node59.html">psb_spsm -- Triangular System Solve</A>
|
||||
</UL>
|
||||
<BR>
|
||||
HREF="node59.html">psb_spmm -- Sparse Matrix by Dense Matrix
|
||||
Product</A>
|
||||
<LI><A NAME="tex2html94"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html95"
|
||||
HREF="node61.html">psb_halo -- Halo Data Communication</A>
|
||||
<LI><A NAME="tex2html96"
|
||||
HREF="node62.html">psb_ovrl -- Overlap Update</A>
|
||||
<LI><A NAME="tex2html97"
|
||||
HREF="node63.html">psb_gather -- Gather Global Dense Matrix</A>
|
||||
<LI><A NAME="tex2html98"
|
||||
HREF="node64.html">psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
HREF="node60.html">psb_spsm -- Triangular System Solve</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html99"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<LI><A NAME="tex2html95"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html96"
|
||||
HREF="node62.html">psb_halo -- Halo Data Communication</A>
|
||||
<LI><A NAME="tex2html97"
|
||||
HREF="node63.html">psb_ovrl -- Overlap Update</A>
|
||||
<LI><A NAME="tex2html98"
|
||||
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>
|
||||
<BR>
|
||||
<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"
|
||||
HREF="node67.html">psb_cdins -- Communication descriptor insert
|
||||
routine</A>
|
||||
HREF="node67.html">psb_cdall -- Allocates a communication descriptor</A>
|
||||
<LI><A NAME="tex2html102"
|
||||
HREF="node68.html">psb_cdasb -- Communication descriptor assembly
|
||||
HREF="node68.html">psb_cdins -- Communication descriptor insert
|
||||
routine</A>
|
||||
<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"
|
||||
HREF="node70.html">psb_cdfree -- Frees a communication descriptor</A>
|
||||
HREF="node70.html">psb_cdcpy -- Copies a communication descriptor</A>
|
||||
<LI><A NAME="tex2html105"
|
||||
HREF="node71.html">psb_cdbldext -- Build an extended communication
|
||||
descriptor</A>
|
||||
HREF="node71.html">psb_cdfree -- Frees a communication descriptor</A>
|
||||
<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"
|
||||
HREF="node73.html">psb_spins -- Insert a cloud of elements into a sparse
|
||||
matrix</A>
|
||||
HREF="node73.html">psb_spall -- Allocates a sparse matrix</A>
|
||||
<LI><A NAME="tex2html108"
|
||||
HREF="node74.html">psb_spasb -- Sparse matrix assembly routine</A>
|
||||
<LI><A NAME="tex2html109"
|
||||
HREF="node75.html">psb_spfree -- Frees a sparse matrix</A>
|
||||
<LI><A NAME="tex2html110"
|
||||
HREF="node76.html">psb_sprn -- Reinit sparse matrix structure for psblas
|
||||
routines.</A>
|
||||
<LI><A NAME="tex2html111"
|
||||
HREF="node77.html">psb_geall -- Allocates a dense matrix</A>
|
||||
<LI><A NAME="tex2html112"
|
||||
HREF="node78.html">psb_geins -- Dense matrix insertion routine</A>
|
||||
<LI><A NAME="tex2html113"
|
||||
HREF="node79.html">psb_geasb -- Assembly a dense matrix</A>
|
||||
<LI><A NAME="tex2html114"
|
||||
HREF="node80.html">psb_gefree -- Frees a dense matrix</A>
|
||||
<LI><A NAME="tex2html115"
|
||||
HREF="node81.html">psb_gelp -- Applies a left permutation to a dense
|
||||
HREF="node74.html">psb_spins -- Insert a cloud of elements into a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html109"
|
||||
HREF="node75.html">psb_spasb -- Sparse matrix assembly routine</A>
|
||||
<LI><A NAME="tex2html110"
|
||||
HREF="node76.html">psb_spfree -- Frees a sparse matrix</A>
|
||||
<LI><A NAME="tex2html111"
|
||||
HREF="node77.html">psb_sprn -- Reinit sparse matrix structure for psblas
|
||||
routines.</A>
|
||||
<LI><A NAME="tex2html112"
|
||||
HREF="node78.html">psb_geall -- Allocates a dense matrix</A>
|
||||
<LI><A NAME="tex2html113"
|
||||
HREF="node79.html">psb_geins -- Dense matrix insertion routine</A>
|
||||
<LI><A NAME="tex2html114"
|
||||
HREF="node80.html">psb_geasb -- Assembly a dense matrix</A>
|
||||
<LI><A NAME="tex2html115"
|
||||
HREF="node81.html">psb_gefree -- Frees a dense matrix</A>
|
||||
<LI><A NAME="tex2html116"
|
||||
HREF="node82.html">psb_glob_to_loc -- Global to local indices
|
||||
convertion</A>
|
||||
HREF="node82.html">psb_gelp -- Applies a left permutation to a dense
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html117"
|
||||
HREF="node83.html">psb_loc_to_glob -- Local to global indices
|
||||
conversion</A>
|
||||
HREF="node83.html">psb_glob_to_loc -- Global to local indices
|
||||
convertion</A>
|
||||
<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"
|
||||
HREF="node85.html">psb_owned_index -- </A>
|
||||
HREF="node85.html">psb_is_owned -- </A>
|
||||
<LI><A NAME="tex2html120"
|
||||
HREF="node86.html">psb_is_local -- </A>
|
||||
HREF="node86.html">psb_owned_index -- </A>
|
||||
<LI><A NAME="tex2html121"
|
||||
HREF="node87.html">psb_local_index -- </A>
|
||||
HREF="node87.html">psb_is_local -- </A>
|
||||
<LI><A NAME="tex2html122"
|
||||
HREF="node88.html">psb_get_boundary -- Extract list of boundary
|
||||
elements</A>
|
||||
HREF="node88.html">psb_local_index -- </A>
|
||||
<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>
|
||||
<LI><A NAME="tex2html124"
|
||||
HREF="node90.html">psb_sp_getrow -- Extract row(s) from a sparse
|
||||
matrix</A>
|
||||
HREF="node90.html">psb_get_overlap -- Extract list of overlap
|
||||
elements</A>
|
||||
<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"
|
||||
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>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html127"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html128"
|
||||
HREF="node94.html">psb_init -- Initializes PSBLAS parallel
|
||||
environment</A>
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html129"
|
||||
HREF="node95.html">psb_info -- Return information about PSBLAS parallel
|
||||
HREF="node95.html">psb_init -- Initializes PSBLAS parallel
|
||||
environment</A>
|
||||
<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>
|
||||
<LI><A NAME="tex2html131"
|
||||
HREF="node97.html">psb_get_mpicomm -- Get the MPI communicator</A>
|
||||
<LI><A NAME="tex2html132"
|
||||
HREF="node98.html">psb_get_rank -- Get the MPI rank</A>
|
||||
<LI><A NAME="tex2html133"
|
||||
HREF="node99.html">psb_wtime -- Wall clock timing</A>
|
||||
<LI><A NAME="tex2html134"
|
||||
HREF="node100.html">psb_barrier -- Sinchronization point parallel
|
||||
HREF="node97.html">psb_exit -- Exit from PSBLAS parallel
|
||||
environment</A>
|
||||
<LI><A NAME="tex2html132"
|
||||
HREF="node98.html">psb_get_mpicomm -- Get the MPI communicator</A>
|
||||
<LI><A NAME="tex2html133"
|
||||
HREF="node99.html">psb_get_rank -- Get the MPI rank</A>
|
||||
<LI><A NAME="tex2html134"
|
||||
HREF="node100.html">psb_wtime -- Wall clock timing</A>
|
||||
<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"
|
||||
HREF="node102.html">psb_bcast -- Broadcast data</A>
|
||||
HREF="node102.html">psb_abort -- Abort a computation</A>
|
||||
<LI><A NAME="tex2html137"
|
||||
HREF="node103.html">psb_sum -- Global sum</A>
|
||||
HREF="node103.html">psb_bcast -- Broadcast data</A>
|
||||
<LI><A NAME="tex2html138"
|
||||
HREF="node104.html">psb_max -- Global maximum</A>
|
||||
HREF="node104.html">psb_sum -- Global sum</A>
|
||||
<LI><A NAME="tex2html139"
|
||||
HREF="node105.html">psb_min -- Global minimum</A>
|
||||
HREF="node105.html">psb_max -- Global maximum</A>
|
||||
<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"
|
||||
HREF="node107.html">psb_amn -- Global minimum absolute value</A>
|
||||
HREF="node107.html">psb_amx -- Global maximum absolute value</A>
|
||||
<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"
|
||||
HREF="node109.html">psb_rcv -- Receive data</A>
|
||||
</UL>
|
||||
<BR>
|
||||
HREF="node109.html">psb_snd -- Send data</A>
|
||||
<LI><A NAME="tex2html144"
|
||||
HREF="node110.html">Error handling</A>
|
||||
HREF="node110.html">psb_rcv -- Receive data</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html145"
|
||||
HREF="node111.html">Utilities</A>
|
||||
HREF="node111.html">Error handling</A>
|
||||
<LI><A NAME="tex2html146"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<UL>
|
||||
HREF="node112.html">Utilities</A>
|
||||
<LI><A NAME="tex2html147"
|
||||
HREF="node113.html">psb_precinit -- Initialize a preconditioner</A>
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<UL>
|
||||
<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"
|
||||
HREF="node115.html">psb_precaply -- Preconditioner application
|
||||
routine</A>
|
||||
HREF="node115.html">psb_precbld -- Builds a preconditioner</A>
|
||||
<LI><A NAME="tex2html150"
|
||||
HREF="node116.html">psb_precdescr -- Prints a description of current
|
||||
preconditioner</A>
|
||||
HREF="node116.html">psb_precaply -- Preconditioner application
|
||||
routine</A>
|
||||
<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>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html152"
|
||||
HREF="node118.html">Iterative Methods</A>
|
||||
<UL>
|
||||
<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>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html154"
|
||||
HREF="node120.html">Bibliography</A>
|
||||
<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>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
+28
-28
@@ -26,21 +26,21 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html164"
|
||||
<A NAME="tex2html165"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html162"
|
||||
<A NAME="tex2html163"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html156"
|
||||
<A NAME="tex2html157"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html165"
|
||||
<B> Next:</B> <A NAME="tex2html166"
|
||||
HREF="node2.html">Introduction</A>
|
||||
<B> Up:</B> <A NAME="tex2html163"
|
||||
<B> Up:</B> <A NAME="tex2html164"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html157"
|
||||
<B> Previous:</B> <A NAME="tex2html158"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -53,52 +53,52 @@ Contents</A>
|
||||
<!--Table of Contents-->
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html166"
|
||||
HREF="node2.html">Introduction</A>
|
||||
<LI><A NAME="tex2html167"
|
||||
HREF="node2.html">Introduction</A>
|
||||
<LI><A NAME="tex2html168"
|
||||
HREF="node3.html">General overview</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html168"
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<LI><A NAME="tex2html169"
|
||||
HREF="node5.html">Library contents</A>
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<LI><A NAME="tex2html170"
|
||||
HREF="node6.html">Application structure</A>
|
||||
HREF="node5.html">Library contents</A>
|
||||
<LI><A NAME="tex2html171"
|
||||
HREF="node6.html">Application structure</A>
|
||||
<LI><A NAME="tex2html172"
|
||||
HREF="node8.html">Programming model</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html172"
|
||||
<LI><A NAME="tex2html173"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html173"
|
||||
HREF="node10.html">Descriptor data structure</A>
|
||||
<LI><A NAME="tex2html174"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
HREF="node10.html">Descriptor data structure</A>
|
||||
<LI><A NAME="tex2html175"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<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>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html177"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<LI><A NAME="tex2html178"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<LI><A NAME="tex2html179"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<LI><A NAME="tex2html180"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<LI><A NAME="tex2html181"
|
||||
HREF="node110.html">Error handling</A>
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<LI><A NAME="tex2html182"
|
||||
HREF="node111.html">Utilities</A>
|
||||
HREF="node111.html">Error handling</A>
|
||||
<LI><A NAME="tex2html183"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
HREF="node112.html">Utilities</A>
|
||||
<LI><A NAME="tex2html184"
|
||||
HREF="node118.html">Iterative Methods</A>
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<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>
|
||||
<!--End of Table of Contents-->
|
||||
<P>
|
||||
|
||||
+30
-30
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html330"
|
||||
<A NAME="tex2html332"
|
||||
HREF="node11.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html326"
|
||||
<A NAME="tex2html328"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html320"
|
||||
<A NAME="tex2html322"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html328"
|
||||
<A NAME="tex2html330"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html331"
|
||||
<B> Next:</B> <A NAME="tex2html333"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html321"
|
||||
<B> Previous:</B> <A NAME="tex2html323"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> <A NAME="tex2html329"
|
||||
<B> <A NAME="tex2html331"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -66,7 +66,7 @@ necessary for implementing the various algorithms of interest to us.
|
||||
<P>
|
||||
The data structure itself <code>psb_desc_type</code> can be treated as an
|
||||
opaque object handled via the tools routines of
|
||||
Sec. <A HREF="node65.html#sec:toolsrout">6</A> or the query routines detailed below;
|
||||
Sec. <A HREF="node66.html#sec:toolsrout">6</A> or the query routines detailed below;
|
||||
nevertheless we include here a description for the curious
|
||||
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
|
||||
method. The choice of a specific dynamic type for the index map is
|
||||
made at the time the descriptor is initially allocated, according to
|
||||
the mode of initialization (see also <A HREF="node65.html#sec:toolsrout">6</A>).
|
||||
the mode of initialization (see also <A HREF="node66.html#sec:toolsrout">6</A>).
|
||||
|
||||
<P>
|
||||
The descriptor contents are as follows:
|
||||
@@ -202,7 +202,7 @@ Specified as: an allocatable integer array of rank two.
|
||||
The Fortran 2003 declaration for <code>psb_desc_type</code> structures is
|
||||
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>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
|
||||
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>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html332"
|
||||
HREF="node11.html">Descriptor Methods</A>
|
||||
<LI><A NAME="tex2html333"
|
||||
HREF="node12.html">get_local_rows -- Get number of local rows</A>
|
||||
<LI><A NAME="tex2html334"
|
||||
HREF="node13.html">get_local_cols -- Get number of local cols</A>
|
||||
HREF="node11.html">Descriptor Methods</A>
|
||||
<LI><A NAME="tex2html335"
|
||||
HREF="node14.html">get_global_rows -- Get number of global rows</A>
|
||||
HREF="node12.html">get_local_rows -- Get number of local rows</A>
|
||||
<LI><A NAME="tex2html336"
|
||||
HREF="node15.html">get_global_cols -- Get number of global cols</A>
|
||||
HREF="node13.html">get_local_cols -- Get number of local cols</A>
|
||||
<LI><A NAME="tex2html337"
|
||||
HREF="node16.html">get_context -- Get communication context</A>
|
||||
HREF="node14.html">get_global_rows -- Get number of global rows</A>
|
||||
<LI><A NAME="tex2html338"
|
||||
HREF="node17.html">Clone -- clone current object</A>
|
||||
HREF="node15.html">get_global_cols -- Get number of global cols</A>
|
||||
<LI><A NAME="tex2html339"
|
||||
HREF="node16.html">get_context -- Get communication context</A>
|
||||
<LI><A NAME="tex2html340"
|
||||
HREF="node17.html">Clone -- clone current object</A>
|
||||
<LI><A NAME="tex2html341"
|
||||
HREF="node18.html">psb_cd_get_large_threshold -- Get threshold for
|
||||
index mapping switch</A>
|
||||
<LI><A NAME="tex2html340"
|
||||
<LI><A NAME="tex2html342"
|
||||
HREF="node19.html">psb_cd_set_large_threshold -- Set threshold for
|
||||
index mapping switch</A>
|
||||
<LI><A NAME="tex2html341"
|
||||
<LI><A NAME="tex2html343"
|
||||
HREF="node20.html">Named Constants</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html330"
|
||||
<A NAME="tex2html332"
|
||||
HREF="node11.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html326"
|
||||
<A NAME="tex2html328"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html320"
|
||||
<A NAME="tex2html322"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html328"
|
||||
<A NAME="tex2html330"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html331"
|
||||
<B> Next:</B> <A NAME="tex2html333"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html321"
|
||||
<B> Previous:</B> <A NAME="tex2html323"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> <A NAME="tex2html329"
|
||||
<B> <A NAME="tex2html331"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+25
-33
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_barrier -- Sinchronization point parallel environment</TITLE>
|
||||
<META NAME="description" CONTENT="psb_barrier -- Sinchronization point parallel environment">
|
||||
<TITLE>psb_wtime -- Wall clock timing</TITLE>
|
||||
<META NAME="description" CONTENT="psb_wtime -- Wall clock timing">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node99.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node101.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1488"
|
||||
<A NAME="tex2html1491"
|
||||
HREF="node101.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1484"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1487"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1478"
|
||||
<A NAME="tex2html1481"
|
||||
HREF="node99.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1486"
|
||||
<A NAME="tex2html1489"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1489"
|
||||
HREF="node101.html">psb_abort Abort</A>
|
||||
<B> Up:</B> <A NAME="tex2html1485"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1479"
|
||||
HREF="node99.html">psb_wtime Wall</A>
|
||||
<B> <A NAME="tex2html1487"
|
||||
<B> Next:</B> <A NAME="tex2html1492"
|
||||
HREF="node101.html">psb_barrier Sinchronization</A>
|
||||
<B> Up:</B> <A NAME="tex2html1488"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1482"
|
||||
HREF="node99.html">psb_get_rank Get</A>
|
||||
<B> <A NAME="tex2html1490"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00087000000000000000">
|
||||
psb_barrier -- Sinchronization point parallel
|
||||
environment</A>
|
||||
<H2><A NAME="SECTION00086000000000000000">
|
||||
psb_wtime -- Wall clock timing</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_barrier(icontxt)
|
||||
time = psb_wtime()
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine acts as an explicit synchronization point for the PSBLAS
|
||||
parallel virtual machine.
|
||||
This function returns a wall clock timer. The resolution of the timer
|
||||
is dependent on the underlying parallel environment implementation.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DT><STRONG><B>On Exit </B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>icontxt</STRONG></DT>
|
||||
<DD>the communication context identifying the virtual
|
||||
parallel machine.
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>the elapsed time in seconds.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer variable.
|
||||
Returned as: a <code>real(psb_dpk_)</code> variable.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+22
-20
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_abort -- Abort a computation</TITLE>
|
||||
<META NAME="description" CONTENT="psb_abort -- Abort a computation">
|
||||
<TITLE>psb_barrier -- Sinchronization point parallel environment</TITLE>
|
||||
<META NAME="description" CONTENT="psb_barrier -- Sinchronization point parallel environment">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node100.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node102.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1500"
|
||||
<A NAME="tex2html1503"
|
||||
HREF="node102.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1496"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1499"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1490"
|
||||
<A NAME="tex2html1493"
|
||||
HREF="node100.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1498"
|
||||
<A NAME="tex2html1501"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1501"
|
||||
HREF="node102.html">psb_bcast Broadcast</A>
|
||||
<B> Up:</B> <A NAME="tex2html1497"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1491"
|
||||
HREF="node100.html">psb_barrier Sinchronization</A>
|
||||
<B> <A NAME="tex2html1499"
|
||||
<B> Next:</B> <A NAME="tex2html1504"
|
||||
HREF="node102.html">psb_abort Abort</A>
|
||||
<B> Up:</B> <A NAME="tex2html1500"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1494"
|
||||
HREF="node100.html">psb_wtime Wall</A>
|
||||
<B> <A NAME="tex2html1502"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00088000000000000000">
|
||||
psb_abort -- Abort a computation</A>
|
||||
<H2><A NAME="SECTION00087000000000000000">
|
||||
psb_barrier -- Sinchronization point parallel
|
||||
environment</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_abort(icontxt)
|
||||
call psb_barrier(icontxt)
|
||||
</PRE>
|
||||
|
||||
<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>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
|
||||
+21
-93
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_bcast -- Broadcast data</TITLE>
|
||||
<META NAME="description" CONTENT="psb_bcast -- Broadcast data">
|
||||
<TITLE>psb_abort -- Abort a computation</TITLE>
|
||||
<META NAME="description" CONTENT="psb_abort -- Abort a computation">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node101.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node103.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1512"
|
||||
<A NAME="tex2html1515"
|
||||
HREF="node103.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1508"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1511"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1502"
|
||||
<A NAME="tex2html1505"
|
||||
HREF="node101.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1510"
|
||||
<A NAME="tex2html1513"
|
||||
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>
|
||||
<B> <A NAME="tex2html1511"
|
||||
<B> Next:</B> <A NAME="tex2html1516"
|
||||
HREF="node103.html">psb_bcast Broadcast</A>
|
||||
<B> Up:</B> <A NAME="tex2html1512"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1506"
|
||||
HREF="node101.html">psb_barrier Sinchronization</A>
|
||||
<B> <A NAME="tex2html1514"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00089000000000000000">
|
||||
psb_bcast -- Broadcast data</A>
|
||||
<H2><A NAME="SECTION00088000000000000000">
|
||||
psb_abort -- Abort a computation</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_bcast(icontxt, dat, root)
|
||||
call psb_abort(icontxt)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine implements a broadcast operation based on the
|
||||
underlying communication library.
|
||||
This subroutine aborts computation on the parallel virtual machine.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
@@ -82,81 +81,10 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer variable.
|
||||
</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<= root <= np-1$">, default 0 </DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<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>
|
||||
<B> <A NAME="tex2html1511"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+41
-58
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_sum -- Global sum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_sum -- Global sum">
|
||||
<TITLE>psb_bcast -- Broadcast data</TITLE>
|
||||
<META NAME="description" CONTENT="psb_bcast -- Broadcast data">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node102.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node104.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1524"
|
||||
<A NAME="tex2html1527"
|
||||
HREF="node104.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1520"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1523"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1514"
|
||||
<A NAME="tex2html1517"
|
||||
HREF="node102.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1522"
|
||||
<A NAME="tex2html1525"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1525"
|
||||
HREF="node104.html">psb_max Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1521"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1515"
|
||||
HREF="node102.html">psb_bcast Broadcast</A>
|
||||
<B> <A NAME="tex2html1523"
|
||||
<B> Next:</B> <A NAME="tex2html1528"
|
||||
HREF="node104.html">psb_sum Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1524"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1518"
|
||||
HREF="node102.html">psb_abort Abort</A>
|
||||
<B> <A NAME="tex2html1526"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000810000000000000000">
|
||||
psb_sum -- Global sum</A>
|
||||
<H2><A NAME="SECTION00089000000000000000">
|
||||
psb_bcast -- Broadcast data</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_sum(icontxt, dat, root)
|
||||
call psb_bcast(icontxt, dat, root)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine implements a sum reduction operation based on the
|
||||
This subroutine implements a broadcast operation based on the
|
||||
underlying communication library.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -83,7 +83,7 @@ Intent: <B>in</B>.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The local contribution to the global sum.
|
||||
<DD>On the root process, the data to be broadcast.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
@@ -92,14 +92,11 @@ Type: <B>required</B>.
|
||||
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. 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>
|
||||
<DT><STRONG>root</STRONG></DT>
|
||||
<DD>Process to hold the final sum, or <IMG
|
||||
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img79.png"
|
||||
ALT="$-1$"> to make it available
|
||||
on all processes.
|
||||
<DD>Root process holding data to be broadcast.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
@@ -108,12 +105,12 @@ Type: <B>optional</B>.
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value <!-- MATH
|
||||
$-1<= root <= np-1$
|
||||
$0<= root <= np-1$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img133.png"
|
||||
ALT="$-1<= root <= np-1$">, default -1. </DD>
|
||||
WIDTH="152" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img132.png"
|
||||
ALT="$0<= root <= np-1$">, default 0 </DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
@@ -122,7 +119,7 @@ Specified as: an integer value <!-- MATH
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
@@ -131,47 +128,33 @@ Type: <B>required</B>.
|
||||
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.
|
||||
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>
|
||||
<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>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1524"
|
||||
<A NAME="tex2html1527"
|
||||
HREF="node104.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1520"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1523"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1514"
|
||||
<A NAME="tex2html1517"
|
||||
HREF="node102.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1522"
|
||||
<A NAME="tex2html1525"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1525"
|
||||
HREF="node104.html">psb_max Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1521"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1515"
|
||||
HREF="node102.html">psb_bcast Broadcast</A>
|
||||
<B> <A NAME="tex2html1523"
|
||||
<B> Next:</B> <A NAME="tex2html1528"
|
||||
HREF="node104.html">psb_sum Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1524"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1518"
|
||||
HREF="node102.html">psb_abort Abort</A>
|
||||
<B> <A NAME="tex2html1526"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+43
-42
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_max -- Global maximum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_max -- Global maximum">
|
||||
<TITLE>psb_sum -- Global sum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_sum -- Global sum">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node103.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node105.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1536"
|
||||
<A NAME="tex2html1539"
|
||||
HREF="node105.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1532"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1535"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1526"
|
||||
<A NAME="tex2html1529"
|
||||
HREF="node103.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1534"
|
||||
<A NAME="tex2html1537"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1537"
|
||||
HREF="node105.html">psb_min Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1533"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1527"
|
||||
HREF="node103.html">psb_sum Global</A>
|
||||
<B> <A NAME="tex2html1535"
|
||||
<B> Next:</B> <A NAME="tex2html1540"
|
||||
HREF="node105.html">psb_max Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1536"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1530"
|
||||
HREF="node103.html">psb_bcast Broadcast</A>
|
||||
<B> <A NAME="tex2html1538"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000811000000000000000">
|
||||
psb_max -- Global maximum</A>
|
||||
<H2><A NAME="SECTION000810000000000000000">
|
||||
psb_sum -- Global sum</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_max(icontxt, dat, root)
|
||||
call psb_sum(icontxt, dat, root)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine implements a maximum valuereduction
|
||||
operation based on the underlying communication library.
|
||||
This subroutine implements a sum reduction operation based on the
|
||||
underlying communication library.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
@@ -83,19 +83,19 @@ Intent: <B>in</B>.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The local contribution to the global maximum.
|
||||
<DD>The local contribution to the global sum.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<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.
|
||||
</DD>
|
||||
<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"
|
||||
SRC="img79.png"
|
||||
ALT="$-1$"> to make it available
|
||||
@@ -113,8 +113,7 @@ Specified as: an integer value <!-- MATH
|
||||
<IMG
|
||||
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img133.png"
|
||||
ALT="$-1<= root <= np-1$">, default -1.
|
||||
<BR></DD>
|
||||
ALT="$-1<= root <= np-1$">, default -1. </DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
@@ -123,16 +122,18 @@ Specified as: an integer value <!-- MATH
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
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.
|
||||
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>
|
||||
|
||||
@@ -151,26 +152,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1536"
|
||||
<A NAME="tex2html1539"
|
||||
HREF="node105.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1532"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1535"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1526"
|
||||
<A NAME="tex2html1529"
|
||||
HREF="node103.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1534"
|
||||
<A NAME="tex2html1537"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1537"
|
||||
HREF="node105.html">psb_min Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1533"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1527"
|
||||
HREF="node103.html">psb_sum Global</A>
|
||||
<B> <A NAME="tex2html1535"
|
||||
<B> Next:</B> <A NAME="tex2html1540"
|
||||
HREF="node105.html">psb_max Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1536"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1530"
|
||||
HREF="node103.html">psb_bcast Broadcast</A>
|
||||
<B> <A NAME="tex2html1538"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+38
-40
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_min -- Global minimum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_min -- Global minimum">
|
||||
<TITLE>psb_max -- Global maximum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_max -- Global maximum">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node104.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node106.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1548"
|
||||
<A NAME="tex2html1551"
|
||||
HREF="node106.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1544"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1547"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1538"
|
||||
<A NAME="tex2html1541"
|
||||
HREF="node104.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1546"
|
||||
<A NAME="tex2html1549"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1549"
|
||||
HREF="node106.html">psb_amx Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1545"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1539"
|
||||
HREF="node104.html">psb_max Global</A>
|
||||
<B> <A NAME="tex2html1547"
|
||||
<B> Next:</B> <A NAME="tex2html1552"
|
||||
HREF="node106.html">psb_min Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1548"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1542"
|
||||
HREF="node104.html">psb_sum Global</A>
|
||||
<B> <A NAME="tex2html1550"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000812000000000000000">
|
||||
psb_min -- Global minimum</A>
|
||||
<H2><A NAME="SECTION000811000000000000000">
|
||||
psb_max -- Global maximum</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_min(icontxt, dat, root)
|
||||
call psb_max(icontxt, dat, root)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine implements a minimum value reduction
|
||||
This subroutine implements a maximum valuereduction
|
||||
operation based on the underlying communication library.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -83,7 +83,7 @@ Intent: <B>in</B>.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The local contribution to the global minimum.
|
||||
<DD>The local contribution to the global maximum.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
@@ -91,11 +91,11 @@ Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<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.
|
||||
</DD>
|
||||
<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"
|
||||
SRC="img79.png"
|
||||
ALT="$-1$"> to make it available
|
||||
@@ -123,18 +123,16 @@ Specified as: an integer value <!-- MATH
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
<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>
|
||||
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>
|
||||
</DL>
|
||||
|
||||
@@ -153,26 +151,26 @@ Type, kind, rank and size must agree on all processes.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1548"
|
||||
<A NAME="tex2html1551"
|
||||
HREF="node106.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1544"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1547"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1538"
|
||||
<A NAME="tex2html1541"
|
||||
HREF="node104.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1546"
|
||||
<A NAME="tex2html1549"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1549"
|
||||
HREF="node106.html">psb_amx Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1545"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1539"
|
||||
HREF="node104.html">psb_max Global</A>
|
||||
<B> <A NAME="tex2html1547"
|
||||
<B> Next:</B> <A NAME="tex2html1552"
|
||||
HREF="node106.html">psb_min Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1548"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1542"
|
||||
HREF="node104.html">psb_sum Global</A>
|
||||
<B> <A NAME="tex2html1550"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+38
-36
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_amx -- Global maximum absolute value</TITLE>
|
||||
<META NAME="description" CONTENT="psb_amx -- Global maximum absolute value">
|
||||
<TITLE>psb_min -- Global minimum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_min -- Global minimum">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node105.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node107.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1560"
|
||||
<A NAME="tex2html1563"
|
||||
HREF="node107.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1556"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1559"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1550"
|
||||
<A NAME="tex2html1553"
|
||||
HREF="node105.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1558"
|
||||
<A NAME="tex2html1561"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1561"
|
||||
HREF="node107.html">psb_amn Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1557"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1551"
|
||||
HREF="node105.html">psb_min Global</A>
|
||||
<B> <A NAME="tex2html1559"
|
||||
<B> Next:</B> <A NAME="tex2html1564"
|
||||
HREF="node107.html">psb_amx Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1560"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1554"
|
||||
HREF="node105.html">psb_max Global</A>
|
||||
<B> <A NAME="tex2html1562"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000813000000000000000">
|
||||
psb_amx -- Global maximum absolute value</A>
|
||||
<H2><A NAME="SECTION000812000000000000000">
|
||||
psb_min -- Global minimum</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_amx(icontxt, dat, root)
|
||||
call psb_min(icontxt, dat, root)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine implements a maximum absolute value reduction
|
||||
This subroutine implements a minimum value reduction
|
||||
operation based on the underlying communication library.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -83,7 +83,7 @@ Intent: <B>in</B>.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The local contribution to the global maximum.
|
||||
<DD>The local contribution to the global minimum.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
@@ -91,7 +91,7 @@ Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<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.
|
||||
</DD>
|
||||
<DT><STRONG>root</STRONG></DT>
|
||||
@@ -123,7 +123,7 @@ Specified as: an integer value <!-- MATH
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
@@ -131,8 +131,10 @@ 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. 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.
|
||||
<BR>
|
||||
Type, kind, rank and size must agree on all processes.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
@@ -151,26 +153,26 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1560"
|
||||
<A NAME="tex2html1563"
|
||||
HREF="node107.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1556"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1559"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1550"
|
||||
<A NAME="tex2html1553"
|
||||
HREF="node105.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1558"
|
||||
<A NAME="tex2html1561"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1561"
|
||||
HREF="node107.html">psb_amn Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1557"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1551"
|
||||
HREF="node105.html">psb_min Global</A>
|
||||
<B> <A NAME="tex2html1559"
|
||||
<B> Next:</B> <A NAME="tex2html1564"
|
||||
HREF="node107.html">psb_amx Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1560"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1554"
|
||||
HREF="node105.html">psb_max Global</A>
|
||||
<B> <A NAME="tex2html1562"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+34
-36
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_amn -- Global minimum absolute value</TITLE>
|
||||
<META NAME="description" CONTENT="psb_amn -- Global minimum absolute value">
|
||||
<TITLE>psb_amx -- Global maximum absolute value</TITLE>
|
||||
<META NAME="description" CONTENT="psb_amx -- Global maximum absolute value">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node106.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node108.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1572"
|
||||
<A NAME="tex2html1575"
|
||||
HREF="node108.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1568"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1571"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1562"
|
||||
<A NAME="tex2html1565"
|
||||
HREF="node106.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1570"
|
||||
<A NAME="tex2html1573"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1573"
|
||||
HREF="node108.html">psb_snd Send</A>
|
||||
<B> Up:</B> <A NAME="tex2html1569"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1563"
|
||||
HREF="node106.html">psb_amx Global</A>
|
||||
<B> <A NAME="tex2html1571"
|
||||
<B> Next:</B> <A NAME="tex2html1576"
|
||||
HREF="node108.html">psb_amn Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1572"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1566"
|
||||
HREF="node106.html">psb_min Global</A>
|
||||
<B> <A NAME="tex2html1574"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000814000000000000000">
|
||||
psb_amn -- Global minimum absolute value</A>
|
||||
<H2><A NAME="SECTION000813000000000000000">
|
||||
psb_amx -- Global maximum absolute value</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_amn(icontxt, dat, root)
|
||||
call psb_amx(icontxt, dat, root)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine implements a minimum absolute value reduction
|
||||
This subroutine implements a maximum absolute value reduction
|
||||
operation based on the underlying communication library.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -83,7 +83,7 @@ Intent: <B>in</B>.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The local contribution to the global minimum.
|
||||
<DD>The local contribution to the global maximum.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
@@ -123,7 +123,7 @@ Specified as: an integer value <!-- MATH
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
@@ -132,9 +132,7 @@ Type: <B>required</B>.
|
||||
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.
|
||||
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
@@ -153,26 +151,26 @@ Type, kind, rank and size must agree on all processes.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1572"
|
||||
<A NAME="tex2html1575"
|
||||
HREF="node108.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1568"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1571"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1562"
|
||||
<A NAME="tex2html1565"
|
||||
HREF="node106.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1570"
|
||||
<A NAME="tex2html1573"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1573"
|
||||
HREF="node108.html">psb_snd Send</A>
|
||||
<B> Up:</B> <A NAME="tex2html1569"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1563"
|
||||
HREF="node106.html">psb_amx Global</A>
|
||||
<B> <A NAME="tex2html1571"
|
||||
<B> Next:</B> <A NAME="tex2html1576"
|
||||
HREF="node108.html">psb_amn Global</A>
|
||||
<B> Up:</B> <A NAME="tex2html1572"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1566"
|
||||
HREF="node106.html">psb_min Global</A>
|
||||
<B> <A NAME="tex2html1574"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+66
-78
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_snd -- Send data</TITLE>
|
||||
<META NAME="description" CONTENT="psb_snd -- Send data">
|
||||
<TITLE>psb_amn -- Global minimum absolute value</TITLE>
|
||||
<META NAME="description" CONTENT="psb_amn -- Global minimum absolute value">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node107.html">
|
||||
<LINK REL="up" HREF="node93.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node109.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1584"
|
||||
<A NAME="tex2html1587"
|
||||
HREF="node109.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1580"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1583"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1574"
|
||||
<A NAME="tex2html1577"
|
||||
HREF="node107.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1582"
|
||||
<A NAME="tex2html1585"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1585"
|
||||
HREF="node109.html">psb_rcv Receive</A>
|
||||
<B> Up:</B> <A NAME="tex2html1581"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1575"
|
||||
HREF="node107.html">psb_amn Global</A>
|
||||
<B> <A NAME="tex2html1583"
|
||||
<B> Next:</B> <A NAME="tex2html1588"
|
||||
HREF="node109.html">psb_snd Send</A>
|
||||
<B> Up:</B> <A NAME="tex2html1584"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1578"
|
||||
HREF="node107.html">psb_amx Global</A>
|
||||
<B> <A NAME="tex2html1586"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000815000000000000000">
|
||||
psb_snd -- Send data</A>
|
||||
<H2><A NAME="SECTION000814000000000000000">
|
||||
psb_amn -- Global minimum absolute value</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_snd(icontxt, dat, dst, m)
|
||||
call psb_amn(icontxt, dat, root)
|
||||
</PRE>
|
||||
|
||||
<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>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous: see usage notes.
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
@@ -82,65 +83,38 @@ Intent: <B>in</B>.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The data to be sent.
|
||||
<DD>The local contribution to the global minimum.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
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.
|
||||
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
|
||||
</DD>
|
||||
<DT><STRONG>dst</STRONG></DT>
|
||||
<DD>Destination process.
|
||||
<DT><STRONG>root</STRONG></DT>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value <!-- MATH
|
||||
$0<= dst <= np-1$
|
||||
$-1<= root <= np-1$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img135.png"
|
||||
ALT="$0<= dst <= np-1$">.
|
||||
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img133.png"
|
||||
ALT="$-1<= root <= np-1$">, default -1.
|
||||
<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<= m <= 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>
|
||||
|
||||
<P>
|
||||
@@ -148,43 +122,57 @@ same value on sending and receiving processes.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<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>
|
||||
|
||||
<P>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>This subroutine implies a synchronization, but only between the
|
||||
calling process and the destination process <IMG
|
||||
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img139.png"
|
||||
ALT="$dst$">.
|
||||
<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>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1584"
|
||||
<A NAME="tex2html1587"
|
||||
HREF="node109.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1580"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1583"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1574"
|
||||
<A NAME="tex2html1577"
|
||||
HREF="node107.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1582"
|
||||
<A NAME="tex2html1585"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1585"
|
||||
HREF="node109.html">psb_rcv Receive</A>
|
||||
<B> Up:</B> <A NAME="tex2html1581"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1575"
|
||||
HREF="node107.html">psb_amn Global</A>
|
||||
<B> <A NAME="tex2html1583"
|
||||
<B> Next:</B> <A NAME="tex2html1588"
|
||||
HREF="node109.html">psb_snd Send</A>
|
||||
<B> Up:</B> <A NAME="tex2html1584"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1578"
|
||||
HREF="node107.html">psb_amx Global</A>
|
||||
<B> <A NAME="tex2html1586"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+58
-57
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_rcv -- Receive data</TITLE>
|
||||
<META NAME="description" CONTENT="psb_rcv -- Receive data">
|
||||
<TITLE>psb_snd -- Send data</TITLE>
|
||||
<META NAME="description" CONTENT="psb_snd -- Send data">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node110.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1594"
|
||||
<A NAME="tex2html1599"
|
||||
HREF="node110.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1590"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1595"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1586"
|
||||
<A NAME="tex2html1589"
|
||||
HREF="node108.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1592"
|
||||
<A NAME="tex2html1597"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1595"
|
||||
HREF="node110.html">Error handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html1591"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1587"
|
||||
HREF="node108.html">psb_snd Send</A>
|
||||
<B> <A NAME="tex2html1593"
|
||||
<B> Next:</B> <A NAME="tex2html1600"
|
||||
HREF="node110.html">psb_rcv Receive</A>
|
||||
<B> Up:</B> <A NAME="tex2html1596"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1590"
|
||||
HREF="node108.html">psb_amn Global</A>
|
||||
<B> <A NAME="tex2html1598"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000816000000000000000">
|
||||
psb_rcv -- Receive data</A>
|
||||
<H2><A NAME="SECTION000815000000000000000">
|
||||
psb_snd -- Send data</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_rcv(icontxt, dat, src, m)
|
||||
call psb_snd(icontxt, dat, dst, m)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine receives a packet of data to a destination.
|
||||
This subroutine sends a packet of data to a destination.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous: see usage notes.
|
||||
<DD>Synchronous: see usage notes.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
@@ -80,8 +81,24 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>src</STRONG></DT>
|
||||
<DD>Source process.
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<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>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
@@ -90,12 +107,12 @@ Type: <B>required</B>.
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value <!-- MATH
|
||||
$0<= src <= np-1$
|
||||
$0<= dst <= np-1$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img140.png"
|
||||
ALT="$0<= src <= np-1$">.
|
||||
SRC="img135.png"
|
||||
ALT="$0<= dst <= np-1$">.
|
||||
<BR></DD>
|
||||
<DT><STRONG>m</STRONG></DT>
|
||||
<DD>Number of rows.
|
||||
@@ -131,22 +148,6 @@ same value on sending and receiving processes.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<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>
|
||||
|
||||
<P>
|
||||
@@ -154,36 +155,36 @@ not specified, size must agree as well.
|
||||
|
||||
<OL>
|
||||
<LI>This subroutine implies a synchronization, but only between the
|
||||
calling process and the source process <IMG
|
||||
WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img141.png"
|
||||
ALT="$src$">.
|
||||
calling process and the destination process <IMG
|
||||
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img139.png"
|
||||
ALT="$dst$">.
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1594"
|
||||
<A NAME="tex2html1599"
|
||||
HREF="node110.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1590"
|
||||
HREF="node93.html">
|
||||
<A NAME="tex2html1595"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1586"
|
||||
<A NAME="tex2html1589"
|
||||
HREF="node108.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1592"
|
||||
<A NAME="tex2html1597"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1595"
|
||||
HREF="node110.html">Error handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html1591"
|
||||
HREF="node93.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1587"
|
||||
HREF="node108.html">psb_snd Send</A>
|
||||
<B> <A NAME="tex2html1593"
|
||||
<B> Next:</B> <A NAME="tex2html1600"
|
||||
HREF="node110.html">psb_rcv Receive</A>
|
||||
<B> Up:</B> <A NAME="tex2html1596"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1590"
|
||||
HREF="node108.html">psb_amn Global</A>
|
||||
<B> <A NAME="tex2html1598"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html352"
|
||||
<A NAME="tex2html354"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html348"
|
||||
<A NAME="tex2html350"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html342"
|
||||
<A NAME="tex2html344"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html350"
|
||||
<A NAME="tex2html352"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html353"
|
||||
<B> Next:</B> <A NAME="tex2html355"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html343"
|
||||
<B> Previous:</B> <A NAME="tex2html345"
|
||||
HREF="node10.html">Descriptor data structure</A>
|
||||
<B> <A NAME="tex2html351"
|
||||
<B> <A NAME="tex2html353"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+107
-260
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Error handling</TITLE>
|
||||
<META NAME="description" CONTENT="Error handling">
|
||||
<TITLE>psb_rcv -- Receive data</TITLE>
|
||||
<META NAME="description" CONTENT="psb_rcv -- Receive data">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node111.html">
|
||||
<LINK REL="previous" HREF="node93.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node109.html">
|
||||
<LINK REL="up" HREF="node94.html">
|
||||
<LINK REL="next" HREF="node111.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1606"
|
||||
<A NAME="tex2html1609"
|
||||
HREF="node111.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1602"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1605"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1596"
|
||||
<A NAME="tex2html1601"
|
||||
HREF="node109.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1604"
|
||||
<A NAME="tex2html1607"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1607"
|
||||
HREF="node111.html">Utilities</A>
|
||||
<B> Up:</B> <A NAME="tex2html1603"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1597"
|
||||
HREF="node109.html">psb_rcv Receive</A>
|
||||
<B> <A NAME="tex2html1605"
|
||||
<B> Next:</B> <A NAME="tex2html1610"
|
||||
HREF="node111.html">Error handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html1606"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1602"
|
||||
HREF="node109.html">psb_snd Send</A>
|
||||
<B> <A NAME="tex2html1608"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00090000000000000000">
|
||||
Error handling</A>
|
||||
</H1>
|
||||
<H2><A NAME="SECTION000816000000000000000">
|
||||
psb_rcv -- Receive data</A>
|
||||
</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 <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>
|
||||
Figure <A HREF="#fig:errormsg">10</A> reports a sample error message generated by
|
||||
the PSBLAS-2.0 library. This error has been generated by the fact that
|
||||
the user has chosen the invalid ``FOO'' storage format to represent
|
||||
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>
|
||||
<PRE>
|
||||
call psb_rcv(icontxt, dat, src, m)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine receives a packet of data to a destination.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
<DD>Synchronous: see usage notes.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>err_c</STRONG></DT>
|
||||
<DD>the error code
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer.
|
||||
</DD>
|
||||
<DT><STRONG>r_name</STRONG></DT>
|
||||
<DD>the soutine where the error has been caught.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a string.
|
||||
<BR></DD>
|
||||
<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
|
||||
WIDTH="213" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img146.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_error(icontxt)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>icontxt</STRONG></DT>
|
||||
<DD>the communication context.
|
||||
<DD>the communication context identifying the virtual
|
||||
parallel machine.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer.
|
||||
Specified as: an integer variable.
|
||||
</DD>
|
||||
<DT><STRONG>src</STRONG></DT>
|
||||
<DD>Source process.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value <!-- MATH
|
||||
$0<= src <= np-1$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img140.png"
|
||||
ALT="$0<= src <= np-1$">.
|
||||
<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<= m <= 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>
|
||||
|
||||
<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>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>v</STRONG></DT>
|
||||
<DD>the verbosity level
|
||||
<DT><STRONG>dat</STRONG></DT>
|
||||
<DD>The data to be received.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
Intent: <B>inout</B>.
|
||||
<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>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
|
||||
taken upon error condition.
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<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>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
<OL>
|
||||
<LI>This subroutine implies a synchronization, but only between the
|
||||
calling process and the source process <IMG
|
||||
WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img141.png"
|
||||
ALT="$src$">.
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1606"
|
||||
<A NAME="tex2html1609"
|
||||
HREF="node111.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1602"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1605"
|
||||
HREF="node94.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1596"
|
||||
<A NAME="tex2html1601"
|
||||
HREF="node109.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1604"
|
||||
<A NAME="tex2html1607"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1607"
|
||||
HREF="node111.html">Utilities</A>
|
||||
<B> Up:</B> <A NAME="tex2html1603"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1597"
|
||||
HREF="node109.html">psb_rcv Receive</A>
|
||||
<B> <A NAME="tex2html1605"
|
||||
<B> Next:</B> <A NAME="tex2html1610"
|
||||
HREF="node111.html">Error handling</A>
|
||||
<B> Up:</B> <A NAME="tex2html1606"
|
||||
HREF="node94.html">Parallel environment routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1602"
|
||||
HREF="node109.html">psb_snd Send</A>
|
||||
<B> <A NAME="tex2html1608"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+190
-292
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Utilities</TITLE>
|
||||
<META NAME="description" CONTENT="Utilities">
|
||||
<TITLE>Error handling</TITLE>
|
||||
<META NAME="description" CONTENT="Error handling">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -19,60 +19,142 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<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="next" HREF="node112.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1618"
|
||||
<A NAME="tex2html1621"
|
||||
HREF="node112.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1614"
|
||||
<A NAME="tex2html1617"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1608"
|
||||
<A NAME="tex2html1611"
|
||||
HREF="node110.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1616"
|
||||
<A NAME="tex2html1619"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1619"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html1615"
|
||||
<B> Next:</B> <A NAME="tex2html1622"
|
||||
HREF="node112.html">Utilities</A>
|
||||
<B> Up:</B> <A NAME="tex2html1618"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1609"
|
||||
HREF="node110.html">Error handling</A>
|
||||
<B> <A NAME="tex2html1617"
|
||||
<B> Previous:</B> <A NAME="tex2html1612"
|
||||
HREF="node110.html">psb_rcv Receive</A>
|
||||
<B> <A NAME="tex2html1620"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000100000000000000000"></A>
|
||||
<A NAME="sec:util"></A>
|
||||
<BR>
|
||||
Utilities
|
||||
<H1><A NAME="SECTION00090000000000000000">
|
||||
Error handling</A>
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
We have some utitlities available for input and output of
|
||||
sparsematrices; the interfaces to these routines are available in the
|
||||
module <code>psb_util_mod</code>.
|
||||
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>
|
||||
ifstarsubroutinesubroutinehb_readRead a sparse matrix from a file in the
|
||||
Harwell-Boeing format
|
||||
Figure <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="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
|
||||
WIDTH="563" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img143.png"
|
||||
ALT="\fbox{\TheSbox}">
|
||||
</DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
Figure <A HREF="#fig:errormsg">10</A> reports a sample error message generated by
|
||||
the PSBLAS-2.0 library. This error has been generated by the fact that
|
||||
the user has chosen the invalid ``FOO'' storage format to represent
|
||||
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="7080"></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="461" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img149.png"
|
||||
WIDTH="423" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img145.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call hb_read(a, iret, iunit, filename, b, mtitle)
|
||||
call psb_errpush(err_c, r_name, i_err, a_err)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
@@ -81,77 +163,62 @@ call hb_read(a, iret, iunit, filename, b, mtitle)
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>filename</STRONG></DT>
|
||||
<DD>The name of the file to be read.
|
||||
<DT><STRONG>err_c</STRONG></DT>
|
||||
<DD>the error code
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Scope: <B>local</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>.
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer.
|
||||
</DD>
|
||||
<DT><STRONG>iunit</STRONG></DT>
|
||||
<DD>The Fortran file unit number.
|
||||
<DT><STRONG>r_name</STRONG></DT>
|
||||
<DD>the soutine where the error has been caught.
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
|
||||
</DD>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a string.
|
||||
<BR></DD>
|
||||
<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>
|
||||
<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
|
||||
ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
|
||||
execution
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="538" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img150.png"
|
||||
WIDTH="213" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img146.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
|
||||
call psb_error(icontxt)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
@@ -160,86 +227,33 @@ call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the sparse matrix to be written.
|
||||
<DT><STRONG>icontxt</STRONG></DT>
|
||||
<DD>the communication context.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
Scope: <B>global</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.
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Type: <B>Optional</B>
|
||||
Intent: <B>in</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.
|
||||
Specified as: an integer.
|
||||
</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
|
||||
ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
|
||||
messages.
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img151.png"
|
||||
WIDTH="261" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img147.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call mm_mat_read(a, iret, iunit, filename)
|
||||
call psb_set_errverbosity(v)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
@@ -248,57 +262,33 @@ call mm_mat_read(a, iret, iunit, filename)
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>filename</STRONG></DT>
|
||||
<DD>The name of the file to be read.
|
||||
<DT><STRONG>v</STRONG></DT>
|
||||
<DD>the verbosity level
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Scope: <B>global</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.
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
|
||||
Specified as: an integer.
|
||||
</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>
|
||||
ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
|
||||
taken upon error condition.
|
||||
|
||||
<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"
|
||||
WIDTH="289" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img148.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call mm_vet_read(b, iret, iunit, filename)
|
||||
call psb_set_erraction(err_act)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
@@ -307,138 +297,46 @@ call mm_vet_read(b, iret, iunit, filename)
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>filename</STRONG></DT>
|
||||
<DD>The name of the file to be read.
|
||||
<DT><STRONG>err_act</STRONG></DT>
|
||||
<DD>the type of action.
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Scope: <B>global</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.
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Intent: <B>in</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.
|
||||
Specified as: an integer. Possible values: <code>psb_act_ret</code>,
|
||||
<code>psb_act_abort</code>.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1618"
|
||||
<A NAME="tex2html1621"
|
||||
HREF="node112.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1614"
|
||||
<A NAME="tex2html1617"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1608"
|
||||
<A NAME="tex2html1611"
|
||||
HREF="node110.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1616"
|
||||
<A NAME="tex2html1619"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1619"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html1615"
|
||||
<B> Next:</B> <A NAME="tex2html1622"
|
||||
HREF="node112.html">Utilities</A>
|
||||
<B> Up:</B> <A NAME="tex2html1618"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1609"
|
||||
HREF="node110.html">Error handling</A>
|
||||
<B> <A NAME="tex2html1617"
|
||||
<B> Previous:</B> <A NAME="tex2html1612"
|
||||
HREF="node110.html">psb_rcv Receive</A>
|
||||
<B> <A NAME="tex2html1620"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+396
-47
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Preconditioner routines</TITLE>
|
||||
<META NAME="description" CONTENT="Preconditioner routines">
|
||||
<TITLE>Utilities</TITLE>
|
||||
<META NAME="description" CONTENT="Utilities">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node118.html">
|
||||
<LINK REL="next" HREF="node113.html">
|
||||
<LINK REL="previous" HREF="node111.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node113.html">
|
||||
@@ -26,72 +26,421 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1630"
|
||||
<A NAME="tex2html1633"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1626"
|
||||
<A NAME="tex2html1629"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1620"
|
||||
<A NAME="tex2html1623"
|
||||
HREF="node111.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1628"
|
||||
<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="tex2html1631"
|
||||
HREF="node113.html">psb_precinit Initialize</A>
|
||||
<B> Up:</B> <A NAME="tex2html1627"
|
||||
<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="tex2html1621"
|
||||
HREF="node111.html">Utilities</A>
|
||||
<B> <A NAME="tex2html1629"
|
||||
<B> Previous:</B> <A NAME="tex2html1624"
|
||||
HREF="node111.html">Error handling</A>
|
||||
<B> <A NAME="tex2html1632"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000110000000000000000"></A>
|
||||
<A NAME="sec:precs"></A>
|
||||
<H1><A NAME="SECTION000100000000000000000"></A>
|
||||
<A NAME="sec:util"></A>
|
||||
<BR>
|
||||
Preconditioner routines
|
||||
Utilities
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
<A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple
|
||||
preconditioning techniques:
|
||||
|
||||
<UL>
|
||||
<LI>Diagonal Scaling
|
||||
</LI>
|
||||
<LI>Block Jacobi with ILU(0) factorization
|
||||
</LI>
|
||||
</UL>
|
||||
The supporting data type and subroutine interfaces are defined in the
|
||||
module <code>psb_prec_mod</code>.
|
||||
We have some utitlities available for input and output of
|
||||
sparsematrices; the interfaces to these routines are available in the
|
||||
module <code>psb_util_mod</code>.
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
ifstarsubroutinesubroutinehb_readRead a sparse matrix from a file in the
|
||||
Harwell-Boeing format
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1632"
|
||||
HREF="node113.html">psb_precinit -- Initialize a preconditioner</A>
|
||||
<LI><A NAME="tex2html1633"
|
||||
HREF="node114.html">psb_precbld -- Builds a preconditioner</A>
|
||||
<LI><A NAME="tex2html1634"
|
||||
HREF="node115.html">psb_precaply -- Preconditioner application
|
||||
routine</A>
|
||||
<LI><A NAME="tex2html1635"
|
||||
HREF="node116.html">psb_precdescr -- Prints a description of current
|
||||
preconditioner</A>
|
||||
<LI><A NAME="tex2html1636"
|
||||
HREF="node117.html">clone -- clone current
|
||||
preconditioner</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="461" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img149.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call hb_read(a, iret, iunit, filename, b, 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>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>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>
|
||||
<B> <A NAME="tex2html1632"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+51
-96
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_precinit -- Initialize a preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precinit -- Initialize a preconditioner">
|
||||
<TITLE>Preconditioner routines</TITLE>
|
||||
<META NAME="description" CONTENT="Preconditioner routines">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -18,124 +18,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<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="up" HREF="node112.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node114.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1647"
|
||||
<A NAME="tex2html1645"
|
||||
HREF="node114.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1643"
|
||||
HREF="node112.html">
|
||||
<A NAME="tex2html1641"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1637"
|
||||
<A NAME="tex2html1635"
|
||||
HREF="node112.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1645"
|
||||
<A NAME="tex2html1643"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1648"
|
||||
HREF="node114.html">psb_precbld Builds</A>
|
||||
<B> Up:</B> <A NAME="tex2html1644"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1638"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> <A NAME="tex2html1646"
|
||||
<B> Next:</B> <A NAME="tex2html1646"
|
||||
HREF="node114.html">psb_precinit Initialize</A>
|
||||
<B> Up:</B> <A NAME="tex2html1642"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1636"
|
||||
HREF="node112.html">Utilities</A>
|
||||
<B> <A NAME="tex2html1644"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000111000000000000000">
|
||||
psb_precinit -- Initialize a preconditioner</A>
|
||||
</H2>
|
||||
<H1><A NAME="SECTION000110000000000000000"></A>
|
||||
<A NAME="sec:precs"></A>
|
||||
<BR>
|
||||
Preconditioner routines
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_precinit(prec, ptype, info)
|
||||
</PRE>
|
||||
<A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple
|
||||
preconditioning techniques:
|
||||
|
||||
<UL>
|
||||
<LI>Diagonal Scaling
|
||||
</LI>
|
||||
<LI>Block Jacobi with ILU(0) factorization
|
||||
</LI>
|
||||
</UL>
|
||||
The supporting data type and subroutine interfaces are defined in the
|
||||
module <code>psb_prec_mod</code>.
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<P>
|
||||
<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>
|
||||
|
||||
+66
-85
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_precbld -- Builds a preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precbld -- Builds a preconditioner">
|
||||
<TITLE>psb_precinit -- Initialize a preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precinit -- Initialize a preconditioner">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node113.html">
|
||||
<LINK REL="up" HREF="node112.html">
|
||||
<LINK REL="up" HREF="node113.html">
|
||||
<LINK REL="next" HREF="node115.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1659"
|
||||
<A NAME="tex2html1662"
|
||||
HREF="node115.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1655"
|
||||
HREF="node112.html">
|
||||
<A NAME="tex2html1658"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1649"
|
||||
<A NAME="tex2html1652"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1657"
|
||||
<A NAME="tex2html1660"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1660"
|
||||
HREF="node115.html">psb_precaply Preconditioner</A>
|
||||
<B> Up:</B> <A NAME="tex2html1656"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1650"
|
||||
HREF="node113.html">psb_precinit Initialize</A>
|
||||
<B> <A NAME="tex2html1658"
|
||||
<B> Next:</B> <A NAME="tex2html1663"
|
||||
HREF="node115.html">psb_precbld Builds</A>
|
||||
<B> Up:</B> <A NAME="tex2html1659"
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1653"
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<B> <A NAME="tex2html1661"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000112000000000000000">
|
||||
psb_precbld -- Builds a preconditioner</A>
|
||||
<H2><A NAME="SECTION000111000000000000000">
|
||||
psb_precinit -- Initialize a preconditioner</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_precbld(a, desc_a, prec, info,amold,vmold)
|
||||
call psb_precinit(prec, ptype, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the system sparse matrix.
|
||||
Scope: <B>local</B>
|
||||
<DT><STRONG>ptype</STRONG></DT>
|
||||
<DD>the type of preconditioner.
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>, target.
|
||||
Intent: <B>in</B>.
|
||||
<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>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>the preconditioner.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<DD>Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: an already initialized precondtioner 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>.
|
||||
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>amold</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>
|
||||
<DT><STRONG>vmold</STRONG></DT>
|
||||
<DD>The desired dynamic type for the internal vector 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 vbasedata<TT>psb_T_base_vect_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>the preconditioner.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a precondtioner data structure precdata<TT>psb_prec_type</TT>
|
||||
<BR></DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<DD>Scope: <B>global</B>
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
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#foot7420"><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>
|
||||
|
||||
|
||||
+53
-48
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_precaply -- Preconditioner application routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precaply -- Preconditioner application routine">
|
||||
<TITLE>psb_precbld -- Builds a preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precbld -- Builds a preconditioner">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node114.html">
|
||||
<LINK REL="up" HREF="node112.html">
|
||||
<LINK REL="up" HREF="node113.html">
|
||||
<LINK REL="next" HREF="node116.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1671"
|
||||
<A NAME="tex2html1674"
|
||||
HREF="node116.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1667"
|
||||
HREF="node112.html">
|
||||
<A NAME="tex2html1670"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1661"
|
||||
<A NAME="tex2html1664"
|
||||
HREF="node114.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1669"
|
||||
<A NAME="tex2html1672"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1672"
|
||||
HREF="node116.html">psb_precdescr Prints</A>
|
||||
<B> Up:</B> <A NAME="tex2html1668"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1662"
|
||||
HREF="node114.html">psb_precbld Builds</A>
|
||||
<B> <A NAME="tex2html1670"
|
||||
<B> Next:</B> <A NAME="tex2html1675"
|
||||
HREF="node116.html">psb_precaply Preconditioner</A>
|
||||
<B> Up:</B> <A NAME="tex2html1671"
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1665"
|
||||
HREF="node114.html">psb_precinit Initialize</A>
|
||||
<B> <A NAME="tex2html1673"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000113000000000000000">
|
||||
psb_precaply -- Preconditioner application
|
||||
routine</A>
|
||||
<H2><A NAME="SECTION000112000000000000000">
|
||||
psb_precbld -- Builds a preconditioner</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_precaply(prec,x,y,desc_a,info,trans,work)
|
||||
call psb_precaply(prec,x,desc_a,info,trans)
|
||||
call psb_precbld(a, desc_a, prec, info,amold,vmold)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -70,54 +68,60 @@ call psb_precaply(prec,x,desc_a,info,trans)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the system sparse matrix.
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>, target.
|
||||
<BR>
|
||||
Specified as: a sparse matrix data structure spdata<TT>psb_Tspmat_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>the preconditioner.
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the source 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>
|
||||
Specified as: an already initialized precondtioner data structure precdata<TT>psb_prec_type</TT>
|
||||
<BR></DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the problem communication descriptor.
|
||||
<DD>the problem communication descriptor.
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
Intent: <B>in</B>, target.
|
||||
<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>
|
||||
<DT><STRONG>trans</STRONG></DT>
|
||||
<DD>Scope:
|
||||
<DT><STRONG>amold</STRONG></DT>
|
||||
<DD>The desired dynamic type for the internal matrix storage.
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a character.
|
||||
Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>work</STRONG></DT>
|
||||
<DD>an optional work space
|
||||
Scope: <B>local</B>
|
||||
<DT><STRONG>vmold</STRONG></DT>
|
||||
<DD>The desired dynamic type for the internal vector storage.
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Specified as: a double precision array.
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of a class derived from vbasedata<TT>psb_T_base_vect_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
@@ -126,16 +130,17 @@ Specified as: a double precision array.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the destination vector.
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>the preconditioner.
|
||||
<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>
|
||||
Specified as: a precondtioner data structure precdata<TT>psb_prec_type</TT>
|
||||
<BR></DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
|
||||
+82
-25
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_precdescr -- Prints a description of current preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precdescr -- Prints a description of current preconditioner">
|
||||
<TITLE>psb_precaply -- Preconditioner application routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precaply -- Preconditioner application routine">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node115.html">
|
||||
<LINK REL="up" HREF="node112.html">
|
||||
<LINK REL="up" HREF="node113.html">
|
||||
<LINK REL="next" HREF="node117.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1683"
|
||||
<A NAME="tex2html1686"
|
||||
HREF="node117.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1679"
|
||||
HREF="node112.html">
|
||||
<A NAME="tex2html1682"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1673"
|
||||
<A NAME="tex2html1676"
|
||||
HREF="node115.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1681"
|
||||
<A NAME="tex2html1684"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1684"
|
||||
HREF="node117.html">clone clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html1680"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1674"
|
||||
HREF="node115.html">psb_precaply Preconditioner</A>
|
||||
<B> <A NAME="tex2html1682"
|
||||
<B> Next:</B> <A NAME="tex2html1687"
|
||||
HREF="node117.html">psb_precdescr Prints</A>
|
||||
<B> Up:</B> <A NAME="tex2html1683"
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1677"
|
||||
HREF="node115.html">psb_precbld Builds</A>
|
||||
<B> <A NAME="tex2html1685"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000114000000000000000">
|
||||
psb_precdescr -- Prints a description of current
|
||||
preconditioner</A>
|
||||
<H2><A NAME="SECTION000113000000000000000">
|
||||
psb_precaply -- Preconditioner application
|
||||
routine</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_precdescr(prec)
|
||||
call psb_precdescr(prec, iout)
|
||||
call psb_precaply(prec,x,y,desc_a,info,trans,work)
|
||||
call psb_precaply(prec,x,desc_a,info,trans)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
@@ -80,15 +80,72 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>iout</STRONG></DT>
|
||||
<DD>output unit.
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the source vector.
|
||||
Scope: <B>local</B>
|
||||
<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: an integer number.
|
||||
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>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
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>
|
||||
</DL>
|
||||
|
||||
|
||||
+36
-31
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>clone -- clone current preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="clone -- clone current preconditioner">
|
||||
<TITLE>psb_precdescr -- Prints a description of current preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="psb_precdescr -- Prints a description of current preconditioner">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node118.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1693"
|
||||
<A NAME="tex2html1698"
|
||||
HREF="node118.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1689"
|
||||
HREF="node112.html">
|
||||
<A NAME="tex2html1694"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1685"
|
||||
<A NAME="tex2html1688"
|
||||
HREF="node116.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1691"
|
||||
<A NAME="tex2html1696"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1694"
|
||||
HREF="node118.html">Iterative Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html1690"
|
||||
HREF="node112.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1686"
|
||||
HREF="node116.html">psb_precdescr Prints</A>
|
||||
<B> <A NAME="tex2html1692"
|
||||
<B> Next:</B> <A NAME="tex2html1699"
|
||||
HREF="node118.html">clone clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html1695"
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1689"
|
||||
HREF="node116.html">psb_precaply Preconditioner</A>
|
||||
<B> <A NAME="tex2html1697"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000115000000000000000">
|
||||
clone -- clone current
|
||||
<H2><A NAME="SECTION000114000000000000000">
|
||||
psb_precdescr -- Prints a description of current
|
||||
preconditioner</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call prec%clone(precout,info)
|
||||
call psb_precdescr(prec)
|
||||
call psb_precdescr(prec, iout)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -69,21 +72,23 @@ call prec%clone(precout,info)
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>the preconditioner.
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>precout</STRONG></DT>
|
||||
<DD>A copy of the input object.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Return code.
|
||||
<DT><STRONG>iout</STRONG></DT>
|
||||
<DD>output unit.
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optiona</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer number.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+49
-34
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Iterative Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Iterative Methods">
|
||||
<TITLE>clone -- clone current preconditioner</TITLE>
|
||||
<META NAME="description" CONTENT="clone -- clone current preconditioner">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -18,62 +18,77 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
||||
|
||||
<LINK REL="next" HREF="node120.html">
|
||||
<LINK REL="previous" HREF="node112.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node117.html">
|
||||
<LINK REL="up" HREF="node113.html">
|
||||
<LINK REL="next" HREF="node119.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1705"
|
||||
<A NAME="tex2html1708"
|
||||
HREF="node119.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1701"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1704"
|
||||
HREF="node113.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1695"
|
||||
<A NAME="tex2html1700"
|
||||
HREF="node117.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1703"
|
||||
<A NAME="tex2html1706"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1706"
|
||||
HREF="node119.html">psb_krylov Krylov</A>
|
||||
<B> Up:</B> <A NAME="tex2html1702"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1696"
|
||||
HREF="node117.html">clone clone</A>
|
||||
<B> <A NAME="tex2html1704"
|
||||
<B> Next:</B> <A NAME="tex2html1709"
|
||||
HREF="node119.html">Iterative Methods</A>
|
||||
<B> Up:</B> <A NAME="tex2html1705"
|
||||
HREF="node113.html">Preconditioner routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1701"
|
||||
HREF="node117.html">psb_precdescr Prints</A>
|
||||
<B> <A NAME="tex2html1707"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION000120000000000000000"></A>
|
||||
<A NAME="sec:methods"></A>
|
||||
<H2><A NAME="SECTION000115000000000000000">
|
||||
clone -- clone current
|
||||
preconditioner</A>
|
||||
</H2>
|
||||
|
||||
<PRE>
|
||||
call prec%clone(precout,info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>prec</STRONG></DT>
|
||||
<DD>the preconditioner.
|
||||
<BR>
|
||||
Iterative Methods
|
||||
</H1>
|
||||
Scope: <B>local</B>.
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<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>.
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<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>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1707"
|
||||
HREF="node119.html">psb_krylov -- Krylov Methods Driver
|
||||
Routine</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+34
-349
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_krylov -- Krylov Methods Driver Routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_krylov -- Krylov Methods Driver Routine">
|
||||
<TITLE>Iterative Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Iterative Methods">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node118.html">
|
||||
<LINK REL="up" HREF="node118.html">
|
||||
<LINK REL="next" HREF="node121.html">
|
||||
<LINK REL="previous" HREF="node113.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node120.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1716"
|
||||
<A NAME="tex2html1720"
|
||||
HREF="node120.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1712"
|
||||
HREF="node118.html">
|
||||
<A NAME="tex2html1716"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1708"
|
||||
<A NAME="tex2html1710"
|
||||
HREF="node118.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1714"
|
||||
<A NAME="tex2html1718"
|
||||
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>
|
||||
<B> <A NAME="tex2html1715"
|
||||
<B> Next:</B> <A NAME="tex2html1721"
|
||||
HREF="node120.html">psb_krylov Krylov</A>
|
||||
<B> Up:</B> <A NAME="tex2html1717"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1711"
|
||||
HREF="node118.html">clone clone</A>
|
||||
<B> <A NAME="tex2html1719"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
|
||||
<H1><A NAME="SECTION000120000000000000000"></A>
|
||||
<A NAME="sec:methods"></A>
|
||||
<BR>
|
||||
psb_krylov -- Krylov Methods Driver
|
||||
Routine
|
||||
</H2>
|
||||
Iterative Methods
|
||||
</H1>
|
||||
|
||||
<P>
|
||||
This subroutine is a driver that provides a general interface for all
|
||||
the Krylov-Subspace family methods implemented in PSBLAS version 2.
|
||||
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>
|
||||
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}
|
||||
-->
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<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)} < 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} < 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,&
|
||||
& 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="$>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>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>
|
||||
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>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1716"
|
||||
HREF="node120.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1712"
|
||||
HREF="node118.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1708"
|
||||
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>
|
||||
<B> <A NAME="tex2html1715"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1722"
|
||||
HREF="node120.html">psb_krylov -- Krylov Methods Driver
|
||||
Routine</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html364"
|
||||
<A NAME="tex2html366"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html360"
|
||||
<A NAME="tex2html362"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html354"
|
||||
<A NAME="tex2html356"
|
||||
HREF="node11.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html362"
|
||||
<A NAME="tex2html364"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html365"
|
||||
<B> Next:</B> <A NAME="tex2html367"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html355"
|
||||
<B> Previous:</B> <A NAME="tex2html357"
|
||||
HREF="node11.html">Descriptor Methods</A>
|
||||
<B> <A NAME="tex2html363"
|
||||
<B> <A NAME="tex2html365"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+341
-130
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Bibliography</TITLE>
|
||||
<META NAME="description" CONTENT="Bibliography">
|
||||
<TITLE>psb_krylov -- Krylov Methods Driver Routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_krylov -- Krylov Methods Driver Routine">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node121.html">
|
||||
<LINK REL="previous" HREF="node118.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node119.html">
|
||||
<LINK REL="up" HREF="node119.html">
|
||||
<LINK REL="next" HREF="node121.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1728"
|
||||
<A NAME="tex2html1731"
|
||||
HREF="node121.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1724"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1727"
|
||||
HREF="node119.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1718"
|
||||
<A NAME="tex2html1723"
|
||||
HREF="node119.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1726"
|
||||
<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="tex2html1729"
|
||||
HREF="node121.html">About this document ...</A>
|
||||
<B> Up:</B> <A NAME="tex2html1725"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1719"
|
||||
HREF="node119.html">psb_krylov Krylov</A>
|
||||
<B> <A NAME="tex2html1727"
|
||||
<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>
|
||||
<B> <A NAME="tex2html1730"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR><BR>
|
||||
<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. Barbieri, V. Cardellini, S. Filippone and D. 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. Bella, S. Filippone, A. De Maio and M. Testa,
|
||||
<EM>A Simulation Model for Forest Fires</EM>,
|
||||
in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art
|
||||
in Scientific Computing, pp. 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
|
||||
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
|
||||
<BR>
|
||||
Applied Numerical Mathematics, Elsevier Science,
|
||||
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
|
||||
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)} < 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} < 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><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. 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. 16, 1-17, 1990.
|
||||
<P></P><DT><A NAME="BLACS">7</A>
|
||||
<DD>
|
||||
J. J. Dongarra and R. C. Whaley,
|
||||
<EM>A User's Guide to the BLACS v. 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. Duff, M. Marrone, G. Radicati and C. Vittoli,
|
||||
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
|
||||
a User Level Interface</EM>,
|
||||
ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997.
|
||||
<P></P><DT><A NAME="sblas02">9</A>
|
||||
<DD>
|
||||
I. Duff, M. Heroux and R. 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. 239-267, 2002.
|
||||
<P></P><DT><A NAME="PSBLAS">10</A>
|
||||
<DD>
|
||||
S. Filippone and M. Colajanni,
|
||||
<EM>PSBLAS: A Library for Parallel Linear Algebra
|
||||
Computation on Sparse Matrices</EM>,
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000.
|
||||
<P></P><DT><A NAME="Sparse03">11</A>
|
||||
<DD>
|
||||
S. Filippone and A. Buttari,
|
||||
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
|
||||
<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,&
|
||||
& itmax,iter,err,itrace,irst,istop,cond)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, to appear.
|
||||
<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
|
||||
<DD>
|
||||
S. Filippone, P. D'Ambra, M. Colajanni,
|
||||
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
|
||||
Applications Code on Linux Clusters</EM>,
|
||||
in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
|
||||
Parallel Computing - Advances & Current Issues,
|
||||
pp. 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>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<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. 5, 38-329, 1979.
|
||||
</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>
|
||||
<P></P><DT><A NAME="machiels">16</A>
|
||||
<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. 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)
|
||||
</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="$>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>0$">. This is employed for the BiCGSTABL or RGMRES
|
||||
methods, otherwise it is ignored.
|
||||
|
||||
<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>
|
||||
M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
|
||||
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
|
||||
MIT Press, 1998.
|
||||
</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>
|
||||
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>
|
||||
|
||||
<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>
|
||||
<B> <A NAME="tex2html1730"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+141
-28
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>About this document ...</TITLE>
|
||||
<META NAME="description" CONTENT="About this document ...">
|
||||
<TITLE>Bibliography</TITLE>
|
||||
<META NAME="description" CONTENT="Bibliography">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node120.html">
|
||||
<LINK REL="next" HREF="node122.html">
|
||||
<LINK REL="previous" HREF="node119.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node122.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
|
||||
<A NAME="tex2html1734"
|
||||
<A NAME="tex2html1743"
|
||||
HREF="node122.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1739"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1730"
|
||||
<A NAME="tex2html1733"
|
||||
HREF="node120.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1736"
|
||||
<A NAME="tex2html1741"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<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>
|
||||
<B> Previous:</B> <A NAME="tex2html1731"
|
||||
HREF="node120.html">Bibliography</A>
|
||||
<B> <A NAME="tex2html1737"
|
||||
<B> Previous:</B> <A NAME="tex2html1734"
|
||||
HREF="node120.html">psb_krylov Krylov</A>
|
||||
<B> <A NAME="tex2html1742"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<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. Barbieri, V. Cardellini, S. Filippone and D. 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
|
||||
|
||||
<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>
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<P></P><DT><A NAME="PARA04FOREST">2</A>
|
||||
<DD>
|
||||
G. Bella, S. Filippone, A. De Maio and M. Testa,
|
||||
<EM>A Simulation Model for Forest Fires</EM>,
|
||||
in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art
|
||||
in Scientific Computing, pp. 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>
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
Applied Numerical Mathematics, Elsevier Science,
|
||||
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
|
||||
|
||||
<P>
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
||||
<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. 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. 16, 1-17, 1990.
|
||||
<P></P><DT><A NAME="BLACS">7</A>
|
||||
<DD>
|
||||
J. J. Dongarra and R. C. Whaley,
|
||||
<EM>A User's Guide to the BLACS v. 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. Duff, M. Marrone, G. Radicati and C. Vittoli,
|
||||
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
|
||||
a User Level Interface</EM>,
|
||||
ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997.
|
||||
<P></P><DT><A NAME="sblas02">9</A>
|
||||
<DD>
|
||||
I. Duff, M. Heroux and R. 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. 239-267, 2002.
|
||||
<P></P><DT><A NAME="PSBLAS">10</A>
|
||||
<DD>
|
||||
S. Filippone and M. Colajanni,
|
||||
<EM>PSBLAS: A Library for Parallel Linear Algebra
|
||||
Computation on Sparse Matrices</EM>,
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000.
|
||||
<P></P><DT><A NAME="Sparse03">11</A>
|
||||
<DD>
|
||||
S. Filippone and A. Buttari,
|
||||
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, to appear.
|
||||
<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
|
||||
<DD>
|
||||
S. Filippone, P. D'Ambra, M. Colajanni,
|
||||
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
|
||||
Applications Code on Linux Clusters</EM>,
|
||||
in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
|
||||
Parallel Computing - Advances & Current Issues,
|
||||
pp. 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. 5, 38-329, 1979.
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="machiels">16</A>
|
||||
<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. 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. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
|
||||
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
|
||||
MIT Press, 1998.
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
The translation was initiated by Salvatore Filippone on 2014-03-25
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+28
-141
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Bibliography</TITLE>
|
||||
<META NAME="description" CONTENT="Bibliography">
|
||||
<TITLE>About this document ...</TITLE>
|
||||
<META NAME="description" CONTENT="About this document ...">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node123.html">
|
||||
<LINK REL="previous" HREF="node120.html">
|
||||
<LINK REL="previous" HREF="node121.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node123.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1737"
|
||||
HREF="node123.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1733"
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
|
||||
<A NAME="tex2html1749"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1727"
|
||||
<A NAME="tex2html1745"
|
||||
HREF="node121.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1735"
|
||||
<A NAME="tex2html1751"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1738"
|
||||
HREF="node123.html">About this document ...</A>
|
||||
<B> Up:</B> <A NAME="tex2html1734"
|
||||
<B> Up:</B> <A NAME="tex2html1750"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1728"
|
||||
HREF="node121.html">psb_krylov Krylov</A>
|
||||
<B> <A NAME="tex2html1736"
|
||||
<B> Previous:</B> <A NAME="tex2html1746"
|
||||
HREF="node121.html">Bibliography</A>
|
||||
<B> <A NAME="tex2html1752"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR><BR>
|
||||
<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. Barbieri, V. Cardellini, S. Filippone and D. 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
|
||||
|
||||
<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><DT><A NAME="PARA04FOREST">2</A>
|
||||
<DD>
|
||||
G. Bella, S. Filippone, A. De Maio and M. Testa,
|
||||
<EM>A Simulation Model for Forest Fires</EM>,
|
||||
in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art
|
||||
in Scientific Computing, pp. 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
|
||||
Copyright © 1993, 1994, 1995, 1996,
|
||||
<A HREF="http://cbl.leeds.ac.uk/nikos/personal.html">Nikos Drakos</A>,
|
||||
Computer Based Learning Unit, University of Leeds.
|
||||
<BR>
|
||||
Applied Numerical Mathematics, Elsevier Science,
|
||||
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
|
||||
|
||||
Copyright © 1997, 1998, 1999,
|
||||
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
|
||||
Mathematics Department, Macquarie University, Sydney.
|
||||
<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. 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. 16, 1-17, 1990.
|
||||
<P></P><DT><A NAME="BLACS">7</A>
|
||||
<DD>
|
||||
J. J. Dongarra and R. C. Whaley,
|
||||
<EM>A User's Guide to the BLACS v. 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. Duff, M. Marrone, G. Radicati and C. Vittoli,
|
||||
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
|
||||
a User Level Interface</EM>,
|
||||
ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997.
|
||||
<P></P><DT><A NAME="sblas02">9</A>
|
||||
<DD>
|
||||
I. Duff, M. Heroux and R. 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. 239-267, 2002.
|
||||
<P></P><DT><A NAME="PSBLAS">10</A>
|
||||
<DD>
|
||||
S. Filippone and M. Colajanni,
|
||||
<EM>PSBLAS: A Library for Parallel Linear Algebra
|
||||
Computation on Sparse Matrices</EM>,
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000.
|
||||
<P></P><DT><A NAME="Sparse03">11</A>
|
||||
<DD>
|
||||
S. Filippone and A. Buttari,
|
||||
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
|
||||
<BR>
|
||||
ACM Transactions on Mathematical Software, to appear.
|
||||
<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
|
||||
<DD>
|
||||
S. Filippone, P. D'Ambra, M. Colajanni,
|
||||
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
|
||||
Applications Code on Linux Clusters</EM>,
|
||||
in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
|
||||
Parallel Computing - Advances & Current Issues,
|
||||
pp. 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. 5, 38-329, 1979.
|
||||
|
||||
<P>
|
||||
<P></P><DT><A NAME="machiels">16</A>
|
||||
<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. 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. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
|
||||
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
|
||||
MIT Press, 1998.
|
||||
</DL>
|
||||
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by Salvatore Filippone on 2014-03-25
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html376"
|
||||
<A NAME="tex2html378"
|
||||
HREF="node14.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html372"
|
||||
<A NAME="tex2html374"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html366"
|
||||
<A NAME="tex2html368"
|
||||
HREF="node12.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html374"
|
||||
<A NAME="tex2html376"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html377"
|
||||
<B> Next:</B> <A NAME="tex2html379"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html367"
|
||||
<B> Previous:</B> <A NAME="tex2html369"
|
||||
HREF="node12.html">get_local_rows Get</A>
|
||||
<B> <A NAME="tex2html375"
|
||||
<B> <A NAME="tex2html377"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html388"
|
||||
<A NAME="tex2html390"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html384"
|
||||
<A NAME="tex2html386"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html378"
|
||||
<A NAME="tex2html380"
|
||||
HREF="node13.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html386"
|
||||
<A NAME="tex2html388"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html389"
|
||||
<B> Next:</B> <A NAME="tex2html391"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html379"
|
||||
<B> Previous:</B> <A NAME="tex2html381"
|
||||
HREF="node13.html">get_local_cols Get</A>
|
||||
<B> <A NAME="tex2html387"
|
||||
<B> <A NAME="tex2html389"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html400"
|
||||
<A NAME="tex2html402"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html396"
|
||||
<A NAME="tex2html398"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html390"
|
||||
<A NAME="tex2html392"
|
||||
HREF="node14.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html398"
|
||||
<A NAME="tex2html400"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html401"
|
||||
<B> Next:</B> <A NAME="tex2html403"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html391"
|
||||
<B> Previous:</B> <A NAME="tex2html393"
|
||||
HREF="node14.html">get_global_rows Get</A>
|
||||
<B> <A NAME="tex2html399"
|
||||
<B> <A NAME="tex2html401"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html412"
|
||||
<A NAME="tex2html414"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html408"
|
||||
<A NAME="tex2html410"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html402"
|
||||
<A NAME="tex2html404"
|
||||
HREF="node15.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html410"
|
||||
<A NAME="tex2html412"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html413"
|
||||
<B> Next:</B> <A NAME="tex2html415"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html403"
|
||||
<B> Previous:</B> <A NAME="tex2html405"
|
||||
HREF="node15.html">get_global_cols Get</A>
|
||||
<B> <A NAME="tex2html411"
|
||||
<B> <A NAME="tex2html413"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html424"
|
||||
<A NAME="tex2html426"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html420"
|
||||
<A NAME="tex2html422"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html414"
|
||||
<A NAME="tex2html416"
|
||||
HREF="node16.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html422"
|
||||
<A NAME="tex2html424"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html425"
|
||||
<B> Next:</B> <A NAME="tex2html427"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html415"
|
||||
<B> Previous:</B> <A NAME="tex2html417"
|
||||
HREF="node16.html">get_context Get</A>
|
||||
<B> <A NAME="tex2html423"
|
||||
<B> <A NAME="tex2html425"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html436"
|
||||
<A NAME="tex2html438"
|
||||
HREF="node19.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html432"
|
||||
<A NAME="tex2html434"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html426"
|
||||
<A NAME="tex2html428"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html434"
|
||||
<A NAME="tex2html436"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html437"
|
||||
<B> Next:</B> <A NAME="tex2html439"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html427"
|
||||
<B> Previous:</B> <A NAME="tex2html429"
|
||||
HREF="node17.html">Clone clone</A>
|
||||
<B> <A NAME="tex2html435"
|
||||
<B> <A NAME="tex2html437"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html448"
|
||||
<A NAME="tex2html450"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html444"
|
||||
<A NAME="tex2html446"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html438"
|
||||
<A NAME="tex2html440"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html446"
|
||||
<A NAME="tex2html448"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html449"
|
||||
<B> Next:</B> <A NAME="tex2html451"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html439"
|
||||
<B> Previous:</B> <A NAME="tex2html441"
|
||||
HREF="node18.html">psb_cd_get_large_threshold Get</A>
|
||||
<B> <A NAME="tex2html447"
|
||||
<B> <A NAME="tex2html449"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+26
-26
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html196"
|
||||
<A NAME="tex2html197"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html192"
|
||||
<A NAME="tex2html193"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html186"
|
||||
<A NAME="tex2html187"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html194"
|
||||
<A NAME="tex2html195"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html197"
|
||||
<B> Next:</B> <A NAME="tex2html198"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> Up:</B> <A NAME="tex2html193"
|
||||
<B> Up:</B> <A NAME="tex2html194"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html187"
|
||||
<B> Previous:</B> <A NAME="tex2html188"
|
||||
HREF="node1.html">Contents</A>
|
||||
<B> <A NAME="tex2html195"
|
||||
<B> <A NAME="tex2html196"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -71,7 +71,7 @@ passing.
|
||||
<P>
|
||||
The PSBLAS library version 3 is implemented in
|
||||
the Fortran 2003 [<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 77 and Fortran 95 software, plus a
|
||||
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
|
||||
new algorithms.
|
||||
For a detailed discussion of our design see [<A
|
||||
HREF="node120.html#Sparse03">11</A>]; other
|
||||
HREF="node121.html#Sparse03">11</A>]; other
|
||||
works discussing advanced programming in Fortran 2003
|
||||
include [<A
|
||||
HREF="node120.html#DesPat:11">1</A>,<A
|
||||
HREF="node120.html#RouXiaXu:11">18</A>]; sufficient support for
|
||||
HREF="node121.html#DesPat:11">1</A>,<A
|
||||
HREF="node121.html#RouXiaXu:11">18</A>]; sufficient support for
|
||||
Fortran 2003 is now available from many compilers, including the GNU
|
||||
Fortran compiler from the Free Software Foundation (as of version 4.6).
|
||||
|
||||
@@ -94,7 +94,7 @@ Previous approaches have been based on mixing Fortran 95, with its
|
||||
support for object-based design, with other languages; these have
|
||||
been advocated by a number of authors,
|
||||
e.g. [<A
|
||||
HREF="node120.html#machiels">16</A>]. Moreover, the Fortran 95 facilities for dynamic
|
||||
HREF="node121.html#machiels">16</A>]. Moreover, the Fortran 95 facilities for dynamic
|
||||
memory management and interface overloading greatly enhance the
|
||||
usability of the PSBLAS
|
||||
subroutines. In this way, the library can take care of runtime memory
|
||||
@@ -105,12 +105,12 @@ implementation or compilation time.
|
||||
The presentation of the
|
||||
PSBLAS library follows the general structure of the proposal for
|
||||
serial Sparse BLAS [<A
|
||||
HREF="node120.html#sblas97">8</A>,<A
|
||||
HREF="node120.html#sblas02">9</A>], which in its turn is based on the
|
||||
HREF="node121.html#sblas97">8</A>,<A
|
||||
HREF="node121.html#sblas02">9</A>], which in its turn is based on the
|
||||
proposal for BLAS on dense matrices [<A
|
||||
HREF="node120.html#BLAS1">15</A>,<A
|
||||
HREF="node120.html#BLAS2">5</A>,<A
|
||||
HREF="node120.html#BLAS3">6</A>].
|
||||
HREF="node121.html#BLAS1">15</A>,<A
|
||||
HREF="node121.html#BLAS2">5</A>,<A
|
||||
HREF="node121.html#BLAS3">6</A>].
|
||||
|
||||
<P>
|
||||
The applicability of sparse iterative solvers to many different areas
|
||||
@@ -144,26 +144,26 @@ computational fluid dynamics applications.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html196"
|
||||
<A NAME="tex2html197"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html192"
|
||||
<A NAME="tex2html193"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html186"
|
||||
<A NAME="tex2html187"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html194"
|
||||
<A NAME="tex2html195"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html197"
|
||||
<B> Next:</B> <A NAME="tex2html198"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> Up:</B> <A NAME="tex2html193"
|
||||
<B> Up:</B> <A NAME="tex2html194"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html187"
|
||||
<B> Previous:</B> <A NAME="tex2html188"
|
||||
HREF="node1.html">Contents</A>
|
||||
<B> <A NAME="tex2html195"
|
||||
<B> <A NAME="tex2html196"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
@@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html458"
|
||||
<A NAME="tex2html460"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html454"
|
||||
<A NAME="tex2html456"
|
||||
HREF="node10.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html450"
|
||||
<A NAME="tex2html452"
|
||||
HREF="node19.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html456"
|
||||
<A NAME="tex2html458"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html459"
|
||||
<B> Next:</B> <A NAME="tex2html461"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html451"
|
||||
<B> Previous:</B> <A NAME="tex2html453"
|
||||
HREF="node19.html">psb_cd_set_large_threshold Set</A>
|
||||
<B> <A NAME="tex2html457"
|
||||
<B> <A NAME="tex2html459"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+43
-41
@@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<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="up" HREF="node9.html">
|
||||
<LINK REL="next" HREF="node22.html">
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html470"
|
||||
<A NAME="tex2html472"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html466"
|
||||
<A NAME="tex2html468"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html460"
|
||||
<A NAME="tex2html462"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html468"
|
||||
<A NAME="tex2html470"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html471"
|
||||
<B> Next:</B> <A NAME="tex2html473"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html461"
|
||||
<B> Previous:</B> <A NAME="tex2html463"
|
||||
HREF="node20.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html469"
|
||||
<B> <A NAME="tex2html471"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<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
|
||||
its storage mode. Its design is
|
||||
based on the STATE design pattern [<A
|
||||
HREF="node120.html#DesignPatterns">13</A>] as detailed
|
||||
HREF="node121.html#DesignPatterns">13</A>] as detailed
|
||||
in [<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 <A HREF="#fig:spmattype">4</A> where <code>T</code> is a placeholder for the
|
||||
data type and precision variants
|
||||
<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
|
||||
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>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
|
||||
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>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html472"
|
||||
HREF="node22.html">Sparse Matrix Methods</A>
|
||||
<LI><A NAME="tex2html473"
|
||||
HREF="node23.html">get_nrows -- Get number of rows in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html474"
|
||||
HREF="node22.html">Sparse Matrix Methods</A>
|
||||
<LI><A NAME="tex2html475"
|
||||
HREF="node23.html">get_nrows -- Get number of rows in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html476"
|
||||
HREF="node24.html">get_ncols -- Get number of columns in a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html475"
|
||||
<LI><A NAME="tex2html477"
|
||||
HREF="node25.html">get_nnzeros -- Get number of nonzero elements
|
||||
in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html476"
|
||||
<LI><A NAME="tex2html478"
|
||||
HREF="node26.html">get_size -- Get maximum number of nonzero elements
|
||||
in a sparse matrix</A>
|
||||
<LI><A NAME="tex2html477"
|
||||
<LI><A NAME="tex2html479"
|
||||
HREF="node27.html">sizeof -- Get memory occupation in bytes
|
||||
of a sparse matrix</A>
|
||||
<LI><A NAME="tex2html478"
|
||||
HREF="node28.html">get_fmt -- Short description of the dynamic type</A>
|
||||
<LI><A NAME="tex2html479"
|
||||
HREF="node29.html">is_bld, is_upd, is_asb -- Status check</A>
|
||||
<LI><A NAME="tex2html480"
|
||||
HREF="node28.html">get_fmt -- Short description of the dynamic type</A>
|
||||
<LI><A NAME="tex2html481"
|
||||
HREF="node29.html">is_bld, is_upd, is_asb -- Status check</A>
|
||||
<LI><A NAME="tex2html482"
|
||||
HREF="node30.html">is_lower, is_upper, is_triangle, is_unit --
|
||||
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"
|
||||
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"
|
||||
HREF="node34.html">tril -- Return the lower triangle</A>
|
||||
HREF="node32.html">csclip -- Reduce to a submatrix</A>
|
||||
<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"
|
||||
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"
|
||||
HREF="node37.html">clone -- Clone current object</A>
|
||||
HREF="node35.html">tril -- Return the lower triangle</A>
|
||||
<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>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html470"
|
||||
<A NAME="tex2html472"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html466"
|
||||
<A NAME="tex2html468"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html460"
|
||||
<A NAME="tex2html462"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html468"
|
||||
<A NAME="tex2html470"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html471"
|
||||
<B> Next:</B> <A NAME="tex2html473"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html461"
|
||||
<B> Previous:</B> <A NAME="tex2html463"
|
||||
HREF="node20.html">Named Constants</A>
|
||||
<B> <A NAME="tex2html469"
|
||||
<B> <A NAME="tex2html471"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html499"
|
||||
<A NAME="tex2html502"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html495"
|
||||
<A NAME="tex2html498"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html489"
|
||||
<A NAME="tex2html492"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html497"
|
||||
<A NAME="tex2html500"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html500"
|
||||
<B> Next:</B> <A NAME="tex2html503"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html490"
|
||||
<B> Previous:</B> <A NAME="tex2html493"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> <A NAME="tex2html498"
|
||||
<B> <A NAME="tex2html501"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html511"
|
||||
<A NAME="tex2html514"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html507"
|
||||
<A NAME="tex2html510"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html501"
|
||||
<A NAME="tex2html504"
|
||||
HREF="node22.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html509"
|
||||
<A NAME="tex2html512"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html512"
|
||||
<B> Next:</B> <A NAME="tex2html515"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html502"
|
||||
<B> Previous:</B> <A NAME="tex2html505"
|
||||
HREF="node22.html">Sparse Matrix Methods</A>
|
||||
<B> <A NAME="tex2html510"
|
||||
<B> <A NAME="tex2html513"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html523"
|
||||
<A NAME="tex2html526"
|
||||
HREF="node25.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html519"
|
||||
<A NAME="tex2html522"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html513"
|
||||
<A NAME="tex2html516"
|
||||
HREF="node23.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html521"
|
||||
<A NAME="tex2html524"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html524"
|
||||
<B> Next:</B> <A NAME="tex2html527"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html514"
|
||||
<B> Previous:</B> <A NAME="tex2html517"
|
||||
HREF="node23.html">get_nrows Get</A>
|
||||
<B> <A NAME="tex2html522"
|
||||
<B> <A NAME="tex2html525"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html535"
|
||||
<A NAME="tex2html538"
|
||||
HREF="node26.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html531"
|
||||
<A NAME="tex2html534"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html525"
|
||||
<A NAME="tex2html528"
|
||||
HREF="node24.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html533"
|
||||
<A NAME="tex2html536"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html536"
|
||||
<B> Next:</B> <A NAME="tex2html539"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html526"
|
||||
<B> Previous:</B> <A NAME="tex2html529"
|
||||
HREF="node24.html">get_ncols Get</A>
|
||||
<B> <A NAME="tex2html534"
|
||||
<B> <A NAME="tex2html537"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html547"
|
||||
<A NAME="tex2html550"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html543"
|
||||
<A NAME="tex2html546"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html537"
|
||||
<A NAME="tex2html540"
|
||||
HREF="node25.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html545"
|
||||
<A NAME="tex2html548"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html548"
|
||||
<B> Next:</B> <A NAME="tex2html551"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html538"
|
||||
<B> Previous:</B> <A NAME="tex2html541"
|
||||
HREF="node25.html">get_nnzeros Get</A>
|
||||
<B> <A NAME="tex2html546"
|
||||
<B> <A NAME="tex2html549"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -28,26 +28,26 @@ of a sparse matrix">
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html559"
|
||||
<A NAME="tex2html562"
|
||||
HREF="node28.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html555"
|
||||
<A NAME="tex2html558"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html549"
|
||||
<A NAME="tex2html552"
|
||||
HREF="node26.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html557"
|
||||
<A NAME="tex2html560"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html560"
|
||||
<B> Next:</B> <A NAME="tex2html563"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html550"
|
||||
<B> Previous:</B> <A NAME="tex2html553"
|
||||
HREF="node26.html">get_size Get</A>
|
||||
<B> <A NAME="tex2html558"
|
||||
<B> <A NAME="tex2html561"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html571"
|
||||
<A NAME="tex2html574"
|
||||
HREF="node29.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html567"
|
||||
<A NAME="tex2html570"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html561"
|
||||
<A NAME="tex2html564"
|
||||
HREF="node27.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html569"
|
||||
<A NAME="tex2html572"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html572"
|
||||
<B> Next:</B> <A NAME="tex2html575"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html562"
|
||||
<B> Previous:</B> <A NAME="tex2html565"
|
||||
HREF="node27.html">sizeof Get</A>
|
||||
<B> <A NAME="tex2html570"
|
||||
<B> <A NAME="tex2html573"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html583"
|
||||
<A NAME="tex2html586"
|
||||
HREF="node30.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html579"
|
||||
<A NAME="tex2html582"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html573"
|
||||
<A NAME="tex2html576"
|
||||
HREF="node28.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html581"
|
||||
<A NAME="tex2html584"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<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>
|
||||
<B> Up:</B> <A NAME="tex2html580"
|
||||
<B> Up:</B> <A NAME="tex2html583"
|
||||
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>
|
||||
<B> <A NAME="tex2html582"
|
||||
<B> <A NAME="tex2html585"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+24
-24
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html208"
|
||||
<A NAME="tex2html209"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html204"
|
||||
<A NAME="tex2html205"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html198"
|
||||
<A NAME="tex2html199"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html206"
|
||||
<A NAME="tex2html207"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html209"
|
||||
<B> Next:</B> <A NAME="tex2html210"
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<B> Up:</B> <A NAME="tex2html205"
|
||||
<B> Up:</B> <A NAME="tex2html206"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html199"
|
||||
<B> Previous:</B> <A NAME="tex2html200"
|
||||
HREF="node2.html">Introduction</A>
|
||||
<B> <A NAME="tex2html207"
|
||||
<B> <A NAME="tex2html208"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<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 an applicaiton layer that has been strongly inspired by the Basic
|
||||
Linear Algebra Communication Subroutines (BLACS) library [<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
|
||||
cases, MPI routines are used directly to improve efficiency. For
|
||||
further details on our communication layer see Sec. <A HREF="node93.html#sec:parenv">7</A>.
|
||||
further details on our communication layer see Sec. <A HREF="node94.html#sec:parenv">7</A>.
|
||||
|
||||
<P>
|
||||
|
||||
@@ -134,7 +134,7 @@ equation indices to processes.
|
||||
In particular it is consistent with the
|
||||
usage of graph partitioning tools commonly available in the
|
||||
literature, e.g. METIS [<A
|
||||
HREF="node120.html#METIS">14</A>].
|
||||
HREF="node121.html#METIS">14</A>].
|
||||
Dense vectors conform to sparse
|
||||
matrices, that is, the entries of a vector follow the same distribution
|
||||
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>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html210"
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<LI><A NAME="tex2html211"
|
||||
HREF="node5.html">Library contents</A>
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<LI><A NAME="tex2html212"
|
||||
HREF="node5.html">Library contents</A>
|
||||
<LI><A NAME="tex2html213"
|
||||
HREF="node6.html">Application structure</A>
|
||||
<UL>
|
||||
<LI><A NAME="tex2html213"
|
||||
<LI><A NAME="tex2html214"
|
||||
HREF="node7.html">User-defined index mappings</A>
|
||||
</UL>
|
||||
<BR>
|
||||
<LI><A NAME="tex2html214"
|
||||
<LI><A NAME="tex2html215"
|
||||
HREF="node8.html">Programming model</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html208"
|
||||
<A NAME="tex2html209"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html204"
|
||||
<A NAME="tex2html205"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html198"
|
||||
<A NAME="tex2html199"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html206"
|
||||
<A NAME="tex2html207"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html209"
|
||||
<B> Next:</B> <A NAME="tex2html210"
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<B> Up:</B> <A NAME="tex2html205"
|
||||
<B> Up:</B> <A NAME="tex2html206"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html199"
|
||||
<B> Previous:</B> <A NAME="tex2html200"
|
||||
HREF="node2.html">Introduction</A>
|
||||
<B> <A NAME="tex2html207"
|
||||
<B> <A NAME="tex2html208"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html595"
|
||||
<A NAME="tex2html598"
|
||||
HREF="node31.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html591"
|
||||
<A NAME="tex2html594"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html585"
|
||||
<A NAME="tex2html588"
|
||||
HREF="node29.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html593"
|
||||
<A NAME="tex2html596"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html596"
|
||||
<B> Next:</B> <A NAME="tex2html599"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html586"
|
||||
<B> Previous:</B> <A NAME="tex2html589"
|
||||
HREF="node29.html">is_bld, is_upd, is_asb </A>
|
||||
<B> <A NAME="tex2html594"
|
||||
<B> <A NAME="tex2html597"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html607"
|
||||
<A NAME="tex2html610"
|
||||
HREF="node32.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html603"
|
||||
<A NAME="tex2html606"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html597"
|
||||
<A NAME="tex2html600"
|
||||
HREF="node30.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html605"
|
||||
<A NAME="tex2html608"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html608"
|
||||
<B> Next:</B> <A NAME="tex2html611"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html598"
|
||||
<B> Previous:</B> <A NAME="tex2html601"
|
||||
HREF="node30.html">is_lower, is_upper, is_triangle, is_unit</A>
|
||||
<B> <A NAME="tex2html606"
|
||||
<B> <A NAME="tex2html609"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html619"
|
||||
<A NAME="tex2html622"
|
||||
HREF="node33.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html615"
|
||||
<A NAME="tex2html618"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html609"
|
||||
<A NAME="tex2html612"
|
||||
HREF="node31.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html617"
|
||||
<A NAME="tex2html620"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html620"
|
||||
HREF="node33.html">clip_diag Cut</A>
|
||||
<B> Up:</B> <A NAME="tex2html616"
|
||||
<B> Next:</B> <A NAME="tex2html623"
|
||||
HREF="node33.html">get_diag Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html619"
|
||||
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>
|
||||
<B> <A NAME="tex2html618"
|
||||
<B> <A NAME="tex2html621"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+17
-17
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>clip_diag -- Cut out main diagonal</TITLE>
|
||||
<META NAME="description" CONTENT="clip_diag -- Cut out main diagonal">
|
||||
<TITLE>get_diag -- Get main diagonal</TITLE>
|
||||
<META NAME="description" CONTENT="get_diag -- Get main diagonal">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -26,41 +26,41 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html631"
|
||||
<A NAME="tex2html634"
|
||||
HREF="node34.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html627"
|
||||
<A NAME="tex2html630"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html621"
|
||||
<A NAME="tex2html624"
|
||||
HREF="node32.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html629"
|
||||
<A NAME="tex2html632"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html632"
|
||||
HREF="node34.html">tril Return</A>
|
||||
<B> Up:</B> <A NAME="tex2html628"
|
||||
<B> Next:</B> <A NAME="tex2html635"
|
||||
HREF="node34.html">clip_diag Cut</A>
|
||||
<B> Up:</B> <A NAME="tex2html631"
|
||||
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>
|
||||
<B> <A NAME="tex2html630"
|
||||
<B> <A NAME="tex2html633"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION000421200000000000000">
|
||||
clip_diag -- Cut out main diagonal</A>
|
||||
get_diag -- Get main diagonal</A>
|
||||
</H3>
|
||||
|
||||
<PRE>
|
||||
call a%clip_diag(b,info)
|
||||
call a%get_diag(d,info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Returns a copy of <code>a</code> without the main diagonal.
|
||||
Returns a copy of the main diagonal.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
@@ -80,10 +80,10 @@ Scope: <B>local</B>.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>b</STRONG></DT>
|
||||
<DD>A copy of <code>a</code> without the main diagonal.
|
||||
<DT><STRONG>d</STRONG></DT>
|
||||
<DD>A copy of the main diagonal.
|
||||
<BR>
|
||||
A variable of type <code>psb_Tspmat_type</code>.
|
||||
A one-dimensional array of the appropriate type.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Return code.
|
||||
|
||||
+16
-31
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>tril -- Return the lower triangle</TITLE>
|
||||
<META NAME="description" CONTENT="tril -- Return the lower triangle">
|
||||
<TITLE>clip_diag -- Cut out main diagonal</TITLE>
|
||||
<META NAME="description" CONTENT="clip_diag -- Cut out main diagonal">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -26,44 +26,41 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html643"
|
||||
<A NAME="tex2html646"
|
||||
HREF="node35.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html639"
|
||||
<A NAME="tex2html642"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html633"
|
||||
<A NAME="tex2html636"
|
||||
HREF="node33.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html641"
|
||||
<A NAME="tex2html644"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html644"
|
||||
HREF="node35.html">triu Return</A>
|
||||
<B> Up:</B> <A NAME="tex2html640"
|
||||
<B> Next:</B> <A NAME="tex2html647"
|
||||
HREF="node35.html">tril Return</A>
|
||||
<B> Up:</B> <A NAME="tex2html643"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html634"
|
||||
HREF="node33.html">clip_diag Cut</A>
|
||||
<B> <A NAME="tex2html642"
|
||||
<B> Previous:</B> <A NAME="tex2html637"
|
||||
HREF="node33.html">get_diag Get</A>
|
||||
<B> <A NAME="tex2html645"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION000421300000000000000">
|
||||
tril -- Return the lower triangle</A>
|
||||
clip_diag -- Cut out main diagonal</A>
|
||||
</H3>
|
||||
|
||||
<PRE>
|
||||
call a%tril(b,info[,&
|
||||
& diag,imin,imax,jmin,jmax,rscale,cscale])
|
||||
call a%clip_diag(b,info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Returns the lower 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>.
|
||||
Returns a copy of <code>a</code> without the main diagonal.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
@@ -78,25 +75,13 @@ 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 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>
|
||||
<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>.
|
||||
<DD>A copy of <code>a</code> without the main diagonal.
|
||||
<BR>
|
||||
A variable of type <code>psb_Tspmat_type</code>.
|
||||
</DD>
|
||||
|
||||
+16
-16
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>triu -- Return the upper triangle</TITLE>
|
||||
<META NAME="description" CONTENT="triu -- Return the upper triangle">
|
||||
<TITLE>tril -- Return the lower triangle</TITLE>
|
||||
<META NAME="description" CONTENT="tril -- Return the lower triangle">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -26,42 +26,42 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html655"
|
||||
<A NAME="tex2html658"
|
||||
HREF="node36.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html651"
|
||||
<A NAME="tex2html654"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html645"
|
||||
<A NAME="tex2html648"
|
||||
HREF="node34.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html653"
|
||||
<A NAME="tex2html656"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html656"
|
||||
HREF="node36.html">psb_set_mat_default Set</A>
|
||||
<B> Up:</B> <A NAME="tex2html652"
|
||||
<B> Next:</B> <A NAME="tex2html659"
|
||||
HREF="node36.html">triu Return</A>
|
||||
<B> Up:</B> <A NAME="tex2html655"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html646"
|
||||
HREF="node34.html">tril Return</A>
|
||||
<B> <A NAME="tex2html654"
|
||||
<B> Previous:</B> <A NAME="tex2html649"
|
||||
HREF="node34.html">clip_diag Cut</A>
|
||||
<B> <A NAME="tex2html657"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION000421400000000000000">
|
||||
triu -- Return the upper triangle</A>
|
||||
tril -- Return the lower triangle</A>
|
||||
</H3>
|
||||
|
||||
<PRE>
|
||||
call a%triu(b,info[,&
|
||||
call a%tril(b,info[,&
|
||||
& diag,imin,imax,jmin,jmax,rscale,cscale])
|
||||
</PRE>
|
||||
|
||||
<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
|
||||
the range <code>1:imax-imin+1,1:jmax-jmin+1</code>.
|
||||
<DL>
|
||||
@@ -79,7 +79,7 @@ A variable of type <code>psb_Tspmat_type</code>.
|
||||
Scope: <B>local</B>.
|
||||
<BR></DD>
|
||||
<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>
|
||||
<DT><STRONG>imin,imax,jmin,jmax</STRONG></DT>
|
||||
<DD>Minimum and maximum row and column indices.
|
||||
|
||||
+47
-18
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_set_mat_default -- Set default storage format</TITLE>
|
||||
<META NAME="description" CONTENT="psb_set_mat_default -- Set default storage format">
|
||||
<TITLE>triu -- Return the upper triangle</TITLE>
|
||||
<META NAME="description" CONTENT="triu -- Return the upper triangle">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -26,41 +26,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html667"
|
||||
<A NAME="tex2html670"
|
||||
HREF="node37.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html663"
|
||||
<A NAME="tex2html666"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html657"
|
||||
<A NAME="tex2html660"
|
||||
HREF="node35.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html665"
|
||||
<A NAME="tex2html668"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html668"
|
||||
HREF="node37.html">clone Clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html664"
|
||||
<B> Next:</B> <A NAME="tex2html671"
|
||||
HREF="node37.html">psb_set_mat_default Set</A>
|
||||
<B> Up:</B> <A NAME="tex2html667"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html658"
|
||||
HREF="node35.html">triu Return</A>
|
||||
<B> <A NAME="tex2html666"
|
||||
<B> Previous:</B> <A NAME="tex2html661"
|
||||
HREF="node35.html">tril Return</A>
|
||||
<B> <A NAME="tex2html669"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION000421500000000000000">
|
||||
psb_set_mat_default -- Set default storage format</A>
|
||||
triu -- Return the upper triangle</A>
|
||||
</H3>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_set_mat_default(a)
|
||||
call a%triu(b,info[,&
|
||||
& diag,imin,imax,jmin,jmax,rscale,cscale])
|
||||
</PRE>
|
||||
|
||||
<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>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
@@ -69,10 +72,36 @@ call psb_set_mat_default(a)
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>a variable of <code>class(psb_T_base_sparse_mat)</code> requesting
|
||||
a new default storage format.
|
||||
<DD>the sparse matrix.
|
||||
<BR>
|
||||
Type: required.
|
||||
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>
|
||||
A variable of type <code>psb_Tspmat_type</code>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Return code.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+17
-29
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>clone -- Clone current object</TITLE>
|
||||
<META NAME="description" CONTENT="clone -- Clone current object">
|
||||
<TITLE>psb_set_mat_default -- Set default storage format</TITLE>
|
||||
<META NAME="description" CONTENT="psb_set_mat_default -- Set default storage format">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html679"
|
||||
<A NAME="tex2html682"
|
||||
HREF="node38.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html675"
|
||||
<A NAME="tex2html678"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html669"
|
||||
<A NAME="tex2html672"
|
||||
HREF="node36.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html677"
|
||||
<A NAME="tex2html680"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html680"
|
||||
HREF="node38.html">Named Constants</A>
|
||||
<B> Up:</B> <A NAME="tex2html676"
|
||||
<B> Next:</B> <A NAME="tex2html683"
|
||||
HREF="node38.html">clone Clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html679"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html670"
|
||||
HREF="node36.html">psb_set_mat_default Set</A>
|
||||
<B> <A NAME="tex2html678"
|
||||
<B> Previous:</B> <A NAME="tex2html673"
|
||||
HREF="node36.html">triu Return</A>
|
||||
<B> <A NAME="tex2html681"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION000421600000000000000">
|
||||
clone -- Clone current object</A>
|
||||
psb_set_mat_default -- Set default storage format</A>
|
||||
</H3>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call a%clone(b,info)
|
||||
call psb_set_mat_default(a)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -69,22 +69,10 @@ call a%clone(b,info)
|
||||
<DD>
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>local</B>.
|
||||
<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.
|
||||
Type: required.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+41
-31
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Named Constants</TITLE>
|
||||
<META NAME="description" CONTENT="Named Constants">
|
||||
<TITLE>clone -- Clone current object</TITLE>
|
||||
<META NAME="description" CONTENT="clone -- Clone current object">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node39.html">
|
||||
<LINK REL="previous" HREF="node37.html">
|
||||
<LINK REL="up" HREF="node21.html">
|
||||
<LINK REL="next" HREF="node39.html">
|
||||
@@ -25,56 +26,65 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html689"
|
||||
<A NAME="tex2html694"
|
||||
HREF="node39.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html685"
|
||||
<A NAME="tex2html690"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html681"
|
||||
<A NAME="tex2html684"
|
||||
HREF="node37.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html687"
|
||||
<A NAME="tex2html692"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html690"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html686"
|
||||
<B> Next:</B> <A NAME="tex2html695"
|
||||
HREF="node39.html">Named Constants</A>
|
||||
<B> Up:</B> <A NAME="tex2html691"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html682"
|
||||
HREF="node37.html">clone Clone</A>
|
||||
<B> <A NAME="tex2html688"
|
||||
<B> Previous:</B> <A NAME="tex2html685"
|
||||
HREF="node37.html">psb_set_mat_default Set</A>
|
||||
<B> <A NAME="tex2html693"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION000421700000000000000"></A>
|
||||
<A NAME="sec:sp_constants"></A>
|
||||
<BR>
|
||||
Named Constants
|
||||
<H3><A NAME="SECTION000421700000000000000">
|
||||
clone -- Clone current object</A>
|
||||
</H3>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call a%clone(b,info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>psb_dupl_ovwrt_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should be overwritten
|
||||
(i.e. ignore duplications)
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG>psb_dupl_add_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should be added;
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>psb_dupl_err_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should trigger an error conditino
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the sparse matrix.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>psb_upd_dflt_</STRONG></DT>
|
||||
<DD>Default update strategy for matrix coefficients;
|
||||
<DT><STRONG>b</STRONG></DT>
|
||||
<DD>A copy of the input object.
|
||||
</DD>
|
||||
<DT><STRONG>psb_upd_srch_</STRONG></DT>
|
||||
<DD>Update strategy based on search into the data structure;
|
||||
</DD>
|
||||
<DT><STRONG>psb_upd_perm_</STRONG></DT>
|
||||
<DD>Update strategy based on additional
|
||||
permutation data (see tools routine description).
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Return code.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+35
-114
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Dense Vector Data Structure</TITLE>
|
||||
<META NAME="description" CONTENT="Dense Vector Data Structure">
|
||||
<TITLE>Named Constants</TITLE>
|
||||
<META NAME="description" CONTENT="Named Constants">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node45.html">
|
||||
<LINK REL="previous" HREF="node21.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="previous" HREF="node38.html">
|
||||
<LINK REL="up" HREF="node21.html">
|
||||
<LINK REL="next" HREF="node40.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html701"
|
||||
<A NAME="tex2html704"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html697"
|
||||
HREF="node9.html">
|
||||
<A NAME="tex2html700"
|
||||
HREF="node21.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html691"
|
||||
<A NAME="tex2html696"
|
||||
HREF="node38.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html699"
|
||||
<A NAME="tex2html702"
|
||||
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>
|
||||
<B> <A NAME="tex2html700"
|
||||
<B> Next:</B> <A NAME="tex2html705"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html701"
|
||||
HREF="node21.html">Sparse Matrix class</A>
|
||||
<B> Previous:</B> <A NAME="tex2html697"
|
||||
HREF="node38.html">clone Clone</A>
|
||||
<B> <A NAME="tex2html703"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00043000000000000000"></A>
|
||||
<A NAME="sec:vecttype"></A>
|
||||
<H3><A NAME="SECTION000421800000000000000"></A>
|
||||
<A NAME="sec:sp_constants"></A>
|
||||
<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. <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 <A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
|
||||
data type and precision variants
|
||||
Named Constants
|
||||
</H3>
|
||||
<DL>
|
||||
<DT><STRONG>I</STRONG></DT>
|
||||
<DD>Integer;
|
||||
<DT><STRONG>psb_dupl_ovwrt_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should be overwritten
|
||||
(i.e. ignore duplications)
|
||||
</DD>
|
||||
<DT><STRONG>S</STRONG></DT>
|
||||
<DD>Single precision real;
|
||||
<DT><STRONG>psb_dupl_add_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should be added;
|
||||
</DD>
|
||||
<DT><STRONG>D</STRONG></DT>
|
||||
<DD>Double precision real;
|
||||
<DT><STRONG>psb_dupl_err_</STRONG></DT>
|
||||
<DD>Duplicate coefficients should trigger an error conditino
|
||||
</DD>
|
||||
<DT><STRONG>C</STRONG></DT>
|
||||
<DD>Single precision complex;
|
||||
<DT><STRONG>psb_upd_dflt_</STRONG></DT>
|
||||
<DD>Default update strategy for matrix coefficients;
|
||||
</DD>
|
||||
<DT><STRONG>Z</STRONG></DT>
|
||||
<DD>Double precision complex.
|
||||
<DT><STRONG>psb_upd_srch_</STRONG></DT>
|
||||
<DD>Update strategy based on search into the data structure;
|
||||
</DD>
|
||||
<DT><STRONG>psb_upd_perm_</STRONG></DT>
|
||||
<DD>Update strategy based on additional
|
||||
permutation data (see tools routine description).
|
||||
</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="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>
|
||||
<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>
|
||||
<B> <A NAME="tex2html700"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+18
-18
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html225"
|
||||
<A NAME="tex2html226"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html221"
|
||||
<A NAME="tex2html222"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html215"
|
||||
<A NAME="tex2html216"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html223"
|
||||
<A NAME="tex2html224"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html226"
|
||||
<B> Next:</B> <A NAME="tex2html227"
|
||||
HREF="node5.html">Library contents</A>
|
||||
<B> Up:</B> <A NAME="tex2html222"
|
||||
<B> Up:</B> <A NAME="tex2html223"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> Previous:</B> <A NAME="tex2html216"
|
||||
<B> Previous:</B> <A NAME="tex2html217"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> <A NAME="tex2html224"
|
||||
<B> <A NAME="tex2html225"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<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
|
||||
Schwarz preconditioners which are the subject of related research
|
||||
work [<A
|
||||
HREF="node120.html#2007c">4</A>,<A
|
||||
HREF="node120.html#2007d">3</A>].
|
||||
HREF="node121.html#2007c">4</A>,<A
|
||||
HREF="node121.html#2007d">3</A>].
|
||||
|
||||
<P>
|
||||
We denote the sets of internal, boundary and halo points for a given
|
||||
@@ -197,26 +197,26 @@ points in the literature.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html225"
|
||||
<A NAME="tex2html226"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html221"
|
||||
<A NAME="tex2html222"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html215"
|
||||
<A NAME="tex2html216"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html223"
|
||||
<A NAME="tex2html224"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html226"
|
||||
<B> Next:</B> <A NAME="tex2html227"
|
||||
HREF="node5.html">Library contents</A>
|
||||
<B> Up:</B> <A NAME="tex2html222"
|
||||
<B> Up:</B> <A NAME="tex2html223"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> Previous:</B> <A NAME="tex2html216"
|
||||
<B> Previous:</B> <A NAME="tex2html217"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> <A NAME="tex2html224"
|
||||
<B> <A NAME="tex2html225"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+124
-20
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Vector Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Vector Methods">
|
||||
<TITLE>Dense Vector Data Structure</TITLE>
|
||||
<META NAME="description" CONTENT="Dense Vector Data Structure">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node41.html">
|
||||
<LINK REL="previous" HREF="node39.html">
|
||||
<LINK REL="up" HREF="node39.html">
|
||||
<LINK REL="next" HREF="node46.html">
|
||||
<LINK REL="previous" HREF="node21.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="next" HREF="node41.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html718"
|
||||
<A NAME="tex2html716"
|
||||
HREF="node41.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html714"
|
||||
HREF="node39.html">
|
||||
<A NAME="tex2html712"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html708"
|
||||
<A NAME="tex2html706"
|
||||
HREF="node39.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html716"
|
||||
<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="tex2html719"
|
||||
HREF="node41.html">get_nrows Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html715"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html709"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> <A NAME="tex2html717"
|
||||
<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>
|
||||
<B> <A NAME="tex2html715"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00043100000000000000">
|
||||
Vector Methods</A>
|
||||
</H3>
|
||||
<H2><A NAME="SECTION00043000000000000000"></A>
|
||||
<A NAME="sec:vecttype"></A>
|
||||
<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. <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 <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>
|
||||
<!--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>
|
||||
<B> <A NAME="tex2html715"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+17
-49
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>get_nrows -- Get number of rows in a dense vector</TITLE>
|
||||
<META NAME="description" CONTENT="get_nrows -- Get number of rows in a dense vector">
|
||||
<TITLE>Vector Methods</TITLE>
|
||||
<META NAME="description" CONTENT="Vector Methods">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node40.html">
|
||||
<LINK REL="up" HREF="node39.html">
|
||||
<LINK REL="up" HREF="node40.html">
|
||||
<LINK REL="next" HREF="node42.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html730"
|
||||
<A NAME="tex2html733"
|
||||
HREF="node42.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html726"
|
||||
HREF="node39.html">
|
||||
<A NAME="tex2html729"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html720"
|
||||
<A NAME="tex2html723"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html728"
|
||||
<A NAME="tex2html731"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html731"
|
||||
HREF="node42.html">sizeof Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html727"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html721"
|
||||
HREF="node40.html">Vector Methods</A>
|
||||
<B> <A NAME="tex2html729"
|
||||
<B> Next:</B> <A NAME="tex2html734"
|
||||
HREF="node42.html">get_nrows Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html730"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html724"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> <A NAME="tex2html732"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00043200000000000000">
|
||||
get_nrows -- Get number of rows in a dense vector</A>
|
||||
<H3><A NAME="SECTION00043100000000000000">
|
||||
Vector Methods</A>
|
||||
</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>
|
||||
|
||||
</BODY>
|
||||
|
||||
+19
-22
@@ -7,10 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>sizeof -- Get memory occupation in bytes
|
||||
of a dense vector</TITLE>
|
||||
<META NAME="description" CONTENT="sizeof -- Get memory occupation in bytes
|
||||
of a dense vector">
|
||||
<TITLE>get_nrows -- Get number of rows in a dense vector</TITLE>
|
||||
<META NAME="description" CONTENT="get_nrows -- Get number of rows in a dense vector">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -22,45 +20,44 @@ of a dense vector">
|
||||
|
||||
<LINK REL="next" HREF="node43.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html742"
|
||||
<A NAME="tex2html745"
|
||||
HREF="node43.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html738"
|
||||
HREF="node39.html">
|
||||
<A NAME="tex2html741"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html732"
|
||||
<A NAME="tex2html735"
|
||||
HREF="node41.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html740"
|
||||
<A NAME="tex2html743"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html743"
|
||||
HREF="node43.html">get_vect Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html739"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html733"
|
||||
HREF="node41.html">get_nrows Get</A>
|
||||
<B> <A NAME="tex2html741"
|
||||
<B> Next:</B> <A NAME="tex2html746"
|
||||
HREF="node43.html">sizeof Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html742"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html736"
|
||||
HREF="node41.html">Vector Methods</A>
|
||||
<B> <A NAME="tex2html744"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00043300000000000000">
|
||||
sizeof -- Get memory occupation in bytes
|
||||
of a dense vector</A>
|
||||
<H3><A NAME="SECTION00043200000000000000">
|
||||
get_nrows -- Get number of rows in a dense vector</A>
|
||||
</H3>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
memory_size = v%sizeof()
|
||||
nr = v%get_nrows()
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -84,7 +81,7 @@ Scope: <B>local</B>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>The memory occupation in bytes.
|
||||
<DD>The number of rows of dense vector <code>v</code>.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+22
-20
@@ -7,8 +7,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>get_vect -- Get a copy of the vector contents</TITLE>
|
||||
<META NAME="description" CONTENT="get_vect -- Get a copy of the vector contents">
|
||||
<TITLE>sizeof -- Get memory occupation in bytes
|
||||
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="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node42.html">
|
||||
<LINK REL="up" HREF="node39.html">
|
||||
<LINK REL="up" HREF="node40.html">
|
||||
<LINK REL="next" HREF="node44.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html754"
|
||||
<A NAME="tex2html757"
|
||||
HREF="node44.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html750"
|
||||
HREF="node39.html">
|
||||
<A NAME="tex2html753"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html744"
|
||||
<A NAME="tex2html747"
|
||||
HREF="node42.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html752"
|
||||
<A NAME="tex2html755"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html755"
|
||||
HREF="node44.html">clone Clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html751"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html745"
|
||||
HREF="node42.html">sizeof Get</A>
|
||||
<B> <A NAME="tex2html753"
|
||||
<B> Next:</B> <A NAME="tex2html758"
|
||||
HREF="node44.html">get_vect Get</A>
|
||||
<B> Up:</B> <A NAME="tex2html754"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html748"
|
||||
HREF="node42.html">get_nrows Get</A>
|
||||
<B> <A NAME="tex2html756"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00043400000000000000">
|
||||
get_vect -- Get a copy of the vector contents</A>
|
||||
<H3><A NAME="SECTION00043300000000000000">
|
||||
sizeof -- Get memory occupation in bytes
|
||||
of a dense vector</A>
|
||||
</H3>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
extv = v%get_vect()
|
||||
memory_size = v%sizeof()
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -81,8 +84,7 @@ Scope: <B>local</B>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>An allocatable array holding a copy of the dense
|
||||
vector contents.
|
||||
<DD>The memory occupation in bytes.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+26
-26
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>clone -- Clone current object</TITLE>
|
||||
<META NAME="description" CONTENT="clone -- Clone current object">
|
||||
<TITLE>get_vect -- Get a copy of the vector contents</TITLE>
|
||||
<META NAME="description" CONTENT="get_vect -- Get a copy of the vector contents">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node45.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html764"
|
||||
<A NAME="tex2html769"
|
||||
HREF="node45.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html760"
|
||||
HREF="node39.html">
|
||||
<A NAME="tex2html765"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html756"
|
||||
<A NAME="tex2html759"
|
||||
HREF="node43.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html762"
|
||||
<A NAME="tex2html767"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html765"
|
||||
HREF="node45.html">Preconditioner data structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html761"
|
||||
HREF="node39.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html757"
|
||||
HREF="node43.html">get_vect Get</A>
|
||||
<B> <A NAME="tex2html763"
|
||||
<B> Next:</B> <A NAME="tex2html770"
|
||||
HREF="node45.html">clone Clone</A>
|
||||
<B> Up:</B> <A NAME="tex2html766"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html760"
|
||||
HREF="node43.html">sizeof Get</A>
|
||||
<B> <A NAME="tex2html768"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H3><A NAME="SECTION00043500000000000000">
|
||||
clone -- Clone current object</A>
|
||||
<H3><A NAME="SECTION00043400000000000000">
|
||||
get_vect -- Get a copy of the vector contents</A>
|
||||
</H3>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call x%clone(y,info)
|
||||
extv = v%get_vect()
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -66,10 +68,10 @@ call x%clone(y,info)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the dense vector.
|
||||
<DT><STRONG>v</STRONG></DT>
|
||||
<DD>the dense vector
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
Scope: <B>local</B>
|
||||
<BR></DD>
|
||||
</DL>
|
||||
|
||||
@@ -78,11 +80,9 @@ Scope: <B>local</B>.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>A copy of the input object.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Return code.
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>An allocatable array holding a copy of the dense
|
||||
vector contents.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
|
||||
+48
-45
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Preconditioner data structure</TITLE>
|
||||
<META NAME="description" CONTENT="Preconditioner data structure">
|
||||
<TITLE>clone -- Clone current object</TITLE>
|
||||
<META NAME="description" CONTENT="clone -- Clone current object">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node39.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="previous" HREF="node44.html">
|
||||
<LINK REL="up" HREF="node40.html">
|
||||
<LINK REL="next" HREF="node46.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html774"
|
||||
<A NAME="tex2html779"
|
||||
HREF="node46.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html770"
|
||||
HREF="node9.html">
|
||||
<A NAME="tex2html775"
|
||||
HREF="node40.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html766"
|
||||
<A NAME="tex2html771"
|
||||
HREF="node44.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html772"
|
||||
<A NAME="tex2html777"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html775"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html771"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html767"
|
||||
HREF="node44.html">clone Clone</A>
|
||||
<B> <A NAME="tex2html773"
|
||||
<B> Next:</B> <A NAME="tex2html780"
|
||||
HREF="node46.html">Preconditioner data structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html776"
|
||||
HREF="node40.html">Dense Vector Data Structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html772"
|
||||
HREF="node44.html">get_vect Get</A>
|
||||
<B> <A NAME="tex2html778"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00044000000000000000"></A>
|
||||
<A NAME="sec:prec"></A>
|
||||
<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).
|
||||
<H3><A NAME="SECTION00043500000000000000">
|
||||
clone -- Clone current object</A>
|
||||
</H3>
|
||||
|
||||
<PRE>
|
||||
call x%clone(y,info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
A preconditioner is held in the precdata<TT> psb_prec_type</TT> data structure reported in
|
||||
figure <A HREF="#fig:prectype">6</A>. The <code>psb_prec_type</code>
|
||||
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.
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<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>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 6:</STRONG>
|
||||
The PSBLAS defined data type that contains a preconditioner.</CAPTION>
|
||||
<TR><TD><FONT SIZE="-1"> </FONT>
|
||||
<DIV ALIGN="CENTER"></DIV><TABLE WIDTH="90%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
type psb_Tprec_type
|
||||
class(psb_T_base_prec_type), allocatable :: prec
|
||||
end type psb_Tprec_type
|
||||
</PRE></TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER"></DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>A copy of the input object.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Return code.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
|
||||
+47
-53
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Computational routines</TITLE>
|
||||
<META NAME="description" CONTENT="Computational routines">
|
||||
<TITLE>Preconditioner data structure</TITLE>
|
||||
<META NAME="description" CONTENT="Preconditioner data structure">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node60.html">
|
||||
<LINK REL="previous" HREF="node9.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node40.html">
|
||||
<LINK REL="up" HREF="node9.html">
|
||||
<LINK REL="next" HREF="node47.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html786"
|
||||
<A NAME="tex2html789"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html782"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html785"
|
||||
HREF="node9.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html776"
|
||||
<A NAME="tex2html781"
|
||||
HREF="node45.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html784"
|
||||
<A NAME="tex2html787"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html787"
|
||||
HREF="node47.html">psb_geaxpby General</A>
|
||||
<B> Up:</B> <A NAME="tex2html783"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html777"
|
||||
HREF="node45.html">Preconditioner data structure</A>
|
||||
<B> <A NAME="tex2html785"
|
||||
<B> Next:</B> <A NAME="tex2html790"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html786"
|
||||
HREF="node9.html">Data Structures and Classes</A>
|
||||
<B> Previous:</B> <A NAME="tex2html782"
|
||||
HREF="node45.html">clone Clone</A>
|
||||
<B> <A NAME="tex2html788"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00050000000000000000">
|
||||
Computational routines</A>
|
||||
</H1>
|
||||
<H2><A NAME="SECTION00044000000000000000"></A>
|
||||
<A NAME="sec:prec"></A>
|
||||
<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>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
A preconditioner is held in the precdata<TT> psb_prec_type</TT> data structure reported in
|
||||
figure <A HREF="#fig:prectype">6</A>. The <code>psb_prec_type</code>
|
||||
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>
|
||||
<LI><A NAME="tex2html788"
|
||||
HREF="node47.html">psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
<LI><A NAME="tex2html789"
|
||||
HREF="node48.html">psb_gedot -- Dot Product</A>
|
||||
<LI><A NAME="tex2html790"
|
||||
HREF="node49.html">psb_gedots -- Generalized Dot Product</A>
|
||||
<LI><A NAME="tex2html791"
|
||||
HREF="node50.html">psb_geamax -- Infinity-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html792"
|
||||
HREF="node51.html">psb_geamaxs -- Generalized Infinity Norm</A>
|
||||
<LI><A NAME="tex2html793"
|
||||
HREF="node52.html">psb_geasum -- 1-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html794"
|
||||
HREF="node53.html">psb_geasums -- Generalized 1-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html795"
|
||||
HREF="node54.html">psb_genrm2 -- 2-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html796"
|
||||
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-->
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:prectype"></A><A NAME="866"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 6:</STRONG>
|
||||
The PSBLAS defined data type that contains a preconditioner.</CAPTION>
|
||||
<TR><TD><FONT SIZE="-1"> </FONT>
|
||||
<DIV ALIGN="CENTER"></DIV><TABLE WIDTH="90%">
|
||||
<TR><TD>
|
||||
<PRE>
|
||||
type psb_Tprec_type
|
||||
class(psb_T_base_prec_type), allocatable :: prec
|
||||
end type psb_Tprec_type
|
||||
</PRE></TD></TR>
|
||||
</TABLE>
|
||||
<DIV ALIGN="CENTER"></DIV></TD></TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+54
-239
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_geaxpby -- General Dense Matrix Sum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geaxpby -- General Dense Matrix Sum">
|
||||
<TITLE>Computational routines</TITLE>
|
||||
<META NAME="description" CONTENT="Computational routines">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node48.html">
|
||||
<LINK REL="previous" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="next" HREF="node61.html">
|
||||
<LINK REL="previous" HREF="node9.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node48.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html811"
|
||||
<A NAME="tex2html801"
|
||||
HREF="node48.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html807"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html797"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html801"
|
||||
<A NAME="tex2html791"
|
||||
HREF="node46.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html809"
|
||||
<A NAME="tex2html799"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html812"
|
||||
HREF="node48.html">psb_gedot Dot</A>
|
||||
<B> Up:</B> <A NAME="tex2html808"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html802"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> <A NAME="tex2html810"
|
||||
<B> Next:</B> <A NAME="tex2html802"
|
||||
HREF="node48.html">psb_geaxpby General</A>
|
||||
<B> Up:</B> <A NAME="tex2html798"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html792"
|
||||
HREF="node46.html">Preconditioner data structure</A>
|
||||
<B> <A NAME="tex2html800"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00051000000000000000">
|
||||
psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
</H2>
|
||||
<H1><A NAME="SECTION00050000000000000000">
|
||||
Computational routines</A>
|
||||
</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}
|
||||
-->
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<IMG
|
||||
WIDTH="93" HEIGHT="27" BORDER="0"
|
||||
SRC="img19.png"
|
||||
ALT="\begin{displaymath}y \leftarrow \alpha\> 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 <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 <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 <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 <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>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</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 <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>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html811"
|
||||
HREF="node48.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html807"
|
||||
HREF="node46.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html801"
|
||||
HREF="node46.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html809"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html812"
|
||||
HREF="node48.html">psb_gedot Dot</A>
|
||||
<B> Up:</B> <A NAME="tex2html808"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html802"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> <A NAME="tex2html810"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL>
|
||||
<LI><A NAME="tex2html803"
|
||||
HREF="node48.html">psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
<LI><A NAME="tex2html804"
|
||||
HREF="node49.html">psb_gedot -- Dot Product</A>
|
||||
<LI><A NAME="tex2html805"
|
||||
HREF="node50.html">psb_gedots -- Generalized Dot Product</A>
|
||||
<LI><A NAME="tex2html806"
|
||||
HREF="node51.html">psb_geamax -- Infinity-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html807"
|
||||
HREF="node52.html">psb_geamaxs -- Generalized Infinity Norm</A>
|
||||
<LI><A NAME="tex2html808"
|
||||
HREF="node53.html">psb_geasum -- 1-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html809"
|
||||
HREF="node54.html">psb_geasums -- Generalized 1-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html810"
|
||||
HREF="node55.html">psb_genrm2 -- 2-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html811"
|
||||
HREF="node56.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
|
||||
<LI><A NAME="tex2html812"
|
||||
HREF="node57.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
|
||||
<LI><A NAME="tex2html813"
|
||||
HREF="node58.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
|
||||
<LI><A NAME="tex2html814"
|
||||
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>
|
||||
</HTML>
|
||||
|
||||
+101
-100
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_gedot -- Dot Product</TITLE>
|
||||
<META NAME="description" CONTENT="psb_gedot -- Dot Product">
|
||||
<TITLE>psb_geaxpby -- General Dense Matrix Sum</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geaxpby -- General Dense Matrix Sum">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node47.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node49.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html823"
|
||||
<A NAME="tex2html826"
|
||||
HREF="node49.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html819"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html822"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html813"
|
||||
<A NAME="tex2html816"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html821"
|
||||
<A NAME="tex2html824"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html824"
|
||||
HREF="node49.html">psb_gedots Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html820"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html814"
|
||||
HREF="node47.html">psb_geaxpby General</A>
|
||||
<B> <A NAME="tex2html822"
|
||||
<B> Next:</B> <A NAME="tex2html827"
|
||||
HREF="node49.html">psb_gedot Dot</A>
|
||||
<B> Up:</B> <A NAME="tex2html823"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html817"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> <A NAME="tex2html825"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00052000000000000000">
|
||||
psb_gedot -- Dot Product</A>
|
||||
<H2><A NAME="SECTION00051000000000000000">
|
||||
psb_geaxpby -- General Dense Matrix Sum</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This function computes dot product between two vectors <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"
|
||||
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:
|
||||
This subroutine is an interface to the computational kernel for
|
||||
dense matrix sum:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
dot \leftarrow x^T y
|
||||
y \leftarrow \alpha\> x+ \beta y
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="74" HEIGHT="27" BORDER="0"
|
||||
SRC="img24.png"
|
||||
ALT="\begin{displaymath}dot \leftarrow x^T y\end{displaymath}">
|
||||
WIDTH="93" HEIGHT="27" BORDER="0"
|
||||
SRC="img19.png"
|
||||
ALT="\begin{displaymath}y \leftarrow \alpha\> x+ \beta y \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<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>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_gedot(x, y, desc_a, info)
|
||||
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1793"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1813"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 2:</STRONG>
|
||||
<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="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img26.png"
|
||||
ALT="$dot$">, <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$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
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_gedot</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
<TD ALIGN="LEFT">psb_geaxpby</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -162,6 +130,20 @@ Data types</CAPTION>
|
||||
<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 <A HREF="#tab:f90axpby">1</A>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
@@ -175,9 +157,9 @@ 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 <A HREF="#tab:f90dot">2</A>. The rank of <IMG
|
||||
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 <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
|
||||
@@ -185,8 +167,22 @@ Table <A HREF="#tab:f90dot">2</A>. The rank of <IMG
|
||||
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 <A HREF="#tab:f90axpby">1</A>.
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<DD>the local portion of the global dense matrix
|
||||
<IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
@@ -196,11 +192,10 @@ Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
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 <A HREF="#tab:f90dot">2</A>. The rank of <IMG
|
||||
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 <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
|
||||
@@ -221,21 +216,27 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the dot product of subvectors <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> and <IMG
|
||||
<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>global</B>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Specified as: a number of the data type indicated in Table <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 <A HREF="#tab:f90axpby">1</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -253,26 +254,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html823"
|
||||
<A NAME="tex2html826"
|
||||
HREF="node49.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html819"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html822"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html813"
|
||||
<A NAME="tex2html816"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html821"
|
||||
<A NAME="tex2html824"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html824"
|
||||
HREF="node49.html">psb_gedots Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html820"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html814"
|
||||
HREF="node47.html">psb_geaxpby General</A>
|
||||
<B> <A NAME="tex2html822"
|
||||
<B> Next:</B> <A NAME="tex2html827"
|
||||
HREF="node49.html">psb_gedot Dot</A>
|
||||
<B> Up:</B> <A NAME="tex2html823"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html817"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> <A NAME="tex2html825"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+80
-66
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_gedots -- Generalized Dot Product</TITLE>
|
||||
<META NAME="description" CONTENT="psb_gedots -- Generalized Dot Product">
|
||||
<TITLE>psb_gedot -- Dot Product</TITLE>
|
||||
<META NAME="description" CONTENT="psb_gedot -- Dot Product">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node48.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node50.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html835"
|
||||
<A NAME="tex2html838"
|
||||
HREF="node50.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html831"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html834"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html825"
|
||||
<A NAME="tex2html828"
|
||||
HREF="node48.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html833"
|
||||
<A NAME="tex2html836"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html836"
|
||||
HREF="node50.html">psb_geamax Infinity-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html832"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html826"
|
||||
HREF="node48.html">psb_gedot Dot</A>
|
||||
<B> <A NAME="tex2html834"
|
||||
<B> Next:</B> <A NAME="tex2html839"
|
||||
HREF="node50.html">psb_gedots Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html835"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html829"
|
||||
HREF="node48.html">psb_geaxpby General</A>
|
||||
<B> <A NAME="tex2html837"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00053000000000000000">
|
||||
psb_gedots -- Generalized Dot Product</A>
|
||||
<H2><A NAME="SECTION00052000000000000000">
|
||||
psb_gedot -- Dot Product</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine computes a series of dot products among the columns of
|
||||
two dense matrices <IMG
|
||||
This function computes dot product between two vectors <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"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> and <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">:
|
||||
ALT="$y$"> are real vectors
|
||||
it computes dot-product as:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
res(i) \leftarrow x(:,i)^T y(:,i)
|
||||
dot \leftarrow x^T y
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="150" HEIGHT="28" BORDER="0"
|
||||
SRC="img27.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\end{displaymath}">
|
||||
WIDTH="74" HEIGHT="27" BORDER="0"
|
||||
SRC="img24.png"
|
||||
ALT="\begin{displaymath}dot \leftarrow x^T y\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
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"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> is
|
||||
used. If <IMG
|
||||
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 of rank one, then <IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"> is a scalar, else it
|
||||
is a rank one array.
|
||||
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>
|
||||
<PRE>
|
||||
call psb_gedots(res, x, y, desc_a, info)
|
||||
psb_gedot(x, y, desc_a, info)
|
||||
</PRE>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1794"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1814"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 3:</STRONG>
|
||||
<CAPTION><STRONG>Table 2:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$">, <IMG
|
||||
WIDTH="25" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img26.png"
|
||||
ALT="$dot$">, <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$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
<TD ALIGN="LEFT">psb_gedot</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -152,7 +167,7 @@ Data types</CAPTION>
|
||||
<IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -162,7 +177,7 @@ 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 <A HREF="#tab:f90mdot">3</A>. The rank of <IMG
|
||||
Table <A HREF="#tab:f90dot">2</A>. The rank of <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> must be the same of <IMG
|
||||
@@ -185,7 +200,7 @@ 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 <A HREF="#tab:f90mdot">3</A>. The rank of <IMG
|
||||
Table <A HREF="#tab:f90dot">2</A>. The rank of <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"> must be the same of <IMG
|
||||
@@ -203,11 +218,13 @@ Type: <B>required</B>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the dot product of subvectors <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
@@ -218,10 +235,7 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a number or a rank-one array of the data type indicated
|
||||
in Table <A HREF="#tab:f90dot">2</A>.
|
||||
Specified as: a number of the data type indicated in Table <A HREF="#tab:f90dot">2</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -239,26 +253,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html835"
|
||||
<A NAME="tex2html838"
|
||||
HREF="node50.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html831"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html834"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html825"
|
||||
<A NAME="tex2html828"
|
||||
HREF="node48.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html833"
|
||||
<A NAME="tex2html836"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html836"
|
||||
HREF="node50.html">psb_geamax Infinity-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html832"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html826"
|
||||
HREF="node48.html">psb_gedot Dot</A>
|
||||
<B> <A NAME="tex2html834"
|
||||
<B> Next:</B> <A NAME="tex2html839"
|
||||
HREF="node50.html">psb_gedots Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html835"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html829"
|
||||
HREF="node48.html">psb_geaxpby General</A>
|
||||
<B> <A NAME="tex2html837"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+17
-17
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html237"
|
||||
<A NAME="tex2html238"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html233"
|
||||
<A NAME="tex2html234"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html227"
|
||||
<A NAME="tex2html228"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html235"
|
||||
<A NAME="tex2html236"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html238"
|
||||
<B> Next:</B> <A NAME="tex2html239"
|
||||
HREF="node6.html">Application structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html234"
|
||||
<B> Up:</B> <A NAME="tex2html235"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> Previous:</B> <A NAME="tex2html228"
|
||||
<B> Previous:</B> <A NAME="tex2html229"
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<B> <A NAME="tex2html236"
|
||||
<B> <A NAME="tex2html237"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -128,7 +128,7 @@ internally defined in the PSBLAS software package:
|
||||
</LI>
|
||||
</UL>
|
||||
For example the <code>psb_geins</code>, <code>psb_spins</code> and
|
||||
<code>psb_cdins</code> perform the same action (see <A HREF="node65.html#sec:toolsrout">6</A>) on
|
||||
<code>psb_cdins</code> perform the same action (see <A HREF="node66.html#sec:toolsrout">6</A>) on
|
||||
dense matrices, sparse matrices and communication descriptors
|
||||
respectively.
|
||||
Interface overloading allows the usage of the same subroutine
|
||||
@@ -169,26 +169,26 @@ whose current value is <code>3.0.0</code>
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html237"
|
||||
<A NAME="tex2html238"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html233"
|
||||
<A NAME="tex2html234"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html227"
|
||||
<A NAME="tex2html228"
|
||||
HREF="node4.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html235"
|
||||
<A NAME="tex2html236"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html238"
|
||||
<B> Next:</B> <A NAME="tex2html239"
|
||||
HREF="node6.html">Application structure</A>
|
||||
<B> Up:</B> <A NAME="tex2html234"
|
||||
<B> Up:</B> <A NAME="tex2html235"
|
||||
HREF="node3.html">General overview</A>
|
||||
<B> Previous:</B> <A NAME="tex2html228"
|
||||
<B> Previous:</B> <A NAME="tex2html229"
|
||||
HREF="node4.html">Basic Nomenclature</A>
|
||||
<B> <A NAME="tex2html236"
|
||||
<B> <A NAME="tex2html237"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+111
-89
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_geamax -- Infinity-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geamax -- Infinity-Norm of Vector">
|
||||
<TITLE>psb_gedots -- Generalized Dot Product</TITLE>
|
||||
<META NAME="description" CONTENT="psb_gedots -- Generalized Dot Product">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node49.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node51.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html847"
|
||||
<A NAME="tex2html850"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html843"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html846"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html837"
|
||||
<A NAME="tex2html840"
|
||||
HREF="node49.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html845"
|
||||
<A NAME="tex2html848"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html848"
|
||||
HREF="node51.html">psb_geamaxs Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html844"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html838"
|
||||
HREF="node49.html">psb_gedots Generalized</A>
|
||||
<B> <A NAME="tex2html846"
|
||||
<B> Next:</B> <A NAME="tex2html851"
|
||||
HREF="node51.html">psb_geamax Infinity-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html847"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html841"
|
||||
HREF="node49.html">psb_gedot Dot</A>
|
||||
<B> <A NAME="tex2html849"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00054000000000000000">
|
||||
psb_geamax -- Infinity-Norm of Vector</A>
|
||||
<H2><A NAME="SECTION00053000000000000000">
|
||||
psb_gedots -- Generalized Dot Product</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This function computes
|
||||
the infinity-norm of a vector <IMG
|
||||
This subroutine computes a series of dot products among the columns of
|
||||
two dense matrices <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
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:
|
||||
ALT="$x$"> and <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
amax \leftarrow \max_i |x_i|
|
||||
res(i) \leftarrow x(:,i)^T y(:,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}">
|
||||
WIDTH="150" HEIGHT="28" BORDER="0"
|
||||
SRC="img27.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow x(:,i)^T y(:,i)\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<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"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> is a complex vector then it computes the infinity-norm as:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="233" HEIGHT="36" BORDER="0"
|
||||
SRC="img30.png"
|
||||
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>
|
||||
ALT="$x$"> is
|
||||
used. 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 of rank one, then <IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"> is a scalar, else it
|
||||
is a rank one array.
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_geamax(x, desc_a, info)
|
||||
call psb_gedots(res, x, y, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1795"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1815"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 4:</STRONG>
|
||||
<CAPTION><STRONG>Table 3:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="44" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img31.png"
|
||||
ALT="$amax$"></TD>
|
||||
<TD ALIGN="LEFT"><IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$">, <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
ALT="$x$">, <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_geamax</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_geamax</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geamax</TD>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geamax</TD>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gedots</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -163,7 +153,6 @@ Data types</CAPTION>
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -171,9 +160,38 @@ 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>
|
||||
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 <A HREF="#tab:f90amax">4</A>.
|
||||
Table <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 <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>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
@@ -185,21 +203,25 @@ Type: <B>required</B>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the infinity norm of subvector <IMG
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>is the dot product of subvectors <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
ALT="$x$"> and <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<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 <A HREF="#tab:f90dot">2</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -217,26 +239,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html847"
|
||||
<A NAME="tex2html850"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html843"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html846"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html837"
|
||||
<A NAME="tex2html840"
|
||||
HREF="node49.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html845"
|
||||
<A NAME="tex2html848"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html848"
|
||||
HREF="node51.html">psb_geamaxs Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html844"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html838"
|
||||
HREF="node49.html">psb_gedots Generalized</A>
|
||||
<B> <A NAME="tex2html846"
|
||||
<B> Next:</B> <A NAME="tex2html851"
|
||||
HREF="node51.html">psb_geamax Infinity-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html847"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html841"
|
||||
HREF="node49.html">psb_gedot Dot</A>
|
||||
<B> <A NAME="tex2html849"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+80
-54
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_geamaxs -- Generalized Infinity Norm</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geamaxs -- Generalized Infinity Norm">
|
||||
<TITLE>psb_geamax -- Infinity-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geamax -- Infinity-Norm of Vector">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node50.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node52.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html859"
|
||||
<A NAME="tex2html862"
|
||||
HREF="node52.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html855"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html858"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html849"
|
||||
<A NAME="tex2html852"
|
||||
HREF="node50.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html857"
|
||||
<A NAME="tex2html860"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html860"
|
||||
HREF="node52.html">psb_geasum 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html856"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html850"
|
||||
HREF="node50.html">psb_geamax Infinity-Norm</A>
|
||||
<B> <A NAME="tex2html858"
|
||||
<B> Next:</B> <A NAME="tex2html863"
|
||||
HREF="node52.html">psb_geamaxs Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html859"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html853"
|
||||
HREF="node50.html">psb_gedots Generalized</A>
|
||||
<B> <A NAME="tex2html861"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00055000000000000000">
|
||||
psb_geamaxs -- Generalized Infinity Norm</A>
|
||||
<H2><A NAME="SECTION00054000000000000000">
|
||||
psb_geamax -- Infinity-Norm of Vector</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine computes a series of infinity norms on the columns of
|
||||
a dense matrix <IMG
|
||||
This function computes
|
||||
the infinity-norm of a vector <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
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}
|
||||
res(i) \leftarrow \max_k |x(k,i)|
|
||||
amax \leftarrow \max_i |x_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}">
|
||||
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>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="233" HEIGHT="36" BORDER="0"
|
||||
SRC="img30.png"
|
||||
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>
|
||||
<PRE>
|
||||
call psb_geamaxs(res, x, desc_a, info)
|
||||
psb_geamax(x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1796"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1816"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 5:</STRONG>
|
||||
<CAPTION><STRONG>Table 4:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"></TD>
|
||||
WIDTH="44" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img31.png"
|
||||
ALT="$amax$"></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>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
</TR>
|
||||
<TR><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><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><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geamaxs</TD>
|
||||
<TD ALIGN="LEFT">psb_geamax</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geamaxs</TD>
|
||||
<TD ALIGN="LEFT">psb_geamax</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -138,6 +163,7 @@ Data types</CAPTION>
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -145,9 +171,9 @@ 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>
|
||||
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 <A HREF="#tab:f90mamax">5</A>.
|
||||
Table <A HREF="#tab:f90amax">4</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
@@ -159,21 +185,21 @@ Type: <B>required</B>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>is the infinity norm of the columns of <IMG
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the infinity norm of subvector <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a number or a rank-one array of long precision real numbers.
|
||||
Specified as: a long precision real number.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -191,26 +217,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html859"
|
||||
<A NAME="tex2html862"
|
||||
HREF="node52.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html855"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html858"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html849"
|
||||
<A NAME="tex2html852"
|
||||
HREF="node50.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html857"
|
||||
<A NAME="tex2html860"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html860"
|
||||
HREF="node52.html">psb_geasum 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html856"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html850"
|
||||
HREF="node50.html">psb_geamax Infinity-Norm</A>
|
||||
<B> <A NAME="tex2html858"
|
||||
<B> Next:</B> <A NAME="tex2html863"
|
||||
HREF="node52.html">psb_geamaxs Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html859"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html853"
|
||||
HREF="node50.html">psb_gedots Generalized</A>
|
||||
<B> <A NAME="tex2html861"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+53
-78
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_geasum -- 1-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geasum -- 1-Norm of Vector">
|
||||
<TITLE>psb_geamaxs -- Generalized Infinity Norm</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geamaxs -- Generalized Infinity Norm">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node51.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node53.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html871"
|
||||
<A NAME="tex2html874"
|
||||
HREF="node53.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html867"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html870"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html861"
|
||||
<A NAME="tex2html864"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html869"
|
||||
<A NAME="tex2html872"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html872"
|
||||
HREF="node53.html">psb_geasums Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html868"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html862"
|
||||
HREF="node51.html">psb_geamaxs Generalized</A>
|
||||
<B> <A NAME="tex2html870"
|
||||
<B> Next:</B> <A NAME="tex2html875"
|
||||
HREF="node53.html">psb_geasum 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html871"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html865"
|
||||
HREF="node51.html">psb_geamax Infinity-Norm</A>
|
||||
<B> <A NAME="tex2html873"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00056000000000000000">
|
||||
psb_geasum -- 1-Norm of Vector</A>
|
||||
<H2><A NAME="SECTION00055000000000000000">
|
||||
psb_geamaxs -- Generalized Infinity Norm</A>
|
||||
</H2>
|
||||
|
||||
<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"
|
||||
SRC="img20.png"
|
||||
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:
|
||||
ALT="$x$">:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
asum \leftarrow \|x_i\|
|
||||
res(i) \leftarrow \max_k |x(k,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>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="205" HEIGHT="28" BORDER="0"
|
||||
SRC="img34.png"
|
||||
ALT="\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">
|
||||
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>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_geasum(x, desc_a, info)
|
||||
call psb_geamaxs(res, x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1797"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1817"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 6:</STRONG>
|
||||
<CAPTION><STRONG>Table 5:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img35.png"
|
||||
ALT="$asum$"></TD>
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"></TD>
|
||||
<TD ALIGN="LEFT"><IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><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><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><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geasum</TD>
|
||||
<TD ALIGN="LEFT">psb_geamaxs</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geasum</TD>
|
||||
<TD ALIGN="LEFT">psb_geamaxs</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -162,7 +138,6 @@ Data types</CAPTION>
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -172,7 +147,7 @@ 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 <A HREF="#tab:f90asum">6</A>.
|
||||
Table <A HREF="#tab:f90mamax">5</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
@@ -184,21 +159,21 @@ Type: <B>required</B>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the 1-norm of vector <IMG
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>is the infinity norm of the columns of <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<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>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -216,26 +191,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html871"
|
||||
<A NAME="tex2html874"
|
||||
HREF="node53.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html867"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html870"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html861"
|
||||
<A NAME="tex2html864"
|
||||
HREF="node51.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html869"
|
||||
<A NAME="tex2html872"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html872"
|
||||
HREF="node53.html">psb_geasums Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html868"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html862"
|
||||
HREF="node51.html">psb_geamaxs Generalized</A>
|
||||
<B> <A NAME="tex2html870"
|
||||
<B> Next:</B> <A NAME="tex2html875"
|
||||
HREF="node53.html">psb_geasum 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html871"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html865"
|
||||
HREF="node51.html">psb_geamax Infinity-Norm</A>
|
||||
<B> <A NAME="tex2html873"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+52
-75
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_geasums -- Generalized 1-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geasums -- Generalized 1-Norm of Vector">
|
||||
<TITLE>psb_geasum -- 1-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geasum -- 1-Norm of Vector">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node52.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node54.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html883"
|
||||
<A NAME="tex2html886"
|
||||
HREF="node54.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html879"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html882"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html873"
|
||||
<A NAME="tex2html876"
|
||||
HREF="node52.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html881"
|
||||
<A NAME="tex2html884"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html884"
|
||||
HREF="node54.html">psb_genrm2 2-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html880"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html874"
|
||||
HREF="node52.html">psb_geasum 1-Norm</A>
|
||||
<B> <A NAME="tex2html882"
|
||||
<B> Next:</B> <A NAME="tex2html887"
|
||||
HREF="node54.html">psb_geasums Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html883"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html877"
|
||||
HREF="node52.html">psb_geamaxs Generalized</A>
|
||||
<B> <A NAME="tex2html885"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00057000000000000000">
|
||||
psb_geasums -- Generalized 1-Norm of Vector</A>
|
||||
<H2><A NAME="SECTION00056000000000000000">
|
||||
psb_geasum -- 1-Norm of Vector</A>
|
||||
</H2>
|
||||
|
||||
<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
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
@@ -84,20 +64,20 @@ This function computes the 1-norm of a vector <IMG
|
||||
If <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> is a real vector
|
||||
ALT="$x$"> is a real vector
|
||||
it computes 1-norm as:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
res(i) \leftarrow \|x_i\|
|
||||
asum \leftarrow \|x_i\|
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="94" HEIGHT="28" BORDER="0"
|
||||
SRC="img36.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow \Vert x_i\Vert\end{displaymath}">
|
||||
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>
|
||||
@@ -109,57 +89,57 @@ else if <IMG
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1
|
||||
asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="206" HEIGHT="28" BORDER="0"
|
||||
SRC="img37.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">
|
||||
WIDTH="205" HEIGHT="28" BORDER="0"
|
||||
SRC="img34.png"
|
||||
ALT="\begin{displaymath}asum \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_geasums(res, x, desc_a, info)
|
||||
psb_geasum(x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1798"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1818"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 7:</STRONG>
|
||||
<CAPTION><STRONG>Table 6:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"></TD>
|
||||
WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img35.png"
|
||||
ALT="$asum$"></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>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
</TR>
|
||||
<TR><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><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><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geasums</TD>
|
||||
<TD ALIGN="LEFT">psb_geasum</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_geasums</TD>
|
||||
<TD ALIGN="LEFT">psb_geasum</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -192,7 +172,7 @@ 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 <A HREF="#tab:f90asums">7</A>.
|
||||
Table <A HREF="#tab:f90asum">6</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<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>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>contains the 1-norm of (the columns of) <IMG
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the 1-norm of vector <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Short as: a long precision real number.
|
||||
Specified as: a long precision real number.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
@@ -239,26 +216,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html883"
|
||||
<A NAME="tex2html886"
|
||||
HREF="node54.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html879"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html882"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html873"
|
||||
<A NAME="tex2html876"
|
||||
HREF="node52.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html881"
|
||||
<A NAME="tex2html884"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html884"
|
||||
HREF="node54.html">psb_genrm2 2-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html880"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html874"
|
||||
HREF="node52.html">psb_geasum 1-Norm</A>
|
||||
<B> <A NAME="tex2html882"
|
||||
<B> Next:</B> <A NAME="tex2html887"
|
||||
HREF="node54.html">psb_geasums Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html883"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html877"
|
||||
HREF="node52.html">psb_geamaxs Generalized</A>
|
||||
<B> <A NAME="tex2html885"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+85
-63
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_genrm2 -- 2-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_genrm2 -- 2-Norm of Vector">
|
||||
<TITLE>psb_geasums -- Generalized 1-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geasums -- Generalized 1-Norm of Vector">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node53.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node55.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html895"
|
||||
<A NAME="tex2html898"
|
||||
HREF="node55.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html891"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html894"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html885"
|
||||
<A NAME="tex2html888"
|
||||
HREF="node53.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html893"
|
||||
<A NAME="tex2html896"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html896"
|
||||
HREF="node55.html">psb_genrm2s Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html892"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html886"
|
||||
HREF="node53.html">psb_geasums Generalized</A>
|
||||
<B> <A NAME="tex2html894"
|
||||
<B> Next:</B> <A NAME="tex2html899"
|
||||
HREF="node55.html">psb_genrm2 2-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html895"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html889"
|
||||
HREF="node53.html">psb_geasum 1-Norm</A>
|
||||
<B> <A NAME="tex2html897"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00058000000000000000">
|
||||
psb_genrm2 -- 2-Norm of Vector</A>
|
||||
<H2><A NAME="SECTION00057000000000000000">
|
||||
psb_geasums -- Generalized 1-Norm of Vector</A>
|
||||
</H2>
|
||||
|
||||
<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"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
@@ -64,77 +84,82 @@ This function computes the 2-norm of a vector <IMG
|
||||
If <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"> is a real vector
|
||||
it computes 2-norm as:
|
||||
ALT="$x$"> is a real vector
|
||||
it computes 1-norm as:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
nrm2 \leftarrow \sqrt{x^T x}
|
||||
res(i) \leftarrow \|x_i\|
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="106" HEIGHT="24" BORDER="0"
|
||||
SRC="img38.png"
|
||||
ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^T x}\end{displaymath}">
|
||||
WIDTH="94" HEIGHT="28" BORDER="0"
|
||||
SRC="img36.png"
|
||||
ALT="\begin{displaymath}res(i) \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 2-norm as:
|
||||
ALT="$x$"> is a complex vector then it computes 1-norm as:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
nrm2 \leftarrow \sqrt{x^H x}
|
||||
res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="108" HEIGHT="24" BORDER="0"
|
||||
SRC="img39.png"
|
||||
ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath}">
|
||||
WIDTH="206" HEIGHT="28" BORDER="0"
|
||||
SRC="img37.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow \Vert re(x)\Vert _1 + \Vert im(x)\Vert _1\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_geasums(res, x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1799"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1819"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 8:</STRONG>
|
||||
<CAPTION><STRONG>Table 7:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img40.png"
|
||||
ALT="$nrm2$"></TD>
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"></TD>
|
||||
<TD ALIGN="LEFT"><IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><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><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><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2</TD>
|
||||
<TD ALIGN="LEFT">psb_geasums</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2</TD>
|
||||
<TD ALIGN="LEFT">psb_geasums</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -143,11 +168,6 @@ Data types</CAPTION>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_genrm2(x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -161,7 +181,8 @@ psb_genrm2(x, desc_a, info)
|
||||
<IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
ALT="$x$">.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -169,9 +190,9 @@ 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>
|
||||
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 <A HREF="#tab:f90nrm2">8</A>.
|
||||
Table <A HREF="#tab:f90asums">7</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<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>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function Value</STRONG></DT>
|
||||
<DD>is the 2-norm of subvector <IMG
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>contains the 1-norm of (the columns of) <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a long precision real number.
|
||||
Short as: a long precision real number.
|
||||
Specified as: a long precision real number.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -217,26 +239,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html895"
|
||||
<A NAME="tex2html898"
|
||||
HREF="node55.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html891"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html894"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html885"
|
||||
<A NAME="tex2html888"
|
||||
HREF="node53.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html893"
|
||||
<A NAME="tex2html896"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html896"
|
||||
HREF="node55.html">psb_genrm2s Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html892"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html886"
|
||||
HREF="node53.html">psb_geasums Generalized</A>
|
||||
<B> <A NAME="tex2html894"
|
||||
<B> Next:</B> <A NAME="tex2html899"
|
||||
HREF="node55.html">psb_genrm2 2-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html895"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html889"
|
||||
HREF="node53.html">psb_geasum 1-Norm</A>
|
||||
<B> <A NAME="tex2html897"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+82
-59
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_genrm2s -- Generalized 2-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_genrm2s -- Generalized 2-Norm of Vector">
|
||||
<TITLE>psb_genrm2 -- 2-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_genrm2 -- 2-Norm of Vector">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node54.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node56.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html907"
|
||||
<A NAME="tex2html910"
|
||||
HREF="node56.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html903"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html906"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html897"
|
||||
<A NAME="tex2html900"
|
||||
HREF="node54.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html905"
|
||||
<A NAME="tex2html908"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html908"
|
||||
HREF="node56.html">psb_spnrm1 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html904"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html898"
|
||||
HREF="node54.html">psb_genrm2 2-Norm</A>
|
||||
<B> <A NAME="tex2html906"
|
||||
<B> Next:</B> <A NAME="tex2html911"
|
||||
HREF="node56.html">psb_genrm2s Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html907"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html901"
|
||||
HREF="node54.html">psb_geasums Generalized</A>
|
||||
<B> <A NAME="tex2html909"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00059000000000000000">
|
||||
psb_genrm2s -- Generalized 2-Norm of Vector</A>
|
||||
<H2><A NAME="SECTION00058000000000000000">
|
||||
psb_genrm2 -- 2-Norm of Vector</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine computes a series of 2-norms on the columns of
|
||||
a dense matrix <IMG
|
||||
This function computes the 2-norm of a vector <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
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>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
res(i) \leftarrow \|x(:,i)\|_2
|
||||
nrm2 \leftarrow \sqrt{x^T x}
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="124" HEIGHT="28" BORDER="0"
|
||||
SRC="img41.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath}">
|
||||
WIDTH="106" HEIGHT="24" BORDER="0"
|
||||
SRC="img38.png"
|
||||
ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^T x}\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 2-norm as:
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
nrm2 \leftarrow \sqrt{x^H x}
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="108" HEIGHT="24" BORDER="0"
|
||||
SRC="img39.png"
|
||||
ALT="\begin{displaymath}nrm2 \leftarrow \sqrt{x^H x}\end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_genrm2s(res, x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1800"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1820"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 9:</STRONG>
|
||||
<CAPTION><STRONG>Table 8:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"></TD>
|
||||
WIDTH="43" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img40.png"
|
||||
ALT="$nrm2$"></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>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
</TR>
|
||||
<TR><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><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><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2s</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2s</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -124,6 +143,11 @@ Data types</CAPTION>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_genrm2(x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -137,8 +161,7 @@ Data types</CAPTION>
|
||||
<IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -146,9 +169,9 @@ 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>
|
||||
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 <A HREF="#tab:f90nrm2s">9</A>.
|
||||
Table <A HREF="#tab:f90nrm2">8</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<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>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>contains the 1-norm of (the columns of) <IMG
|
||||
<DT><STRONG>Function Value</STRONG></DT>
|
||||
<DD>is the 2-norm of subvector <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Specified as: a long precision real number.
|
||||
Specified as: a long precision real number.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -194,26 +217,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html907"
|
||||
<A NAME="tex2html910"
|
||||
HREF="node56.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html903"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html906"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html897"
|
||||
<A NAME="tex2html900"
|
||||
HREF="node54.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html905"
|
||||
<A NAME="tex2html908"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html908"
|
||||
HREF="node56.html">psb_spnrm1 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html904"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html898"
|
||||
HREF="node54.html">psb_genrm2 2-Norm</A>
|
||||
<B> <A NAME="tex2html906"
|
||||
<B> Next:</B> <A NAME="tex2html911"
|
||||
HREF="node56.html">psb_genrm2s Generalized</A>
|
||||
<B> Up:</B> <A NAME="tex2html907"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html901"
|
||||
HREF="node54.html">psb_geasums Generalized</A>
|
||||
<B> <A NAME="tex2html909"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+83
-81
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spnrm1 -- 1-Norm of Sparse Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spnrm1 -- 1-Norm of Sparse Matrix">
|
||||
<TITLE>psb_genrm2s -- Generalized 2-Norm of Vector</TITLE>
|
||||
<META NAME="description" CONTENT="psb_genrm2s -- Generalized 2-Norm of Vector">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node55.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node57.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html919"
|
||||
<A NAME="tex2html922"
|
||||
HREF="node57.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html915"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html918"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html909"
|
||||
<A NAME="tex2html912"
|
||||
HREF="node55.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html917"
|
||||
<A NAME="tex2html920"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html920"
|
||||
HREF="node57.html">psb_spnrmi Infinity</A>
|
||||
<B> Up:</B> <A NAME="tex2html916"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html910"
|
||||
HREF="node55.html">psb_genrm2s Generalized</A>
|
||||
<B> <A NAME="tex2html918"
|
||||
<B> Next:</B> <A NAME="tex2html923"
|
||||
HREF="node57.html">psb_spnrm1 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html919"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html913"
|
||||
HREF="node55.html">psb_genrm2 2-Norm</A>
|
||||
<B> <A NAME="tex2html921"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000510000000000000000">
|
||||
psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
|
||||
<H2><A NAME="SECTION00059000000000000000">
|
||||
psb_genrm2s -- Generalized 2-Norm of Vector</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This function computes the 1-norm of a matrix <IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">:
|
||||
<BR>
|
||||
<P>
|
||||
This subroutine computes a series of 2-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}
|
||||
nrm1 \leftarrow \|A\|_1
|
||||
res(i) \leftarrow \|x(:,i)\|_2
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="98" HEIGHT="28" BORDER="0"
|
||||
SRC="img42.png"
|
||||
ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}">
|
||||
WIDTH="124" HEIGHT="28" BORDER="0"
|
||||
SRC="img41.png"
|
||||
ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
where:
|
||||
<DL>
|
||||
<DT><STRONG><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
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>
|
||||
<PRE>
|
||||
call psb_genrm2s(res, x, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1801"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1821"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 10:</STRONG>
|
||||
<CAPTION><STRONG>Table 9:</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="img1.png"
|
||||
ALT="$A$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
WIDTH="27" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img28.png"
|
||||
ALT="$res$"></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><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><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><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrm1</TD>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2s</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrm1</TD>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_genrm2s</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -124,11 +124,6 @@ Data types</CAPTION>
|
||||
</DIV><P></P>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_spnrm1(A, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -137,20 +132,23 @@ psb_spnrm1(A, desc_a, info)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the local portion of the global sparse matrix
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">.
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<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 <A HREF="#tab:f90nrm2s">9</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
@@ -162,19 +160,23 @@ Type: <B>required</B>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the 1-norm of sparse submatrix <IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">.
|
||||
<DT><STRONG>res</STRONG></DT>
|
||||
<DD>contains the 1-norm of (the columns of) <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Specified as: a long precision real number.
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a long precision real number.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -192,26 +194,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html919"
|
||||
<A NAME="tex2html922"
|
||||
HREF="node57.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html915"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html918"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html909"
|
||||
<A NAME="tex2html912"
|
||||
HREF="node55.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html917"
|
||||
<A NAME="tex2html920"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html920"
|
||||
HREF="node57.html">psb_spnrmi Infinity</A>
|
||||
<B> Up:</B> <A NAME="tex2html916"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html910"
|
||||
HREF="node55.html">psb_genrm2s Generalized</A>
|
||||
<B> <A NAME="tex2html918"
|
||||
<B> Next:</B> <A NAME="tex2html923"
|
||||
HREF="node57.html">psb_spnrm1 1-Norm</A>
|
||||
<B> Up:</B> <A NAME="tex2html919"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html913"
|
||||
HREF="node55.html">psb_genrm2 2-Norm</A>
|
||||
<B> <A NAME="tex2html921"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+42
-42
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spnrmi -- Infinity Norm of Sparse Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spnrmi -- Infinity Norm of Sparse Matrix">
|
||||
<TITLE>psb_spnrm1 -- 1-Norm of Sparse Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spnrm1 -- 1-Norm of Sparse Matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node56.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node58.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html931"
|
||||
<A NAME="tex2html934"
|
||||
HREF="node58.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html927"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html930"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html921"
|
||||
<A NAME="tex2html924"
|
||||
HREF="node56.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html929"
|
||||
<A NAME="tex2html932"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html932"
|
||||
HREF="node58.html">psb_spmm Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html928"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html922"
|
||||
HREF="node56.html">psb_spnrm1 1-Norm</A>
|
||||
<B> <A NAME="tex2html930"
|
||||
<B> Next:</B> <A NAME="tex2html935"
|
||||
HREF="node58.html">psb_spnrmi Infinity</A>
|
||||
<B> Up:</B> <A NAME="tex2html931"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html925"
|
||||
HREF="node56.html">psb_genrm2s Generalized</A>
|
||||
<B> <A NAME="tex2html933"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000511000000000000000">
|
||||
psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
|
||||
<H2><A NAME="SECTION000510000000000000000">
|
||||
psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
|
||||
</H2>
|
||||
|
||||
<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"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">:
|
||||
@@ -66,14 +66,14 @@ This function computes the infinity-norm of a matrix <IMG
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
nrmi \leftarrow \|A\|_\infty
|
||||
nrm1 \leftarrow \|A\|_1
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="101" HEIGHT="28" BORDER="0"
|
||||
SRC="img43.png"
|
||||
ALT="\begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath}">
|
||||
WIDTH="98" HEIGHT="28" BORDER="0"
|
||||
SRC="img42.png"
|
||||
ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
@@ -92,9 +92,9 @@ where:
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1802"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1822"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 11:</STRONG>
|
||||
<CAPTION><STRONG>Table 10:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
@@ -106,16 +106,16 @@ Data types</CAPTION>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrm1</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrm1</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrm1</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrm1</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -126,7 +126,7 @@ Data types</CAPTION>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
psb_spnrmi(A, desc_a, info)
|
||||
psb_spnrm1(A, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -167,7 +167,7 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
<DD>
|
||||
</DD>
|
||||
<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"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">.
|
||||
@@ -192,26 +192,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html931"
|
||||
<A NAME="tex2html934"
|
||||
HREF="node58.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html927"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html930"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html921"
|
||||
<A NAME="tex2html924"
|
||||
HREF="node56.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html929"
|
||||
<A NAME="tex2html932"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html932"
|
||||
HREF="node58.html">psb_spmm Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html928"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html922"
|
||||
HREF="node56.html">psb_spnrm1 1-Norm</A>
|
||||
<B> <A NAME="tex2html930"
|
||||
<B> Next:</B> <A NAME="tex2html935"
|
||||
HREF="node58.html">psb_spnrmi Infinity</A>
|
||||
<B> Up:</B> <A NAME="tex2html931"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html925"
|
||||
HREF="node56.html">psb_genrm2s Generalized</A>
|
||||
<B> <A NAME="tex2html933"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+65
-272
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spmm -- Sparse Matrix by Dense Matrix Product</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spmm -- Sparse Matrix by Dense Matrix Product">
|
||||
<TITLE>psb_spnrmi -- Infinity Norm of Sparse Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spnrmi -- Infinity Norm of Sparse Matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node57.html">
|
||||
<LINK REL="up" HREF="node46.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node59.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html943"
|
||||
<A NAME="tex2html946"
|
||||
HREF="node59.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html939"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html942"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html933"
|
||||
<A NAME="tex2html936"
|
||||
HREF="node57.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html941"
|
||||
<A NAME="tex2html944"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html944"
|
||||
HREF="node59.html">psb_spsm Triangular</A>
|
||||
<B> Up:</B> <A NAME="tex2html940"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html934"
|
||||
HREF="node57.html">psb_spnrmi Infinity</A>
|
||||
<B> <A NAME="tex2html942"
|
||||
<B> Next:</B> <A NAME="tex2html947"
|
||||
HREF="node59.html">psb_spmm Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html943"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html937"
|
||||
HREF="node57.html">psb_spnrm1 1-Norm</A>
|
||||
<B> <A NAME="tex2html945"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000512000000000000000">
|
||||
psb_spmm -- Sparse Matrix by Dense Matrix
|
||||
Product</A>
|
||||
<H2><A NAME="SECTION000511000000000000000">
|
||||
psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
|
||||
</H2>
|
||||
|
||||
<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"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">:
|
||||
<BR>
|
||||
<P>
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{equation}
|
||||
y \leftarrow \alpha A x + \beta y
|
||||
\end{equation}
|
||||
\begin{displaymath}
|
||||
nrmi \leftarrow \|A\|_\infty
|
||||
\end{displaymath}
|
||||
-->
|
||||
<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>
|
||||
<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>
|
||||
<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:
|
||||
<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="img1.png"
|
||||
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"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">
|
||||
@@ -152,9 +92,9 @@ where:
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1803"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1823"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 12:</STRONG>
|
||||
<CAPTION><STRONG>Table 11:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
@@ -162,32 +102,20 @@ Data types</CAPTION>
|
||||
<TR><TD ALIGN="LEFT"><IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">, <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>
|
||||
ALT="$A$"></TD>
|
||||
<TD ALIGN="LEFT"><B>Function</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
<TD ALIGN="LEFT">psb_spnrmi</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -198,10 +126,8 @@ Data types</CAPTION>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_spmm(alpha, a, x, beta, y, desc_a, info)
|
||||
call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
|
||||
& trans, work)
|
||||
</PRE>
|
||||
psb_spnrmi(A, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
@@ -211,23 +137,8 @@ call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
|
||||
<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 <A HREF="#tab:f90spmm">12</A>.
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the local portion of the sparse matrix
|
||||
<DD>the local portion of the global sparse matrix
|
||||
<IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
@@ -241,68 +152,6 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</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 <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 <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 <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>
|
||||
<DD>contains data structures for communications.
|
||||
<BR>
|
||||
@@ -314,74 +163,18 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object of type descdata<TT>psb_desc_type</TT>.
|
||||
</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>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of result matrix <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
<DT><STRONG>Function value</STRONG></DT>
|
||||
<DD>is the infinity-norm of sparse submatrix <IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img1.png"
|
||||
ALT="$A$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
Scope: <B>global</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 <A HREF="#tab:f90spmm">12</A>.
|
||||
Specified as: a long precision real number.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -399,26 +192,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html943"
|
||||
<A NAME="tex2html946"
|
||||
HREF="node59.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html939"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html942"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html933"
|
||||
<A NAME="tex2html936"
|
||||
HREF="node57.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html941"
|
||||
<A NAME="tex2html944"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html944"
|
||||
HREF="node59.html">psb_spsm Triangular</A>
|
||||
<B> Up:</B> <A NAME="tex2html940"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html934"
|
||||
HREF="node57.html">psb_spnrmi Infinity</A>
|
||||
<B> <A NAME="tex2html942"
|
||||
<B> Next:</B> <A NAME="tex2html947"
|
||||
HREF="node59.html">psb_spmm Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html943"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html937"
|
||||
HREF="node57.html">psb_spnrm1 1-Norm</A>
|
||||
<B> <A NAME="tex2html945"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+136
-180
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spsm -- Triangular System Solve</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spsm -- Triangular System Solve">
|
||||
<TITLE>psb_spmm -- Sparse Matrix by Dense Matrix Product</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spmm -- Sparse Matrix by Dense Matrix Product">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node60.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html953"
|
||||
<A NAME="tex2html958"
|
||||
HREF="node60.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html949"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html954"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html945"
|
||||
<A NAME="tex2html948"
|
||||
HREF="node58.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html951"
|
||||
<A NAME="tex2html956"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html954"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html950"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html946"
|
||||
HREF="node58.html">psb_spmm Sparse</A>
|
||||
<B> <A NAME="tex2html952"
|
||||
<B> Next:</B> <A NAME="tex2html959"
|
||||
HREF="node60.html">psb_spsm Triangular</A>
|
||||
<B> Up:</B> <A NAME="tex2html955"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html949"
|
||||
HREF="node58.html">psb_spnrmi Infinity</A>
|
||||
<B> <A NAME="tex2html957"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000513000000000000000">
|
||||
psb_spsm -- Triangular System Solve</A>
|
||||
<H2><A NAME="SECTION000512000000000000000">
|
||||
psb_spmm -- Sparse Matrix by Dense Matrix
|
||||
Product</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
This subroutine computes the Triangular System Solve:
|
||||
This subroutine computes the Sparse Matrix by Dense Matrix Product:
|
||||
|
||||
<P>
|
||||
<P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<BR>
|
||||
<DIV ALIGN="RIGHT">
|
||||
|
||||
<!-- MATH
|
||||
\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-1} x + \beta y\\
|
||||
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*}
|
||||
\begin{equation}
|
||||
y \leftarrow \alpha A x + \beta y
|
||||
\end{equation}
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="160" HEIGHT="239" BORDER="0"
|
||||
SRC="img50.png"
|
||||
ALT="\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \al...
|
||||
...-H} x + \beta y\\
|
||||
y &\leftarrow& \alpha T^{-H} D x + \beta y\\
|
||||
\end{eqnarray*}"></DIV>
|
||||
<BR CLEAR="ALL"><P></P>
|
||||
<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>
|
||||
<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>
|
||||
where:
|
||||
@@ -107,50 +141,34 @@ where:
|
||||
</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
|
||||
SRC="img1.png"
|
||||
ALT="$A$"></STRONG></DT>
|
||||
<DD>is the global sparse matrix <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.
|
||||
SRC="img1.png"
|
||||
ALT="$A$">
|
||||
</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,&
|
||||
& trans, unit, choice, diag, work)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="1804"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="1824"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 13:</STRONG>
|
||||
<CAPTION><STRONG>Table 12:</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
|
||||
SRC="img1.png"
|
||||
ALT="$A$">, <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
|
||||
@@ -160,16 +178,16 @@ Data types</CAPTION>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_spsm</TD>
|
||||
<TD ALIGN="LEFT">psb_spmm</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -178,6 +196,13 @@ Data types</CAPTION>
|
||||
</DIV><P></P>
|
||||
<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, &
|
||||
& trans, work)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
@@ -199,14 +224,14 @@ Type: <B>required</B>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a number of the data type indicated in
|
||||
Table <A HREF="#tab:f90spsm">13</A>.
|
||||
Table <A HREF="#tab:f90spmm">12</A>.
|
||||
</DD>
|
||||
<DT><STRONG>t</STRONG></DT>
|
||||
<DD>the global portion of the sparse matrix
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the local portion of the sparse matrix
|
||||
<IMG
|
||||
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img51.png"
|
||||
ALT="$T$">.
|
||||
SRC="img1.png"
|
||||
ALT="$A$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -214,8 +239,7 @@ Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an object type specified in
|
||||
§ <A HREF="node9.html#sec:datastruct">3</A>.
|
||||
Specified as: an object of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
@@ -233,7 +257,7 @@ 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 <A HREF="#tab:f90spsm">13</A>. The rank of <IMG
|
||||
Table <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
|
||||
@@ -253,7 +277,7 @@ Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a number of the data type indicated in Table <A HREF="#tab:f90spsm">13</A>.
|
||||
Specified as: a number of the data type indicated in Table <A HREF="#tab:f90spmm">12</A>.
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
@@ -271,7 +295,7 @@ 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 <A HREF="#tab:f90spsm">13</A>. The rank of <IMG
|
||||
Table <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
|
||||
@@ -291,16 +315,18 @@ Intent: <B>in</B>.
|
||||
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.
|
||||
<DD>indicates what kind of operation to perform.
|
||||
<DL>
|
||||
<DT><STRONG>trans = 'N'</STRONG></DT>
|
||||
<DD>the operation is with no transposed matrix
|
||||
<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 with transposed matrix.
|
||||
<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 with conjugate transposed matrix.
|
||||
<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>
|
||||
@@ -315,82 +341,11 @@ Default: <IMG
|
||||
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 <A HREF="#tab:f90spsm">13</A>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
<DT><STRONG>work</STRONG></DT>
|
||||
<DD>a work array.
|
||||
<DD>work array.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -401,8 +356,11 @@ Intent: <B>inout</B>.
|
||||
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.
|
||||
ALT="$x$"> and <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$"> with
|
||||
the TARGET attribute.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
@@ -410,12 +368,10 @@ TARGET attribute.
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>y</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
<DD>the local portion of result matrix <IMG
|
||||
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img21.png"
|
||||
ALT="$y$">.
|
||||
|
||||
ALT="$y$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -425,7 +381,7 @@ Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90spsm">13</A>.
|
||||
Table <A HREF="#tab:f90spmm">12</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -443,26 +399,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html953"
|
||||
<A NAME="tex2html958"
|
||||
HREF="node60.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html949"
|
||||
HREF="node46.html">
|
||||
<A NAME="tex2html954"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html945"
|
||||
<A NAME="tex2html948"
|
||||
HREF="node58.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html951"
|
||||
<A NAME="tex2html956"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html954"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html950"
|
||||
HREF="node46.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html946"
|
||||
HREF="node58.html">psb_spmm Sparse</A>
|
||||
<B> <A NAME="tex2html952"
|
||||
<B> Next:</B> <A NAME="tex2html959"
|
||||
HREF="node60.html">psb_spsm Triangular</A>
|
||||
<B> Up:</B> <A NAME="tex2html955"
|
||||
HREF="node47.html">Computational routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html949"
|
||||
HREF="node58.html">psb_spnrmi Infinity</A>
|
||||
<B> <A NAME="tex2html957"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+17
-17
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html249"
|
||||
<A NAME="tex2html250"
|
||||
HREF="node7.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html245"
|
||||
<A NAME="tex2html246"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html239"
|
||||
<A NAME="tex2html240"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html247"
|
||||
<A NAME="tex2html248"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html250"
|
||||
<B> Next:</B> <A NAME="tex2html251"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html240"
|
||||
<B> Previous:</B> <A NAME="tex2html241"
|
||||
HREF="node5.html">Library contents</A>
|
||||
<B> <A NAME="tex2html248"
|
||||
<B> <A NAME="tex2html249"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
@@ -249,32 +249,32 @@ from optimal.
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html251"
|
||||
<LI><A NAME="tex2html252"
|
||||
HREF="node7.html">User-defined index mappings</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html249"
|
||||
<A NAME="tex2html250"
|
||||
HREF="node7.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html245"
|
||||
<A NAME="tex2html246"
|
||||
HREF="node3.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html239"
|
||||
<A NAME="tex2html240"
|
||||
HREF="node5.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html247"
|
||||
<A NAME="tex2html248"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html250"
|
||||
<B> Next:</B> <A NAME="tex2html251"
|
||||
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>
|
||||
<B> Previous:</B> <A NAME="tex2html240"
|
||||
<B> Previous:</B> <A NAME="tex2html241"
|
||||
HREF="node5.html">Library contents</A>
|
||||
<B> <A NAME="tex2html248"
|
||||
<B> <A NAME="tex2html249"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+428
-38
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Communication routines</TITLE>
|
||||
<META NAME="description" CONTENT="Communication routines">
|
||||
<TITLE>psb_spsm -- Triangular System Solve</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spsm -- Triangular System Solve">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node65.html">
|
||||
<LINK REL="previous" HREF="node46.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node59.html">
|
||||
<LINK REL="up" HREF="node47.html">
|
||||
<LINK REL="next" HREF="node61.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html965"
|
||||
<A NAME="tex2html968"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html961"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html964"
|
||||
HREF="node47.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html955"
|
||||
<A NAME="tex2html960"
|
||||
HREF="node59.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html963"
|
||||
<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="tex2html966"
|
||||
HREF="node61.html">psb_halo Halo</A>
|
||||
<B> Up:</B> <A NAME="tex2html962"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html956"
|
||||
HREF="node59.html">psb_spsm Triangular</A>
|
||||
<B> <A NAME="tex2html964"
|
||||
<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>
|
||||
<B> <A NAME="tex2html967"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00060000000000000000">
|
||||
Communication routines</A>
|
||||
</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 <A HREF="node65.html#sec:toolsrout">6</A>.
|
||||
<H2><A NAME="SECTION000513000000000000000">
|
||||
psb_spsm -- Triangular System Solve</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
This subroutine computes the Triangular System Solve:
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html967"
|
||||
HREF="node61.html">psb_halo -- Halo Data Communication</A>
|
||||
<LI><A NAME="tex2html968"
|
||||
HREF="node62.html">psb_ovrl -- Overlap Update</A>
|
||||
<LI><A NAME="tex2html969"
|
||||
HREF="node63.html">psb_gather -- Gather Global Dense Matrix</A>
|
||||
<LI><A NAME="tex2html970"
|
||||
HREF="node64.html">psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<P>
|
||||
<P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \alpha D T^{-1} x + \beta y\\
|
||||
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
|
||||
WIDTH="160" HEIGHT="239" BORDER="0"
|
||||
SRC="img50.png"
|
||||
ALT="\begin{eqnarray*}
|
||||
y &\leftarrow& \alpha T^{-1} x + \beta y\\
|
||||
y &\leftarrow& \al...
|
||||
...-H} x + \beta y\\
|
||||
y &\leftarrow& \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,&
|
||||
& 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 <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
|
||||
§ <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 <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 <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 <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 <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 <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>
|
||||
<B> <A NAME="tex2html967"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+38
-615
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_halo -- Halo Data Communication</TITLE>
|
||||
<META NAME="description" CONTENT="psb_halo -- Halo Data Communication">
|
||||
<TITLE>Communication routines</TITLE>
|
||||
<META NAME="description" CONTENT="Communication routines">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node62.html">
|
||||
<LINK REL="previous" HREF="node60.html">
|
||||
<LINK REL="up" HREF="node60.html">
|
||||
<LINK REL="next" HREF="node66.html">
|
||||
<LINK REL="previous" HREF="node47.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node62.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html981"
|
||||
<A NAME="tex2html980"
|
||||
HREF="node62.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html977"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html976"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html971"
|
||||
<A NAME="tex2html970"
|
||||
HREF="node60.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html979"
|
||||
<A NAME="tex2html978"
|
||||
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>
|
||||
<B> <A NAME="tex2html980"
|
||||
<B> Next:</B> <A NAME="tex2html981"
|
||||
HREF="node62.html">psb_halo Halo</A>
|
||||
<B> Up:</B> <A NAME="tex2html977"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html971"
|
||||
HREF="node60.html">psb_spsm Triangular</A>
|
||||
<B> <A NAME="tex2html979"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00061000000000000000">
|
||||
psb_halo -- Halo Data Communication</A>
|
||||
</H2>
|
||||
<H1><A NAME="SECTION00060000000000000000">
|
||||
Communication routines</A>
|
||||
</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 <A HREF="node66.html#sec:toolsrout">6</A>.
|
||||
|
||||
<P>
|
||||
These subroutines gathers the values of the halo
|
||||
elements, and (optionally) scale the result:
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
x \leftarrow \alpha x
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="53" HEIGHT="24" BORDER="0"
|
||||
SRC="img55.png"
|
||||
ALT="\begin{displaymath}x \leftarrow \alpha x \end{displaymath}">
|
||||
</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 <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 <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 <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. <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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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>
|
||||
<B> <A NAME="tex2html980"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL>
|
||||
<LI><A NAME="tex2html982"
|
||||
HREF="node62.html">psb_halo -- Halo Data Communication</A>
|
||||
<LI><A NAME="tex2html983"
|
||||
HREF="node63.html">psb_ovrl -- Overlap Update</A>
|
||||
<LI><A NAME="tex2html984"
|
||||
HREF="node64.html">psb_gather -- Gather Global Dense Matrix</A>
|
||||
<LI><A NAME="tex2html985"
|
||||
HREF="node65.html">psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+156
-265
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_ovrl -- Overlap Update</TITLE>
|
||||
<META NAME="description" CONTENT="psb_ovrl -- Overlap Update">
|
||||
<TITLE>psb_halo -- Halo Data Communication</TITLE>
|
||||
<META NAME="description" CONTENT="psb_halo -- Halo Data Communication">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node61.html">
|
||||
<LINK REL="up" HREF="node60.html">
|
||||
<LINK REL="up" HREF="node61.html">
|
||||
<LINK REL="next" HREF="node63.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html993"
|
||||
<A NAME="tex2html996"
|
||||
HREF="node63.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html989"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html992"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html983"
|
||||
<A NAME="tex2html986"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html991"
|
||||
<A NAME="tex2html994"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html994"
|
||||
HREF="node63.html">psb_gather Gather</A>
|
||||
<B> Up:</B> <A NAME="tex2html990"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html984"
|
||||
HREF="node61.html">psb_halo Halo</A>
|
||||
<B> <A NAME="tex2html992"
|
||||
<B> Next:</B> <A NAME="tex2html997"
|
||||
HREF="node63.html">psb_ovrl Overlap</A>
|
||||
<B> Up:</B> <A NAME="tex2html993"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html987"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> <A NAME="tex2html995"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00062000000000000000">
|
||||
psb_ovrl -- Overlap Update</A>
|
||||
<H2><A NAME="SECTION00061000000000000000">
|
||||
psb_halo -- Halo Data Communication</A>
|
||||
</H2>
|
||||
|
||||
<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>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
x \leftarrow Q x
|
||||
x \leftarrow \alpha x
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="55" HEIGHT="27" BORDER="0"
|
||||
SRC="img60.png"
|
||||
ALT="\begin{displaymath}x \leftarrow Q x \end{displaymath}">
|
||||
WIDTH="53" HEIGHT="24" BORDER="0"
|
||||
SRC="img55.png"
|
||||
ALT="\begin{displaymath}x \leftarrow \alpha x \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
@@ -80,52 +81,42 @@ where:
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></STRONG></DT>
|
||||
<DD>is the global dense submatrix <IMG
|
||||
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>is a global dense submatrix.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="3187"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="3204"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 15:</STRONG>
|
||||
<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_ovrl</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
<TD ALIGN="LEFT">psb_halo</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -137,13 +128,13 @@ Data types</CAPTION>
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="576" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img64.png"
|
||||
WIDTH="461" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img56.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_ovrl(x, desc_a, info)
|
||||
call psb_ovrl(x, desc_a, info, update=update_type, work=work)
|
||||
call psb_halo(x, desc_a, info)
|
||||
call psb_halo(x, desc_a, info, alpha, work, data)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
@@ -167,7 +158,7 @@ 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 <A HREF="#tab:f90ovrl">15</A>.
|
||||
Table <A HREF="#tab:f90halo">14</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
@@ -180,40 +171,24 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>update</STRONG></DT>
|
||||
<DD>Update operator.
|
||||
<BR><DL>
|
||||
<DT><STRONG>update = psb_none_</STRONG></DT>
|
||||
<DD>Do nothing;
|
||||
</DD>
|
||||
<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>
|
||||
<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: <!-- MATH
|
||||
$update\_type = psb\_avg\_$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img67.png"
|
||||
ALT="$update\_type = psb\_avg\_ $">
|
||||
Default: <IMG
|
||||
WIDTH="73" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img57.png"
|
||||
ALT="$alpha = 1 $">
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Specified as: a integer variable.
|
||||
Specified as: a number of the data type indicated in Table <A HREF="#tab:f90halo">14</A>.
|
||||
</DD>
|
||||
<DT><STRONG>work</STRONG></DT>
|
||||
<DD>the work array.
|
||||
@@ -224,10 +199,21 @@ Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<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"
|
||||
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>
|
||||
</DD>
|
||||
@@ -246,12 +232,15 @@ Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: an array of rank one or two
|
||||
Returned as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90ovrl">15</A>.
|
||||
Table <A HREF="#tab:f90halo">14</A>.
|
||||
</DD>
|
||||
<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>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
@@ -259,80 +248,46 @@ Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
An integer value that contains an error code.
|
||||
</DD>
|
||||
</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="3189"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="fig:try8x8"></A><A NAME="3206"></A>
|
||||
<TABLE>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 8:</STRONG>
|
||||
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 7:</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}">
|
||||
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.65]{figures/try8x8_ov}}$
|
||||
$\rotatebox{-90}{\includegraphics[scale=0.45]{figures/try8x8}}$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="76" HEIGHT="2" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img68.png"
|
||||
ALT="\rotatebox{-90}{\includegraphics[scale=0.65]{figures/try8x8_ov}}">
|
||||
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>
|
||||
|
||||
<FONT SIZE="+1"><B>Example of use</B></FONT>
|
||||
Consider the discretization mesh depicted in fig. <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. <A HREF="node61.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
|
||||
<P>
|
||||
<FONT SIZE="+1"><B>Usage Example</B></FONT>
|
||||
Consider the discretization mesh depicted in fig. <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_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>
|
||||
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">
|
||||
@@ -355,7 +310,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
2 </FONT></TD>
|
||||
@@ -363,7 +318,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
3 </FONT></TD>
|
||||
@@ -371,7 +326,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
4 </FONT></TD>
|
||||
@@ -379,7 +334,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
5 </FONT></TD>
|
||||
@@ -387,7 +342,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
6 </FONT></TD>
|
||||
@@ -395,7 +350,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
7 </FONT></TD>
|
||||
@@ -403,7 +358,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
8 </FONT></TD>
|
||||
@@ -411,7 +366,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="RIGHT"><FONT SIZE="-1">
|
||||
9 </FONT></TD>
|
||||
@@ -510,7 +465,7 @@ Process 1</FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
</TR>
|
||||
<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"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
</TR>
|
||||
<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"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
</TR>
|
||||
<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"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
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"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 1.0 </FONT></TD>
|
||||
</TR>
|
||||
<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"> 1.5 </FONT></TD>
|
||||
<TD ALIGN="RIGHT"><FONT SIZE="-1"> 2.0 </FONT></TD>
|
||||
<TD ALIGN="LEFT"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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>
|
||||
@@ -739,26 +630,26 @@ Process 1</FONT></TD>
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html993"
|
||||
<A NAME="tex2html996"
|
||||
HREF="node63.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html989"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html992"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html983"
|
||||
<A NAME="tex2html986"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html991"
|
||||
<A NAME="tex2html994"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html994"
|
||||
HREF="node63.html">psb_gather Gather</A>
|
||||
<B> Up:</B> <A NAME="tex2html990"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html984"
|
||||
HREF="node61.html">psb_halo Halo</A>
|
||||
<B> <A NAME="tex2html992"
|
||||
<B> Next:</B> <A NAME="tex2html997"
|
||||
HREF="node63.html">psb_ovrl Overlap</A>
|
||||
<B> Up:</B> <A NAME="tex2html993"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html987"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> <A NAME="tex2html995"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+603
-109
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_gather -- Gather Global Dense Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_gather -- Gather Global Dense Matrix">
|
||||
<TITLE>psb_ovrl -- Overlap Update</TITLE>
|
||||
<META NAME="description" CONTENT="psb_ovrl -- Overlap Update">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node62.html">
|
||||
<LINK REL="up" HREF="node60.html">
|
||||
<LINK REL="up" HREF="node61.html">
|
||||
<LINK REL="next" HREF="node64.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1005"
|
||||
<A NAME="tex2html1008"
|
||||
HREF="node64.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1001"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html1004"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html995"
|
||||
<A NAME="tex2html998"
|
||||
HREF="node62.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1003"
|
||||
<A NAME="tex2html1006"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1006"
|
||||
HREF="node64.html">psb_scatter Scatter</A>
|
||||
<B> Up:</B> <A NAME="tex2html1002"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html996"
|
||||
HREF="node62.html">psb_ovrl Overlap</A>
|
||||
<B> <A NAME="tex2html1004"
|
||||
<B> Next:</B> <A NAME="tex2html1009"
|
||||
HREF="node64.html">psb_gather Gather</A>
|
||||
<B> Up:</B> <A NAME="tex2html1005"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html999"
|
||||
HREF="node62.html">psb_halo Halo</A>
|
||||
<B> <A NAME="tex2html1007"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00063000000000000000">
|
||||
psb_gather -- Gather Global Dense Matrix</A>
|
||||
<H2><A NAME="SECTION00062000000000000000">
|
||||
psb_ovrl -- Overlap Update</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
These subroutines collect the portions of global dense matrix
|
||||
distributed over all process into one single array stored on one
|
||||
process.
|
||||
These subroutines applies an overlap operator to the input vector:
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
glob\_x \leftarrow collect(loc\_x_i)
|
||||
x \leftarrow Q x
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="162" HEIGHT="28" BORDER="0"
|
||||
SRC="img70.png"
|
||||
ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}">
|
||||
WIDTH="55" HEIGHT="27" BORDER="0"
|
||||
SRC="img60.png"
|
||||
ALT="\begin{displaymath}x \leftarrow Q 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 submatrix <!-- 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}$">
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$"></STRONG></DT>
|
||||
<DD>is the global dense submatrix <IMG
|
||||
WIDTH="14" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img20.png"
|
||||
ALT="$x$">
|
||||
</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="48" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img74.png"
|
||||
ALT="$collect$"></STRONG></DT>
|
||||
<DD>is the collect function.
|
||||
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>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="3191"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="3208"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 16:</STRONG>
|
||||
<CAPTION><STRONG>Table 15:</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>
|
||||
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_gather</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
<TD ALIGN="LEFT">psb_ovrl</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -148,13 +137,13 @@ Data types</CAPTION>
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="471" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img76.png"
|
||||
WIDTH="576" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img64.png"
|
||||
ALT="\begin{lstlisting}
|
||||
call psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
call psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
call psb_ovrl(x, desc_a, info)
|
||||
call psb_ovrl(x, desc_a, info, update=update_type, work=work)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
@@ -164,21 +153,21 @@ call psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>loc_x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img71.png"
|
||||
ALT="$glob\_x$">.
|
||||
<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>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
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>
|
||||
indicated in Table <A HREF="#tab:gather">16</A>.
|
||||
containing numbers of type specified in
|
||||
Table <A HREF="#tab:f90ovrl">15</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>contains data structures for communications.
|
||||
@@ -191,43 +180,75 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>root</STRONG></DT>
|
||||
<DD>The process that holds the global copy. If <IMG
|
||||
WIDTH="75" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img77.png"
|
||||
ALT="$root=-1$"> all
|
||||
the processes will have a copy of the global vector.
|
||||
<BR>
|
||||
<DT><STRONG>update</STRONG></DT>
|
||||
<DD>Update operator.
|
||||
<BR><DL>
|
||||
<DT><STRONG>update = psb_none_</STRONG></DT>
|
||||
<DD>Do nothing;
|
||||
</DD>
|
||||
<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>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer variable <!-- MATH
|
||||
$-1\le root\le np-1$
|
||||
Default: <!-- MATH
|
||||
$update\_type = psb\_avg\_$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="140" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img78.png"
|
||||
ALT="$-1\le root\le np-1$">, default <IMG
|
||||
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img79.png"
|
||||
ALT="$-1$">.
|
||||
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img67.png"
|
||||
ALT="$update\_type = psb\_avg\_ $">
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<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>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>glob_x</STRONG></DT>
|
||||
<DD>The array where the local parts must be gathered.
|
||||
<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>global</B>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
Intent: <B>inout</B>.
|
||||
<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 <A HREF="#tab:f90ovrl">15</A>.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -242,29 +263,502 @@ An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</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. <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. <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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1005"
|
||||
<A NAME="tex2html1008"
|
||||
HREF="node64.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1001"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html1004"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html995"
|
||||
<A NAME="tex2html998"
|
||||
HREF="node62.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1003"
|
||||
<A NAME="tex2html1006"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1006"
|
||||
HREF="node64.html">psb_scatter Scatter</A>
|
||||
<B> Up:</B> <A NAME="tex2html1002"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html996"
|
||||
HREF="node62.html">psb_ovrl Overlap</A>
|
||||
<B> <A NAME="tex2html1004"
|
||||
<B> Next:</B> <A NAME="tex2html1009"
|
||||
HREF="node64.html">psb_gather Gather</A>
|
||||
<B> Up:</B> <A NAME="tex2html1005"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html999"
|
||||
HREF="node62.html">psb_halo Halo</A>
|
||||
<B> <A NAME="tex2html1007"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+67
-65
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_scatter -- Scatter Global Dense Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_scatter -- Scatter Global Dense Matrix">
|
||||
<TITLE>psb_gather -- Gather Global Dense Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_gather -- Gather Global Dense Matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node65.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1015"
|
||||
<A NAME="tex2html1020"
|
||||
HREF="node65.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1011"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html1016"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1007"
|
||||
<A NAME="tex2html1010"
|
||||
HREF="node63.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1013"
|
||||
<A NAME="tex2html1018"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1016"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html1012"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1008"
|
||||
HREF="node63.html">psb_gather Gather</A>
|
||||
<B> <A NAME="tex2html1014"
|
||||
<B> Next:</B> <A NAME="tex2html1021"
|
||||
HREF="node65.html">psb_scatter Scatter</A>
|
||||
<B> Up:</B> <A NAME="tex2html1017"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1011"
|
||||
HREF="node63.html">psb_ovrl Overlap</A>
|
||||
<B> <A NAME="tex2html1019"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00064000000000000000">
|
||||
psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
<H2><A NAME="SECTION00063000000000000000">
|
||||
psb_gather -- Gather 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.
|
||||
These subroutines collect the portions of global dense matrix
|
||||
distributed over all process into one single array stored on one
|
||||
process.
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER">
|
||||
<!-- MATH
|
||||
\begin{displaymath}
|
||||
loc\_x_i \leftarrow scatter(glob\_x)
|
||||
glob\_x \leftarrow collect(loc\_x_i)
|
||||
\end{displaymath}
|
||||
-->
|
||||
|
||||
<IMG
|
||||
WIDTH="167" HEIGHT="28" BORDER="0"
|
||||
SRC="img80.png"
|
||||
ALT="\begin{displaymath}loc\_x_i \leftarrow scatter(glob\_x) \end{displaymath}">
|
||||
WIDTH="162" HEIGHT="28" BORDER="0"
|
||||
SRC="img70.png"
|
||||
ALT="\begin{displaymath}glob\_x \leftarrow collect(loc\_x_i) \end{displaymath}">
|
||||
</DIV>
|
||||
<BR CLEAR="ALL">
|
||||
<P></P>
|
||||
@@ -80,7 +82,7 @@ where:
|
||||
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img71.png"
|
||||
ALT="$glob\_x$"></STRONG></DT>
|
||||
<DD>is the global matrix <!-- MATH
|
||||
<DD>is the global submatrix <!-- MATH
|
||||
$glob\_x_{1:m,1:n}$
|
||||
-->
|
||||
<IMG
|
||||
@@ -99,18 +101,18 @@ process <IMG
|
||||
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.
|
||||
WIDTH="48" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img74.png"
|
||||
ALT="$collect$"></STRONG></DT>
|
||||
<DD>is the collect function.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<BR><P></P>
|
||||
<DIV ALIGN="CENTER"><A NAME="3192"></A>
|
||||
<DIV ALIGN="CENTER"><A NAME="3212"></A>
|
||||
<TABLE>
|
||||
<CAPTION><STRONG>Table 17:</STRONG>
|
||||
<CAPTION><STRONG>Table 16:</STRONG>
|
||||
Data types</CAPTION>
|
||||
<TR><TD>
|
||||
<DIV ALIGN="CENTER">
|
||||
@@ -122,19 +124,19 @@ Data types</CAPTION>
|
||||
<TD ALIGN="LEFT"><B>Subroutine</B></TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Integer</TD>
|
||||
<TD ALIGN="LEFT">psb_scatter</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_scatter</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
|
||||
<TD ALIGN="LEFT">psb_scatter</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_scatter</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
</TR>
|
||||
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
|
||||
<TD ALIGN="LEFT">psb_scatter</TD>
|
||||
<TD ALIGN="LEFT">psb_gather</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</DIV>
|
||||
@@ -146,11 +148,11 @@ Data types</CAPTION>
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
WIDTH="480" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img82.png"
|
||||
WIDTH="471" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
|
||||
SRC="img76.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)
|
||||
call psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
call psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
\end{lstlisting}">
|
||||
<BR>
|
||||
|
||||
@@ -162,16 +164,21 @@ call psb_scatter(glob_x, loc_x, desc_a, info, root)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>glob_x</STRONG></DT>
|
||||
<DD>The array that must be scattered into local pieces.
|
||||
<DT><STRONG>loc_x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img71.png"
|
||||
ALT="$glob\_x$">.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<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 <A HREF="#tab:gather">16</A>.
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<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"
|
||||
SRC="img77.png"
|
||||
ALT="$root=-1$"> all
|
||||
the processes have a copy of the global vector.
|
||||
the processes will have a copy of the global vector.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
@@ -211,21 +218,16 @@ Specified as: an integer variable <!-- MATH
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>loc_x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img71.png"
|
||||
ALT="$glob\_x$">.
|
||||
<DT><STRONG>glob_x</STRONG></DT>
|
||||
<DD>The array where the local parts must be gathered.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
indicated in Table <A HREF="#tab:scatter">17</A>.
|
||||
Specified as: a rank one or two array with the <code>ALLOCATABLE</code> attribute.
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -243,26 +245,26 @@ An integer value; 0 means no error has been detected.
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1015"
|
||||
<A NAME="tex2html1020"
|
||||
HREF="node65.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1011"
|
||||
HREF="node60.html">
|
||||
<A NAME="tex2html1016"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1007"
|
||||
<A NAME="tex2html1010"
|
||||
HREF="node63.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1013"
|
||||
<A NAME="tex2html1018"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1016"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Up:</B> <A NAME="tex2html1012"
|
||||
HREF="node60.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1008"
|
||||
HREF="node63.html">psb_gather Gather</A>
|
||||
<B> <A NAME="tex2html1014"
|
||||
<B> Next:</B> <A NAME="tex2html1021"
|
||||
HREF="node65.html">psb_scatter Scatter</A>
|
||||
<B> Up:</B> <A NAME="tex2html1017"
|
||||
HREF="node61.html">Communication routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1011"
|
||||
HREF="node63.html">psb_ovrl Overlap</A>
|
||||
<B> <A NAME="tex2html1019"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+228
-94
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Data management routines</TITLE>
|
||||
<META NAME="description" CONTENT="Data management routines">
|
||||
<TITLE>psb_scatter -- Scatter Global Dense Matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_scatter -- Scatter Global Dense Matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node93.html">
|
||||
<LINK REL="previous" HREF="node60.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="previous" HREF="node64.html">
|
||||
<LINK REL="up" HREF="node61.html">
|
||||
<LINK REL="next" HREF="node66.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1027"
|
||||
<A NAME="tex2html1030"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1023"
|
||||
HREF="userhtml.html">
|
||||
<A NAME="tex2html1026"
|
||||
HREF="node61.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1017"
|
||||
<A NAME="tex2html1022"
|
||||
HREF="node64.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1025"
|
||||
<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="tex2html1028"
|
||||
HREF="node66.html">psb_cdall Allocates</A>
|
||||
<B> Up:</B> <A NAME="tex2html1024"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1018"
|
||||
HREF="node64.html">psb_scatter Scatter</A>
|
||||
<B> <A NAME="tex2html1026"
|
||||
<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>
|
||||
<B> <A NAME="tex2html1029"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H1><A NAME="SECTION00070000000000000000"></A>
|
||||
<A NAME="sec:toolsrout"></A>
|
||||
<BR>
|
||||
Data management routines
|
||||
</H1>
|
||||
<H2><A NAME="SECTION00064000000000000000">
|
||||
psb_scatter -- Scatter Global Dense Matrix</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
These subroutines scatters the portions of global dense matrix owned
|
||||
by a process to all the processes in the processes grid.
|
||||
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1029"
|
||||
HREF="node66.html">psb_cdall -- Allocates a communication descriptor</A>
|
||||
<LI><A NAME="tex2html1030"
|
||||
HREF="node67.html">psb_cdins -- Communication descriptor insert
|
||||
routine</A>
|
||||
<LI><A NAME="tex2html1031"
|
||||
HREF="node68.html">psb_cdasb -- Communication descriptor assembly
|
||||
routine</A>
|
||||
<LI><A NAME="tex2html1032"
|
||||
HREF="node69.html">psb_cdcpy -- Copies a communication descriptor</A>
|
||||
<LI><A NAME="tex2html1033"
|
||||
HREF="node70.html">psb_cdfree -- Frees a communication descriptor</A>
|
||||
<LI><A NAME="tex2html1034"
|
||||
HREF="node71.html">psb_cdbldext -- Build an extended communication
|
||||
descriptor</A>
|
||||
<LI><A NAME="tex2html1035"
|
||||
HREF="node72.html">psb_spall -- Allocates a sparse matrix</A>
|
||||
<LI><A NAME="tex2html1036"
|
||||
HREF="node73.html">psb_spins -- Insert a cloud of elements into a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html1037"
|
||||
HREF="node74.html">psb_spasb -- Sparse matrix assembly routine</A>
|
||||
<LI><A NAME="tex2html1038"
|
||||
HREF="node75.html">psb_spfree -- Frees a sparse matrix</A>
|
||||
<LI><A NAME="tex2html1039"
|
||||
HREF="node76.html">psb_sprn -- Reinit sparse matrix structure for psblas
|
||||
routines.</A>
|
||||
<LI><A NAME="tex2html1040"
|
||||
HREF="node77.html">psb_geall -- Allocates a dense matrix</A>
|
||||
<LI><A NAME="tex2html1041"
|
||||
HREF="node78.html">psb_geins -- Dense matrix insertion routine</A>
|
||||
<LI><A NAME="tex2html1042"
|
||||
HREF="node79.html">psb_geasb -- Assembly a dense matrix</A>
|
||||
<LI><A NAME="tex2html1043"
|
||||
HREF="node80.html">psb_gefree -- Frees a dense matrix</A>
|
||||
<LI><A NAME="tex2html1044"
|
||||
HREF="node81.html">psb_gelp -- Applies a left permutation to a dense
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html1045"
|
||||
HREF="node82.html">psb_glob_to_loc -- Global to local indices
|
||||
convertion</A>
|
||||
<LI><A NAME="tex2html1046"
|
||||
HREF="node83.html">psb_loc_to_glob -- Local to global indices
|
||||
conversion</A>
|
||||
<LI><A NAME="tex2html1047"
|
||||
HREF="node84.html">psb_is_owned -- </A>
|
||||
<LI><A NAME="tex2html1048"
|
||||
HREF="node85.html">psb_owned_index -- </A>
|
||||
<LI><A NAME="tex2html1049"
|
||||
HREF="node86.html">psb_is_local -- </A>
|
||||
<LI><A NAME="tex2html1050"
|
||||
HREF="node87.html">psb_local_index -- </A>
|
||||
<LI><A NAME="tex2html1051"
|
||||
HREF="node88.html">psb_get_boundary -- Extract list of boundary
|
||||
elements</A>
|
||||
<LI><A NAME="tex2html1052"
|
||||
HREF="node89.html">psb_get_overlap -- Extract list of overlap
|
||||
elements</A>
|
||||
<LI><A NAME="tex2html1053"
|
||||
HREF="node90.html">psb_sp_getrow -- Extract row(s) from a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html1054"
|
||||
HREF="node91.html">psb_sizeof -- Memory occupation</A>
|
||||
<LI><A NAME="tex2html1055"
|
||||
HREF="node92.html">Sorting utilities -- </A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
<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>
|
||||
|
||||
<P>
|
||||
<BR>
|
||||
<IMG
|
||||
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>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>glob_x</STRONG></DT>
|
||||
<DD>The array that must be scattered into local pieces.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array.
|
||||
</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>root</STRONG></DT>
|
||||
<DD>The process that holds the global copy. If <IMG
|
||||
WIDTH="75" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img77.png"
|
||||
ALT="$root=-1$"> all
|
||||
the processes have a copy of the global vector.
|
||||
<BR>
|
||||
Scope: <B>global</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer variable <!-- MATH
|
||||
$-1\le root\le np-1$
|
||||
-->
|
||||
<IMG
|
||||
WIDTH="140" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img78.png"
|
||||
ALT="$-1\le root\le np-1$">, default <IMG
|
||||
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img79.png"
|
||||
ALT="$-1$">.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>loc_x</STRONG></DT>
|
||||
<DD>the local portion of global dense matrix
|
||||
<IMG
|
||||
WIDTH="47" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img71.png"
|
||||
ALT="$glob\_x$">.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
indicated in Table <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>
|
||||
<B> <A NAME="tex2html1029"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+94
-410
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_cdall -- Allocates a communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdall -- Allocates a communication descriptor">
|
||||
<TITLE>Data management routines</TITLE>
|
||||
<META NAME="description" CONTENT="Data management routines">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="next" HREF="node67.html">
|
||||
<LINK REL="previous" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="next" HREF="node94.html">
|
||||
<LINK REL="previous" HREF="node61.html">
|
||||
<LINK REL="up" HREF="userhtml.html">
|
||||
<LINK REL="next" HREF="node67.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1066"
|
||||
<A NAME="tex2html1042"
|
||||
HREF="node67.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1062"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1038"
|
||||
HREF="userhtml.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1056"
|
||||
<A NAME="tex2html1032"
|
||||
HREF="node65.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1064"
|
||||
<A NAME="tex2html1040"
|
||||
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>
|
||||
<B> <A NAME="tex2html1065"
|
||||
<B> Next:</B> <A NAME="tex2html1043"
|
||||
HREF="node67.html">psb_cdall Allocates</A>
|
||||
<B> Up:</B> <A NAME="tex2html1039"
|
||||
HREF="userhtml.html">userhtml</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1033"
|
||||
HREF="node65.html">psb_scatter Scatter</A>
|
||||
<B> <A NAME="tex2html1041"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00071000000000000000">
|
||||
psb_cdall -- Allocates a communication descriptor</A>
|
||||
</H2>
|
||||
<H1><A NAME="SECTION00070000000000000000"></A>
|
||||
<A NAME="sec:toolsrout"></A>
|
||||
<BR>
|
||||
Data management routines
|
||||
</H1>
|
||||
|
||||
<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>
|
||||
<BR><HR>
|
||||
<!--Table of Child-Links-->
|
||||
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
|
||||
|
||||
<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>
|
||||
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>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>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
|
||||
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) < np$">; if <IMG
|
||||
WIDTH="51" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img92.png"
|
||||
ALT="$nv>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. <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>
|
||||
<B> <A NAME="tex2html1065"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<UL>
|
||||
<LI><A NAME="tex2html1044"
|
||||
HREF="node67.html">psb_cdall -- Allocates a communication descriptor</A>
|
||||
<LI><A NAME="tex2html1045"
|
||||
HREF="node68.html">psb_cdins -- Communication descriptor insert
|
||||
routine</A>
|
||||
<LI><A NAME="tex2html1046"
|
||||
HREF="node69.html">psb_cdasb -- Communication descriptor assembly
|
||||
routine</A>
|
||||
<LI><A NAME="tex2html1047"
|
||||
HREF="node70.html">psb_cdcpy -- Copies a communication descriptor</A>
|
||||
<LI><A NAME="tex2html1048"
|
||||
HREF="node71.html">psb_cdfree -- Frees a communication descriptor</A>
|
||||
<LI><A NAME="tex2html1049"
|
||||
HREF="node72.html">psb_cdbldext -- Build an extended communication
|
||||
descriptor</A>
|
||||
<LI><A NAME="tex2html1050"
|
||||
HREF="node73.html">psb_spall -- Allocates a sparse matrix</A>
|
||||
<LI><A NAME="tex2html1051"
|
||||
HREF="node74.html">psb_spins -- Insert a cloud of elements into a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html1052"
|
||||
HREF="node75.html">psb_spasb -- Sparse matrix assembly routine</A>
|
||||
<LI><A NAME="tex2html1053"
|
||||
HREF="node76.html">psb_spfree -- Frees a sparse matrix</A>
|
||||
<LI><A NAME="tex2html1054"
|
||||
HREF="node77.html">psb_sprn -- Reinit sparse matrix structure for psblas
|
||||
routines.</A>
|
||||
<LI><A NAME="tex2html1055"
|
||||
HREF="node78.html">psb_geall -- Allocates a dense matrix</A>
|
||||
<LI><A NAME="tex2html1056"
|
||||
HREF="node79.html">psb_geins -- Dense matrix insertion routine</A>
|
||||
<LI><A NAME="tex2html1057"
|
||||
HREF="node80.html">psb_geasb -- Assembly a dense matrix</A>
|
||||
<LI><A NAME="tex2html1058"
|
||||
HREF="node81.html">psb_gefree -- Frees a dense matrix</A>
|
||||
<LI><A NAME="tex2html1059"
|
||||
HREF="node82.html">psb_gelp -- Applies a left permutation to a dense
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html1060"
|
||||
HREF="node83.html">psb_glob_to_loc -- Global to local indices
|
||||
convertion</A>
|
||||
<LI><A NAME="tex2html1061"
|
||||
HREF="node84.html">psb_loc_to_glob -- Local to global indices
|
||||
conversion</A>
|
||||
<LI><A NAME="tex2html1062"
|
||||
HREF="node85.html">psb_is_owned -- </A>
|
||||
<LI><A NAME="tex2html1063"
|
||||
HREF="node86.html">psb_owned_index -- </A>
|
||||
<LI><A NAME="tex2html1064"
|
||||
HREF="node87.html">psb_is_local -- </A>
|
||||
<LI><A NAME="tex2html1065"
|
||||
HREF="node88.html">psb_local_index -- </A>
|
||||
<LI><A NAME="tex2html1066"
|
||||
HREF="node89.html">psb_get_boundary -- Extract list of boundary
|
||||
elements</A>
|
||||
<LI><A NAME="tex2html1067"
|
||||
HREF="node90.html">psb_get_overlap -- Extract list of overlap
|
||||
elements</A>
|
||||
<LI><A NAME="tex2html1068"
|
||||
HREF="node91.html">psb_sp_getrow -- Extract row(s) from a sparse
|
||||
matrix</A>
|
||||
<LI><A NAME="tex2html1069"
|
||||
HREF="node92.html">psb_sizeof -- Memory occupation</A>
|
||||
<LI><A NAME="tex2html1070"
|
||||
HREF="node93.html">Sorting utilities -- </A>
|
||||
</UL>
|
||||
<!--End of Table of Child-Links-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+319
-128
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_cdins -- Communication descriptor insert routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdins -- Communication descriptor insert routine">
|
||||
<TITLE>psb_cdall -- Allocates a communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdall -- Allocates a communication descriptor">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node66.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node68.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1078"
|
||||
<A NAME="tex2html1081"
|
||||
HREF="node68.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1074"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1077"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1068"
|
||||
<A NAME="tex2html1071"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1076"
|
||||
<A NAME="tex2html1079"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1079"
|
||||
HREF="node68.html">psb_cdasb Communication</A>
|
||||
<B> Up:</B> <A NAME="tex2html1075"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1069"
|
||||
HREF="node66.html">psb_cdall Allocates</A>
|
||||
<B> <A NAME="tex2html1077"
|
||||
<B> Next:</B> <A NAME="tex2html1082"
|
||||
HREF="node68.html">psb_cdins Communication</A>
|
||||
<B> Up:</B> <A NAME="tex2html1078"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1072"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> <A NAME="tex2html1080"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00072000000000000000">
|
||||
psb_cdins -- Communication descriptor insert
|
||||
routine</A>
|
||||
<H2><A NAME="SECTION00071000000000000000">
|
||||
psb_cdall -- Allocates a communication descriptor</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
|
||||
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
|
||||
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 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>
|
||||
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>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DT><STRONG><B>On Entry </B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>nz</STRONG></DT>
|
||||
<DD>the number of points being inserted.
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG>icontxt</STRONG></DT>
|
||||
<DD>the communication context.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
Scope:<B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value.
|
||||
</DD>
|
||||
<DT><STRONG>ia</STRONG></DT>
|
||||
<DD>the indices of the starting vertex of the edges being inserted.
|
||||
<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>local</B>.
|
||||
Scope:<B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
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$">.
|
||||
Specified as: an integer array.
|
||||
</DD>
|
||||
<DT><STRONG>ja</STRONG></DT>
|
||||
<DD>the indices of the end vertex of the edges being inserted.
|
||||
<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>local</B>.
|
||||
Scope:<B>global</B>.
|
||||
<BR>
|
||||
Type: <B>required</B>.
|
||||
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$">.
|
||||
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>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>
|
||||
<DT><STRONG>mg</STRONG></DT>
|
||||
<DD>the (global) number of rows of the problem.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
Scope:<B>global</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
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>.
|
||||
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>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>
|
||||
Scope: <B>local</B>.
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
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$">.
|
||||
Specified as: an integer array.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
@@ -164,13 +230,13 @@ Specified as: an integer array of length <IMG
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the updated communication descriptor.
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
@@ -185,75 +251,200 @@ Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</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$">.
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>This routine may only be called if the descriptor is in the
|
||||
build state;
|
||||
<LI>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
|
||||
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) < np$">; if <IMG
|
||||
WIDTH="51" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img92.png"
|
||||
ALT="$nv>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. <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>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>On exit from this routine the descriptor is in the build
|
||||
state.
|
||||
</LI>
|
||||
<LI>The second form of this routine will be useful when dealing with
|
||||
user-specified index mappings; see also <A HREF="node7.html#sec:usermaps">2.3.1</A>.
|
||||
<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="tex2html1078"
|
||||
<A NAME="tex2html1081"
|
||||
HREF="node68.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1074"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1077"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1068"
|
||||
<A NAME="tex2html1071"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1076"
|
||||
<A NAME="tex2html1079"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1079"
|
||||
HREF="node68.html">psb_cdasb Communication</A>
|
||||
<B> Up:</B> <A NAME="tex2html1075"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1069"
|
||||
HREF="node66.html">psb_cdall Allocates</A>
|
||||
<B> <A NAME="tex2html1077"
|
||||
<B> Next:</B> <A NAME="tex2html1082"
|
||||
HREF="node68.html">psb_cdins Communication</A>
|
||||
<B> Up:</B> <A NAME="tex2html1078"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1072"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> <A NAME="tex2html1080"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+165
-29
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_cdasb -- Communication descriptor assembly routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdasb -- Communication descriptor assembly routine">
|
||||
<TITLE>psb_cdins -- Communication descriptor insert routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdins -- Communication descriptor insert routine">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node67.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node69.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1090"
|
||||
<A NAME="tex2html1093"
|
||||
HREF="node69.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1086"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1089"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1080"
|
||||
<A NAME="tex2html1083"
|
||||
HREF="node67.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1088"
|
||||
<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="tex2html1091"
|
||||
HREF="node69.html">psb_cdcpy Copies</A>
|
||||
<B> Up:</B> <A NAME="tex2html1087"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1081"
|
||||
HREF="node67.html">psb_cdins Communication</A>
|
||||
<B> <A NAME="tex2html1089"
|
||||
<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>
|
||||
<B> <A NAME="tex2html1092"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00073000000000000000">
|
||||
psb_cdasb -- Communication descriptor assembly
|
||||
<H2><A NAME="SECTION00072000000000000000">
|
||||
psb_cdins -- Communication descriptor insert
|
||||
routine</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the communication descriptor.
|
||||
<DT><STRONG>nz</STRONG></DT>
|
||||
<DD>the number of points being inserted.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
Intent: <B>in</B>.
|
||||
<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>
|
||||
</DL>
|
||||
|
||||
@@ -88,7 +164,7 @@ Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the communication descriptor.
|
||||
<DD>the updated communication descriptor.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
@@ -109,17 +185,77 @@ Intent: <B>out</B>.
|
||||
<BR>
|
||||
An integer value; 0 means no error has been detected.
|
||||
</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>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>On exit from this routine the descriptor is in the assembled
|
||||
state.
|
||||
<LI>This routine may only be called if the descriptor is in the
|
||||
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 <A HREF="node7.html#sec:usermaps">2.3.1</A>.
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<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>
|
||||
<B> <A NAME="tex2html1092"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+32
-26
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_cdcpy -- Copies a communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdcpy -- Copies a communication descriptor">
|
||||
<TITLE>psb_cdasb -- Communication descriptor assembly routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdasb -- Communication descriptor assembly routine">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node68.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node70.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1102"
|
||||
<A NAME="tex2html1105"
|
||||
HREF="node70.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1098"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1101"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1092"
|
||||
<A NAME="tex2html1095"
|
||||
HREF="node68.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1100"
|
||||
<A NAME="tex2html1103"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1103"
|
||||
HREF="node70.html">psb_cdfree Frees</A>
|
||||
<B> Up:</B> <A NAME="tex2html1099"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1093"
|
||||
HREF="node68.html">psb_cdasb Communication</A>
|
||||
<B> <A NAME="tex2html1101"
|
||||
<B> Next:</B> <A NAME="tex2html1106"
|
||||
HREF="node70.html">psb_cdcpy Copies</A>
|
||||
<B> Up:</B> <A NAME="tex2html1102"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1096"
|
||||
HREF="node68.html">psb_cdins Communication</A>
|
||||
<B> <A NAME="tex2html1104"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00074000000000000000">
|
||||
psb_cdcpy -- Copies a communication descriptor</A>
|
||||
<H2><A NAME="SECTION00073000000000000000">
|
||||
psb_cdasb -- Communication descriptor assembly
|
||||
routine</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_cdcpy(desc_in, desc_out, info)
|
||||
call psb_cdasb(desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_in</STRONG></DT>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</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>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_out</STRONG></DT>
|
||||
<DD>the communication descriptor copy.
|
||||
<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>.
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
@@ -111,6 +110,13 @@ Intent: <B>out</B>.
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</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>
|
||||
<BR><HR>
|
||||
|
||||
@@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html260"
|
||||
<A NAME="tex2html261"
|
||||
HREF="node8.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html256"
|
||||
<A NAME="tex2html257"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html252"
|
||||
<A NAME="tex2html253"
|
||||
HREF="node6.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html258"
|
||||
<A NAME="tex2html259"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html261"
|
||||
<B> Next:</B> <A NAME="tex2html262"
|
||||
HREF="node8.html">Programming model</A>
|
||||
<B> Up:</B> <A NAME="tex2html257"
|
||||
<B> Up:</B> <A NAME="tex2html258"
|
||||
HREF="node6.html">Application structure</A>
|
||||
<B> Previous:</B> <A NAME="tex2html253"
|
||||
<B> Previous:</B> <A NAME="tex2html254"
|
||||
HREF="node6.html">Application structure</A>
|
||||
<B> <A NAME="tex2html259"
|
||||
<B> <A NAME="tex2html260"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
|
||||
+35
-22
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_cdfree -- Frees a communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdfree -- Frees a communication descriptor">
|
||||
<TITLE>psb_cdcpy -- Copies a communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdcpy -- Copies a communication descriptor">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node69.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node71.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1114"
|
||||
<A NAME="tex2html1117"
|
||||
HREF="node71.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1110"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1113"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1104"
|
||||
<A NAME="tex2html1107"
|
||||
HREF="node69.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1112"
|
||||
<A NAME="tex2html1115"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1115"
|
||||
HREF="node71.html">psb_cdbldext Build</A>
|
||||
<B> Up:</B> <A NAME="tex2html1111"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1105"
|
||||
HREF="node69.html">psb_cdcpy Copies</A>
|
||||
<B> <A NAME="tex2html1113"
|
||||
<B> Next:</B> <A NAME="tex2html1118"
|
||||
HREF="node71.html">psb_cdfree Frees</A>
|
||||
<B> Up:</B> <A NAME="tex2html1114"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1108"
|
||||
HREF="node69.html">psb_cdasb Communication</A>
|
||||
<B> <A NAME="tex2html1116"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00075000000000000000">
|
||||
psb_cdfree -- Frees a communication descriptor</A>
|
||||
<H2><A NAME="SECTION00074000000000000000">
|
||||
psb_cdcpy -- Copies a communication descriptor</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_cdfree(desc_a, info)
|
||||
call psb_cdcpy(desc_in, desc_out, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the communication descriptor to be freed.
|
||||
<DT><STRONG>desc_in</STRONG></DT>
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</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>
|
||||
<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>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
|
||||
+27
-121
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_cdbldext -- Build an extended communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdbldext -- Build an extended communication descriptor">
|
||||
<TITLE>psb_cdfree -- Frees a communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdfree -- Frees a communication descriptor">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node70.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node72.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1126"
|
||||
<A NAME="tex2html1129"
|
||||
HREF="node72.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1122"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1125"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1116"
|
||||
<A NAME="tex2html1119"
|
||||
HREF="node70.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1124"
|
||||
<A NAME="tex2html1127"
|
||||
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>
|
||||
<B> <A NAME="tex2html1125"
|
||||
<B> Next:</B> <A NAME="tex2html1130"
|
||||
HREF="node72.html">psb_cdbldext Build</A>
|
||||
<B> Up:</B> <A NAME="tex2html1126"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1120"
|
||||
HREF="node70.html">psb_cdcpy Copies</A>
|
||||
<B> <A NAME="tex2html1128"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00076000000000000000">
|
||||
psb_cdbldext -- Build an extended communication
|
||||
descriptor</A>
|
||||
<H2><A NAME="SECTION00075000000000000000">
|
||||
psb_cdfree -- Frees a communication descriptor</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
|
||||
call psb_cdfree(desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<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>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
@@ -72,64 +68,8 @@ through the input sparse matrix <code>a</code>.
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<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>
|
||||
<DD>the communication descriptor.
|
||||
<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>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>
|
||||
Specified as: an integer value
|
||||
<code>psb_ovt_xhal_</code>, <code>psb_ovt_asov_</code>, default: <code>psb_ovt_xhal_</code>
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_out</STRONG></DT>
|
||||
<DD>the extended communication descriptor.
|
||||
<DD>the communication descriptor to be freed.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
@@ -139,6 +79,13 @@ Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
@@ -153,48 +100,7 @@ An integer value; 0 means no error has been detected.
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<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>
|
||||
<B> <A NAME="tex2html1125"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+85
-54
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spall -- Allocates a sparse matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spall -- Allocates a sparse matrix">
|
||||
<TITLE>psb_cdbldext -- Build an extended communication descriptor</TITLE>
|
||||
<META NAME="description" CONTENT="psb_cdbldext -- Build an extended communication descriptor">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node71.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node73.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1138"
|
||||
<A NAME="tex2html1141"
|
||||
HREF="node73.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1134"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1137"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1128"
|
||||
<A NAME="tex2html1131"
|
||||
HREF="node71.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1136"
|
||||
<A NAME="tex2html1139"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1139"
|
||||
HREF="node73.html">psb_spins Insert</A>
|
||||
<B> Up:</B> <A NAME="tex2html1135"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1129"
|
||||
HREF="node71.html">psb_cdbldext Build</A>
|
||||
<B> <A NAME="tex2html1137"
|
||||
<B> Next:</B> <A NAME="tex2html1142"
|
||||
HREF="node73.html">psb_spall Allocates</A>
|
||||
<B> Up:</B> <A NAME="tex2html1138"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1132"
|
||||
HREF="node71.html">psb_cdfree Frees</A>
|
||||
<B> <A NAME="tex2html1140"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00077000000000000000">
|
||||
psb_spall -- Allocates a sparse matrix</A>
|
||||
<H2><A NAME="SECTION00076000000000000000">
|
||||
psb_cdbldext -- Build an extended communication
|
||||
descriptor</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_spall(a, desc_a, info, nnz)
|
||||
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
|
||||
</PRE>
|
||||
|
||||
<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>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
@@ -68,6 +72,16 @@ call psb_spall(a, desc_a, info, nnz)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<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>
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
@@ -77,19 +91,35 @@ Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<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>nnz</STRONG></DT>
|
||||
<DD>An estimate of the number of nonzeroes in the local
|
||||
part of the assembled matrix.
|
||||
<DT><STRONG>nl</STRONG></DT>
|
||||
<DD>the number of additional layers desired.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
Scope:<B>global</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value.
|
||||
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>
|
||||
Specified as: an integer value
|
||||
<code>psb_ovt_xhal_</code>, <code>psb_ovt_asov_</code>, default: <code>psb_ovt_xhal_</code>
|
||||
|
||||
<P>
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
@@ -98,16 +128,16 @@ Specified as: an integer value.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the matrix to be allocated.
|
||||
<DT><STRONG>desc_out</STRONG></DT>
|
||||
<DD>the extended communication descriptor.
|
||||
<BR>
|
||||
Scope:<B>local</B>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type:<B>required</B>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>out</B>.
|
||||
Intent: <B>inout</B>.
|
||||
<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>
|
||||
<DT><STRONG>info</STRONG></DT>
|
||||
<DD>Error code.
|
||||
@@ -121,47 +151,48 @@ Intent: <B>out</B>.
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>On exit from this routine the sparse matrix is in the build
|
||||
state.
|
||||
<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>The descriptor may be in either the build or assembled state.
|
||||
</LI>
|
||||
<LI>Providing a good estimate for the number of nonzeroes <IMG
|
||||
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>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="tex2html1138"
|
||||
<A NAME="tex2html1141"
|
||||
HREF="node73.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1134"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1137"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1128"
|
||||
<A NAME="tex2html1131"
|
||||
HREF="node71.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1136"
|
||||
<A NAME="tex2html1139"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1139"
|
||||
HREF="node73.html">psb_spins Insert</A>
|
||||
<B> Up:</B> <A NAME="tex2html1135"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1129"
|
||||
HREF="node71.html">psb_cdbldext Build</A>
|
||||
<B> <A NAME="tex2html1137"
|
||||
<B> Next:</B> <A NAME="tex2html1142"
|
||||
HREF="node73.html">psb_spall Allocates</A>
|
||||
<B> Up:</B> <A NAME="tex2html1138"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1132"
|
||||
HREF="node71.html">psb_cdfree Frees</A>
|
||||
<B> <A NAME="tex2html1140"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+60
-166
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spins -- Insert a cloud of elements into a sparse matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spins -- Insert a cloud of elements into a sparse matrix">
|
||||
<TITLE>psb_spall -- Allocates a sparse matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spall -- Allocates a sparse matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<META NAME="distribution" CONTENT="global">
|
||||
@@ -20,134 +20,76 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<LINK REL="next" HREF="node74.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">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1150"
|
||||
<A NAME="tex2html1153"
|
||||
HREF="node74.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1146"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1149"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1140"
|
||||
<A NAME="tex2html1143"
|
||||
HREF="node72.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1148"
|
||||
<A NAME="tex2html1151"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1151"
|
||||
HREF="node74.html">psb_spasb Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html1147"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1141"
|
||||
HREF="node72.html">psb_spall Allocates</A>
|
||||
<B> <A NAME="tex2html1149"
|
||||
<B> Next:</B> <A NAME="tex2html1154"
|
||||
HREF="node74.html">psb_spins Insert</A>
|
||||
<B> Up:</B> <A NAME="tex2html1150"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1144"
|
||||
HREF="node72.html">psb_cdbldext Build</A>
|
||||
<B> <A NAME="tex2html1152"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00078000000000000000">
|
||||
psb_spins -- Insert a cloud of elements into a sparse
|
||||
matrix</A>
|
||||
<H2><A NAME="SECTION00077000000000000000">
|
||||
psb_spall -- Allocates a sparse matrix</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
|
||||
call psb_spall(a, desc_a, info, nnz)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Asynchronous.
|
||||
<DD>Synchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>nz</STRONG></DT>
|
||||
<DD>the number of elements to be inserted.
|
||||
<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>
|
||||
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>val</STRONG></DT>
|
||||
<DD>the elements to be inserted.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an array of size <IMG
|
||||
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.
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type:<B>optional</B>.
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Specified as: a logical value; default: <code>.false.</code>.
|
||||
|
||||
<P>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>nnz</STRONG></DT>
|
||||
<DD>An estimate of the number of nonzeroes in the local
|
||||
part of the assembled matrix.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
@@ -157,27 +99,16 @@ Specified as: a logical value; default: <code>.false.</code>.
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the matrix into which elements will be inserted.
|
||||
<DD>the matrix to be allocated.
|
||||
<BR>
|
||||
Scope:<B>local</B>
|
||||
<BR>
|
||||
Type:<B>required</B>
|
||||
<BR>
|
||||
Intent: <B>inout</B>.
|
||||
Intent: <B>out</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</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>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
@@ -190,84 +121,47 @@ Intent: <B>out</B>.
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</DL>
|
||||
|
||||
<P>
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>On entry to this routine the descriptor may be in either the
|
||||
build or assembled state.
|
||||
<LI>On exit from this routine the sparse matrix is in the build
|
||||
state.
|
||||
</LI>
|
||||
<LI>On entry to this routine the sparse matrix may be in either the
|
||||
build or update state.
|
||||
<LI>The descriptor may be in either the build or assembled 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>If the descriptor is in the assembled state, then any entries in
|
||||
the sparse matrix that would generate additional communication
|
||||
requirements are ignored;
|
||||
</LI>
|
||||
<LI>If the matrix is in the update state, any entries in positions
|
||||
that were not present in the original matrix are ignored.
|
||||
<LI>Providing a good estimate for the number of nonzeroes <IMG
|
||||
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>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1150"
|
||||
<A NAME="tex2html1153"
|
||||
HREF="node74.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1146"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1149"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1140"
|
||||
<A NAME="tex2html1143"
|
||||
HREF="node72.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1148"
|
||||
<A NAME="tex2html1151"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1151"
|
||||
HREF="node74.html">psb_spasb Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html1147"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1141"
|
||||
HREF="node72.html">psb_spall Allocates</A>
|
||||
<B> <A NAME="tex2html1149"
|
||||
<B> Next:</B> <A NAME="tex2html1154"
|
||||
HREF="node74.html">psb_spins Insert</A>
|
||||
<B> Up:</B> <A NAME="tex2html1150"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1144"
|
||||
HREF="node72.html">psb_cdbldext Build</A>
|
||||
<B> <A NAME="tex2html1152"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+135
-71
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spasb -- Sparse matrix assembly routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spasb -- Sparse matrix assembly routine">
|
||||
<TITLE>psb_spins -- Insert a cloud of elements into a sparse matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spins -- Insert a cloud of elements into a sparse matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node73.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node75.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1162"
|
||||
<A NAME="tex2html1165"
|
||||
HREF="node75.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1158"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1161"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1152"
|
||||
<A NAME="tex2html1155"
|
||||
HREF="node73.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1160"
|
||||
<A NAME="tex2html1163"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1163"
|
||||
HREF="node75.html">psb_spfree Frees</A>
|
||||
<B> Up:</B> <A NAME="tex2html1159"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1153"
|
||||
HREF="node73.html">psb_spins Insert</A>
|
||||
<B> <A NAME="tex2html1161"
|
||||
<B> Next:</B> <A NAME="tex2html1166"
|
||||
HREF="node75.html">psb_spasb Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html1162"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1156"
|
||||
HREF="node73.html">psb_spall Allocates</A>
|
||||
<B> <A NAME="tex2html1164"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00079000000000000000">
|
||||
psb_spasb -- Sparse matrix assembly routine</A>
|
||||
<H2><A NAME="SECTION00078000000000000000">
|
||||
psb_spins -- Insert a cloud of elements into a sparse
|
||||
matrix</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<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>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
<DT><STRONG>Type:</STRONG></DT>
|
||||
<DD>Synchronous.
|
||||
<DD>Asynchronous.
|
||||
</DD>
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the communication descriptor.
|
||||
<DT><STRONG>nz</STRONG></DT>
|
||||
<DD>the number of elements to be inserted.
|
||||
<BR>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
@@ -77,52 +78,76 @@ Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
Specified as: an integer scalar.
|
||||
</DD>
|
||||
<DT><STRONG>afmt</STRONG></DT>
|
||||
<DD>the storage format for the sparse matrix.
|
||||
<DT><STRONG>ia</STRONG></DT>
|
||||
<DD>the row indices of the elements to be inserted.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<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>
|
||||
<DT><STRONG>upd</STRONG></DT>
|
||||
<DD>Provide for updates to the matrix coefficients.
|
||||
<DT><STRONG>ja</STRONG></DT>
|
||||
<DD>the column indices of the elements to be inserted.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<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>
|
||||
<DT><STRONG>dupl</STRONG></DT>
|
||||
<DD>How to handle duplicate coefficients.
|
||||
<DT><STRONG>val</STRONG></DT>
|
||||
<DD>the elements to be inserted.
|
||||
<BR>
|
||||
Scope: <B>global</B>.
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
Type:<B>required</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>.
|
||||
Specified as: an array of size <IMG
|
||||
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>mold</STRONG></DT>
|
||||
<DD>The desired dynamic type for the internal matrix storage.
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>The communication descriptor.
|
||||
<BR>
|
||||
Scope: <B>local</B>.
|
||||
Scope: <B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>.
|
||||
Type: <B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
Intent: <B>inout</B>.
|
||||
<BR>
|
||||
Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>.
|
||||
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>
|
||||
</DL>
|
||||
|
||||
@@ -132,7 +157,7 @@ Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the matrix to be assembled.
|
||||
<DD>the matrix into which elements will be inserted.
|
||||
<BR>
|
||||
Scope:<B>local</B>
|
||||
<BR>
|
||||
@@ -142,6 +167,17 @@ 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>
|
||||
<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>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
@@ -159,51 +195,79 @@ An integer value; 0 means no error has been detected.
|
||||
<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>On entry to this routine the descriptor may be in either the
|
||||
build or assembled state.
|
||||
</LI>
|
||||
<LI>The sparse matrix may be in either the build or update state;
|
||||
<LI>On entry to this routine 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>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>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>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>The output storage format need not be the same on all
|
||||
processes;
|
||||
<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>On exit from this routine the matrix is in the assembled state,
|
||||
and thus is suitable for the computational routines.
|
||||
<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>If the descriptor is in the assembled state, then any entries in
|
||||
the sparse matrix that would generate additional communication
|
||||
requirements are ignored;
|
||||
</LI>
|
||||
<LI>If the matrix is in the update state, any entries in positions
|
||||
that were not present in the original matrix are ignored.
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1162"
|
||||
<A NAME="tex2html1165"
|
||||
HREF="node75.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1158"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1161"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1152"
|
||||
<A NAME="tex2html1155"
|
||||
HREF="node73.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1160"
|
||||
<A NAME="tex2html1163"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1163"
|
||||
HREF="node75.html">psb_spfree Frees</A>
|
||||
<B> Up:</B> <A NAME="tex2html1159"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1153"
|
||||
HREF="node73.html">psb_spins Insert</A>
|
||||
<B> <A NAME="tex2html1161"
|
||||
<B> Next:</B> <A NAME="tex2html1166"
|
||||
HREF="node75.html">psb_spasb Sparse</A>
|
||||
<B> Up:</B> <A NAME="tex2html1162"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1156"
|
||||
HREF="node73.html">psb_spall Allocates</A>
|
||||
<B> <A NAME="tex2html1164"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
+124
-30
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_spfree -- Frees a sparse matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spfree -- Frees a sparse matrix">
|
||||
<TITLE>psb_spasb -- Sparse matrix assembly routine</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spasb -- Sparse matrix assembly routine">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node74.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node76.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1174"
|
||||
<A NAME="tex2html1177"
|
||||
HREF="node76.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1170"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1173"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1164"
|
||||
<A NAME="tex2html1167"
|
||||
HREF="node74.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1172"
|
||||
<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="tex2html1175"
|
||||
HREF="node76.html">psb_sprn Reinit</A>
|
||||
<B> Up:</B> <A NAME="tex2html1171"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1165"
|
||||
HREF="node74.html">psb_spasb Sparse</A>
|
||||
<B> <A NAME="tex2html1173"
|
||||
<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>
|
||||
<B> <A NAME="tex2html1176"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000710000000000000000">
|
||||
psb_spfree -- Frees a sparse matrix</A>
|
||||
<H2><A NAME="SECTION00079000000000000000">
|
||||
psb_spasb -- Sparse matrix assembly routine</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_spfree(a, desc_a, info)
|
||||
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -68,17 +68,6 @@ call psb_spfree(a, desc_a, info)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<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>
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
@@ -90,6 +79,51 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
@@ -111,7 +156,56 @@ An integer value; 0 means no error has been detected.
|
||||
</DL>
|
||||
|
||||
<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>
|
||||
<B> <A NAME="tex2html1176"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
+19
-38
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_sprn -- Reinit sparse matrix structure for psblas routines.</TITLE>
|
||||
<META NAME="description" CONTENT="psb_sprn -- Reinit sparse matrix structure for psblas routines.">
|
||||
<TITLE>psb_spfree -- Frees a sparse matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_spfree -- Frees a sparse matrix">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node75.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node77.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1186"
|
||||
<A NAME="tex2html1189"
|
||||
HREF="node77.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1182"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1185"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1176"
|
||||
<A NAME="tex2html1179"
|
||||
HREF="node75.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1184"
|
||||
<A NAME="tex2html1187"
|
||||
HREF="node1.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html1187"
|
||||
HREF="node77.html">psb_geall Allocates</A>
|
||||
<B> Up:</B> <A NAME="tex2html1183"
|
||||
HREF="node65.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1177"
|
||||
HREF="node75.html">psb_spfree Frees</A>
|
||||
<B> <A NAME="tex2html1185"
|
||||
<B> Next:</B> <A NAME="tex2html1190"
|
||||
HREF="node77.html">psb_sprn Reinit</A>
|
||||
<B> Up:</B> <A NAME="tex2html1186"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1180"
|
||||
HREF="node75.html">psb_spasb Sparse</A>
|
||||
<B> <A NAME="tex2html1188"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000711000000000000000">
|
||||
psb_sprn -- Reinit sparse matrix structure for psblas
|
||||
routines.</A>
|
||||
<H2><A NAME="SECTION000710000000000000000">
|
||||
psb_spfree -- Frees a sparse matrix</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_sprn(a, decsc_a, info, clear)
|
||||
call psb_spfree(a, desc_a, info)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -70,7 +69,7 @@ call psb_sprn(a, decsc_a, info, clear)
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the matrix to be reinitialized.
|
||||
<DD>the matrix to be freed.
|
||||
<BR>
|
||||
Scope:<B>local</B>
|
||||
<BR>
|
||||
@@ -91,17 +90,6 @@ Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</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>
|
||||
|
||||
<P>
|
||||
@@ -121,13 +109,6 @@ Intent: <B>out</B>.
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</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>
|
||||
<BR><HR>
|
||||
|
||||
+49
-90
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>psb_geall -- Allocates a dense matrix</TITLE>
|
||||
<META NAME="description" CONTENT="psb_geall -- Allocates a dense matrix">
|
||||
<TITLE>psb_sprn -- Reinit sparse matrix structure for psblas routines.</TITLE>
|
||||
<META NAME="description" CONTENT="psb_sprn -- Reinit sparse matrix structure for psblas routines.">
|
||||
<META NAME="keywords" CONTENT="userhtml">
|
||||
<META NAME="resource-type" CONTENT="document">
|
||||
<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="previous" HREF="node76.html">
|
||||
<LINK REL="up" HREF="node65.html">
|
||||
<LINK REL="up" HREF="node66.html">
|
||||
<LINK REL="next" HREF="node78.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html1198"
|
||||
<A NAME="tex2html1201"
|
||||
HREF="node78.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html1194"
|
||||
HREF="node65.html">
|
||||
<A NAME="tex2html1197"
|
||||
HREF="node66.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html1188"
|
||||
<A NAME="tex2html1191"
|
||||
HREF="node76.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html1196"
|
||||
<A NAME="tex2html1199"
|
||||
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>
|
||||
<B> <A NAME="tex2html1197"
|
||||
<B> Next:</B> <A NAME="tex2html1202"
|
||||
HREF="node78.html">psb_geall Allocates</A>
|
||||
<B> Up:</B> <A NAME="tex2html1198"
|
||||
HREF="node66.html">Data management routines</A>
|
||||
<B> Previous:</B> <A NAME="tex2html1192"
|
||||
HREF="node76.html">psb_spfree Frees</A>
|
||||
<B> <A NAME="tex2html1200"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION000712000000000000000">
|
||||
psb_geall -- Allocates a dense matrix</A>
|
||||
<H2><A NAME="SECTION000711000000000000000">
|
||||
psb_sprn -- Reinit sparse matrix structure for psblas
|
||||
routines.</A>
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<PRE>
|
||||
call psb_geall(x, desc_a, info, n, lb)
|
||||
call psb_sprn(a, decsc_a, info, clear)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
@@ -68,52 +69,38 @@ call psb_geall(x, desc_a, info, n, lb)
|
||||
<DT><STRONG><B>On Entry</B></STRONG></DT>
|
||||
<DD>
|
||||
</DD>
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>The communication descriptor.
|
||||
<DT><STRONG>a</STRONG></DT>
|
||||
<DD>the matrix to be reinitialized.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
Scope:<B>local</B>
|
||||
<BR>
|
||||
Type: <B>required</B>
|
||||
Type:<B>required</B>
|
||||
<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>n</STRONG></DT>
|
||||
<DD>The number of columns of the dense matrix to be allocated.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: Integer scalar, default <IMG
|
||||
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.
|
||||
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
|
||||
</DD>
|
||||
<DT><STRONG>lb</STRONG></DT>
|
||||
<DD>The lower bound for the column index range of the dense matrix to be allocated.
|
||||
<DT><STRONG>desc_a</STRONG></DT>
|
||||
<DD>the communication descriptor.
|
||||
<BR>
|
||||
Scope: <B>local</B>
|
||||
Scope:<B>local</B>.
|
||||
<BR>
|
||||
Type: <B>optional</B>
|
||||
Type:<B>required</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: Integer scalar, default <IMG
|
||||
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.
|
||||
Specified as: a structured data of type descdata<TT>psb_desc_type</TT>.
|
||||
</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>
|
||||
|
||||
@@ -122,18 +109,6 @@ rank-1 array.
|
||||
<DT><STRONG><B>On Return</B></STRONG></DT>
|
||||
<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>
|
||||
<DD>Error code.
|
||||
<BR>
|
||||
@@ -146,32 +121,16 @@ Intent: <B>out</B>.
|
||||
An integer value; 0 means no error has been detected.
|
||||
</DD>
|
||||
</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>
|
||||
<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>
|
||||
<B> <A NAME="tex2html1197"
|
||||
HREF="node1.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user