Updated docs.
trunk
Salvatore Filippone 8 years ago
parent 9ab0539881
commit 001aa819fa

@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node129.html">
<LINK REL="previous" HREF="node131.html">
<LINK REL="up" HREF="userhtml.html">
</HEAD>
@ -104,8 +104,8 @@ sample scatter/gather routines.
.
</PRE>
</DD>
<DT><A NAME="foot7514">... follows</A><A
HREF="node122.html#tex2html30"><SUP>3</SUP></A></DT>
<DT><A NAME="foot7596">... follows</A><A
HREF="node124.html#tex2html30"><SUP>3</SUP></A></DT>
<DD>The string is case-insensitive
<PRE>.
@ -140,12 +140,12 @@ sample scatter/gather routines.
.
</PRE>
</DD>
<DT><A NAME="foot7870">... method</A><A
HREF="node128.html#tex2html31"><SUP>4</SUP></A></DT>
<DT><A NAME="foot7956">... method</A><A
HREF="node130.html#tex2html31"><SUP>4</SUP></A></DT>
<DD>Note:
the implementation is for <IMG
WIDTH="62" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img161.png"
SRC="img162.png"
ALT="$FCG(1)$">.
<PRE>.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 B

After

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 383 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 B

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

After

Width:  |  Height:  |  Size: 435 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 401 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 355 B

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 B

After

Width:  |  Height:  |  Size: 355 B

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

@ -26,21 +26,21 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html174"
<A NAME="tex2html176"
HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html172"
<A NAME="tex2html174"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html166"
<A NAME="tex2html168"
HREF="userhtml.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html175"
<B> Next:</B> <A NAME="tex2html177"
HREF="node2.html">Introduction</A>
<B> Up:</B> <A NAME="tex2html173"
<B> Up:</B> <A NAME="tex2html175"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html167"
<B> Previous:</B> <A NAME="tex2html169"
HREF="userhtml.html">userhtml</A>
<BR>
<BR>
@ -53,54 +53,54 @@ Contents</A>
<!--Table of Contents-->
<UL>
<LI><A NAME="tex2html176"
<LI><A NAME="tex2html178"
HREF="node2.html">Introduction</A>
<LI><A NAME="tex2html177"
<LI><A NAME="tex2html179"
HREF="node3.html">General overview</A>
<UL>
<LI><A NAME="tex2html178"
<LI><A NAME="tex2html180"
HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html179"
<LI><A NAME="tex2html181"
HREF="node5.html">Library contents</A>
<LI><A NAME="tex2html180"
<LI><A NAME="tex2html182"
HREF="node6.html">Application structure</A>
<LI><A NAME="tex2html181"
<LI><A NAME="tex2html183"
HREF="node8.html">Programming model</A>
</UL>
<BR>
<LI><A NAME="tex2html182"
<LI><A NAME="tex2html184"
HREF="node9.html">Data Structures and Classes</A>
<UL>
<LI><A NAME="tex2html183"
HREF="node10.html">Descriptor data structure</A>
<LI><A NAME="tex2html184"
HREF="node22.html">Sparse Matrix class</A>
<LI><A NAME="tex2html185"
HREF="node41.html">Dense Vector Data Structure</A>
HREF="node10.html">Descriptor data structure</A>
<LI><A NAME="tex2html186"
HREF="node47.html">Preconditioner data structure</A>
HREF="node22.html">Sparse Matrix class</A>
<LI><A NAME="tex2html187"
HREF="node48.html">Heap data structure</A>
</UL>
<BR>
HREF="node42.html">Dense Vector Data Structure</A>
<LI><A NAME="tex2html188"
HREF="node49.html">Computational routines</A>
HREF="node49.html">Preconditioner data structure</A>
<LI><A NAME="tex2html189"
HREF="node63.html">Communication routines</A>
HREF="node50.html">Heap data structure</A>
</UL>
<BR>
<LI><A NAME="tex2html190"
HREF="node68.html">Data management routines</A>
HREF="node51.html">Computational routines</A>
<LI><A NAME="tex2html191"
HREF="node96.html">Parallel environment routines</A>
HREF="node65.html">Communication routines</A>
<LI><A NAME="tex2html192"
HREF="node113.html">Error handling</A>
HREF="node70.html">Data management routines</A>
<LI><A NAME="tex2html193"
HREF="node114.html">Utilities</A>
HREF="node98.html">Parallel environment routines</A>
<LI><A NAME="tex2html194"
HREF="node121.html">Preconditioner routines</A>
HREF="node115.html">Error handling</A>
<LI><A NAME="tex2html195"
HREF="node127.html">Iterative Methods</A>
HREF="node116.html">Utilities</A>
<LI><A NAME="tex2html196"
HREF="node129.html">Bibliography</A>
HREF="node123.html">Preconditioner routines</A>
<LI><A NAME="tex2html197"
HREF="node129.html">Iterative Methods</A>
<LI><A NAME="tex2html198"
HREF="node131.html">Bibliography</A>
</UL>
<!--End of Table of Contents-->
<P>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html344"
<A NAME="tex2html348"
HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html340"
<A NAME="tex2html344"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html334"
<A NAME="tex2html338"
HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html342"
<A NAME="tex2html346"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html345"
<B> Next:</B> <A NAME="tex2html349"
HREF="node11.html">Descriptor Methods</A>
<B> Up:</B> <A NAME="tex2html341"
<B> Up:</B> <A NAME="tex2html345"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html335"
<B> Previous:</B> <A NAME="tex2html339"
HREF="node9.html">Data Structures and Classes</A>
&nbsp; <B> <A NAME="tex2html343"
&nbsp; <B> <A NAME="tex2html347"
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.&nbsp;<A HREF="node68.html#sec:toolsrout">6</A> or the query routines detailed below;
Sec.&nbsp;<A HREF="node70.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&nbsp;<A HREF="node68.html#sec:toolsrout">6</A>).
the mode of initialization (see also&nbsp;<A HREF="node70.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&nbsp;2003 declaration for <code>psb_desc_type</code> structures is
as follows:
<DIV ALIGN="CENTER"><A NAME="fig:desctype"></A><A NAME="878"></A>
<DIV ALIGN="CENTER"><A NAME="fig:desctype"></A><A NAME="912"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
The PSBLAS defined data type that
@ -250,54 +250,54 @@ state, which can take the following values:
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html346"
<LI><A NAME="tex2html350"
HREF="node11.html">Descriptor Methods</A>
<LI><A NAME="tex2html347"
<LI><A NAME="tex2html351"
HREF="node12.html">get_local_rows -- Get number of local rows</A>
<LI><A NAME="tex2html348"
<LI><A NAME="tex2html352"
HREF="node13.html">get_local_cols -- Get number of local cols</A>
<LI><A NAME="tex2html349"
<LI><A NAME="tex2html353"
HREF="node14.html">get_global_rows -- Get number of global rows</A>
<LI><A NAME="tex2html350"
<LI><A NAME="tex2html354"
HREF="node15.html">get_global_cols -- Get number of global cols</A>
<LI><A NAME="tex2html351"
<LI><A NAME="tex2html355"
HREF="node16.html">get_global_indices -- Get vector of global indices</A>
<LI><A NAME="tex2html352"
<LI><A NAME="tex2html356"
HREF="node17.html">get_context -- Get communication context</A>
<LI><A NAME="tex2html353"
<LI><A NAME="tex2html357"
HREF="node18.html">Clone -- clone current object</A>
<LI><A NAME="tex2html354"
<LI><A NAME="tex2html358"
HREF="node19.html">psb_cd_get_large_threshold -- Get threshold for
index mapping switch</A>
<LI><A NAME="tex2html355"
<LI><A NAME="tex2html359"
HREF="node20.html">psb_cd_set_large_threshold -- Set threshold for
index mapping switch</A>
<LI><A NAME="tex2html356"
<LI><A NAME="tex2html360"
HREF="node21.html">Named Constants</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html344"
<A NAME="tex2html348"
HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html340"
<A NAME="tex2html344"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html334"
<A NAME="tex2html338"
HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html342"
<A NAME="tex2html346"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html345"
<B> Next:</B> <A NAME="tex2html349"
HREF="node11.html">Descriptor Methods</A>
<B> Up:</B> <A NAME="tex2html341"
<B> Up:</B> <A NAME="tex2html345"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html335"
<B> Previous:</B> <A NAME="tex2html339"
HREF="node9.html">Data Structures and Classes</A>
&nbsp; <B> <A NAME="tex2html343"
&nbsp; <B> <A NAME="tex2html347"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_get_mpicomm -- Get the MPI communicator</TITLE>
<META NAME="description" CONTENT="psb_get_mpicomm -- Get the MPI communicator">
<TITLE>psb_info -- Return information about PSBLAS parallel environment</TITLE>
<META NAME="description" CONTENT="psb_info -- Return information about PSBLAS parallel environment">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,48 +20,50 @@ 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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node101.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1504"
<A NAME="tex2html1510"
HREF="node101.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1500"
HREF="node96.html">
<A NAME="tex2html1506"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1494"
<A NAME="tex2html1500"
HREF="node99.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1502"
<A NAME="tex2html1508"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1505"
HREF="node101.html">psb_get_rank Get</A>
<B> Up:</B> <A NAME="tex2html1501"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1495"
HREF="node99.html">psb_exit Exit</A>
&nbsp; <B> <A NAME="tex2html1503"
<B> Next:</B> <A NAME="tex2html1511"
HREF="node101.html">psb_exit Exit</A>
<B> Up:</B> <A NAME="tex2html1507"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1501"
HREF="node99.html">psb_init Initializes</A>
&nbsp; <B> <A NAME="tex2html1509"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00084000000000000000">
psb_get_mpicomm -- Get the MPI communicator</A>
<H2><A NAME="SECTION00082000000000000000">
psb_info -- Return information about PSBLAS parallel
environment</A>
</H2>
<P>
<PRE>
call psb_get_mpicomm(icontxt, icomm)
call psb_info(icontxt, iam, np)
</PRE>
<P>
This subroutine returns the MPI communicator associated with a PSBLAS context
This subroutine returns information about the PSBLAS parallel environment, defining
a virtual parallel machine.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
@ -88,19 +90,83 @@ Specified as: an integer variable.
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>icomm</STRONG></DT>
<DD>The MPI communicator associated with the PSBLAS virtual parallel machine.
<DT><STRONG>iam</STRONG></DT>
<DD>Identifier of current process in the PSBLAS virtual parallel machine.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>out</B>.
<BR>
Specified as: an integer value. <!-- MATH
$-1 \le iam \le np-1$
-->
<IMG
WIDTH="139" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img126.png"
ALT="$-1 \le iam \le np-1$"> </DD>
<DT><STRONG>np</STRONG></DT>
<DD>Number of processes in the PSBLAS virtual parallel machine.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>out</B>.
<BR></DD>
<BR>
Specified as: an integer variable. </DD>
</DL>
<P>
<BR><HR>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>For processes in the virtual parallel machine the identifier
will satisfy <!-- MATH
$0 \le iam \le np-1$
-->
<IMG
WIDTH="128" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img127.png"
ALT="$0 \le iam \le np-1$">;
</LI>
<LI>If the user has requested on <code>psb_init</code> a number of
processes less than the total available in the parallel execution
environment, the remaining processes will have on return <IMG
WIDTH="73" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
ALT="$iam=-1$">;
the only call involving <code>icontxt</code> that any such process may
execute is to <code>psb_exit</code>.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1510"
HREF="node101.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1506"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1500"
HREF="node99.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1508"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1511"
HREF="node101.html">psb_exit Exit</A>
<B> Up:</B> <A NAME="tex2html1507"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1501"
HREF="node99.html">psb_init Initializes</A>
&nbsp; <B> <A NAME="tex2html1509"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -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_get_rank -- Get the MPI rank</TITLE>
<META NAME="description" CONTENT="psb_get_rank -- Get the MPI rank">
<TITLE>psb_exit -- Exit from PSBLAS parallel environment</TITLE>
<META NAME="description" CONTENT="psb_exit -- Exit from PSBLAS parallel environment">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,54 +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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node102.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1516"
<A NAME="tex2html1522"
HREF="node102.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1512"
HREF="node96.html">
<A NAME="tex2html1518"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1506"
<A NAME="tex2html1512"
HREF="node100.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1514"
<A NAME="tex2html1520"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1517"
HREF="node102.html">psb_wtime Wall</A>
<B> Up:</B> <A NAME="tex2html1513"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1507"
HREF="node100.html">psb_get_mpicomm Get</A>
&nbsp; <B> <A NAME="tex2html1515"
<B> Next:</B> <A NAME="tex2html1523"
HREF="node102.html">psb_get_mpicomm Get</A>
<B> Up:</B> <A NAME="tex2html1519"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1513"
HREF="node100.html">psb_info Return</A>
&nbsp; <B> <A NAME="tex2html1521"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00085000000000000000">
psb_get_rank -- Get the MPI rank</A>
<H2><A NAME="SECTION00083000000000000000">
psb_exit -- Exit from PSBLAS parallel
environment</A>
</H2>
<P>
<PRE>
call psb_get_rank(rank, icontxt, id)
call psb_exit(icontxt)
call psb_exit(icontxt,close)
</PRE>
<P>
This subroutine returns the MPI rank of the PSBLAS process <IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img129.png"
ALT="$id$">
This subroutine exits from 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>
@ -84,45 +83,69 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>id</STRONG></DT>
<DD>Identifier of a process in the PSBLAS virtual parallel machine.
<DT><STRONG>close</STRONG></DT>
<DD>Whether to close all data structures related to the
virtual parallel machine, besides those associated with icontxt.
<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 value. <!-- MATH
$0 \le id \le np-1$
-->
<IMG
WIDTH="113" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img130.png"
ALT="$0 \le id \le np-1$"> </DD>
Specified as: a logical variable, default value: true.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>rank</STRONG></DT>
<DD>The MPI rank associated with the PSBLAS process <IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img129.png"
ALT="$id$">.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>out</B>.
<BR></DD>
</DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>This routine may be called even if a previous call to
<code>psb_info</code> has returned with <IMG
WIDTH="73" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img128.png"
ALT="$iam=-1$">; indeed, it it is the only
routine that may be called with argument <code>icontxt</code> in this
situation.
</LI>
<LI>A call to this routine with <code>close=.true.</code> implies a call
to <code>MPI_Finalize</code>, after which no parallel routine may be called.
</LI>
<LI>If the user whishes to use multiple communication contexts in the
same program, or to enter and exit multiple times into the parallel
environment, this routine may be called to
selectively close the contexts with <code>close=.false.</code>, while on
the last call it should be called with <code>close=.true.</code> to
shutdown in a clean way the entire parallel environment.
</LI>
</OL>
<P>
<BR><HR>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1522"
HREF="node102.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1518"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1512"
HREF="node100.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1520"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1523"
HREF="node102.html">psb_get_mpicomm Get</A>
<B> Up:</B> <A NAME="tex2html1519"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1513"
HREF="node100.html">psb_info Return</A>
&nbsp; <B> <A NAME="tex2html1521"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -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_wtime -- Wall clock timing</TITLE>
<META NAME="description" CONTENT="psb_wtime -- Wall clock timing">
<TITLE>psb_get_mpicomm -- Get the MPI communicator</TITLE>
<META NAME="description" CONTENT="psb_get_mpicomm -- Get the MPI communicator">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,61 +20,83 @@ 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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node103.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1528"
<A NAME="tex2html1534"
HREF="node103.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1524"
HREF="node96.html">
<A NAME="tex2html1530"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1518"
<A NAME="tex2html1524"
HREF="node101.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1526"
<A NAME="tex2html1532"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1529"
HREF="node103.html">psb_barrier Sinchronization</A>
<B> Up:</B> <A NAME="tex2html1525"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1519"
HREF="node101.html">psb_get_rank Get</A>
&nbsp; <B> <A NAME="tex2html1527"
<B> Next:</B> <A NAME="tex2html1535"
HREF="node103.html">psb_get_rank Get</A>
<B> Up:</B> <A NAME="tex2html1531"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1525"
HREF="node101.html">psb_exit Exit</A>
&nbsp; <B> <A NAME="tex2html1533"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00086000000000000000">
psb_wtime -- Wall clock timing</A>
<H2><A NAME="SECTION00084000000000000000">
psb_get_mpicomm -- Get the MPI communicator</A>
</H2>
<P>
<PRE>
time = psb_wtime()
call psb_get_mpicomm(icontxt, icomm)
</PRE>
<P>
This function returns a wall clock timer. The resolution of the timer
is dependent on the underlying parallel environment implementation.
This subroutine returns the MPI communicator associated with a PSBLAS context
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Exit </B></STRONG></DT>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>Function value</STRONG></DT>
<DD>the elapsed time in seconds.
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context identifying the virtual
parallel machine.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Returned as: a <code>real(psb_dpk_)</code> variable.
Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>icomm</STRONG></DT>
<DD>The MPI communicator associated with the PSBLAS virtual parallel machine.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>out</B>.
<BR></DD>
</DL>
<P>

@ -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_get_rank -- Get the MPI rank</TITLE>
<META NAME="description" CONTENT="psb_get_rank -- Get the MPI rank">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,53 +20,54 @@ 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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node104.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1540"
<A NAME="tex2html1546"
HREF="node104.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1536"
HREF="node96.html">
<A NAME="tex2html1542"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1530"
<A NAME="tex2html1536"
HREF="node102.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1538"
<A NAME="tex2html1544"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1541"
HREF="node104.html">psb_abort Abort</A>
<B> Up:</B> <A NAME="tex2html1537"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1531"
HREF="node102.html">psb_wtime Wall</A>
&nbsp; <B> <A NAME="tex2html1539"
<B> Next:</B> <A NAME="tex2html1547"
HREF="node104.html">psb_wtime Wall</A>
<B> Up:</B> <A NAME="tex2html1543"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1537"
HREF="node102.html">psb_get_mpicomm Get</A>
&nbsp; <B> <A NAME="tex2html1545"
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="SECTION00085000000000000000">
psb_get_rank -- Get the MPI rank</A>
</H2>
<P>
<PRE>
call psb_barrier(icontxt)
call psb_get_rank(rank, icontxt, id)
</PRE>
<P>
This subroutine acts as an explicit synchronization point for the PSBLAS
parallel virtual machine.
This subroutine returns the MPI rank of the PSBLAS process <IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img129.png"
ALT="$id$">
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
@ -83,6 +84,41 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>id</STRONG></DT>
<DD>Identifier of a process in the PSBLAS virtual parallel machine.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value. <!-- MATH
$0 \le id \le np-1$
-->
<IMG
WIDTH="113" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img130.png"
ALT="$0 \le id \le np-1$"> </DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>rank</STRONG></DT>
<DD>The MPI rank associated with the PSBLAS process <IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img129.png"
ALT="$id$">.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>out</B>.
<BR></DD>
</DL>
<P>

@ -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_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,66 +20,60 @@ 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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node105.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1552"
<A NAME="tex2html1558"
HREF="node105.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1548"
HREF="node96.html">
<A NAME="tex2html1554"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1542"
<A NAME="tex2html1548"
HREF="node103.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1550"
<A NAME="tex2html1556"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1553"
HREF="node105.html">psb_bcast Broadcast</A>
<B> Up:</B> <A NAME="tex2html1549"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1543"
HREF="node103.html">psb_barrier Sinchronization</A>
&nbsp; <B> <A NAME="tex2html1551"
<B> Next:</B> <A NAME="tex2html1559"
HREF="node105.html">psb_barrier Sinchronization</A>
<B> Up:</B> <A NAME="tex2html1555"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1549"
HREF="node103.html">psb_get_rank Get</A>
&nbsp; <B> <A NAME="tex2html1557"
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="SECTION00086000000000000000">
psb_wtime -- Wall clock timing</A>
</H2>
<P>
<PRE>
call psb_abort(icontxt)
time = psb_wtime()
</PRE>
<P>
This subroutine aborts computation on the 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>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.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<DT><STRONG>Function value</STRONG></DT>
<DD>the elapsed time in seconds.
<BR>
Specified as: an integer variable.
Returned as: a <code>real(psb_dpk_)</code> variable.
</DD>
</DL>

@ -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_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,49 +20,50 @@ 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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node106.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1564"
<A NAME="tex2html1570"
HREF="node106.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1560"
HREF="node96.html">
<A NAME="tex2html1566"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1554"
<A NAME="tex2html1560"
HREF="node104.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1562"
<A NAME="tex2html1568"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1565"
HREF="node106.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1561"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1555"
HREF="node104.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1563"
<B> Next:</B> <A NAME="tex2html1571"
HREF="node106.html">psb_abort Abort</A>
<B> Up:</B> <A NAME="tex2html1567"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1561"
HREF="node104.html">psb_wtime Wall</A>
&nbsp; <B> <A NAME="tex2html1569"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00089000000000000000">
psb_bcast -- Broadcast data</A>
<H2><A NAME="SECTION00087000000000000000">
psb_barrier -- Sinchronization point parallel
environment</A>
</H2>
<P>
<PRE>
call psb_bcast(icontxt, dat, root)
call psb_barrier(icontxt)
</PRE>
<P>
This subroutine implements a broadcast operation based on the
underlying communication library.
This subroutine acts as an explicit synchronization point for the PSBLAS
parallel virtual machine.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
@ -82,81 +83,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="153" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img131.png"
ALT="$0&lt;= root &lt;= 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="tex2html1564"
HREF="node106.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1560"
HREF="node96.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1554"
HREF="node104.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1562"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1565"
HREF="node106.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1561"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1555"
HREF="node104.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1563"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<BR><HR>
</BODY>
</HTML>

@ -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_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="node107.html">
<LINK REL="previous" HREF="node105.html">
<LINK REL="up" HREF="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node107.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1576"
<A NAME="tex2html1582"
HREF="node107.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1572"
HREF="node96.html">
<A NAME="tex2html1578"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1566"
<A NAME="tex2html1572"
HREF="node105.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1574"
<A NAME="tex2html1580"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1577"
HREF="node107.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1573"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1567"
HREF="node105.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1575"
<B> Next:</B> <A NAME="tex2html1583"
HREF="node107.html">psb_bcast Broadcast</A>
<B> Up:</B> <A NAME="tex2html1579"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1573"
HREF="node105.html">psb_barrier Sinchronization</A>
&nbsp; <B> <A NAME="tex2html1581"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000810000000000000000">
psb_sum -- Global sum</A>
<H2><A NAME="SECTION00088000000000000000">
psb_abort -- Abort a computation</A>
</H2>
<P>
<PRE>
call psb_sum(icontxt, dat, root)
call psb_abort(icontxt)
</PRE>
<P>
This subroutine implements a sum reduction 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,98 +81,10 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global sum.
<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. 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="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png"
ALT="$-1$"> to make it available
on all processes.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$-1<= root <= np-1$
-->
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1. </DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the sum 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>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="tex2html1576"
HREF="node107.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1572"
HREF="node96.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1566"
HREF="node105.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1574"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1577"
HREF="node107.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1573"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1567"
HREF="node105.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1575"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<BR><HR>
</BODY>
</HTML>

@ -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_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,49 +20,49 @@ 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="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node108.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1588"
<A NAME="tex2html1594"
HREF="node108.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1584"
HREF="node96.html">
<A NAME="tex2html1590"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1578"
<A NAME="tex2html1584"
HREF="node106.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1586"
<A NAME="tex2html1592"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1589"
HREF="node108.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1585"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1579"
HREF="node106.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1587"
<B> Next:</B> <A NAME="tex2html1595"
HREF="node108.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1591"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1585"
HREF="node106.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1593"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000811000000000000000">
psb_max -- Global maximum</A>
<H2><A NAME="SECTION00089000000000000000">
psb_bcast -- Broadcast data</A>
</H2>
<P>
<PRE>
call psb_max(icontxt, dat, root)
call psb_bcast(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a maximum valuereduction
operation based on the underlying communication library.
This subroutine implements a broadcast operation based on the
underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
@ -83,23 +83,20 @@ Intent: <B>in</B>.
Specified as: an integer variable.
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global maximum.
<DD>On the root process, the data to be broadcast.
<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
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, 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 maximum, or <IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.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,13 +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="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
WIDTH="153" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img131.png"
ALT="$0&lt;= root &lt;= np-1$">, default 0 </DD>
</DL>
<P>
@ -123,54 +119,42 @@ 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 processes other than root, the data to be broadcast.
<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, 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="tex2html1588"
<A NAME="tex2html1594"
HREF="node108.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1584"
HREF="node96.html">
<A NAME="tex2html1590"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1578"
<A NAME="tex2html1584"
HREF="node106.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1586"
<A NAME="tex2html1592"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1589"
HREF="node108.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1585"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1579"
HREF="node106.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1587"
<B> Next:</B> <A NAME="tex2html1595"
HREF="node108.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1591"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1585"
HREF="node106.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1593"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_min -- Global minimum</TITLE>
<META NAME="description" CONTENT="psb_min -- Global minimum">
<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="node109.html">
<LINK REL="previous" HREF="node107.html">
<LINK REL="up" HREF="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node109.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1600"
<A NAME="tex2html1606"
HREF="node109.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1596"
HREF="node96.html">
<A NAME="tex2html1602"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1590"
<A NAME="tex2html1596"
HREF="node107.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1598"
<A NAME="tex2html1604"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1601"
HREF="node109.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1597"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1591"
HREF="node107.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1599"
<B> Next:</B> <A NAME="tex2html1607"
HREF="node109.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1603"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1597"
HREF="node107.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1605"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000812000000000000000">
psb_min -- Global minimum</A>
<H2><A NAME="SECTION000810000000000000000">
psb_sum -- Global sum</A>
</H2>
<P>
<PRE>
call psb_min(icontxt, dat, root)
call psb_sum(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a minimum value reduction
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 minimum.
<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 value, or <IMG
<DD>Process to hold the final sum, or <IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png"
ALT="$-1$"> to make it available
@ -113,8 +113,7 @@ Specified as: an integer value <!-- MATH
<IMG
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
ALT="$-1&lt;= root &lt;= np-1$">, default -1. </DD>
</DL>
<P>
@ -123,7 +122,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 sum operation.
<BR>
Scope: <B>global</B>.
<BR>
@ -131,7 +130,7 @@ 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.
<BR>
Type, kind, rank and size must agree on all processes.
@ -153,26 +152,26 @@ Type, kind, rank and size must agree on all processes.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1600"
<A NAME="tex2html1606"
HREF="node109.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1596"
HREF="node96.html">
<A NAME="tex2html1602"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1590"
<A NAME="tex2html1596"
HREF="node107.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1598"
<A NAME="tex2html1604"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1601"
HREF="node109.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1597"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1591"
HREF="node107.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1599"
<B> Next:</B> <A NAME="tex2html1607"
HREF="node109.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1603"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1597"
HREF="node107.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1605"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_amx -- Global maximum absolute value</TITLE>
<META NAME="description" CONTENT="psb_amx -- Global maximum absolute value">
<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="node110.html">
<LINK REL="previous" HREF="node108.html">
<LINK REL="up" HREF="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node110.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1612"
<A NAME="tex2html1618"
HREF="node110.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1608"
HREF="node96.html">
<A NAME="tex2html1614"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1602"
<A NAME="tex2html1608"
HREF="node108.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1610"
<A NAME="tex2html1616"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1613"
HREF="node110.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1609"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1603"
HREF="node108.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1611"
<B> Next:</B> <A NAME="tex2html1619"
HREF="node110.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1615"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1609"
HREF="node108.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1617"
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="SECTION000811000000000000000">
psb_max -- Global maximum</A>
</H2>
<P>
<PRE>
call psb_amx(icontxt, dat, root)
call psb_max(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a maximum absolute value reduction
This subroutine implements a maximum valuereduction
operation based on the underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
@ -91,11 +91,11 @@ 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>
<DD>Process to hold the final value, or <IMG
<DD>Process to hold the final maximum, or <IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png"
ALT="$-1$"> to make it available
@ -129,9 +129,9 @@ Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
Intent: <B>in</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>
</DL>
@ -151,26 +151,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="tex2html1612"
<A NAME="tex2html1618"
HREF="node110.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1608"
HREF="node96.html">
<A NAME="tex2html1614"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1602"
<A NAME="tex2html1608"
HREF="node108.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1610"
<A NAME="tex2html1616"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1613"
HREF="node110.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1609"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1603"
HREF="node108.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1611"
<B> Next:</B> <A NAME="tex2html1619"
HREF="node110.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1615"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1609"
HREF="node108.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1617"
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="tex2html367"
<A NAME="tex2html371"
HREF="node12.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html363"
<A NAME="tex2html367"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html357"
<A NAME="tex2html361"
HREF="node10.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html365"
<A NAME="tex2html369"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html368"
<B> Next:</B> <A NAME="tex2html372"
HREF="node12.html">get_local_rows Get</A>
<B> Up:</B> <A NAME="tex2html364"
<B> Up:</B> <A NAME="tex2html368"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html358"
<B> Previous:</B> <A NAME="tex2html362"
HREF="node10.html">Descriptor data structure</A>
&nbsp; <B> <A NAME="tex2html366"
&nbsp; <B> <A NAME="tex2html370"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -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_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="node111.html">
<LINK REL="previous" HREF="node109.html">
<LINK REL="up" HREF="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node111.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1624"
<A NAME="tex2html1630"
HREF="node111.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1620"
HREF="node96.html">
<A NAME="tex2html1626"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1614"
<A NAME="tex2html1620"
HREF="node109.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1622"
<A NAME="tex2html1628"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1625"
HREF="node111.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1621"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1615"
HREF="node109.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1623"
<B> Next:</B> <A NAME="tex2html1631"
HREF="node111.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1627"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1621"
HREF="node109.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1629"
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="SECTION000812000000000000000">
psb_min -- Global minimum</A>
</H2>
<P>
<PRE>
call psb_amn(icontxt, dat, root)
call psb_min(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a minimum absolute value reduction
This subroutine implements a minimum value reduction
operation based on the underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
@ -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>
@ -131,7 +131,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.
<BR>
Type, kind, rank and size must agree on all processes.
@ -153,26 +153,26 @@ Type, kind, rank and size must agree on all processes.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1624"
<A NAME="tex2html1630"
HREF="node111.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1620"
HREF="node96.html">
<A NAME="tex2html1626"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1614"
<A NAME="tex2html1620"
HREF="node109.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1622"
<A NAME="tex2html1628"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1625"
HREF="node111.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1621"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1615"
HREF="node109.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1623"
<B> Next:</B> <A NAME="tex2html1631"
HREF="node111.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1627"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1621"
HREF="node109.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1629"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_snd -- Send data</TITLE>
<META NAME="description" CONTENT="psb_snd -- Send data">
<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,51 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node112.html">
<LINK REL="previous" HREF="node110.html">
<LINK REL="up" HREF="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node112.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1636"
<A NAME="tex2html1642"
HREF="node112.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1632"
HREF="node96.html">
<A NAME="tex2html1638"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1626"
<A NAME="tex2html1632"
HREF="node110.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1634"
<A NAME="tex2html1640"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1637"
HREF="node112.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1633"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1627"
HREF="node110.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1635"
<B> Next:</B> <A NAME="tex2html1643"
HREF="node112.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1639"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1633"
HREF="node110.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1641"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000815000000000000000">
psb_snd -- Send data</A>
<H2><A NAME="SECTION000813000000000000000">
psb_amx -- Global maximum absolute value</A>
</H2>
<P>
<PRE>
call psb_snd(icontxt, dat, dst, m)
call psb_amx(icontxt, dat, root)
</PRE>
<P>
This subroutine sends a packet of data to a destination.
This subroutine implements a maximum 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 maximum.
<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="14" ALIGN="BOTTOM" BORDER="0"
SRC="img133.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="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.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="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img134.png"
ALT="$0&lt;= dst &lt;= np-1$">.
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$-1&lt;= root &lt;= 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="172" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="26" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img136.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="83" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img137.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
</DL>
<P>
@ -148,43 +122,55 @@ 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 maximum 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. 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="25" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img138.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="tex2html1636"
<A NAME="tex2html1642"
HREF="node112.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1632"
HREF="node96.html">
<A NAME="tex2html1638"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1626"
<A NAME="tex2html1632"
HREF="node110.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1634"
<A NAME="tex2html1640"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1637"
HREF="node112.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1633"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1627"
HREF="node110.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1635"
<B> Next:</B> <A NAME="tex2html1643"
HREF="node112.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1639"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1633"
HREF="node110.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1641"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_rcv -- Receive data</TITLE>
<META NAME="description" CONTENT="psb_rcv -- Receive 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">
@ -18,52 +18,54 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node113.html">
<LINK REL="previous" HREF="node111.html">
<LINK REL="up" HREF="node96.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node113.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1646"
<A NAME="tex2html1654"
HREF="node113.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1642"
HREF="node96.html">
<A NAME="tex2html1650"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1638"
<A NAME="tex2html1644"
HREF="node111.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1644"
<A NAME="tex2html1652"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1647"
HREF="node113.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1643"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1639"
HREF="node111.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1645"
<B> Next:</B> <A NAME="tex2html1655"
HREF="node113.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1651"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1645"
HREF="node111.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1653"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000816000000000000000">
psb_rcv -- Receive data</A>
<H2><A NAME="SECTION000814000000000000000">
psb_amn -- Global minimum absolute value</A>
</H2>
<P>
<PRE>
call psb_rcv(icontxt, dat, src, m)
call psb_amn(icontxt, dat, root)
</PRE>
<P>
This subroutine receives 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>
@ -80,50 +82,39 @@ 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 local contribution to the global minimum.
<BR>
Scope: <B>global</B>.
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
Intent: <B>inout</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= src <= np-1$
-->
<IMG
WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img139.png"
ALT="$0&lt;= src &lt;= np-1$">.
<BR></DD>
<DT><STRONG>m</STRONG></DT>
<DD>Number of rows.
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 value, or <IMG
WIDTH="24" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png"
ALT="$-1$"> to make it available
on all processes.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>Optional</B>.
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= m <= size(dat,1)$
$-1<= root <= np-1$
-->
<IMG
WIDTH="172" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="26" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img136.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="83" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img137.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>
<P>
@ -132,20 +123,18 @@ same value on sending and receiving processes.
<DD>
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The data to be received.
<DD>On destination process(es), the result of the minimum operation.
<BR>
Scope: <B>local</B>.
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 and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img133.png"
ALT="$m$"> is
not specified, size must agree as well.
scalar, or a rank 1 or 2 array.
<BR>
Type, kind, rank and size must agree on all processes.
</DD>
</DL>
@ -153,37 +142,37 @@ not specified, size must agree as well.
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>This subroutine implies a synchronization, but only between the
calling process and the source process <IMG
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img140.png"
ALT="$src$">.
<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="tex2html1646"
<A NAME="tex2html1654"
HREF="node113.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1642"
HREF="node96.html">
<A NAME="tex2html1650"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1638"
<A NAME="tex2html1644"
HREF="node111.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1644"
<A NAME="tex2html1652"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1647"
HREF="node113.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1643"
HREF="node96.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1639"
HREF="node111.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1645"
<B> Next:</B> <A NAME="tex2html1655"
HREF="node113.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1651"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1645"
HREF="node111.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1653"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Error handling</TITLE>
<META NAME="description" CONTENT="Error handling">
<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">
@ -19,324 +19,172 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node114.html">
<LINK REL="previous" HREF="node96.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="previous" HREF="node112.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node114.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1658"
<A NAME="tex2html1666"
HREF="node114.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1654"
HREF="userhtml.html">
<A NAME="tex2html1662"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1648"
<A NAME="tex2html1656"
HREF="node112.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1656"
<A NAME="tex2html1664"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1659"
HREF="node114.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1655"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1649"
HREF="node112.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1657"
<B> Next:</B> <A NAME="tex2html1667"
HREF="node114.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1663"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1657"
HREF="node112.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1665"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00090000000000000000">
Error handling</A>
</H1>
<P>
The PSBLAS library error handling policy has been completely rewritten
in version 2.0. The idea behind the design of this new error handling
strategy is to keep error messages on a stack allowing the user to
trace back up to the point where the first error message has been
generated. Every routine in the PSBLAS-2.0 library has, as last
non-optional argument, an integer <code>info</code> variable; whenever,
inside the routine, an error is detected, this variable is set to a
value corresponding to a specific error code. Then this error code is
also pushed on the error stack and then either control is returned to
the caller routine or the execution is aborted, depending on the users
choice. At the time when the execution is aborted, an error message is
printed on standard output with a level of verbosity than can be
chosen by the user. If the execution is not aborted, then, the caller
routine checks the value returned in the <code>info</code> variable and, if
not zero, an error condition is raised. This process continues on all the
levels of nested calls until the level where the user decides to abort
the program execution.
<P>
Figure&nbsp;<A HREF="#fig:routerr">9</A> shows the layout of a generic <code>psb_foo</code>
routine with respect to the PSBLAS-2.0 error handling policy. It is
possible to see how, whenever an error condition is detected, the
<code>info</code> variable is set to the corresponding error code which is,
then, pushed on top of the stack by means of the
<code>psb_errpush</code>. An error condition may be directly detected inside
a routine or indirectly checking the error code returned returned by a
called routine. Whenever an error is encountered, after it has been
pushed on stack, the program execution skips to a point where the
error condition is handled; the error condition is handled either by
returning control to the caller routine or by calling the
<code>psb\_error</code> routine which prints the content of the error stack
and aborts the program execution, according to the choice made by the
user with <code>psb_set_erraction</code>. The default is to print the error
and terminate the program, but the user may choose to handle the error
explicitly.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="7135"></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="562" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img142.png"
ALT="\fbox{\TheSbox}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
Figure&nbsp;<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="7136"></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="562" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img142.png"
ALT="\fbox{\TheSbox}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
stack
<H2><A NAME="SECTION000815000000000000000">
psb_snd -- Send data</A>
</H2>
<P>
<BR>
<IMG
WIDTH="423" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img144.png"
ALT="\begin{lstlisting}
call psb_errpush(err_c, r_name, i_err, a_err)
\end{lstlisting}">
<BR>
<PRE>
call psb_snd(icontxt, dat, dst, m)
</PRE>
<P>
This subroutine sends 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>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>err_c</STRONG></DT>
<DD>the error code
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context identifying the virtual
parallel machine.
<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.
Specified as: an integer variable.
</DD>
<DT><STRONG>r_name</STRONG></DT>
<DD>the soutine where the error has been caught.
<DT><STRONG>dat</STRONG></DT>
<DD>The data to be sent.
<BR>
Scope: <B>local</B>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>
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
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="14" ALIGN="BOTTOM" BORDER="0"
SRC="img133.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
<DT><STRONG>dst</STRONG></DT>
<DD>Destination process.
<BR>
Scope: <B>local</B>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>
Type: <B>required</B>.
<BR>
Specified as: a string.
<BR></DD>
</DL>
<P>
ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
execution
<P>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= dst <= np-1$
-->
<IMG
WIDTH="214" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img145.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>
<DD>
</DD>
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context.
WIDTH="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img134.png"
ALT="$0&lt;= dst &lt;= np-1$">.
<BR></DD>
<DT><STRONG>m</STRONG></DT>
<DD>Number of rows.
<BR>
Scope: <B>global</B>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>
Type: <B>Optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer.
Specified as: an integer value <!-- MATH
$0<= m <= size(dat,1)$
-->
<IMG
WIDTH="172" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="26" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img136.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="83" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img137.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="img146.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
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer.
</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="291" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img147.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 destination process <IMG
WIDTH="25" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img138.png"
ALT="$dst$">.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1658"
<A NAME="tex2html1666"
HREF="node114.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1654"
HREF="userhtml.html">
<A NAME="tex2html1662"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1648"
<A NAME="tex2html1656"
HREF="node112.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1656"
<A NAME="tex2html1664"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1659"
HREF="node114.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1655"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1649"
HREF="node112.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1657"
<B> Next:</B> <A NAME="tex2html1667"
HREF="node114.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1663"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1657"
HREF="node112.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1665"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Utilities</TITLE>
<META NAME="description" CONTENT="Utilities">
<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,77 +18,174 @@ 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="node113.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="up" HREF="node98.html">
<LINK REL="next" HREF="node115.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1670"
<A NAME="tex2html1676"
HREF="node115.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1666"
HREF="userhtml.html">
<A NAME="tex2html1672"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1660"
<A NAME="tex2html1668"
HREF="node113.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1668"
<A NAME="tex2html1674"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1671"
HREF="node115.html">hb_read Read</A>
<B> Up:</B> <A NAME="tex2html1667"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1661"
HREF="node113.html">Error handling</A>
&nbsp; <B> <A NAME="tex2html1669"
<B> Next:</B> <A NAME="tex2html1677"
HREF="node115.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1673"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1669"
HREF="node113.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1675"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION000100000000000000000"></A>
<A NAME="sec:util"></A>
<H2><A NAME="SECTION000816000000000000000">
psb_rcv -- Receive data</A>
</H2>
<P>
<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>Synchronous: see usage notes.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context identifying the virtual
parallel machine.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
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="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img139.png"
ALT="$0&lt;= src &lt;= 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="172" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
Utilities
</H1>
When <IMG
WIDTH="26" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img136.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="83" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img137.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
</DL>
<P>
We have some utitlities available for input and output of
sparse matrices; the interfaces to these routines are available in the
module <code>psb_util_mod</code>.
<DL>
<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="14" ALIGN="BOTTOM" BORDER="0"
SRC="img133.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
</DL>
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>This subroutine implies a synchronization, but only between the
calling process and the source process <IMG
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img140.png"
ALT="$src$">.
</LI>
</OL>
<UL>
<LI><A NAME="tex2html1672"
HREF="node115.html">hb_read -- Read a sparse matrix from a file in the
Harwell-Boeing format</A>
<LI><A NAME="tex2html1673"
HREF="node116.html">hb_write -- Write a sparse matrix to a file
in the Harwell-Boeing format</A>
<LI><A NAME="tex2html1674"
HREF="node117.html">mm_mat_read -- Read a sparse matrix from a
file in the MatrixMarket format</A>
<LI><A NAME="tex2html1675"
HREF="node118.html">mm_array_read -- Read a dense array from a
file in the MatrixMarket format</A>
<LI><A NAME="tex2html1676"
HREF="node119.html">mm_mat_write -- Write a sparse matrix to a
file in the MatrixMarket format</A>
<LI><A NAME="tex2html1677"
HREF="node120.html">mm_array_write -- Write a dense array from a
file in the MatrixMarket format</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1676"
HREF="node115.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1672"
HREF="node98.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1668"
HREF="node113.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1674"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1677"
HREF="node115.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1673"
HREF="node98.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1669"
HREF="node113.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1675"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format</TITLE>
<META NAME="description" CONTENT="hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format">
<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,8 +19,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node116.html">
<LINK REL="previous" HREF="node114.html">
<LINK REL="up" HREF="node114.html">
<LINK REL="previous" HREF="node98.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node116.html">
</HEAD>
@ -30,7 +30,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
HREF="node116.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1684"
HREF="node114.html">
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1678"
HREF="node114.html">
@ -40,29 +40,121 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1689"
HREF="node116.html">hb_write Write</A>
HREF="node116.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1685"
HREF="node114.html">Utilities</A>
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1679"
HREF="node114.html">Utilities</A>
HREF="node114.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1687"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000101000000000000000">
hb_read -- Read a sparse matrix from a file in the
Harwell-Boeing format</A>
</H2>
<H1><A NAME="SECTION00090000000000000000">
Error handling</A>
</H1>
<P>
The PSBLAS library error handling policy has been completely rewritten
in version 2.0. The idea behind the design of this new error handling
strategy is to keep error messages on a stack allowing the user to
trace back up to the point where the first error message has been
generated. Every routine in the PSBLAS-2.0 library has, as last
non-optional argument, an integer <code>info</code> variable; whenever,
inside the routine, an error is detected, this variable is set to a
value corresponding to a specific error code. Then this error code is
also pushed on the error stack and then either control is returned to
the caller routine or the execution is aborted, depending on the users
choice. At the time when the execution is aborted, an error message is
printed on standard output with a level of verbosity than can be
chosen by the user. If the execution is not aborted, then, the caller
routine checks the value returned in the <code>info</code> variable and, if
not zero, an error condition is raised. This process continues on all the
levels of nested calls until the level where the user decides to abort
the program execution.
<P>
Figure&nbsp;<A HREF="#fig:routerr">9</A> shows the layout of a generic <code>psb_foo</code>
routine with respect to the PSBLAS-2.0 error handling policy. It is
possible to see how, whenever an error condition is detected, the
<code>info</code> variable is set to the corresponding error code which is,
then, pushed on top of the stack by means of the
<code>psb_errpush</code>. An error condition may be directly detected inside
a routine or indirectly checking the error code returned returned by a
called routine. Whenever an error is encountered, after it has been
pushed on stack, the program execution skips to a point where the
error condition is handled; the error condition is handled either by
returning control to the caller routine or by calling the
<code>psb\_error</code> routine which prints the content of the error stack
and aborts the program execution, according to the choice made by the
user with <code>psb_set_erraction</code>. The default is to print the error
and terminate the program, but the user may choose to handle the error
explicitly.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:routerr"></A><A NAME="7217"></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="462" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img148.png"
WIDTH="562" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img142.png"
ALT="\fbox{\TheSbox}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
Figure&nbsp;<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="7218"></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="562" HEIGHT="482" ALIGN="MIDDLE" BORDER="0"
SRC="img142.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="img144.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>
@ -71,63 +163,154 @@ 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>.
</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>
<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="214" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img145.png"
ALT="\begin{lstlisting}
call psb_error(icontxt)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<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 read from file.
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Type:<B>required</B>.
Intent: <B>in</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
Specified as: an integer.
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side(s).
</DL>
<P>
ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
messages.
<P>
<BR>
Type: <B>Optional</B>
<IMG
WIDTH="261" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img146.png"
ALT="\begin{lstlisting}
call psb_set_errverbosity(v)
\end{lstlisting}">
<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.
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>v</STRONG></DT>
<DD>the verbosity level
<BR>
Scope: <B>global</B>
<BR>
Type: <B>Optional</B>
Type: <B>required</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.
Intent: <B>in</B>.
<BR>
Specified as: an integer.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
</DL>
<P>
ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
taken upon error condition.
<P>
<BR>
<IMG
WIDTH="291" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img147.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>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
Intent: <B>in</B>.
<BR>
Specified as: an integer. Possible values: <code>psb_act_ret</code>,
<code>psb_act_abort</code>.
</DD>
</DL>
@ -138,7 +321,7 @@ An integer value; 0 means no error has been detected.
HREF="node116.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1684"
HREF="node114.html">
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1678"
HREF="node114.html">
@ -148,11 +331,11 @@ An integer value; 0 means no error has been detected.
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1689"
HREF="node116.html">hb_write Write</A>
HREF="node116.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1685"
HREF="node114.html">Utilities</A>
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1679"
HREF="node114.html">Utilities</A>
HREF="node114.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1687"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format</TITLE>
<META NAME="description" CONTENT="hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format">
<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,9 +18,9 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node117.html">
<LINK REL="next" HREF="node123.html">
<LINK REL="previous" HREF="node115.html">
<LINK REL="up" HREF="node114.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node117.html">
</HEAD>
@ -30,7 +30,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
HREF="node117.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1696"
HREF="node114.html">
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1690"
HREF="node115.html">
@ -40,131 +40,55 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1701"
HREF="node117.html">mm_mat_read Read</A>
HREF="node117.html">hb_read Read</A>
<B> Up:</B> <A NAME="tex2html1697"
HREF="node114.html">Utilities</A>
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1691"
HREF="node115.html">hb_read Read</A>
HREF="node115.html">Error handling</A>
&nbsp; <B> <A NAME="tex2html1699"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000102000000000000000">
hb_write -- Write a sparse matrix to a file
in the Harwell-Boeing format</A>
</H2>
<P>
<BR>
<IMG
WIDTH="539" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img149.png"
ALT="\begin{lstlisting}
call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
\end{lstlisting}">
<H1><A NAME="SECTION000100000000000000000"></A>
<A NAME="sec:util"></A>
<BR>
Utilities
</H1>
<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>
We have some utitlities available for input and output of
sparse matrices; the interfaces to these routines are available in the
module <code>psb_util_mod</code>.
<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>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1700"
HREF="node117.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1696"
HREF="node114.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1690"
HREF="node115.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1698"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1701"
HREF="node117.html">mm_mat_read Read</A>
<B> Up:</B> <A NAME="tex2html1697"
HREF="node114.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1691"
HREF="node115.html">hb_read Read</A>
&nbsp; <B> <A NAME="tex2html1699"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<UL>
<LI><A NAME="tex2html1702"
HREF="node117.html">hb_read -- Read a sparse matrix from a file in the
Harwell-Boeing format</A>
<LI><A NAME="tex2html1703"
HREF="node118.html">hb_write -- Write a sparse matrix to a file
in the Harwell-Boeing format</A>
<LI><A NAME="tex2html1704"
HREF="node119.html">mm_mat_read -- Read a sparse matrix from a
file in the MatrixMarket format</A>
<LI><A NAME="tex2html1705"
HREF="node120.html">mm_array_read -- Read a dense array from a
file in the MatrixMarket format</A>
<LI><A NAME="tex2html1706"
HREF="node121.html">mm_mat_write -- Write a sparse matrix to a
file in the MatrixMarket format</A>
<LI><A NAME="tex2html1707"
HREF="node122.html">mm_array_write -- Write a dense array from a
file in the MatrixMarket format</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
</BODY>
</HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format">
<TITLE>hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format</TITLE>
<META NAME="description" CONTENT="hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format">
<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="node118.html">
<LINK REL="previous" HREF="node116.html">
<LINK REL="up" HREF="node114.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node118.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1712"
<A NAME="tex2html1718"
HREF="node118.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1708"
HREF="node114.html">
<A NAME="tex2html1714"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1702"
<A NAME="tex2html1708"
HREF="node116.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1710"
<A NAME="tex2html1716"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1713"
HREF="node118.html">mm_array_read Read</A>
<B> Up:</B> <A NAME="tex2html1709"
HREF="node114.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1703"
HREF="node116.html">hb_write Write</A>
&nbsp; <B> <A NAME="tex2html1711"
<B> Next:</B> <A NAME="tex2html1719"
HREF="node118.html">hb_write Write</A>
<B> Up:</B> <A NAME="tex2html1715"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1709"
HREF="node116.html">Utilities</A>
&nbsp; <B> <A NAME="tex2html1717"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000103000000000000000">
mm_mat_read -- Read a sparse matrix from a
file in the MatrixMarket format</A>
<H2><A NAME="SECTION000101000000000000000">
hb_read -- Read a sparse matrix from a file in the
Harwell-Boeing format</A>
</H2>
<P>
<BR>
<IMG
WIDTH="395" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img150.png"
WIDTH="462" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img148.png"
ALT="\begin{lstlisting}
call mm_mat_read(a, iret, iunit, filename)
call hb_read(a, iret, iunit, filename, b, mtitle)
\end{lstlisting}">
<BR>
@ -104,6 +104,24 @@ 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>
@ -114,7 +132,30 @@ An integer value; 0 means no error has been detected.
</DL>
<P>
<BR><HR>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1718"
HREF="node118.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1714"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1708"
HREF="node116.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1716"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1719"
HREF="node118.html">hb_write Write</A>
<B> Up:</B> <A NAME="tex2html1715"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1709"
HREF="node116.html">Utilities</A>
&nbsp; <B> <A NAME="tex2html1717"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>mm_array_read -- Read a dense array from a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_array_read -- Read a dense array from a file in the MatrixMarket format">
<TITLE>hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format</TITLE>
<META NAME="description" CONTENT="hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format">
<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="node119.html">
<LINK REL="previous" HREF="node117.html">
<LINK REL="up" HREF="node114.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node119.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1724"
<A NAME="tex2html1730"
HREF="node119.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1720"
HREF="node114.html">
<A NAME="tex2html1726"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1714"
<A NAME="tex2html1720"
HREF="node117.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1722"
<A NAME="tex2html1728"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1725"
HREF="node119.html">mm_mat_write Write</A>
<B> Up:</B> <A NAME="tex2html1721"
HREF="node114.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1715"
HREF="node117.html">mm_mat_read Read</A>
&nbsp; <B> <A NAME="tex2html1723"
<B> Next:</B> <A NAME="tex2html1731"
HREF="node119.html">mm_mat_read Read</A>
<B> Up:</B> <A NAME="tex2html1727"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1721"
HREF="node117.html">hb_read Read</A>
&nbsp; <B> <A NAME="tex2html1729"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000104000000000000000">
mm_array_read -- Read a dense array from a
file in the MatrixMarket format</A>
<H2><A NAME="SECTION000102000000000000000">
hb_write -- Write a sparse matrix to a file
in the Harwell-Boeing format</A>
</H2>
<P>
<BR>
<IMG
WIDTH="415" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img151.png"
WIDTH="539" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img149.png"
ALT="\begin{lstlisting}
call mm_array_read(b, iret, iunit, filename)
call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
\end{lstlisting}">
<BR>
@ -74,13 +74,29 @@ call mm_array_read(b, iret, iunit, filename)
<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 read.
<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 input unit 5 (i.e. standard input
<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>
@ -90,6 +106,24 @@ 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>
@ -97,15 +131,6 @@ Specified as: an integer value. Only meaningful if filename is not <code>-</code
<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 1 or 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>
@ -116,7 +141,30 @@ An integer value; 0 means no error has been detected.
</DL>
<P>
<BR><HR>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1730"
HREF="node119.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1726"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1720"
HREF="node117.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1728"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1731"
HREF="node119.html">mm_mat_read Read</A>
<B> Up:</B> <A NAME="tex2html1727"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1721"
HREF="node117.html">hb_read Read</A>
&nbsp; <B> <A NAME="tex2html1729"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format">
<TITLE>mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format">
<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="node120.html">
<LINK REL="previous" HREF="node118.html">
<LINK REL="up" HREF="node114.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node120.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1736"
<A NAME="tex2html1742"
HREF="node120.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1732"
HREF="node114.html">
<A NAME="tex2html1738"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1726"
<A NAME="tex2html1732"
HREF="node118.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1734"
<A NAME="tex2html1740"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1737"
HREF="node120.html">mm_array_write Write</A>
<B> Up:</B> <A NAME="tex2html1733"
HREF="node114.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1727"
HREF="node118.html">mm_array_read Read</A>
&nbsp; <B> <A NAME="tex2html1735"
<B> Next:</B> <A NAME="tex2html1743"
HREF="node120.html">mm_array_read Read</A>
<B> Up:</B> <A NAME="tex2html1739"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1733"
HREF="node118.html">hb_write Write</A>
&nbsp; <B> <A NAME="tex2html1741"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000105000000000000000">
mm_mat_write -- Write a sparse matrix to a
<H2><A NAME="SECTION000103000000000000000">
mm_mat_read -- Read a sparse matrix from a
file in the MatrixMarket format</A>
</H2>
<P>
<BR>
<IMG
WIDTH="481" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img152.png"
WIDTH="395" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img150.png"
ALT="\begin{lstlisting}
call mm_mat_write(a, mtitle, iret, iunit, filename)
call mm_mat_read(a, iret, iunit, filename)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
@ -72,28 +74,13 @@ call mm_mat_write(a, mtitle, iret, iunit, filename)
<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.
<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 output unit 6 (i.e. standard output
<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>
@ -110,6 +97,13 @@ Specified as: an integer value. Only meaningful if filename is not <code>-</code
<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>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html379"
<A NAME="tex2html383"
HREF="node13.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html375"
<A NAME="tex2html379"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html369"
<A NAME="tex2html373"
HREF="node11.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html377"
<A NAME="tex2html381"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html380"
<B> Next:</B> <A NAME="tex2html384"
HREF="node13.html">get_local_cols Get</A>
<B> Up:</B> <A NAME="tex2html376"
<B> Up:</B> <A NAME="tex2html380"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html370"
<B> Previous:</B> <A NAME="tex2html374"
HREF="node11.html">Descriptor Methods</A>
&nbsp; <B> <A NAME="tex2html378"
&nbsp; <B> <A NAME="tex2html382"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>mm_array_write -- Write a dense array from a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_array_write -- Write a dense array from a file in the MatrixMarket format">
<TITLE>mm_array_read -- Read a dense array from a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_array_read -- Read a dense array from a file in the MatrixMarket format">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -18,50 +18,51 @@ 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="node119.html">
<LINK REL="up" HREF="node114.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node121.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1746"
<A NAME="tex2html1754"
HREF="node121.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1742"
HREF="node114.html">
<A NAME="tex2html1750"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1738"
<A NAME="tex2html1744"
HREF="node119.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1744"
<A NAME="tex2html1752"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1747"
HREF="node121.html">Preconditioner routines</A>
<B> Up:</B> <A NAME="tex2html1743"
HREF="node114.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1739"
HREF="node119.html">mm_mat_write Write</A>
&nbsp; <B> <A NAME="tex2html1745"
<B> Next:</B> <A NAME="tex2html1755"
HREF="node121.html">mm_mat_write Write</A>
<B> Up:</B> <A NAME="tex2html1751"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1745"
HREF="node119.html">mm_mat_read Read</A>
&nbsp; <B> <A NAME="tex2html1753"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000106000000000000000">
mm_array_write -- Write a dense array from a
<H2><A NAME="SECTION000104000000000000000">
mm_array_read -- Read a dense array from a
file in the MatrixMarket format</A>
</H2>
<P>
<BR>
<IMG
WIDTH="424" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img153.png"
WIDTH="415" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img151.png"
ALT="\begin{lstlisting}
call mm_array_write(b, iret, iunit, filename)
call mm_array_read(b, iret, iunit, filename)
\end{lstlisting}">
<BR>
@ -73,14 +74,8 @@ call mm_array_write(b, iret, iunit, filename)
<DT><STRONG><B>On Entry </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 1 or 2; will be written.. </DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written.
<DD>The name of the file to be read.
<BR>
Type:<B>optional</B>.
<BR>
@ -102,6 +97,15 @@ Specified as: an integer value. Only meaningful if filename is not <code>-</code
<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 1 or 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>

@ -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>mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -18,79 +18,108 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node127.html">
<LINK REL="previous" HREF="node114.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node122.html">
<LINK REL="previous" HREF="node120.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node122.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1758"
<A NAME="tex2html1766"
HREF="node122.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1754"
HREF="userhtml.html">
<A NAME="tex2html1762"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1748"
<A NAME="tex2html1756"
HREF="node120.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1756"
<A NAME="tex2html1764"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1759"
HREF="node122.html">psb_precinit Initialize</A>
<B> Up:</B> <A NAME="tex2html1755"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1749"
HREF="node120.html">mm_array_write Write</A>
&nbsp; <B> <A NAME="tex2html1757"
<B> Next:</B> <A NAME="tex2html1767"
HREF="node122.html">mm_array_write Write</A>
<B> Up:</B> <A NAME="tex2html1763"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1757"
HREF="node120.html">mm_array_read Read</A>
&nbsp; <B> <A NAME="tex2html1765"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION000110000000000000000"></A>
<A NAME="sec:precs"></A>
<BR>
Preconditioner routines
</H1>
<H2><A NAME="SECTION000105000000000000000">
mm_mat_write -- Write a sparse matrix to a
file in the MatrixMarket format</A>
</H2>
<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>.
<BR>
<IMG
WIDTH="481" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img152.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>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<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>
<UL>
<LI><A NAME="tex2html1760"
HREF="node122.html">psb_precinit -- Initialize a preconditioner</A>
<LI><A NAME="tex2html1761"
HREF="node123.html">psb_precbld -- Builds a preconditioner</A>
<LI><A NAME="tex2html1762"
HREF="node124.html">psb_precaply -- Preconditioner application
routine</A>
<LI><A NAME="tex2html1763"
HREF="node125.html">psb_precdescr -- Prints a description of current
preconditioner</A>
<LI><A NAME="tex2html1764"
HREF="node126.html">clone -- clone current
preconditioner</A>
</UL>
<!--End of Table of Child-Links-->
<P>
<BR><HR>
</BODY>

@ -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>mm_array_write -- Write a dense array from a file in the MatrixMarket format</TITLE>
<META NAME="description" CONTENT="mm_array_write -- Write a dense array from a file in the MatrixMarket format">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -18,119 +18,96 @@ 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="node121.html">
<LINK REL="up" HREF="node121.html">
<LINK REL="up" HREF="node116.html">
<LINK REL="next" HREF="node123.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1775"
<A NAME="tex2html1776"
HREF="node123.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1771"
HREF="node121.html">
<A NAME="tex2html1772"
HREF="node116.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1765"
<A NAME="tex2html1768"
HREF="node121.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1773"
<A NAME="tex2html1774"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1776"
HREF="node123.html">psb_precbld Builds</A>
<B> Up:</B> <A NAME="tex2html1772"
HREF="node121.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1766"
HREF="node121.html">Preconditioner routines</A>
&nbsp; <B> <A NAME="tex2html1774"
<B> Next:</B> <A NAME="tex2html1777"
HREF="node123.html">Preconditioner routines</A>
<B> Up:</B> <A NAME="tex2html1773"
HREF="node116.html">Utilities</A>
<B> Previous:</B> <A NAME="tex2html1769"
HREF="node121.html">mm_mat_write Write</A>
&nbsp; <B> <A NAME="tex2html1775"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000111000000000000000">
psb_precinit -- Initialize a preconditioner</A>
<H2><A NAME="SECTION000106000000000000000">
mm_array_write -- Write a dense array from a
file in the MatrixMarket format</A>
</H2>
<P>
<PRE>
call psb_precinit(prec, ptype, info)
</PRE>
<BR>
<IMG
WIDTH="424" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img153.png"
ALT="\begin{lstlisting}
call mm_array_write(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>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>ptype</STRONG></DT>
<DD>the type of preconditioner.
Scope: <B>global</B>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side(s).
<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>
Type: <B>required</B>
<BR>
Type: <B>required</B>
An array of type real or complex, rank 1 or 2; will be written.. </DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written.
<BR>
Intent: <B>inout</B>.
Type:<B>optional</B>.
<BR>
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
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>info</STRONG></DT>
<DD>Scope: <B>global</B>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type: <B>required</B>
Type:<B>optional</B>.
<BR>
Intent: <B>out</B>.
<BR>
Error code: if no error, 0 is returned.
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</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#foot7514"><SUP>3</SUP></A>:
<P>
<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$">;
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</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.
<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>

@ -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>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,144 +18,80 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node124.html">
<LINK REL="previous" HREF="node122.html">
<LINK REL="up" HREF="node121.html">
<LINK REL="next" HREF="node129.html">
<LINK REL="previous" HREF="node116.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node124.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1787"
<A NAME="tex2html1788"
HREF="node124.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1783"
HREF="node121.html">
<A NAME="tex2html1784"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1777"
<A NAME="tex2html1778"
HREF="node122.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1785"
<A NAME="tex2html1786"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1788"
HREF="node124.html">psb_precaply Preconditioner</A>
<B> Up:</B> <A NAME="tex2html1784"
HREF="node121.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1778"
HREF="node122.html">psb_precinit Initialize</A>
&nbsp; <B> <A NAME="tex2html1786"
<B> Next:</B> <A NAME="tex2html1789"
HREF="node124.html">psb_precinit Initialize</A>
<B> Up:</B> <A NAME="tex2html1785"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1779"
HREF="node122.html">mm_array_write Write</A>
&nbsp; <B> <A NAME="tex2html1787"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000112000000000000000">
psb_precbld -- Builds a preconditioner</A>
</H2>
<P>
<PRE>
call psb_precbld(a, desc_a, prec, info,amold,vmold)
</PRE>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</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>
<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.
<BR>
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>.
</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>.
<H1><A NAME="SECTION000110000000000000000"></A>
<A NAME="sec:precs"></A>
<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>.
Preconditioner routines
</H1>
<P>
</DD>
</DL>
<A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple
preconditioning techniques:
<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.
<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>
<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>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html1790"
HREF="node124.html">psb_precinit -- Initialize a preconditioner</A>
<LI><A NAME="tex2html1791"
HREF="node125.html">psb_precbld -- Builds a preconditioner</A>
<LI><A NAME="tex2html1792"
HREF="node126.html">psb_precaply -- Preconditioner application
routine</A>
<LI><A NAME="tex2html1793"
HREF="node127.html">psb_precdescr -- Prints a description of current
preconditioner</A>
<LI><A NAME="tex2html1794"
HREF="node128.html">clone -- clone current
preconditioner</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
</BODY>
</HTML>

@ -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_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,132 +20,117 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node125.html">
<LINK REL="previous" HREF="node123.html">
<LINK REL="up" HREF="node121.html">
<LINK REL="up" HREF="node123.html">
<LINK REL="next" HREF="node125.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1799"
<A NAME="tex2html1805"
HREF="node125.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1795"
HREF="node121.html">
<A NAME="tex2html1801"
HREF="node123.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1789"
<A NAME="tex2html1795"
HREF="node123.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1797"
<A NAME="tex2html1803"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1800"
HREF="node125.html">psb_precdescr Prints</A>
<B> Up:</B> <A NAME="tex2html1796"
HREF="node121.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1790"
HREF="node123.html">psb_precbld Builds</A>
&nbsp; <B> <A NAME="tex2html1798"
<B> Next:</B> <A NAME="tex2html1806"
HREF="node125.html">psb_precbld Builds</A>
<B> Up:</B> <A NAME="tex2html1802"
HREF="node123.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1796"
HREF="node123.html">Preconditioner routines</A>
&nbsp; <B> <A NAME="tex2html1804"
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="SECTION000111000000000000000">
psb_precinit -- Initialize 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_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>prec</STRONG></DT>
<DD>the preconditioner.
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>.
<BR>
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
Specified as: a character string, see usage notes.
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>the source vector.
Scope: <B>local</B>
<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 rank one array or an object of type vdata<TT>psb_T_vect_type</TT>.
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>the problem communication descriptor.
Scope: <B>local</B>
<DT><STRONG>info</STRONG></DT>
<DD>Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a communication data structure descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>trans</STRONG></DT>
<DD>Scope:
<BR>
Type: <B>optional</B>
<BR>
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>.
Intent: <B>out</B>.
<BR>
Specified as: a double precision array.
Error code: if no error, 0 is returned.
</DD>
</DL>
<P>
<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#foot7596"><SUP>3</SUP></A>:
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
<DT><STRONG>NONE</STRONG></DT>
<DD>No preconditioning, i.e. the preconditioner is just a copy
operator.
</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>.
<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>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.
<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>

@ -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_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,75 +20,137 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node126.html">
<LINK REL="previous" HREF="node124.html">
<LINK REL="up" HREF="node121.html">
<LINK REL="up" HREF="node123.html">
<LINK REL="next" HREF="node126.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1811"
<A NAME="tex2html1817"
HREF="node126.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1807"
HREF="node121.html">
<A NAME="tex2html1813"
HREF="node123.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1801"
<A NAME="tex2html1807"
HREF="node124.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1809"
<A NAME="tex2html1815"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1812"
HREF="node126.html">clone clone</A>
<B> Up:</B> <A NAME="tex2html1808"
HREF="node121.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1802"
HREF="node124.html">psb_precaply Preconditioner</A>
&nbsp; <B> <A NAME="tex2html1810"
<B> Next:</B> <A NAME="tex2html1818"
HREF="node126.html">psb_precaply Preconditioner</A>
<B> Up:</B> <A NAME="tex2html1814"
HREF="node123.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1808"
HREF="node124.html">psb_precinit Initialize</A>
&nbsp; <B> <A NAME="tex2html1816"
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="SECTION000112000000000000000">
psb_precbld -- Builds a preconditioner</A>
</H2>
<P>
<PRE>
call psb_precdescr(prec)
call psb_precdescr(prec, iout)
call psb_precbld(a, desc_a, prec, info,amold,vmold)
</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>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.
<BR>
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>.
</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: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
Specified as: an object of a class derived from spbasedata<TT>psb_T_base_sparse_mat</TT>.
</DD>
<DT><STRONG>iout</STRONG></DT>
<DD>output unit.
Scope: <B>local</B>
<DT><STRONG>vmold</STRONG></DT>
<DD>The desired dynamic type for the internal vector storage.
<BR>
Type: <B>optiona</B>
Scope: <B>local</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer number.
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.
<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>

@ -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_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">
@ -18,60 +18,107 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node127.html">
<LINK REL="previous" HREF="node125.html">
<LINK REL="up" HREF="node121.html">
<LINK REL="up" HREF="node123.html">
<LINK REL="next" HREF="node127.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1821"
<A NAME="tex2html1829"
HREF="node127.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1817"
HREF="node121.html">
<A NAME="tex2html1825"
HREF="node123.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1813"
<A NAME="tex2html1819"
HREF="node125.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1819"
<A NAME="tex2html1827"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1822"
HREF="node127.html">Iterative Methods</A>
<B> Up:</B> <A NAME="tex2html1818"
HREF="node121.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1814"
HREF="node125.html">psb_precdescr Prints</A>
&nbsp; <B> <A NAME="tex2html1820"
<B> Next:</B> <A NAME="tex2html1830"
HREF="node127.html">psb_precdescr Prints</A>
<B> Up:</B> <A NAME="tex2html1826"
HREF="node123.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1820"
HREF="node125.html">psb_precbld Builds</A>
&nbsp; <B> <A NAME="tex2html1828"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000115000000000000000">
clone -- clone current
preconditioner</A>
<H2><A NAME="SECTION000113000000000000000">
psb_precaply -- Preconditioner application
routine</A>
</H2>
<P>
<PRE>
call prec%clone(precout,info)
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>
</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>
<DT><STRONG>desc_a</STRONG></DT>
<DD>the problem communication descriptor.
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a communication data structure descdata<TT>psb_desc_type</TT>.
</DD>
<DT><STRONG>trans</STRONG></DT>
<DD>Scope:
<BR>
Type: <B>optional</B>
<BR>
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>
Scope: <B>local</B>.
<BR></DD>
Intent: <B>inout</B>.
<BR>
Specified as: a double precision array.
</DD>
</DL>
<P>
@ -79,11 +126,26 @@ Scope: <B>local</B>.
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>precout</STRONG></DT>
<DD>A copy of the input object.
<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>Return code.
<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>

@ -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>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,61 +18,81 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node129.html">
<LINK REL="previous" HREF="node121.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node128.html">
<LINK REL="previous" HREF="node126.html">
<LINK REL="up" HREF="node123.html">
<LINK REL="next" HREF="node128.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1833"
<A NAME="tex2html1841"
HREF="node128.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1829"
HREF="userhtml.html">
<A NAME="tex2html1837"
HREF="node123.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1823"
<A NAME="tex2html1831"
HREF="node126.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1831"
<A NAME="tex2html1839"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1834"
HREF="node128.html">psb_krylov Krylov</A>
<B> Up:</B> <A NAME="tex2html1830"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1824"
HREF="node126.html">clone clone</A>
&nbsp; <B> <A NAME="tex2html1832"
<B> Next:</B> <A NAME="tex2html1842"
HREF="node128.html">clone clone</A>
<B> Up:</B> <A NAME="tex2html1838"
HREF="node123.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1832"
HREF="node126.html">psb_precaply Preconditioner</A>
&nbsp; <B> <A NAME="tex2html1840"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION000120000000000000000"></A>
<A NAME="sec:methods"></A>
<BR>
Iterative Methods
</H1>
<H2><A NAME="SECTION000114000000000000000">
psb_precdescr -- Prints a description of current
preconditioner</A>
</H2>
<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>.
<PRE>
call psb_precdescr(prec)
call psb_precdescr(prec, iout)
</PRE>
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<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.
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>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>
<UL>
<LI><A NAME="tex2html1835"
HREF="node128.html">psb_krylov -- Krylov Methods Driver
Routine</A>
</UL>
<!--End of Table of Child-Links-->
<P>
<BR><HR>
</BODY>

@ -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>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">
@ -19,388 +19,76 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node127.html">
<LINK REL="up" HREF="node127.html">
<LINK REL="up" HREF="node123.html">
<LINK REL="next" HREF="node129.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1844"
<A NAME="tex2html1851"
HREF="node129.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1840"
HREF="node127.html">
<A NAME="tex2html1847"
HREF="node123.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1836"
<A NAME="tex2html1843"
HREF="node127.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1842"
<A NAME="tex2html1849"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1845"
HREF="node129.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1841"
HREF="node127.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1837"
HREF="node127.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1843"
<B> Next:</B> <A NAME="tex2html1852"
HREF="node129.html">Iterative Methods</A>
<B> Up:</B> <A NAME="tex2html1848"
HREF="node123.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1844"
HREF="node127.html">psb_precdescr Prints</A>
&nbsp; <B> <A NAME="tex2html1850"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
<BR>
psb_krylov -- Krylov Methods Driver
Routine
<H2><A NAME="SECTION000115000000000000000">
clone -- clone current
preconditioner</A>
</H2>
<P>
This subroutine is a driver that provides a general interface for all
the Krylov-Subspace family methods implemented in PSBLAS version 2.
<P>
The stopping criterion is the normwise backward error, in the infinity
norm, i.e. the iteration is stopped when
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
\end{displaymath}
-->
<IMG
WIDTH="204" HEIGHT="44" BORDER="0"
SRC="img156.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
or the 2-norm residual reduction
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{\|b\|_2} < eps
\end{displaymath}
-->
<IMG
WIDTH="121" HEIGHT="44" BORDER="0"
SRC="img157.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
according to the value passed through the istop argument (see
later). In the above formulae, <IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img158.png"
ALT="$x_i$"> is the tentative solution and
<IMG
WIDTH="91" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img159.png"
ALT="$r_i=b-Ax_i$"> the corresponding residual at the <IMG
WIDTH="9" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img4.png"
ALT="$i$">-th iteration.
<P>
<BR>
<IMG
WIDTH="482" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img160.png"
ALT="\begin{lstlisting}
call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&amp;
&amp; itmax,iter,err,itrace,irst,istop,cond)
\end{lstlisting}">
<BR>
<PRE>
call prec%clone(precout,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>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>GCR:</STRONG></DT>
<DD>the Generalized Conjugate Residual method;
</DD>
<DT><STRONG>FCG:</STRONG></DT>
<DD>the Flexible Conjugate Gradient method<A NAME="tex2html31"
HREF="footnode.html#foot7870"><SUP>4</SUP></A>;
<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>.
<DD>the preconditioner.
<BR>
Default: <IMG
WIDTH="100" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img162.png"
ALT="$itmax = 1000$">.
<BR>
Specified as: an integer variable <IMG
WIDTH="75" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img163.png"
ALT="$itmax \ge 1$">.
</DD>
<DT><STRONG>itrace</STRONG></DT>
<DD>If <IMG
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img111.png"
ALT="$&gt;0$"> print out an informational message about
convergence every <IMG
WIDTH="46" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img164.png"
ALT="$itrace$"> iterations.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
Scope: <B>local</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="59" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img165.png"
ALT="$irst&gt;0$">. This is employed for the BiCGSTABL or RGMRES
methods, otherwise it is ignored.
</DL>
<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>
<DL>
<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="15" ALIGN="BOTTOM" BORDER="0"
SRC="img166.png"
ALT="$CG$"> method on real data.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: a real number. A correct result will be greater than or
equal to one; if specified for non-real data, or an error occurred,
zero is returned.
<DT><STRONG>precout</STRONG></DT>
<DD>A copy of the input object.
</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>Return code.
</DD>
</DL>
<P>
<P>
<P>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1844"
HREF="node129.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1840"
HREF="node127.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1836"
HREF="node127.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1842"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1845"
HREF="node129.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1841"
HREF="node127.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1837"
HREF="node127.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1843"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<BR><HR>
</BODY>
</HTML>

@ -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>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,155 +18,61 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node130.html">
<LINK REL="previous" HREF="node127.html">
<LINK REL="next" HREF="node131.html">
<LINK REL="previous" HREF="node123.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node130.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1856"
<A NAME="tex2html1863"
HREF="node130.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1852"
<A NAME="tex2html1859"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1846"
<A NAME="tex2html1853"
HREF="node128.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1854"
<A NAME="tex2html1861"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1857"
HREF="node130.html">About this document ...</A>
<B> Up:</B> <A NAME="tex2html1853"
<B> Next:</B> <A NAME="tex2html1864"
HREF="node130.html">psb_krylov Krylov</A>
<B> Up:</B> <A NAME="tex2html1860"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1847"
HREF="node128.html">psb_krylov Krylov</A>
&nbsp; <B> <A NAME="tex2html1855"
<B> Previous:</B> <A NAME="tex2html1854"
HREF="node128.html">clone clone</A>
&nbsp; <B> <A NAME="tex2html1862"
HREF="node1.html">Contents</A></B>
<BR><BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000130000000000000000">
Bibliography</A>
</H2><DL COMPACT><DD><P></P><DT><A NAME="DesPat:11">1</A>
<DD>
D.&nbsp;Barbieri, V.&nbsp;Cardellini, S.&nbsp;Filippone and D.&nbsp;Rouson
<EM>Design Patterns for Scientific Computations on Sparse Matrices</EM>,
HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
<P>
<P></P><DT><A NAME="PARA04FOREST">2</A>
<DD>
G.&nbsp;Bella, S.&nbsp;Filippone, A.&nbsp;De Maio and M.&nbsp;Testa,
<EM>A Simulation Model for Forest Fires</EM>,
in J.&nbsp;Dongarra, K.&nbsp;Madsen, J.&nbsp;Wasniewski, editors,
Proceedings of PARA&nbsp;04 Workshop on State of the Art
in Scientific Computing, pp.&nbsp;546-553, Lecture Notes in Computer Science,
Springer, 2005.
<P></P><DT><A NAME="2007d">3</A>
<DD> A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,<BR>
2LEV-D2P4: a package of high-performance preconditioners,<BR>
Applicable Algebra in Engineering, Communications and Computing,
Volume 18, Number 3, May, 2007, pp. 223-239<P></P><DT><A NAME="2007c">4</A>
<DD> P. D'Ambra, S. Filippone, D. Di Serafino<BR>
On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners
<BR>
Applied Numerical Mathematics, Elsevier Science,
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
<P>
<P></P><DT><A NAME="BLAS2">5</A>
<DD>
Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R.,
An Extended Set of Fortran Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;14, 1-17, 1988.
<P></P><DT><A NAME="BLAS3">6</A>
<DD>
Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I.,
A Set of level 3 Basic Linear Algebra Subprograms,
ACM Trans. Math. Softw. vol.&nbsp;16, 1-17, 1990.<P></P><DT><A NAME="BLACS">7</A>
<DD>
J.&nbsp;J.&nbsp;Dongarra and R.&nbsp;C.&nbsp;Whaley,
<EM>A User's Guide to the BLACS v.&nbsp;1.1</EM>,
Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997).<P></P><DT><A NAME="sblas97">8</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Marrone, G.&nbsp;Radicati and C.&nbsp;Vittoli,
<EM>Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
a User Level Interface</EM>,
ACM Transactions on Mathematical Software, 23(3), pp.&nbsp;379-401, 1997.<P></P><DT><A NAME="sblas02">9</A>
<DD>
I.&nbsp;Duff, M.&nbsp;Heroux and R.&nbsp;Pozo,
<EM>An Overview of the Sparse Basic Linear
Algebra Subprograms: the New Standard from the BLAS Technical Forum</EM>,
ACM Transactions on Mathematical Software, 28(2), pp.&nbsp;239-267, 2002.
<P></P><DT><A NAME="PSBLAS">10</A>
<DD>
S.&nbsp;Filippone and M.&nbsp;Colajanni,
<EM>PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices</EM>,
<BR>
ACM Transactions on Mathematical Software, 26(4), pp.&nbsp;527-550, 2000.<P></P><DT><A NAME="Sparse03">11</A>
<DD>
S.&nbsp;Filippone and A.&nbsp;Buttari,
<EM>Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003</EM>,
<BR>
ACM Transactions on Mathematical Software, 38(4), 2012.<P></P><DT><A NAME="KIVA3PSBLAS">12</A>
<DD>
S.&nbsp;Filippone, P.&nbsp;D'Ambra, M.&nbsp;Colajanni,
<EM>Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
Applications Code on Linux Clusters</EM>,
in G.&nbsp;Joubert, A.&nbsp;Murli, F.&nbsp;Peters, M.&nbsp;Vanneschi, editors,
Parallel Computing - Advances &amp; Current Issues,
pp.&nbsp;441-448, Imperial College Press, 2002. <P></P><DT><A NAME="DesignPatterns">13</A>
<DD>
Gamma, E., Helm, R., Johnson, R., and Vlissides,
J. 1995.
<EM>Design Patterns: Elements of Reusable Object-Oriented Software</EM>.
Addison-Wesley.
<!--End of Navigation Panel-->
<P>
<P></P><DT><A NAME="METIS">14</A>
<DD>
Karypis, G. and Kumar, V.,
<EM>METIS: Unstructured Graph Partitioning and Sparse Matrix
Ordering System</EM>.
Minneapolis, MN 55455: University of Minnesota, Department of
Computer Science, 1995.
Internet Address: <code>http://www.cs.umn.edu/~karypis</code>.
<P></P><DT><A NAME="BLAS1">15</A>
<DD>
Lawson, C., Hanson, R., Kincaid, D. and Krogh, F.,
Basic Linear Algebra Subprograms for Fortran usage,
ACM Trans. Math. Softw. vol.&nbsp;5, 38-329, 1979.
<H1><A NAME="SECTION000120000000000000000"></A>
<A NAME="sec:methods"></A>
<BR>
Iterative Methods
</H1>
<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.&nbsp;23, 32-49.
<P></P><DT><A NAME="metcalf">17</A>
<DD>
Metcalf, M., Reid, J. and Cohen, M.
<EM>Fortran 95/2003 explained.</EM>
Oxford University Press, 2004.<P></P><DT><A NAME="RouXiaXu:11">18</A>
<DD>
Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
Object-Oriented Way. Cambridge University Press (2011)
In this chapter we provide routines for preconditioners and iterative
methods. The interfaces for Krylov subspace methods are available in
the module <code>psb_krylov_mod</code>.
<P>
<P></P><DT><A NAME="MPI1">19</A>
<DD>
M.&nbsp;Snir, S.&nbsp;Otto, S.&nbsp;Huss-Lederman, D.&nbsp;Walker and J.&nbsp;Dongarra,
<EM>MPI: The Complete Reference. Volume 1 - The MPI Core</EM>, second edition,
MIT Press, 1998.</DL>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<P>
<UL>
<LI><A NAME="tex2html1865"
HREF="node130.html">psb_krylov -- Krylov Methods Driver
Routine</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
</BODY>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html391"
<A NAME="tex2html395"
HREF="node14.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html387"
<A NAME="tex2html391"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html381"
<A NAME="tex2html385"
HREF="node12.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html389"
<A NAME="tex2html393"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html392"
<B> Next:</B> <A NAME="tex2html396"
HREF="node14.html">get_global_rows Get</A>
<B> Up:</B> <A NAME="tex2html388"
<B> Up:</B> <A NAME="tex2html392"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html382"
<B> Previous:</B> <A NAME="tex2html386"
HREF="node12.html">get_local_rows Get</A>
&nbsp; <B> <A NAME="tex2html390"
&nbsp; <B> <A NAME="tex2html394"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -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>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">
@ -19,52 +19,415 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node129.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="up" HREF="node129.html">
<LINK REL="next" HREF="node131.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_g.png">
<A NAME="tex2html1862"
HREF="userhtml.html">
<A NAME="tex2html1874"
HREF="node131.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1870"
HREF="node129.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1858"
<A NAME="tex2html1866"
HREF="node129.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1864"
<A NAME="tex2html1872"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Up:</B> <A NAME="tex2html1863"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1859"
HREF="node129.html">Bibliography</A>
&nbsp; <B> <A NAME="tex2html1865"
<B> Next:</B> <A NAME="tex2html1875"
HREF="node131.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1871"
HREF="node129.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1867"
HREF="node129.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1873"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<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 2012 (1.2)
<H2><A NAME="SECTION000121000000000000000"></A><A NAME="krylov"></A>
<BR>
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 can take the following values:
<DL>
<DT><STRONG>1</STRONG></DT>
<DD>normwise backward error in the infinity
norm; the iteration is stopped when
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{(\|A\|\|x_i\|+\|b\|)} < eps
\end{displaymath}
-->
<IMG
WIDTH="204" HEIGHT="44" BORDER="0"
SRC="img156.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{(\Vert A\Vert\Vert x_i\Vert+\Vert b\Vert)} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
</DD>
<DT><STRONG>2</STRONG></DT>
<DD>Relative residual in the 2-norm; the iteration is stopped
when
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{\|b\|_2} < eps
\end{displaymath}
-->
<IMG
WIDTH="121" HEIGHT="44" BORDER="0"
SRC="img157.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert b\Vert _2} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
</DD>
<DT><STRONG>3</STRONG></DT>
<DD>Relative residual reduction in the 2-norm; the iteration is stopped
when
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
err = \frac{\|r_i\|}{\|r_0\|_2} < eps
\end{displaymath}
-->
<IMG
WIDTH="129" HEIGHT="44" BORDER="0"
SRC="img158.png"
ALT="\begin{displaymath}err = \frac{\Vert r_i\Vert}{\Vert r_0\Vert _2} &lt; eps \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
</DD>
</DL>
The behaviour is controlled by the istop argument (see
later). In the above formulae, <IMG
WIDTH="18" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img159.png"
ALT="$x_i$"> is the tentative solution and
<IMG
WIDTH="91" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img160.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>
Copyright &#169; 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>
Copyright &#169; 1997, 1998, 1999,
<A HREF="http://www.maths.mq.edu.au/~ross/">Ross Moore</A>,
Mathematics Department, Macquarie University, Sydney.
<IMG
WIDTH="482" HEIGHT="35" ALIGN="BOTTOM" BORDER="0"
SRC="img161.png"
ALT="\begin{lstlisting}
call psb_krylov(method,a,prec,b,x,eps,desc_a,info,&amp;
&amp; itmax,iter,err,itrace,irst,istop,cond)
\end{lstlisting}">
<BR>
<P>
The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
<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>GCR:</STRONG></DT>
<DD>the Generalized Conjugate Residual method;
</DD>
<DT><STRONG>FCG:</STRONG></DT>
<DD>the Flexible Conjugate Gradient method<A NAME="tex2html31"
HREF="footnode.html#foot7956"><SUP>4</SUP></A>;
<P>
The translation was initiated by Salvatore Filippone on 2016-05-25
<BR><HR>
</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="img163.png"
ALT="$itmax = 1000$">.
<BR>
Specified as: an integer variable <IMG
WIDTH="75" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img164.png"
ALT="$itmax \ge 1$">.
</DD>
<DT><STRONG>itrace</STRONG></DT>
<DD>If <IMG
WIDTH="29" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img111.png"
ALT="$&gt;0$"> print out an informational message about
convergence every <IMG
WIDTH="46" HEIGHT="17" ALIGN="BOTTOM" BORDER="0"
SRC="img165.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="59" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
SRC="img166.png"
ALT="$irst&gt;0$">. This is employed for the BiCGSTABL or RGMRES
methods, otherwise it is ignored.
<P>
</DD>
<DT><STRONG>istop</STRONG></DT>
<DD>An integer specifying the stopping criterion.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
of the residual, 3: use the residual reduction in the 2-norm. 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="15" ALIGN="BOTTOM" BORDER="0"
SRC="img167.png"
ALT="$CG$"> method on real data.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>out</B>.
<BR>
Returned as: a real number. A correct result will be greater than or
equal to one; if specified for non-real data, or an error occurred,
zero is returned.
</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="tex2html1874"
HREF="node131.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1870"
HREF="node129.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1866"
HREF="node129.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1872"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1875"
HREF="node131.html">Bibliography</A>
<B> Up:</B> <A NAME="tex2html1871"
HREF="node129.html">Iterative Methods</A>
<B> Previous:</B> <A NAME="tex2html1867"
HREF="node129.html">Iterative Methods</A>
&nbsp; <B> <A NAME="tex2html1873"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html403"
<A NAME="tex2html407"
HREF="node15.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html399"
<A NAME="tex2html403"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html393"
<A NAME="tex2html397"
HREF="node13.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html401"
<A NAME="tex2html405"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html404"
<B> Next:</B> <A NAME="tex2html408"
HREF="node15.html">get_global_cols Get</A>
<B> Up:</B> <A NAME="tex2html400"
<B> Up:</B> <A NAME="tex2html404"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html394"
<B> Previous:</B> <A NAME="tex2html398"
HREF="node13.html">get_local_cols Get</A>
&nbsp; <B> <A NAME="tex2html402"
&nbsp; <B> <A NAME="tex2html406"
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="tex2html415"
<A NAME="tex2html419"
HREF="node16.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html411"
<A NAME="tex2html415"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html405"
<A NAME="tex2html409"
HREF="node14.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html413"
<A NAME="tex2html417"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html416"
<B> Next:</B> <A NAME="tex2html420"
HREF="node16.html">get_global_indices Get</A>
<B> Up:</B> <A NAME="tex2html412"
<B> Up:</B> <A NAME="tex2html416"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html406"
<B> Previous:</B> <A NAME="tex2html410"
HREF="node14.html">get_global_rows Get</A>
&nbsp; <B> <A NAME="tex2html414"
&nbsp; <B> <A NAME="tex2html418"
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="tex2html427"
<A NAME="tex2html431"
HREF="node17.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html423"
<A NAME="tex2html427"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html417"
<A NAME="tex2html421"
HREF="node15.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html425"
<A NAME="tex2html429"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html428"
<B> Next:</B> <A NAME="tex2html432"
HREF="node17.html">get_context Get</A>
<B> Up:</B> <A NAME="tex2html424"
<B> Up:</B> <A NAME="tex2html428"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html418"
<B> Previous:</B> <A NAME="tex2html422"
HREF="node15.html">get_global_cols Get</A>
&nbsp; <B> <A NAME="tex2html426"
&nbsp; <B> <A NAME="tex2html430"
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="tex2html439"
<A NAME="tex2html443"
HREF="node18.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html435"
<A NAME="tex2html439"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html429"
<A NAME="tex2html433"
HREF="node16.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html437"
<A NAME="tex2html441"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html440"
<B> Next:</B> <A NAME="tex2html444"
HREF="node18.html">Clone clone</A>
<B> Up:</B> <A NAME="tex2html436"
<B> Up:</B> <A NAME="tex2html440"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html430"
<B> Previous:</B> <A NAME="tex2html434"
HREF="node16.html">get_global_indices Get</A>
&nbsp; <B> <A NAME="tex2html438"
&nbsp; <B> <A NAME="tex2html442"
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="tex2html451"
<A NAME="tex2html455"
HREF="node19.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html447"
<A NAME="tex2html451"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html441"
<A NAME="tex2html445"
HREF="node17.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html449"
<A NAME="tex2html453"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html452"
<B> Next:</B> <A NAME="tex2html456"
HREF="node19.html">psb_cd_get_large_threshold Get</A>
<B> Up:</B> <A NAME="tex2html448"
<B> Up:</B> <A NAME="tex2html452"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html442"
<B> Previous:</B> <A NAME="tex2html446"
HREF="node17.html">get_context Get</A>
&nbsp; <B> <A NAME="tex2html450"
&nbsp; <B> <A NAME="tex2html454"
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="tex2html463"
<A NAME="tex2html467"
HREF="node20.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html459"
<A NAME="tex2html463"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html453"
<A NAME="tex2html457"
HREF="node18.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html461"
<A NAME="tex2html465"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html464"
<B> Next:</B> <A NAME="tex2html468"
HREF="node20.html">psb_cd_set_large_threshold Set</A>
<B> Up:</B> <A NAME="tex2html460"
<B> Up:</B> <A NAME="tex2html464"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html454"
<B> Previous:</B> <A NAME="tex2html458"
HREF="node18.html">Clone clone</A>
&nbsp; <B> <A NAME="tex2html462"
&nbsp; <B> <A NAME="tex2html466"
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="tex2html207"
<A NAME="tex2html209"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html203"
<A NAME="tex2html205"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html197"
<A NAME="tex2html199"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html205"
<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="tex2html208"
<B> Next:</B> <A NAME="tex2html210"
HREF="node3.html">General overview</A>
<B> Up:</B> <A NAME="tex2html204"
<B> Up:</B> <A NAME="tex2html206"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html198"
<B> Previous:</B> <A NAME="tex2html200"
HREF="node1.html">Contents</A>
&nbsp; <B> <A NAME="tex2html206"
&nbsp; <B> <A NAME="tex2html208"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
@ -71,7 +71,7 @@ passing.
<P>
The PSBLAS library version 3 is implemented in
the Fortran&nbsp;2003&nbsp;[<A
HREF="node129.html#metcalf">17</A>] programming language, with reuse and/or
HREF="node131.html#metcalf">17</A>] programming language, with reuse and/or
adaptation of existing Fortran&nbsp;77 and Fortran&nbsp;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&nbsp;[<A
HREF="node129.html#Sparse03">11</A>]; other
HREF="node131.html#Sparse03">11</A>]; other
works discussing advanced programming in Fortran&nbsp;2003
include&nbsp;[<A
HREF="node129.html#DesPat:11">1</A>,<A
HREF="node129.html#RouXiaXu:11">18</A>]; sufficient support for
HREF="node131.html#DesPat:11">1</A>,<A
HREF="node131.html#RouXiaXu:11">18</A>]; sufficient support for
Fortran&nbsp;2003 is now available from many compilers, including the GNU
Fortran compiler from the Free Software Foundation (as of version 4.8).
@ -94,7 +94,7 @@ Previous approaches have been based on mixing Fortran&nbsp;95, with its
support for object-based design, with other languages; these have
been advocated by a number of authors,
e.g.&nbsp;[<A
HREF="node129.html#machiels">16</A>]. Moreover, the Fortran&nbsp;95 facilities for dynamic
HREF="node131.html#machiels">16</A>]. Moreover, the Fortran&nbsp;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&nbsp;[<A
HREF="node129.html#sblas97">8</A>,<A
HREF="node129.html#sblas02">9</A>], which in its turn is based on the
HREF="node131.html#sblas97">8</A>,<A
HREF="node131.html#sblas02">9</A>], which in its turn is based on the
proposal for BLAS on dense matrices&nbsp;[<A
HREF="node129.html#BLAS1">15</A>,<A
HREF="node129.html#BLAS2">5</A>,<A
HREF="node129.html#BLAS3">6</A>].
HREF="node131.html#BLAS1">15</A>,<A
HREF="node131.html#BLAS2">5</A>,<A
HREF="node131.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="tex2html207"
<A NAME="tex2html209"
HREF="node3.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html203"
<A NAME="tex2html205"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html197"
<A NAME="tex2html199"
HREF="node1.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html205"
<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="tex2html208"
<B> Next:</B> <A NAME="tex2html210"
HREF="node3.html">General overview</A>
<B> Up:</B> <A NAME="tex2html204"
<B> Up:</B> <A NAME="tex2html206"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html198"
<B> Previous:</B> <A NAME="tex2html200"
HREF="node1.html">Contents</A>
&nbsp; <B> <A NAME="tex2html206"
&nbsp; <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="tex2html475"
<A NAME="tex2html479"
HREF="node21.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html471"
<A NAME="tex2html475"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html465"
<A NAME="tex2html469"
HREF="node19.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html473"
<A NAME="tex2html477"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html476"
<B> Next:</B> <A NAME="tex2html480"
HREF="node21.html">Named Constants</A>
<B> Up:</B> <A NAME="tex2html472"
<B> Up:</B> <A NAME="tex2html476"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html466"
<B> Previous:</B> <A NAME="tex2html470"
HREF="node19.html">psb_cd_get_large_threshold Get</A>
&nbsp; <B> <A NAME="tex2html474"
&nbsp; <B> <A NAME="tex2html478"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -25,26 +25,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html485"
<A NAME="tex2html489"
HREF="node22.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html481"
<A NAME="tex2html485"
HREF="node10.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html477"
<A NAME="tex2html481"
HREF="node20.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html483"
<A NAME="tex2html487"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html486"
<B> Next:</B> <A NAME="tex2html490"
HREF="node22.html">Sparse Matrix class</A>
<B> Up:</B> <A NAME="tex2html482"
<B> Up:</B> <A NAME="tex2html486"
HREF="node10.html">Descriptor data structure</A>
<B> Previous:</B> <A NAME="tex2html478"
<B> Previous:</B> <A NAME="tex2html482"
HREF="node20.html">psb_cd_set_large_threshold Set</A>
&nbsp; <B> <A NAME="tex2html484"
&nbsp; <B> <A NAME="tex2html488"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node41.html">
<LINK REL="next" HREF="node42.html">
<LINK REL="previous" HREF="node10.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node23.html">
@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html497"
<A NAME="tex2html501"
HREF="node23.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html493"
<A NAME="tex2html497"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html487"
<A NAME="tex2html491"
HREF="node21.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html495"
<A NAME="tex2html499"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html498"
<B> Next:</B> <A NAME="tex2html502"
HREF="node23.html">Sparse Matrix Methods</A>
<B> Up:</B> <A NAME="tex2html494"
<B> Up:</B> <A NAME="tex2html498"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html488"
<B> Previous:</B> <A NAME="tex2html492"
HREF="node21.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html496"
&nbsp; <B> <A NAME="tex2html500"
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&nbsp;[<A
HREF="node129.html#DesignPatterns">13</A>] as detailed
HREF="node131.html#DesignPatterns">13</A>] as detailed
in&nbsp;[<A
HREF="node129.html#Sparse03">11</A>]; the type declaration is shown in
HREF="node131.html#Sparse03">11</A>]; the type declaration is shown in
figure&nbsp;<A HREF="#fig:spmattype">4</A> where <code>T</code> is a placeholder for the
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="881"></A>
<DIV ALIGN="CENTER"><A NAME="fig:spmattype"></A><A NAME="915"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
The PSBLAS defined data type that
@ -145,71 +145,73 @@ variants are obtained by conversion to/from it.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html499"
<LI><A NAME="tex2html503"
HREF="node23.html">Sparse Matrix Methods</A>
<LI><A NAME="tex2html500"
<LI><A NAME="tex2html504"
HREF="node24.html">get_nrows -- Get number of rows in a sparse matrix</A>
<LI><A NAME="tex2html501"
<LI><A NAME="tex2html505"
HREF="node25.html">get_ncols -- Get number of columns in a sparse
matrix</A>
<LI><A NAME="tex2html502"
<LI><A NAME="tex2html506"
HREF="node26.html">get_nnzeros -- Get number of nonzero elements
in a sparse matrix</A>
<LI><A NAME="tex2html503"
<LI><A NAME="tex2html507"
HREF="node27.html">get_size -- Get maximum number of nonzero elements
in a sparse matrix</A>
<LI><A NAME="tex2html504"
<LI><A NAME="tex2html508"
HREF="node28.html">sizeof -- Get memory occupation in bytes
of a sparse matrix</A>
<LI><A NAME="tex2html505"
<LI><A NAME="tex2html509"
HREF="node29.html">get_fmt -- Short description of the dynamic type</A>
<LI><A NAME="tex2html506"
<LI><A NAME="tex2html510"
HREF="node30.html">is_bld, is_upd, is_asb -- Status check</A>
<LI><A NAME="tex2html507"
<LI><A NAME="tex2html511"
HREF="node31.html">is_lower, is_upper, is_triangle, is_unit --
Format check</A>
<LI><A NAME="tex2html508"
HREF="node32.html">cscnv -- Convert to a different storage format</A>
<LI><A NAME="tex2html509"
HREF="node33.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html510"
HREF="node34.html">get_diag -- Get main diagonal</A>
<LI><A NAME="tex2html511"
HREF="node35.html">clip_diag -- Cut out main diagonal</A>
<LI><A NAME="tex2html512"
HREF="node36.html">tril -- Return the lower triangle</A>
HREF="node32.html">cscnv -- Convert to a different storage format</A>
<LI><A NAME="tex2html513"
HREF="node37.html">triu -- Return the upper triangle</A>
HREF="node33.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html514"
HREF="node38.html">psb_set_mat_default -- Set default storage format</A>
HREF="node34.html">clean_zeros -- Eliminate zero coefficients</A>
<LI><A NAME="tex2html515"
HREF="node39.html">clone -- Clone current object</A>
HREF="node35.html">get_diag -- Get main diagonal</A>
<LI><A NAME="tex2html516"
HREF="node40.html">Named Constants</A>
HREF="node36.html">clip_diag -- Cut out main diagonal</A>
<LI><A NAME="tex2html517"
HREF="node37.html">tril -- Return the lower triangle</A>
<LI><A NAME="tex2html518"
HREF="node38.html">triu -- Return the upper triangle</A>
<LI><A NAME="tex2html519"
HREF="node39.html">psb_set_mat_default -- Set default storage format</A>
<LI><A NAME="tex2html520"
HREF="node40.html">clone -- Clone current object</A>
<LI><A NAME="tex2html521"
HREF="node41.html">Named Constants</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html497"
<A NAME="tex2html501"
HREF="node23.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html493"
<A NAME="tex2html497"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html487"
<A NAME="tex2html491"
HREF="node21.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html495"
<A NAME="tex2html499"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html498"
<B> Next:</B> <A NAME="tex2html502"
HREF="node23.html">Sparse Matrix Methods</A>
<B> Up:</B> <A NAME="tex2html494"
<B> Up:</B> <A NAME="tex2html498"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html488"
<B> Previous:</B> <A NAME="tex2html492"
HREF="node21.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html496"
&nbsp; <B> <A NAME="tex2html500"
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="tex2html527"
<A NAME="tex2html532"
HREF="node24.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html523"
<A NAME="tex2html528"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html517"
<A NAME="tex2html522"
HREF="node22.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html525"
<A NAME="tex2html530"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html528"
<B> Next:</B> <A NAME="tex2html533"
HREF="node24.html">get_nrows Get</A>
<B> Up:</B> <A NAME="tex2html524"
<B> Up:</B> <A NAME="tex2html529"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html518"
<B> Previous:</B> <A NAME="tex2html523"
HREF="node22.html">Sparse Matrix class</A>
&nbsp; <B> <A NAME="tex2html526"
&nbsp; <B> <A NAME="tex2html531"
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="tex2html539"
<A NAME="tex2html544"
HREF="node25.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html535"
<A NAME="tex2html540"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html529"
<A NAME="tex2html534"
HREF="node23.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html537"
<A NAME="tex2html542"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html540"
<B> Next:</B> <A NAME="tex2html545"
HREF="node25.html">get_ncols Get</A>
<B> Up:</B> <A NAME="tex2html536"
<B> Up:</B> <A NAME="tex2html541"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html530"
<B> Previous:</B> <A NAME="tex2html535"
HREF="node23.html">Sparse Matrix Methods</A>
&nbsp; <B> <A NAME="tex2html538"
&nbsp; <B> <A NAME="tex2html543"
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="tex2html551"
<A NAME="tex2html556"
HREF="node26.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html547"
<A NAME="tex2html552"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html541"
<A NAME="tex2html546"
HREF="node24.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html549"
<A NAME="tex2html554"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html552"
<B> Next:</B> <A NAME="tex2html557"
HREF="node26.html">get_nnzeros Get</A>
<B> Up:</B> <A NAME="tex2html548"
<B> Up:</B> <A NAME="tex2html553"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html542"
<B> Previous:</B> <A NAME="tex2html547"
HREF="node24.html">get_nrows Get</A>
&nbsp; <B> <A NAME="tex2html550"
&nbsp; <B> <A NAME="tex2html555"
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="tex2html563"
<A NAME="tex2html568"
HREF="node27.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html559"
<A NAME="tex2html564"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html553"
<A NAME="tex2html558"
HREF="node25.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html561"
<A NAME="tex2html566"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html564"
<B> Next:</B> <A NAME="tex2html569"
HREF="node27.html">get_size Get</A>
<B> Up:</B> <A NAME="tex2html560"
<B> Up:</B> <A NAME="tex2html565"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html554"
<B> Previous:</B> <A NAME="tex2html559"
HREF="node25.html">get_ncols Get</A>
&nbsp; <B> <A NAME="tex2html562"
&nbsp; <B> <A NAME="tex2html567"
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="tex2html575"
<A NAME="tex2html580"
HREF="node28.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html571"
<A NAME="tex2html576"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html565"
<A NAME="tex2html570"
HREF="node26.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html573"
<A NAME="tex2html578"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html576"
<B> Next:</B> <A NAME="tex2html581"
HREF="node28.html">sizeof Get</A>
<B> Up:</B> <A NAME="tex2html572"
<B> Up:</B> <A NAME="tex2html577"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html566"
<B> Previous:</B> <A NAME="tex2html571"
HREF="node26.html">get_nnzeros Get</A>
&nbsp; <B> <A NAME="tex2html574"
&nbsp; <B> <A NAME="tex2html579"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -28,26 +28,26 @@ of a sparse matrix">
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html587"
<A NAME="tex2html592"
HREF="node29.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html583"
<A NAME="tex2html588"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html577"
<A NAME="tex2html582"
HREF="node27.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html585"
<A NAME="tex2html590"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html588"
<B> Next:</B> <A NAME="tex2html593"
HREF="node29.html">get_fmt Short</A>
<B> Up:</B> <A NAME="tex2html584"
<B> Up:</B> <A NAME="tex2html589"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html578"
<B> Previous:</B> <A NAME="tex2html583"
HREF="node27.html">get_size Get</A>
&nbsp; <B> <A NAME="tex2html586"
&nbsp; <B> <A NAME="tex2html591"
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="tex2html599"
<A NAME="tex2html604"
HREF="node30.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html595"
<A NAME="tex2html600"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html589"
<A NAME="tex2html594"
HREF="node28.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html597"
<A NAME="tex2html602"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html600"
<B> Next:</B> <A NAME="tex2html605"
HREF="node30.html">is_bld, is_upd, is_asb </A>
<B> Up:</B> <A NAME="tex2html596"
<B> Up:</B> <A NAME="tex2html601"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html590"
<B> Previous:</B> <A NAME="tex2html595"
HREF="node28.html">sizeof Get</A>
&nbsp; <B> <A NAME="tex2html598"
&nbsp; <B> <A NAME="tex2html603"
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="tex2html219"
<A NAME="tex2html221"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html215"
<A NAME="tex2html217"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html209"
<A NAME="tex2html211"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html217"
<A NAME="tex2html219"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html220"
<B> Next:</B> <A NAME="tex2html222"
HREF="node4.html">Basic Nomenclature</A>
<B> Up:</B> <A NAME="tex2html216"
<B> Up:</B> <A NAME="tex2html218"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html210"
<B> Previous:</B> <A NAME="tex2html212"
HREF="node2.html">Introduction</A>
&nbsp; <B> <A NAME="tex2html218"
&nbsp; <B> <A NAME="tex2html220"
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&nbsp;[<A
HREF="node129.html#BLACS">7</A>].
HREF="node131.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.&nbsp;<A HREF="node96.html#sec:parenv">7</A>.
further details on our communication layer see Sec.&nbsp;<A HREF="node98.html#sec:parenv">7</A>.
<P>
<DIV ALIGN="CENTER"><A NAME="fig:psblas"></A><A NAME="270"></A>
@ -132,7 +132,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&nbsp;[<A
HREF="node129.html#METIS">14</A>].
HREF="node131.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.
@ -152,43 +152,43 @@ bottleneck would make this option unattractive in most cases.
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html221"
<LI><A NAME="tex2html223"
HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html222"
<LI><A NAME="tex2html224"
HREF="node5.html">Library contents</A>
<LI><A NAME="tex2html223"
<LI><A NAME="tex2html225"
HREF="node6.html">Application structure</A>
<UL>
<LI><A NAME="tex2html224"
<LI><A NAME="tex2html226"
HREF="node7.html">User-defined index mappings</A>
</UL>
<BR>
<LI><A NAME="tex2html225"
<LI><A NAME="tex2html227"
HREF="node8.html">Programming model</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html219"
<A NAME="tex2html221"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html215"
<A NAME="tex2html217"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html209"
<A NAME="tex2html211"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html217"
<A NAME="tex2html219"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html220"
<B> Next:</B> <A NAME="tex2html222"
HREF="node4.html">Basic Nomenclature</A>
<B> Up:</B> <A NAME="tex2html216"
<B> Up:</B> <A NAME="tex2html218"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html210"
<B> Previous:</B> <A NAME="tex2html212"
HREF="node2.html">Introduction</A>
&nbsp; <B> <A NAME="tex2html218"
&nbsp; <B> <A NAME="tex2html220"
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="tex2html611"
<A NAME="tex2html616"
HREF="node31.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html607"
<A NAME="tex2html612"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html601"
<A NAME="tex2html606"
HREF="node29.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html609"
<A NAME="tex2html614"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html612"
<B> Next:</B> <A NAME="tex2html617"
HREF="node31.html">is_lower, is_upper, is_triangle, is_unit</A>
<B> Up:</B> <A NAME="tex2html608"
<B> Up:</B> <A NAME="tex2html613"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html602"
<B> Previous:</B> <A NAME="tex2html607"
HREF="node29.html">get_fmt Short</A>
&nbsp; <B> <A NAME="tex2html610"
&nbsp; <B> <A NAME="tex2html615"
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="tex2html623"
<A NAME="tex2html628"
HREF="node32.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html619"
<A NAME="tex2html624"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html613"
<A NAME="tex2html618"
HREF="node30.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html621"
<A NAME="tex2html626"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html624"
<B> Next:</B> <A NAME="tex2html629"
HREF="node32.html">cscnv Convert</A>
<B> Up:</B> <A NAME="tex2html620"
<B> Up:</B> <A NAME="tex2html625"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html614"
<B> Previous:</B> <A NAME="tex2html619"
HREF="node30.html">is_bld, is_upd, is_asb </A>
&nbsp; <B> <A NAME="tex2html622"
&nbsp; <B> <A NAME="tex2html627"
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="tex2html635"
<A NAME="tex2html640"
HREF="node33.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html631"
<A NAME="tex2html636"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html625"
<A NAME="tex2html630"
HREF="node31.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html633"
<A NAME="tex2html638"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html636"
<B> Next:</B> <A NAME="tex2html641"
HREF="node33.html">csclip Reduce</A>
<B> Up:</B> <A NAME="tex2html632"
<B> Up:</B> <A NAME="tex2html637"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html626"
<B> Previous:</B> <A NAME="tex2html631"
HREF="node31.html">is_lower, is_upper, is_triangle, is_unit</A>
&nbsp; <B> <A NAME="tex2html634"
&nbsp; <B> <A NAME="tex2html639"
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="tex2html647"
<A NAME="tex2html652"
HREF="node34.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html643"
<A NAME="tex2html648"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html637"
<A NAME="tex2html642"
HREF="node32.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html645"
<A NAME="tex2html650"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html648"
HREF="node34.html">get_diag Get</A>
<B> Up:</B> <A NAME="tex2html644"
<B> Next:</B> <A NAME="tex2html653"
HREF="node34.html">clean_zeros Eliminate</A>
<B> Up:</B> <A NAME="tex2html649"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html638"
<B> Previous:</B> <A NAME="tex2html643"
HREF="node32.html">cscnv Convert</A>
&nbsp; <B> <A NAME="tex2html646"
&nbsp; <B> <A NAME="tex2html651"
HREF="node1.html">Contents</A></B>
<BR>
<BR>

@ -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_diag -- Get main diagonal</TITLE>
<META NAME="description" CONTENT="get_diag -- Get main diagonal">
<TITLE>clean_zeros -- Eliminate zero coefficients</TITLE>
<META NAME="description" CONTENT="clean_zeros -- Eliminate zero coefficients">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -26,41 +26,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html659"
<A NAME="tex2html664"
HREF="node35.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html655"
<A NAME="tex2html660"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html649"
<A NAME="tex2html654"
HREF="node33.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html657"
<A NAME="tex2html662"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html660"
HREF="node35.html">clip_diag Cut</A>
<B> Up:</B> <A NAME="tex2html656"
<B> Next:</B> <A NAME="tex2html665"
HREF="node35.html">get_diag Get</A>
<B> Up:</B> <A NAME="tex2html661"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html650"
<B> Previous:</B> <A NAME="tex2html655"
HREF="node33.html">csclip Reduce</A>
&nbsp; <B> <A NAME="tex2html658"
&nbsp; <B> <A NAME="tex2html663"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421200000000000000">
get_diag -- Get main diagonal</A>
clean_zeros -- Eliminate zero coefficients</A>
</H3>
<PRE>
call a%get_diag(d,info)
call a%clean_zeros(info)
</PRE>
<P>
Returns a copy of the main diagonal.
Eliminates zero coefficients in the input matrix. Note that depending
on the internal storage format, there may still be some amount of
zero padding in the output.
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
@ -80,10 +84,10 @@ Scope: <B>local</B>.
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>d</STRONG></DT>
<DD>A copy of the main diagonal.
<DT><STRONG>a</STRONG></DT>
<DD>The matrix <code>a</code> without zero coefficients.
<BR>
A one-dimensional array of the appropriate type.
A variable of type <code>psb_Tspmat_type</code>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Return code.

@ -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="tex2html671"
<A NAME="tex2html676"
HREF="node36.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html667"
<A NAME="tex2html672"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html661"
<A NAME="tex2html666"
HREF="node34.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html669"
<A NAME="tex2html674"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html672"
HREF="node36.html">tril Return</A>
<B> Up:</B> <A NAME="tex2html668"
<B> Next:</B> <A NAME="tex2html677"
HREF="node36.html">clip_diag Cut</A>
<B> Up:</B> <A NAME="tex2html673"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html662"
HREF="node34.html">get_diag Get</A>
&nbsp; <B> <A NAME="tex2html670"
<B> Previous:</B> <A NAME="tex2html667"
HREF="node34.html">clean_zeros Eliminate</A>
&nbsp; <B> <A NAME="tex2html675"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421300000000000000">
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.

@ -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="tex2html683"
<A NAME="tex2html688"
HREF="node37.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html679"
<A NAME="tex2html684"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html673"
<A NAME="tex2html678"
HREF="node35.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html681"
<A NAME="tex2html686"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html684"
HREF="node37.html">triu Return</A>
<B> Up:</B> <A NAME="tex2html680"
<B> Next:</B> <A NAME="tex2html689"
HREF="node37.html">tril Return</A>
<B> Up:</B> <A NAME="tex2html685"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html674"
HREF="node35.html">clip_diag Cut</A>
&nbsp; <B> <A NAME="tex2html682"
<B> Previous:</B> <A NAME="tex2html679"
HREF="node35.html">get_diag Get</A>
&nbsp; <B> <A NAME="tex2html687"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421400000000000000">
tril -- Return the lower triangle</A>
clip_diag -- Cut out main diagonal</A>
</H3>
<PRE>
call a%tril(b,info[,&amp;
&amp; 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,27 +75,13 @@ A variable of type <code>psb_Tspmat_type</code>.
<BR>
Scope: <B>local</B>.
<BR></DD>
<DT><STRONG>diag</STRONG></DT>
<DD>Include diagonals up to this one; <code>diag=1</code> means the
first superdiagonal, <code>diag=-1</code> means the first subdiagonal.
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>

@ -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="tex2html695"
<A NAME="tex2html700"
HREF="node38.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html691"
<A NAME="tex2html696"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html685"
<A NAME="tex2html690"
HREF="node36.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html693"
<A NAME="tex2html698"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html696"
HREF="node38.html">psb_set_mat_default Set</A>
<B> Up:</B> <A NAME="tex2html692"
<B> Next:</B> <A NAME="tex2html701"
HREF="node38.html">triu Return</A>
<B> Up:</B> <A NAME="tex2html697"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html686"
HREF="node36.html">tril Return</A>
&nbsp; <B> <A NAME="tex2html694"
<B> Previous:</B> <A NAME="tex2html691"
HREF="node36.html">clip_diag Cut</A>
&nbsp; <B> <A NAME="tex2html699"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421500000000000000">
triu -- Return the upper triangle</A>
tril -- Return the lower triangle</A>
</H3>
<PRE>
call a%triu(b,info[,&amp;
call a%tril(b,info[,&amp;
&amp; 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>

@ -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="tex2html707"
<A NAME="tex2html712"
HREF="node39.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html703"
<A NAME="tex2html708"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html697"
<A NAME="tex2html702"
HREF="node37.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html705"
<A NAME="tex2html710"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html708"
HREF="node39.html">clone Clone</A>
<B> Up:</B> <A NAME="tex2html704"
<B> Next:</B> <A NAME="tex2html713"
HREF="node39.html">psb_set_mat_default Set</A>
<B> Up:</B> <A NAME="tex2html709"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html698"
HREF="node37.html">triu Return</A>
&nbsp; <B> <A NAME="tex2html706"
<B> Previous:</B> <A NAME="tex2html703"
HREF="node37.html">tril Return</A>
&nbsp; <B> <A NAME="tex2html711"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421600000000000000">
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[,&amp;
&amp; 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,38 @@ 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>
A variable of type <code>psb_Tspmat_type</code>.
<BR>
Scope: <B>local</B>.
<BR></DD>
<DT><STRONG>diag</STRONG></DT>
<DD>Include diagonals up to this one; <code>diag=1</code> means the
first superdiagonal, <code>diag=-1</code> means the first subdiagonal.
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>
Type: required.
A variable of type <code>psb_Tspmat_type</code>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Return code.
</DD>
</DL>

@ -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="tex2html719"
<A NAME="tex2html724"
HREF="node40.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html715"
<A NAME="tex2html720"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html709"
<A NAME="tex2html714"
HREF="node38.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html717"
<A NAME="tex2html722"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html720"
HREF="node40.html">Named Constants</A>
<B> Up:</B> <A NAME="tex2html716"
<B> Next:</B> <A NAME="tex2html725"
HREF="node40.html">clone Clone</A>
<B> Up:</B> <A NAME="tex2html721"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html710"
HREF="node38.html">psb_set_mat_default Set</A>
&nbsp; <B> <A NAME="tex2html718"
<B> Previous:</B> <A NAME="tex2html715"
HREF="node38.html">triu Return</A>
&nbsp; <B> <A NAME="tex2html723"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421700000000000000">
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>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html236"
<A NAME="tex2html238"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html232"
<A NAME="tex2html234"
HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html226"
<A NAME="tex2html228"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html234"
<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="tex2html237"
<B> Next:</B> <A NAME="tex2html239"
HREF="node5.html">Library contents</A>
<B> Up:</B> <A NAME="tex2html233"
<B> Up:</B> <A NAME="tex2html235"
HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html227"
<B> Previous:</B> <A NAME="tex2html229"
HREF="node3.html">General overview</A>
&nbsp; <B> <A NAME="tex2html235"
&nbsp; <B> <A NAME="tex2html237"
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&nbsp;[<A
HREF="node129.html#2007c">4</A>,<A
HREF="node129.html#2007d">3</A>].
HREF="node131.html#2007c">4</A>,<A
HREF="node131.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="tex2html236"
<A NAME="tex2html238"
HREF="node5.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html232"
<A NAME="tex2html234"
HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html226"
<A NAME="tex2html228"
HREF="node3.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html234"
<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="tex2html237"
<B> Next:</B> <A NAME="tex2html239"
HREF="node5.html">Library contents</A>
<B> Up:</B> <A NAME="tex2html233"
<B> Up:</B> <A NAME="tex2html235"
HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html227"
<B> Previous:</B> <A NAME="tex2html229"
HREF="node3.html">General overview</A>
&nbsp; <B> <A NAME="tex2html235"
&nbsp; <B> <A NAME="tex2html237"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<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="node41.html">
<LINK REL="previous" HREF="node39.html">
<LINK REL="up" HREF="node22.html">
<LINK REL="next" HREF="node41.html">
@ -25,56 +26,65 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html729"
<A NAME="tex2html736"
HREF="node41.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html725"
<A NAME="tex2html732"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html721"
<A NAME="tex2html726"
HREF="node39.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html727"
<A NAME="tex2html734"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html730"
HREF="node41.html">Dense Vector Data Structure</A>
<B> Up:</B> <A NAME="tex2html726"
<B> Next:</B> <A NAME="tex2html737"
HREF="node41.html">Named Constants</A>
<B> Up:</B> <A NAME="tex2html733"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html722"
HREF="node39.html">clone Clone</A>
&nbsp; <B> <A NAME="tex2html728"
<B> Previous:</B> <A NAME="tex2html727"
HREF="node39.html">psb_set_mat_default Set</A>
&nbsp; <B> <A NAME="tex2html735"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H3><A NAME="SECTION000421800000000000000"></A>
<A NAME="sec:sp_constants"></A>
<BR>
Named Constants
<H3><A NAME="SECTION000421800000000000000">
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
</DD>
<DT><STRONG>psb_upd_dflt_</STRONG></DT>
<DD>Default update strategy for matrix coefficients;
<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_srch_</STRONG></DT>
<DD>Update strategy based on search into the data structure;
<DT><STRONG>b</STRONG></DT>
<DD>A copy of the input object.
</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>

@ -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,148 +18,68 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node47.html">
<LINK REL="previous" HREF="node22.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="previous" HREF="node40.html">
<LINK REL="up" HREF="node22.html">
<LINK REL="next" HREF="node42.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html741"
<A NAME="tex2html746"
HREF="node42.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html737"
HREF="node9.html">
<A NAME="tex2html742"
HREF="node22.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html731"
<A NAME="tex2html738"
HREF="node40.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html739"
<A NAME="tex2html744"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html742"
HREF="node42.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html738"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html732"
HREF="node40.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html740"
<B> Next:</B> <A NAME="tex2html747"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Up:</B> <A NAME="tex2html743"
HREF="node22.html">Sparse Matrix class</A>
<B> Previous:</B> <A NAME="tex2html739"
HREF="node40.html">clone Clone</A>
&nbsp; <B> <A NAME="tex2html745"
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="SECTION000421900000000000000"></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.&nbsp;<A HREF="node68.html#sec:toolsrout">6</A>. Among other
simple things, we define here an extraction method that can be used to
get a full copy of the part of the vector stored on the local
process.
<P>
The type declaration is shown in
figure&nbsp;<A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
data type and precision variants
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>psb_dupl_add_</STRONG></DT>
<DD>Duplicate coefficients should be added;
</DD>
<DT><STRONG>S</STRONG></DT>
<DD>Single precision real;
<DT><STRONG>psb_dupl_err_</STRONG></DT>
<DD>Duplicate coefficients should trigger an error conditino
</DD>
<DT><STRONG>D</STRONG></DT>
<DD>Double precision real;
<DT><STRONG>psb_upd_dflt_</STRONG></DT>
<DD>Default update strategy for matrix coefficients;
</DD>
<DT><STRONG>C</STRONG></DT>
<DD>Single precision complex;
<DT><STRONG>psb_upd_srch_</STRONG></DT>
<DD>Update strategy based on search into the data structure;
</DD>
<DT><STRONG>Z</STRONG></DT>
<DD>Double precision complex.
<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="884"></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="tex2html743"
HREF="node42.html">Vector Methods</A>
<LI><A NAME="tex2html744"
HREF="node43.html">get_nrows -- Get number of rows in a dense vector</A>
<LI><A NAME="tex2html745"
HREF="node44.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
<LI><A NAME="tex2html746"
HREF="node45.html">get_vect -- Get a copy of the vector contents</A>
<LI><A NAME="tex2html747"
HREF="node46.html">clone -- Clone current object</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html741"
HREF="node42.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html737"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html731"
HREF="node40.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html739"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html742"
HREF="node42.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html738"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html732"
HREF="node40.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html740"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -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,9 +18,9 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node43.html">
<LINK REL="previous" HREF="node41.html">
<LINK REL="up" HREF="node41.html">
<LINK REL="next" HREF="node49.html">
<LINK REL="previous" HREF="node22.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node43.html">
</HEAD>
@ -30,7 +30,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
HREF="node43.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html754"
HREF="node41.html">
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html748"
HREF="node41.html">
@ -40,21 +40,128 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html759"
HREF="node43.html">get_nrows Get</A>
HREF="node43.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html755"
HREF="node41.html">Dense Vector Data Structure</A>
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html749"
HREF="node41.html">Dense Vector Data Structure</A>
HREF="node41.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html757"
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.&nbsp;<A HREF="node70.html#sec:toolsrout">6</A>. Among other
simple things, we define here an extraction method that can be used to
get a full copy of the part of the vector stored on the local
process.
<P>
The type declaration is shown in
figure&nbsp;<A HREF="#fig:vectype">5</A> where <code>T</code> is a placeholder for the
data type and precision variants
<DL>
<DT><STRONG>I</STRONG></DT>
<DD>Integer;
</DD>
<DT><STRONG>S</STRONG></DT>
<DD>Single precision real;
</DD>
<DT><STRONG>D</STRONG></DT>
<DD>Double precision real;
</DD>
<DT><STRONG>C</STRONG></DT>
<DD>Single precision complex;
</DD>
<DT><STRONG>Z</STRONG></DT>
<DD>Double precision complex.
</DD>
</DL>
The actual data is contained in the polymorphic component <code>v%v</code>;
the separation between the application and the actual data is
essential for cases where it is necessary to link to data storage made
available elsewhere outside the direct control of the
compiler/application, e.g. data stored in a graphics accelerator's
private memory.
<DIV ALIGN="CENTER"><A NAME="fig:vectype"></A><A NAME="918"></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="tex2html760"
HREF="node43.html">Vector Methods</A>
<LI><A NAME="tex2html761"
HREF="node44.html">get_nrows -- Get number of rows in a dense vector</A>
<LI><A NAME="tex2html762"
HREF="node45.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
<LI><A NAME="tex2html763"
HREF="node46.html">set -- Set contents of the vector</A>
<LI><A NAME="tex2html764"
HREF="node47.html">get_vect -- Get a copy of the vector contents</A>
<LI><A NAME="tex2html765"
HREF="node48.html">clone -- Clone current object</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html758"
HREF="node43.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html754"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html748"
HREF="node41.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html756"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html759"
HREF="node43.html">Vector Methods</A>
<B> Up:</B> <A NAME="tex2html755"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html749"
HREF="node41.html">Named Constants</A>
&nbsp; <B> <A NAME="tex2html757"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

@ -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="node44.html">
<LINK REL="previous" HREF="node42.html">
<LINK REL="up" HREF="node41.html">
<LINK REL="up" HREF="node42.html">
<LINK REL="next" HREF="node44.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html770"
<A NAME="tex2html776"
HREF="node44.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html766"
HREF="node41.html">
<A NAME="tex2html772"
HREF="node42.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html760"
<A NAME="tex2html766"
HREF="node42.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html768"
<A NAME="tex2html774"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html771"
HREF="node44.html">sizeof Get</A>
<B> Up:</B> <A NAME="tex2html767"
HREF="node41.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html761"
HREF="node42.html">Vector Methods</A>
&nbsp; <B> <A NAME="tex2html769"
<B> Next:</B> <A NAME="tex2html777"
HREF="node44.html">get_nrows Get</A>
<B> Up:</B> <A NAME="tex2html773"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html767"
HREF="node42.html">Dense Vector Data Structure</A>
&nbsp; <B> <A NAME="tex2html775"
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>

@ -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="node45.html">
<LINK REL="previous" HREF="node43.html">
<LINK REL="up" HREF="node41.html">
<LINK REL="up" HREF="node42.html">
<LINK REL="next" HREF="node45.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html782"
<A NAME="tex2html788"
HREF="node45.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html778"
HREF="node41.html">
<A NAME="tex2html784"
HREF="node42.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html772"
<A NAME="tex2html778"
HREF="node43.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html780"
<A NAME="tex2html786"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html783"
HREF="node45.html">get_vect Get</A>
<B> Up:</B> <A NAME="tex2html779"
HREF="node41.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html773"
HREF="node43.html">get_nrows Get</A>
&nbsp; <B> <A NAME="tex2html781"
<B> Next:</B> <A NAME="tex2html789"
HREF="node45.html">sizeof Get</A>
<B> Up:</B> <A NAME="tex2html785"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html779"
HREF="node43.html">Vector Methods</A>
&nbsp; <B> <A NAME="tex2html787"
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>

@ -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="node46.html">
<LINK REL="previous" HREF="node44.html">
<LINK REL="up" HREF="node41.html">
<LINK REL="up" HREF="node42.html">
<LINK REL="next" HREF="node46.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html794"
<A NAME="tex2html800"
HREF="node46.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html790"
HREF="node41.html">
<A NAME="tex2html796"
HREF="node42.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html784"
<A NAME="tex2html790"
HREF="node44.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html792"
<A NAME="tex2html798"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html795"
HREF="node46.html">clone Clone</A>
<B> Up:</B> <A NAME="tex2html791"
HREF="node41.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html785"
HREF="node44.html">sizeof Get</A>
&nbsp; <B> <A NAME="tex2html793"
<B> Next:</B> <A NAME="tex2html801"
HREF="node46.html">set Set</A>
<B> Up:</B> <A NAME="tex2html797"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html791"
HREF="node44.html">get_nrows Get</A>
&nbsp; <B> <A NAME="tex2html799"
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>

@ -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>set -- Set contents of the vector</TITLE>
<META NAME="description" CONTENT="set -- Set contents of the vector">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -18,44 +18,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node47.html">
<LINK REL="previous" HREF="node45.html">
<LINK REL="up" HREF="node41.html">
<LINK REL="up" HREF="node42.html">
<LINK REL="next" HREF="node47.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html804"
<A NAME="tex2html812"
HREF="node47.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html800"
HREF="node41.html">
<A NAME="tex2html808"
HREF="node42.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html796"
<A NAME="tex2html802"
HREF="node45.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html802"
<A NAME="tex2html810"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html805"
HREF="node47.html">Preconditioner data structure</A>
<B> Up:</B> <A NAME="tex2html801"
HREF="node41.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html797"
HREF="node45.html">get_vect Get</A>
&nbsp; <B> <A NAME="tex2html803"
<B> Next:</B> <A NAME="tex2html813"
HREF="node47.html">get_vect Get</A>
<B> Up:</B> <A NAME="tex2html809"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html803"
HREF="node45.html">sizeof Get</A>
&nbsp; <B> <A NAME="tex2html811"
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">
set -- Set contents of the vector</A>
</H3>
<P>
<PRE>
call x%clone(y,info)
call v%set(alpha[,first,last])
call v%set(vect[,first,last])
call v%zero()
</PRE>
<P>
@ -66,24 +70,64 @@ 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>
<DT><STRONG>alpha</STRONG></DT>
<DD>A scalar value.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data
type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
<P>
</DD>
<DT><STRONG>first,last</STRONG></DT>
<DD>Boundaries for setting in the vector.
<BR>
Scope: <B> local</B>
<BR>
Type: <B>optional</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified
as: integers.
</DD>
<DT><STRONG>vect</STRONG></DT>
<DD>An array
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data
type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
</DL>
Note that a call to <code>v%zero()</code> is provided as a shorthand, but
is equivalent to a call to <code>v%set(zero)</code> with the <code>zero</code>
constant having the appropriate type and kind.
<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>
<DT><STRONG>v</STRONG></DT>
<DD>the dense vector, with updated entries
<BR>
Scope: <B>local</B>
<BR></DD>
</DL>
<P>

@ -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>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">
@ -19,71 +19,72 @@ 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="node41.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="previous" HREF="node46.html">
<LINK REL="up" HREF="node42.html">
<LINK REL="next" HREF="node48.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html816"
<A NAME="tex2html824"
HREF="node48.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html812"
HREF="node9.html">
<A NAME="tex2html820"
HREF="node42.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html806"
<A NAME="tex2html814"
HREF="node46.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html814"
<A NAME="tex2html822"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html817"
HREF="node48.html">Heap data structure</A>
<B> Up:</B> <A NAME="tex2html813"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html807"
HREF="node46.html">clone Clone</A>
&nbsp; <B> <A NAME="tex2html815"
<B> Next:</B> <A NAME="tex2html825"
HREF="node48.html">clone Clone</A>
<B> Up:</B> <A NAME="tex2html821"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html815"
HREF="node46.html">set Set</A>
&nbsp; <B> <A NAME="tex2html823"
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">
get_vect -- Get a copy of the vector contents</A>
</H3>
<P>
A preconditioner is held in the precdata<TT> psb_prec_type</TT> data structure reported in
figure&nbsp;<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.
<DIV ALIGN="CENTER"><A NAME="fig:prectype"></A><A NAME="886"></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>
extv = v%get_vect()
</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>An allocatable array holding a copy of the dense
vector contents.
</DD>
</DL>
<P>
<BR><HR>

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>Heap data structure</TITLE>
<META NAME="description" CONTENT="Heap 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">
@ -19,79 +19,72 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="previous" HREF="node47.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="up" HREF="node42.html">
<LINK REL="next" HREF="node49.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html826"
<A NAME="tex2html834"
HREF="node49.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html822"
HREF="node9.html">
<A NAME="tex2html830"
HREF="node42.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html818"
<A NAME="tex2html826"
HREF="node47.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html824"
<A NAME="tex2html832"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html827"
HREF="node49.html">Computational routines</A>
<B> Up:</B> <A NAME="tex2html823"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html819"
HREF="node47.html">Preconditioner data structure</A>
&nbsp; <B> <A NAME="tex2html825"
<B> Next:</B> <A NAME="tex2html835"
HREF="node49.html">Preconditioner data structure</A>
<B> Up:</B> <A NAME="tex2html831"
HREF="node42.html">Dense Vector Data Structure</A>
<B> Previous:</B> <A NAME="tex2html827"
HREF="node47.html">get_vect Get</A>
&nbsp; <B> <A NAME="tex2html833"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00045000000000000000">
Heap data structure</A>
</H2>
<H3><A NAME="SECTION00043600000000000000">
clone -- Clone current object</A>
</H3>
<PRE>
call x%clone(y,info)
</PRE>
<P>
Among the tools routines of sec.&nbsp;<A HREF="node68.html#sec:toolsrout">6</A>, we have a number
of sorting utilities; the heap sort is implemented in terms of heaps
having the following signatures:
<DL>
<DT><STRONG><TT>psb_T_heap</TT></STRONG></DT>
<DD>: a heap containing elements of type T, where T
can be <code>i,s,c,d,z</code> for integer, real and complex data;
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><TT>psb_T_idx_heap</TT></STRONG></DT>
<DD>: a heap containing elements of type T, as
above, together with an integer index.
<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>
Given a heap object, the following methods are defined on it:
<P>
<DL>
<DT><STRONG>init</STRONG></DT>
<DD>Initialize memory; also choose ascending or descending
order;
</DD>
<DT><STRONG>howmany</STRONG></DT>
<DD>Current heap occupancy;
</DD>
<DT><STRONG>insert</STRONG></DT>
<DD>Add an item (or an item and its index);
</DD>
<DT><STRONG>get_first</STRONG></DT>
<DD>Remove and return the first element;
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>dump</STRONG></DT>
<DD>Print on file;
<DT><STRONG>y</STRONG></DT>
<DD>A copy of the input object.
</DD>
<DT><STRONG>free</STRONG></DT>
<DD>Release memory.
<DT><STRONG>info</STRONG></DT>
<DD>Return code.
</DD>
</DL>
These objects are used in MLD2P4 to implement the factorization
algorithms.
<P>
<BR><HR>

@ -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,74 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node63.html">
<LINK REL="previous" HREF="node9.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node50.html">
<LINK REL="previous" HREF="node42.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node50.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html838"
<A NAME="tex2html846"
HREF="node50.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html834"
HREF="userhtml.html">
<A NAME="tex2html842"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html828"
<A NAME="tex2html836"
HREF="node48.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html836"
<A NAME="tex2html844"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html839"
HREF="node50.html">psb_geaxpby General</A>
<B> Up:</B> <A NAME="tex2html835"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html829"
HREF="node48.html">Heap data structure</A>
&nbsp; <B> <A NAME="tex2html837"
<B> Next:</B> <A NAME="tex2html847"
HREF="node50.html">Heap data structure</A>
<B> Up:</B> <A NAME="tex2html843"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html837"
HREF="node48.html">clone Clone</A>
&nbsp; <B> <A NAME="tex2html845"
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&nbsp;<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.
<DIV ALIGN="CENTER"><A NAME="fig:prectype"></A><A NAME="920"></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>
<UL>
<LI><A NAME="tex2html840"
HREF="node50.html">psb_geaxpby -- General Dense Matrix Sum</A>
<LI><A NAME="tex2html841"
HREF="node51.html">psb_gedot -- Dot Product</A>
<LI><A NAME="tex2html842"
HREF="node52.html">psb_gedots -- Generalized Dot Product</A>
<LI><A NAME="tex2html843"
HREF="node53.html">psb_normi -- Infinity-Norm of Vector</A>
<LI><A NAME="tex2html844"
HREF="node54.html">psb_geamaxs -- Generalized Infinity Norm</A>
<LI><A NAME="tex2html845"
HREF="node55.html">psb_norm1 -- 1-Norm of Vector</A>
<LI><A NAME="tex2html846"
HREF="node56.html">psb_geasums -- Generalized 1-Norm of Vector</A>
<LI><A NAME="tex2html847"
HREF="node57.html">psb_norm2 -- 2-Norm of Vector</A>
<LI><A NAME="tex2html848"
HREF="node58.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
<LI><A NAME="tex2html849"
HREF="node59.html">psb_norm1 -- 1-Norm of Sparse Matrix</A>
<LI><A NAME="tex2html850"
HREF="node60.html">psb_normi -- Infinity Norm of Sparse Matrix</A>
<LI><A NAME="tex2html851"
HREF="node61.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
<LI><A NAME="tex2html852"
HREF="node62.html">psb_spsm -- Triangular System Solve</A>
</UL>
<!--End of Table of Child-Links-->
<P>
<BR><HR>
</BODY>

@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html248"
<A NAME="tex2html250"
HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html244"
<A NAME="tex2html246"
HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html238"
<A NAME="tex2html240"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html246"
<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="tex2html249"
<B> Next:</B> <A NAME="tex2html251"
HREF="node6.html">Application structure</A>
<B> Up:</B> <A NAME="tex2html245"
<B> Up:</B> <A NAME="tex2html247"
HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html239"
<B> Previous:</B> <A NAME="tex2html241"
HREF="node4.html">Basic Nomenclature</A>
&nbsp; <B> <A NAME="tex2html247"
&nbsp; <B> <A NAME="tex2html249"
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&nbsp;<A HREF="node68.html#sec:toolsrout">6</A>) on
<code>psb_cdins</code> perform the same action (see&nbsp;<A HREF="node70.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.4.0</code>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html248"
<A NAME="tex2html250"
HREF="node6.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html244"
<A NAME="tex2html246"
HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html238"
<A NAME="tex2html240"
HREF="node4.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html246"
<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="tex2html249"
<B> Next:</B> <A NAME="tex2html251"
HREF="node6.html">Application structure</A>
<B> Up:</B> <A NAME="tex2html245"
<B> Up:</B> <A NAME="tex2html247"
HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html239"
<B> Previous:</B> <A NAME="tex2html241"
HREF="node4.html">Basic Nomenclature</A>
&nbsp; <B> <A NAME="tex2html247"
&nbsp; <B> <A NAME="tex2html249"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_geaxpby -- General Dense Matrix Sum</TITLE>
<META NAME="description" CONTENT="psb_geaxpby -- General Dense Matrix Sum">
<TITLE>Heap data structure</TITLE>
<META NAME="description" CONTENT="Heap data structure">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -18,261 +18,83 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node51.html">
<LINK REL="previous" HREF="node49.html">
<LINK REL="up" HREF="node49.html">
<LINK REL="up" HREF="node9.html">
<LINK REL="next" HREF="node51.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html863"
<A NAME="tex2html856"
HREF="node51.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html859"
HREF="node49.html">
<A NAME="tex2html852"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html853"
<A NAME="tex2html848"
HREF="node49.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html861"
<A NAME="tex2html854"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html864"
HREF="node51.html">psb_gedot Dot</A>
<B> Up:</B> <A NAME="tex2html860"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html854"
HREF="node49.html">Computational routines</A>
&nbsp; <B> <A NAME="tex2html862"
<B> Next:</B> <A NAME="tex2html857"
HREF="node51.html">Computational routines</A>
<B> Up:</B> <A NAME="tex2html853"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html849"
HREF="node49.html">Preconditioner data structure</A>
&nbsp; <B> <A NAME="tex2html855"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00051000000000000000">
psb_geaxpby -- General Dense Matrix Sum</A>
<H2><A NAME="SECTION00045000000000000000">
Heap data structure</A>
</H2>
<P>
This subroutine is an interface to the computational kernel for
dense matrix sum:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
y \leftarrow \alpha\> x+ \beta y
\end{displaymath}
-->
<IMG
WIDTH="93" HEIGHT="27" BORDER="0"
SRC="img19.png"
ALT="\begin{displaymath}y \leftarrow \alpha\&gt; x+ \beta y \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
<P>
<PRE>
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1861"></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="13" HEIGHT="14" 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="14" 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>
Among the tools routines of sec.&nbsp;<A HREF="node70.html#sec:toolsrout">6</A>, we have a number
of sorting utilities; the heap sort is implemented in terms of heaps
having the following signatures:
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
<DT><STRONG><TT>psb_T_heap</TT></STRONG></DT>
<DD>: a heap containing elements of type T, where T
can be <code>i,s,c,d,z</code> for integer, real and complex data;
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
<DT><STRONG><TT>psb_T_idx_heap</TT></STRONG></DT>
<DD>: a heap containing elements of type T, as
above, together with an integer index.
</DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DL>
Given a heap object, the following methods are defined on it:
<DL>
<DT><STRONG>init</STRONG></DT>
<DD>Initialize memory; also choose ascending or descending
order;
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type
specified in Table&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="13" HEIGHT="14" 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$">.
<DT><STRONG>howmany</STRONG></DT>
<DD>Current heap occupancy;
</DD>
<DT><STRONG>beta</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
<DT><STRONG>insert</STRONG></DT>
<DD>Add an item (or an item and its index);
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of the global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<DT><STRONG>get_first</STRONG></DT>
<DD>Remove and return the first element;
</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>
<DT><STRONG>dump</STRONG></DT>
<DD>Print on file;
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of result submatrix <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>out</B>.
<BR>
An integer value; 0 means no error has been detected.
<DT><STRONG>free</STRONG></DT>
<DD>Release memory.
</DD>
</DL>
These objects are used in MLD2P4 to implement the factorization
algorithms.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html863"
HREF="node51.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html859"
HREF="node49.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html853"
HREF="node49.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html861"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html864"
HREF="node51.html">psb_gedot Dot</A>
<B> Up:</B> <A NAME="tex2html860"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html854"
HREF="node49.html">Computational routines</A>
&nbsp; <B> <A NAME="tex2html862"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<BR><HR>
</BODY>
</HTML>

@ -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>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,260 +18,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node52.html">
<LINK REL="previous" HREF="node50.html">
<LINK REL="up" HREF="node49.html">
<LINK REL="next" HREF="node65.html">
<LINK REL="previous" HREF="node9.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="next" HREF="node52.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html875"
<A NAME="tex2html868"
HREF="node52.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html871"
HREF="node49.html">
<A NAME="tex2html864"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html865"
<A NAME="tex2html858"
HREF="node50.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html873"
<A NAME="tex2html866"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html876"
HREF="node52.html">psb_gedots Generalized</A>
<B> Up:</B> <A NAME="tex2html872"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html866"
HREF="node50.html">psb_geaxpby General</A>
&nbsp; <B> <A NAME="tex2html874"
<B> Next:</B> <A NAME="tex2html869"
HREF="node52.html">psb_geaxpby General</A>
<B> Up:</B> <A NAME="tex2html865"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html859"
HREF="node50.html">Heap data structure</A>
&nbsp; <B> <A NAME="tex2html867"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00052000000000000000">
psb_gedot -- Dot Product</A>
</H2>
<P>
This function computes dot product between two vectors <IMG
WIDTH="13" HEIGHT="14" 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="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> are real vectors
it computes dot-product as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
dot \leftarrow x^T y
\end{displaymath}
-->
<IMG
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>
Else if <IMG
WIDTH="13" HEIGHT="14" 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}
-->
<H1><A NAME="SECTION00050000000000000000">
Computational routines</A>
</H1>
<IMG
WIDTH="75" 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>
psb_gedot(x, y, desc_a, info)
</PRE>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1862"></A>
<TABLE>
<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="25" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"
ALT="$dot$">, <IMG
WIDTH="13" HEIGHT="14" 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>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Real</TD>
<TD ALIGN="LEFT">psb_gedot</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_gedot</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedot</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedot</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<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>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab: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
WIDTH="13" HEIGHT="14" 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>
<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="13" HEIGHT="14" 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>
Scope: <B>global</B>
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90dot">2</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="tex2html875"
HREF="node52.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html871"
HREF="node49.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html865"
HREF="node50.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html873"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html876"
HREF="node52.html">psb_gedots Generalized</A>
<B> Up:</B> <A NAME="tex2html872"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html866"
HREF="node50.html">psb_geaxpby General</A>
&nbsp; <B> <A NAME="tex2html874"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
<UL>
<LI><A NAME="tex2html870"
HREF="node52.html">psb_geaxpby -- General Dense Matrix Sum</A>
<LI><A NAME="tex2html871"
HREF="node53.html">psb_gedot -- Dot Product</A>
<LI><A NAME="tex2html872"
HREF="node54.html">psb_gedots -- Generalized Dot Product</A>
<LI><A NAME="tex2html873"
HREF="node55.html">psb_normi -- Infinity-Norm of Vector</A>
<LI><A NAME="tex2html874"
HREF="node56.html">psb_geamaxs -- Generalized Infinity Norm</A>
<LI><A NAME="tex2html875"
HREF="node57.html">psb_norm1 -- 1-Norm of Vector</A>
<LI><A NAME="tex2html876"
HREF="node58.html">psb_geasums -- Generalized 1-Norm of Vector</A>
<LI><A NAME="tex2html877"
HREF="node59.html">psb_norm2 -- 2-Norm of Vector</A>
<LI><A NAME="tex2html878"
HREF="node60.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
<LI><A NAME="tex2html879"
HREF="node61.html">psb_norm1 -- 1-Norm of Sparse Matrix</A>
<LI><A NAME="tex2html880"
HREF="node62.html">psb_normi -- Infinity Norm of Sparse Matrix</A>
<LI><A NAME="tex2html881"
HREF="node63.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
<LI><A NAME="tex2html882"
HREF="node64.html">psb_spsm -- Triangular System Solve</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
</BODY>
</HTML>

@ -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_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,117 +20,98 @@ 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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node53.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html887"
<A NAME="tex2html893"
HREF="node53.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html883"
HREF="node49.html">
<A NAME="tex2html889"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html877"
<A NAME="tex2html883"
HREF="node51.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html885"
<A NAME="tex2html891"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html888"
HREF="node53.html">psb_normi Infinity-Norm</A>
<B> Up:</B> <A NAME="tex2html884"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html878"
HREF="node51.html">psb_gedot Dot</A>
&nbsp; <B> <A NAME="tex2html886"
<B> Next:</B> <A NAME="tex2html894"
HREF="node53.html">psb_gedot Dot</A>
<B> Up:</B> <A NAME="tex2html890"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html884"
HREF="node51.html">Computational routines</A>
&nbsp; <B> <A NAME="tex2html892"
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="SECTION00051000000000000000">
psb_geaxpby -- General Dense Matrix Sum</A>
</H2>
<P>
This subroutine computes a series of dot products among the columns of
two dense matrices <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> and <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">:
This subroutine is an interface to the computational kernel for
dense matrix sum:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \leftarrow x(:,i)^T y(:,i)
y \leftarrow \alpha\> x+ \beta 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="93" HEIGHT="27" BORDER="0"
SRC="img19.png"
ALT="\begin{displaymath}y \leftarrow \alpha\&gt; x+ \beta y \end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
If the matrices are complex, then the
usual convention applies, i.e. the conjugate transpose of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is
used. If <IMG
WIDTH="13" HEIGHT="14" 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="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png"
ALT="$res$"> is a scalar, else it
is a rank one array.
<P></P>
<P>
<PRE>
call psb_gedots(res, 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="1863"></A>
<DIV ALIGN="CENTER"><A NAME="1943"></A>
<TABLE>
<CAPTION><STRONG>Table 3:</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="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png"
ALT="$res$">, <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"></TD>
ALT="$y$">, <IMG
WIDTH="14" HEIGHT="14" 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_gedots</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedots</TD>
<TD ALIGN="LEFT">psb_geaxpby</TD>
</TR>
</TABLE>
</DIV>
@ -147,12 +128,27 @@ 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="14" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data
type indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>x</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
@ -160,9 +156,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&nbsp;<A HREF="#tab:f90mdot">3</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&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
@ -170,8 +166,22 @@ Table&nbsp;<A HREF="#tab:f90mdot">3</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&nbsp;<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"
@ -181,11 +191,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&nbsp;<A HREF="#tab:f90mdot">3</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&nbsp;<A HREF="#tab:f90axpby">1</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
@ -203,25 +212,29 @@ Type: <B>required</B>
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>res</STRONG></DT>
<DD>is the dot product of subvectors <IMG
WIDTH="13" HEIGHT="14" 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>
Intent: <B>out</B>.
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a number or a rank-one array of the data type indicated
in Table&nbsp;<A HREF="#tab:f90dot">2</A>.
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT> containing numbers of the type
indicated in Table&nbsp;<A HREF="#tab:f90axpby">1</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
@ -239,26 +252,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html887"
<A NAME="tex2html893"
HREF="node53.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html883"
HREF="node49.html">
<A NAME="tex2html889"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html877"
<A NAME="tex2html883"
HREF="node51.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html885"
<A NAME="tex2html891"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html888"
HREF="node53.html">psb_normi Infinity-Norm</A>
<B> Up:</B> <A NAME="tex2html884"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html878"
HREF="node51.html">psb_gedot Dot</A>
&nbsp; <B> <A NAME="tex2html886"
<B> Next:</B> <A NAME="tex2html894"
HREF="node53.html">psb_gedot Dot</A>
<B> Up:</B> <A NAME="tex2html890"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html884"
HREF="node51.html">Computational routines</A>
&nbsp; <B> <A NAME="tex2html892"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_normi -- Infinity-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_normi -- Infinity-Norm of Vector">
<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,126 +20,131 @@ 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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node54.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html899"
<A NAME="tex2html905"
HREF="node54.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html895"
HREF="node49.html">
<A NAME="tex2html901"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html889"
<A NAME="tex2html895"
HREF="node52.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html897"
<A NAME="tex2html903"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html900"
HREF="node54.html">psb_geamaxs Generalized</A>
<B> Up:</B> <A NAME="tex2html896"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html890"
HREF="node52.html">psb_gedots Generalized</A>
&nbsp; <B> <A NAME="tex2html898"
<B> Next:</B> <A NAME="tex2html906"
HREF="node54.html">psb_gedots Generalized</A>
<B> Up:</B> <A NAME="tex2html902"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html896"
HREF="node52.html">psb_geaxpby General</A>
&nbsp; <B> <A NAME="tex2html904"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00054000000000000000">
psb_normi -- Infinity-Norm of Vector</A>
<H2><A NAME="SECTION00052000000000000000">
psb_gedot -- Dot Product</A>
</H2>
<P>
This function computes
the infinity-norm of a vector <IMG
This function computes dot product between two vectors <IMG
WIDTH="13" HEIGHT="14" 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>
If <IMG
WIDTH="13" HEIGHT="14" 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$"> are real vectors
it computes dot-product as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
amax \leftarrow \max_i |x_i|
dot \leftarrow x^T y
\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="74" HEIGHT="27" BORDER="0"
SRC="img24.png"
ALT="\begin{displaymath}dot \leftarrow x^T y\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P>
else if <IMG
Else if <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a complex vector then it computes the infinity-norm as:
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}
amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
dot \leftarrow x^H y
\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}">
WIDTH="75" 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>
psb_geamax(x, desc_a, info)
psb_normi(x, desc_a, info)
psb_gedot(x, y, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1864"></A>
<DIV ALIGN="CENTER"><A NAME="1944"></A>
<TABLE>
<CAPTION><STRONG>Table 4:</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="44" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img31.png"
ALT="$amax$"></TD>
<TD ALIGN="LEFT"><IMG
WIDTH="25" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"
ALT="$dot$">, <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></TD>
ALT="$x$">, <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"></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_geamax</TD>
<TD ALIGN="LEFT">psb_gedot</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_gedot</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_gedot</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_gedot</TD>
</TR>
</TABLE>
</DIV>
@ -161,7 +166,30 @@ Data types</CAPTION>
<IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90dot">2</A>. The rank of <IMG
WIDTH="13" HEIGHT="14" 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>
@ -169,9 +197,15 @@ 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&nbsp;<A HREF="#tab:f90amax">4</A>.
Table&nbsp;<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
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -189,14 +223,17 @@ 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 subvector <IMG
<DD>is the dot product of subvectors <IMG
WIDTH="13" HEIGHT="14" 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.
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90dot">2</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
@ -213,26 +250,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html899"
<A NAME="tex2html905"
HREF="node54.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html895"
HREF="node49.html">
<A NAME="tex2html901"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html889"
<A NAME="tex2html895"
HREF="node52.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html897"
<A NAME="tex2html903"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html900"
HREF="node54.html">psb_geamaxs Generalized</A>
<B> Up:</B> <A NAME="tex2html896"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html890"
HREF="node52.html">psb_gedots Generalized</A>
&nbsp; <B> <A NAME="tex2html898"
<B> Next:</B> <A NAME="tex2html906"
HREF="node54.html">psb_gedots Generalized</A>
<B> Up:</B> <A NAME="tex2html902"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html896"
HREF="node52.html">psb_geaxpby General</A>
&nbsp; <B> <A NAME="tex2html904"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_geamaxs -- Generalized Infinity Norm</TITLE>
<META NAME="description" CONTENT="psb_geamaxs -- Generalized Infinity Norm">
<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,73 +20,90 @@ 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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node55.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html911"
<A NAME="tex2html917"
HREF="node55.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html907"
HREF="node49.html">
<A NAME="tex2html913"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html901"
<A NAME="tex2html907"
HREF="node53.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html909"
<A NAME="tex2html915"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html912"
HREF="node55.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html908"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html902"
HREF="node53.html">psb_normi Infinity-Norm</A>
&nbsp; <B> <A NAME="tex2html910"
<B> Next:</B> <A NAME="tex2html918"
HREF="node55.html">psb_normi Infinity-Norm</A>
<B> Up:</B> <A NAME="tex2html914"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html908"
HREF="node53.html">psb_gedot Dot</A>
&nbsp; <B> <A NAME="tex2html916"
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="SECTION00053000000000000000">
psb_gedots -- Generalized Dot Product</A>
</H2>
<P>
This subroutine computes a series of infinity norms on the columns of
a dense matrix <IMG
This subroutine computes a series of dot products among the columns of
two dense matrices <IMG
WIDTH="13" HEIGHT="14" 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><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \leftarrow \max_k |x(k,i)|
res(i) \leftarrow x(:,i)^T y(:,i)
\end{displaymath}
-->
<IMG
WIDTH="148" HEIGHT="36" BORDER="0"
SRC="img32.png"
ALT="\begin{displaymath}res(i) \leftarrow \max_k \vert x(k,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>
If the matrices are complex, then the
usual convention applies, i.e. the conjugate transpose of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is
used. If <IMG
WIDTH="13" HEIGHT="14" 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="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png"
ALT="$res$"> is a scalar, else it
is a rank one array.
<P>
<PRE>
call psb_geamaxs(res, x, desc_a, info)
call psb_gedots(res, x, y, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1865"></A>
<DIV ALIGN="CENTER"><A NAME="1945"></A>
<TABLE>
<CAPTION><STRONG>Table 5:</STRONG>
<CAPTION><STRONG>Table 3:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
@ -94,28 +111,26 @@ Data types</CAPTION>
<TR><TD ALIGN="LEFT"><IMG
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png"
ALT="$res$"></TD>
<TD ALIGN="LEFT"><IMG
ALT="$res$">, <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></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_geamaxs</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_geamaxs</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_geamaxs</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_geamaxs</TD>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_gedots</TD>
</TR>
</TABLE>
</DIV>
@ -145,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&nbsp;<A HREF="#tab:f90mdot">3</A>. The rank of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90mamax">5</A>.
Table&nbsp;<A HREF="#tab:f90mdot">3</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -164,16 +208,20 @@ Specified as: an object of type descdata<TT>psb_desc_type</TT>.
<DD>
</DD>
<DT><STRONG>res</STRONG></DT>
<DD>is the infinity norm of the columns of <IMG
<DD>is the dot product of subvectors <IMG
WIDTH="13" HEIGHT="14" 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>
Intent: <B>out</B>.
<BR>
Specified as: a number or a rank-one array of long precision real numbers.
Specified as: a number or a rank-one array of the data type indicated
in Table&nbsp;<A HREF="#tab:f90dot">2</A>.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
@ -191,26 +239,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html911"
<A NAME="tex2html917"
HREF="node55.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html907"
HREF="node49.html">
<A NAME="tex2html913"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html901"
<A NAME="tex2html907"
HREF="node53.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html909"
<A NAME="tex2html915"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html912"
HREF="node55.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html908"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html902"
HREF="node53.html">psb_normi Infinity-Norm</A>
&nbsp; <B> <A NAME="tex2html910"
<B> Next:</B> <A NAME="tex2html918"
HREF="node55.html">psb_normi Infinity-Norm</A>
<B> Up:</B> <A NAME="tex2html914"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html908"
HREF="node53.html">psb_gedot Dot</A>
&nbsp; <B> <A NAME="tex2html916"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_norm1 -- 1-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_norm1 -- 1-Norm of Vector">
<TITLE>psb_normi -- Infinity-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_normi -- Infinity-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,43 +20,44 @@ 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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node56.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html923"
<A NAME="tex2html929"
HREF="node56.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html919"
HREF="node49.html">
<A NAME="tex2html925"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html913"
<A NAME="tex2html919"
HREF="node54.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html921"
<A NAME="tex2html927"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html924"
HREF="node56.html">psb_geasums Generalized</A>
<B> Up:</B> <A NAME="tex2html920"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html914"
HREF="node54.html">psb_geamaxs Generalized</A>
&nbsp; <B> <A NAME="tex2html922"
<B> Next:</B> <A NAME="tex2html930"
HREF="node56.html">psb_geamaxs Generalized</A>
<B> Up:</B> <A NAME="tex2html926"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html920"
HREF="node54.html">psb_gedots Generalized</A>
&nbsp; <B> <A NAME="tex2html928"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00056000000000000000">
psb_norm1 -- 1-Norm of Vector</A>
<H2><A NAME="SECTION00054000000000000000">
psb_normi -- Infinity-Norm of Vector</A>
</H2>
<P>
This function computes the 1-norm of a vector <IMG
This function computes
the infinity-norm of a vector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
@ -64,62 +65,60 @@ This function computes the 1-norm of a vector <IMG
If <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a real vector
it computes 1-norm as:
ALT="$x$"> is a real vector
it computes infinity norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
asum \leftarrow \|x_i\|
amax \leftarrow \max_i |x_i|
\end{displaymath}
-->
<IMG
WIDTH="92" HEIGHT="28" BORDER="0"
SRC="img33.png"
ALT="\begin{displaymath}asum \leftarrow \Vert x_i\Vert\end{displaymath}">
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="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a complex vector then it computes 1-norm as:
ALT="$x$"> is a complex vector then it computes the infinity-norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1
amax \leftarrow \max_i {(|re(x_i)| + |im(x_i)|)}
\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="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>
psb_geasum(x, desc_a, info)
psb_norm1(x, desc_a, info)
psb_geamax(x, desc_a, info)
psb_normi(x, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1866"></A>
<DIV ALIGN="CENTER"><A NAME="1946"></A>
<TABLE>
<CAPTION><STRONG>Table 6:</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="43" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img35.png"
ALT="$asum$"></TD>
WIDTH="44" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img31.png"
ALT="$amax$"></TD>
<TD ALIGN="LEFT"><IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
@ -128,19 +127,19 @@ Data types</CAPTION>
</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_geamax</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_geamax</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_geamax</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_geamax</TD>
</TR>
</TABLE>
</DIV>
@ -170,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&nbsp;<A HREF="#tab:f90asum">6</A>.
Table&nbsp;<A HREF="#tab:f90amax">4</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -184,21 +183,20 @@ 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
<DD>is the infinity norm of subvector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>global</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.
@ -212,30 +210,29 @@ Intent: <B>out</B>.
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html923"
<A NAME="tex2html929"
HREF="node56.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html919"
HREF="node49.html">
<A NAME="tex2html925"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html913"
<A NAME="tex2html919"
HREF="node54.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html921"
<A NAME="tex2html927"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html924"
HREF="node56.html">psb_geasums Generalized</A>
<B> Up:</B> <A NAME="tex2html920"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html914"
HREF="node54.html">psb_geamaxs Generalized</A>
&nbsp; <B> <A NAME="tex2html922"
<B> Next:</B> <A NAME="tex2html930"
HREF="node56.html">psb_geamaxs Generalized</A>
<B> Up:</B> <A NAME="tex2html926"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html920"
HREF="node54.html">psb_gedots Generalized</A>
&nbsp; <B> <A NAME="tex2html928"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_geasums -- Generalized 1-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_geasums -- Generalized 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,43 +20,43 @@ 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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node57.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html935"
<A NAME="tex2html941"
HREF="node57.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html931"
HREF="node49.html">
<A NAME="tex2html937"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html925"
<A NAME="tex2html931"
HREF="node55.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html933"
<A NAME="tex2html939"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html936"
HREF="node57.html">psb_norm2 2-Norm</A>
<B> Up:</B> <A NAME="tex2html932"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html926"
HREF="node55.html">psb_norm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html934"
<B> Next:</B> <A NAME="tex2html942"
HREF="node57.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html938"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html932"
HREF="node55.html">psb_normi Infinity-Norm</A>
&nbsp; <B> <A NAME="tex2html940"
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="SECTION00055000000000000000">
psb_geamaxs -- Generalized Infinity Norm</A>
</H2>
<P>
This subroutine computes a series of 1-norms on the columns of
This subroutine computes a series of infinity norms on the columns of
a dense matrix <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
@ -76,61 +76,17 @@ res(i) \leftarrow \max_k |x(k,i)|
</DIV>
<BR CLEAR="ALL">
<P></P>
This function computes the 1-norm of a vector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
If <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a real vector
it computes 1-norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \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}">
</DIV>
<BR CLEAR="ALL">
<P></P>
else if <IMG
WIDTH="13" HEIGHT="14" 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}
res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1
\end{displaymath}
-->
<IMG
WIDTH="207" 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)
call psb_geamaxs(res, x, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1867"></A>
<DIV ALIGN="CENTER"><A NAME="1947"></A>
<TABLE>
<CAPTION><STRONG>Table 7:</STRONG>
<CAPTION><STRONG>Table 5:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
@ -147,19 +103,19 @@ Data types</CAPTION>
</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_geamaxs</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_geamaxs</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_geamaxs</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_geamaxs</TD>
</TR>
</TABLE>
</DIV>
@ -191,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&nbsp;<A HREF="#tab:f90asums">7</A>.
Table&nbsp;<A HREF="#tab:f90mamax">5</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -203,14 +159,12 @@ 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>contains the 1-norm of (the columns of) <IMG
<DD>is the infinity norm of the columns of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
@ -219,8 +173,7 @@ Scope: <B>global</B>
<BR>
Intent: <B>out</B>.
<BR>
Short as: a long precision real number.
Specified as: a long precision real number.
Specified as: a number or a rank-one array of long precision real numbers.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
@ -238,26 +191,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html935"
<A NAME="tex2html941"
HREF="node57.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html931"
HREF="node49.html">
<A NAME="tex2html937"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html925"
<A NAME="tex2html931"
HREF="node55.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html933"
<A NAME="tex2html939"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html936"
HREF="node57.html">psb_norm2 2-Norm</A>
<B> Up:</B> <A NAME="tex2html932"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html926"
HREF="node55.html">psb_norm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html934"
<B> Next:</B> <A NAME="tex2html942"
HREF="node57.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html938"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html932"
HREF="node55.html">psb_normi Infinity-Norm</A>
&nbsp; <B> <A NAME="tex2html940"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_norm2 -- 2-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_norm2 -- 2-Norm of Vector">
<TITLE>psb_norm1 -- 1-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_norm1 -- 1-Norm of Vector">
<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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node58.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html947"
<A NAME="tex2html953"
HREF="node58.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html943"
HREF="node49.html">
<A NAME="tex2html949"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html937"
<A NAME="tex2html943"
HREF="node56.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html945"
<A NAME="tex2html951"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html948"
HREF="node58.html">psb_genrm2s Generalized</A>
<B> Up:</B> <A NAME="tex2html944"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html938"
HREF="node56.html">psb_geasums Generalized</A>
&nbsp; <B> <A NAME="tex2html946"
<B> Next:</B> <A NAME="tex2html954"
HREF="node58.html">psb_geasums Generalized</A>
<B> Up:</B> <A NAME="tex2html950"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html944"
HREF="node56.html">psb_geamaxs Generalized</A>
&nbsp; <B> <A NAME="tex2html952"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00058000000000000000">
psb_norm2 -- 2-Norm of Vector</A>
<H2><A NAME="SECTION00056000000000000000">
psb_norm1 -- 1-Norm of Vector</A>
</H2>
<P>
This function computes the 2-norm of a vector <IMG
This function computes the 1-norm of a vector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
@ -64,55 +64,62 @@ This function computes the 2-norm of a vector <IMG
If <IMG
WIDTH="13" HEIGHT="14" 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}
asum \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="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="13" HEIGHT="14" 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}
asum \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="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>
psb_geasum(x, desc_a, info)
psb_norm1(x, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1868"></A>
<DIV ALIGN="CENTER"><A NAME="1948"></A>
<TABLE>
<CAPTION><STRONG>Table 8:</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="43" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img40.png"
ALT="$nrm2$"></TD>
SRC="img35.png"
ALT="$asum$"></TD>
<TD ALIGN="LEFT"><IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
@ -121,19 +128,19 @@ Data types</CAPTION>
</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_geasum</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_geasum</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_geasum</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_geasum</TD>
</TR>
</TABLE>
</DIV>
@ -142,11 +149,6 @@ Data types</CAPTION>
</DIV><P></P>
<BR>
<P>
<PRE>
psb_genrm2(x, desc_a, info)
psb_norm2(x, desc_a, info)
</PRE>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
@ -160,7 +162,7 @@ psb_norm2(x, desc_a, info)
<IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
@ -168,9 +170,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&nbsp;<A HREF="#tab:f90nrm2">8</A>.
Table&nbsp;<A HREF="#tab:f90asum">6</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -182,22 +184,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 2-norm of subvector <IMG
<DT><STRONG>Function value</STRONG></DT>
<DD>is the 1-norm of vector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>global</B>
<BR>
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.
@ -215,26 +216,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html947"
<A NAME="tex2html953"
HREF="node58.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html943"
HREF="node49.html">
<A NAME="tex2html949"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html937"
<A NAME="tex2html943"
HREF="node56.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html945"
<A NAME="tex2html951"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html948"
HREF="node58.html">psb_genrm2s Generalized</A>
<B> Up:</B> <A NAME="tex2html944"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html938"
HREF="node56.html">psb_geasums Generalized</A>
&nbsp; <B> <A NAME="tex2html946"
<B> Next:</B> <A NAME="tex2html954"
HREF="node58.html">psb_geasums Generalized</A>
<B> Up:</B> <A NAME="tex2html950"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html944"
HREF="node56.html">psb_geamaxs Generalized</A>
&nbsp; <B> <A NAME="tex2html952"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_genrm2s -- Generalized 2-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_genrm2s -- Generalized 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,43 @@ 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="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node59.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html959"
<A NAME="tex2html965"
HREF="node59.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html955"
HREF="node49.html">
<A NAME="tex2html961"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html949"
<A NAME="tex2html955"
HREF="node57.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html957"
<A NAME="tex2html963"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html960"
HREF="node59.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html956"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html950"
HREF="node57.html">psb_norm2 2-Norm</A>
&nbsp; <B> <A NAME="tex2html958"
<B> Next:</B> <A NAME="tex2html966"
HREF="node59.html">psb_norm2 2-Norm</A>
<B> Up:</B> <A NAME="tex2html962"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html956"
HREF="node57.html">psb_norm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html964"
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="SECTION00057000000000000000">
psb_geasums -- Generalized 1-Norm of Vector</A>
</H2>
<P>
This subroutine computes a series of 2-norms on the columns of
This subroutine computes a series of 1-norms on the columns of
a dense matrix <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
@ -65,28 +65,72 @@ a dense matrix <IMG
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \leftarrow \|x(:,i)\|_2
res(i) \leftarrow \max_k |x(k,i)|
\end{displaymath}
-->
<IMG
WIDTH="148" 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="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
If <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> is a real vector
it computes 1-norm as:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
res(i) \leftarrow \|x_i\|
\end{displaymath}
-->
<IMG
WIDTH="126" HEIGHT="28" BORDER="0"
SRC="img41.png"
ALT="\begin{displaymath}res(i) \leftarrow \Vert x(:,i)\Vert _2 \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="13" HEIGHT="14" 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}
res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1
\end{displaymath}
-->
<IMG
WIDTH="207" 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_genrm2s(res, x, desc_a, info)
call psb_geasums(res, x, desc_a, info)
</PRE>
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1869"></A>
<DIV ALIGN="CENTER"><A NAME="1949"></A>
<TABLE>
<CAPTION><STRONG>Table 9:</STRONG>
<CAPTION><STRONG>Table 7:</STRONG>
Data types</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
@ -103,19 +147,19 @@ Data types</CAPTION>
</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_geasums</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_geasums</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_geasums</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_geasums</TD>
</TR>
</TABLE>
</DIV>
@ -147,7 +191,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&nbsp;<A HREF="#tab:f90nrm2s">9</A>.
Table&nbsp;<A HREF="#tab:f90asums">7</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -175,6 +219,7 @@ 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>
@ -193,26 +238,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html959"
<A NAME="tex2html965"
HREF="node59.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html955"
HREF="node49.html">
<A NAME="tex2html961"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html949"
<A NAME="tex2html955"
HREF="node57.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html957"
<A NAME="tex2html963"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html960"
HREF="node59.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html956"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html950"
HREF="node57.html">psb_norm2 2-Norm</A>
&nbsp; <B> <A NAME="tex2html958"
<B> Next:</B> <A NAME="tex2html966"
HREF="node59.html">psb_norm2 2-Norm</A>
<B> Up:</B> <A NAME="tex2html962"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html956"
HREF="node57.html">psb_norm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html964"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_norm1 -- 1-Norm of Sparse Matrix</TITLE>
<META NAME="description" CONTENT="psb_norm1 -- 1-Norm of Sparse Matrix">
<TITLE>psb_norm2 -- 2-Norm of Vector</TITLE>
<META NAME="description" CONTENT="psb_norm2 -- 2-Norm of Vector">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,102 +20,120 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="next" HREF="node60.html">
<LINK REL="previous" HREF="node58.html">
<LINK REL="up" HREF="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node60.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html971"
<A NAME="tex2html977"
HREF="node60.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html967"
HREF="node49.html">
<A NAME="tex2html973"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html961"
<A NAME="tex2html967"
HREF="node58.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html969"
<A NAME="tex2html975"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html972"
HREF="node60.html">psb_normi Infinity</A>
<B> Up:</B> <A NAME="tex2html968"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html962"
HREF="node58.html">psb_genrm2s Generalized</A>
&nbsp; <B> <A NAME="tex2html970"
<B> Next:</B> <A NAME="tex2html978"
HREF="node60.html">psb_genrm2s Generalized</A>
<B> Up:</B> <A NAME="tex2html974"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html968"
HREF="node58.html">psb_geasums Generalized</A>
&nbsp; <B> <A NAME="tex2html976"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000510000000000000000">
psb_norm1 -- 1-Norm of Sparse Matrix</A>
<H2><A NAME="SECTION00058000000000000000">
psb_norm2 -- 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 function computes the 2-norm of a vector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
If <IMG
WIDTH="13" HEIGHT="14" 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}
nrm1 \leftarrow \|A\|_1
nrm2 \leftarrow \sqrt{x^T x}
\end{displaymath}
-->
<IMG
WIDTH="98" HEIGHT="28" BORDER="0"
SRC="img42.png"
ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \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>
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>
else if <IMG
WIDTH="13" HEIGHT="14" 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>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1870"></A>
<DIV ALIGN="CENTER"><A NAME="1950"></A>
<TABLE>
<CAPTION><STRONG>Table 10:</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="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$"></TD>
WIDTH="43" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img40.png"
ALT="$nrm2$"></TD>
<TD ALIGN="LEFT"><IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"></TD>
<TD ALIGN="LEFT"><B>Function</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_genrm2</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_genrm2</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_genrm2</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_genrm2</TD>
</TR>
</TABLE>
</DIV>
@ -126,10 +144,9 @@ Data types</CAPTION>
<P>
<PRE>
psb_spnrm1(A, desc_a, info)
psb_norm1(A, desc_a, info)
psb_genrm2(x, desc_a, info)
psb_norm2(x, desc_a, info)
</PRE>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
@ -138,20 +155,22 @@ psb_norm1(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="13" HEIGHT="14" 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&nbsp;<A HREF="#tab:f90nrm2">8</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -163,18 +182,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 sparse submatrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">.
<DT><STRONG>Function Value</STRONG></DT>
<DD>is the 2-norm of subvector <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Specified as: a long precision real number.
</DD>
<DT><STRONG>info</STRONG></DT>
@ -193,26 +215,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html971"
<A NAME="tex2html977"
HREF="node60.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html967"
HREF="node49.html">
<A NAME="tex2html973"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html961"
<A NAME="tex2html967"
HREF="node58.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html969"
<A NAME="tex2html975"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html972"
HREF="node60.html">psb_normi Infinity</A>
<B> Up:</B> <A NAME="tex2html968"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html962"
HREF="node58.html">psb_genrm2s Generalized</A>
&nbsp; <B> <A NAME="tex2html970"
<B> Next:</B> <A NAME="tex2html978"
HREF="node60.html">psb_genrm2s Generalized</A>
<B> Up:</B> <A NAME="tex2html974"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html968"
HREF="node58.html">psb_geasums Generalized</A>
&nbsp; <B> <A NAME="tex2html976"
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="tex2html260"
<A NAME="tex2html262"
HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html256"
<A NAME="tex2html258"
HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html250"
<A NAME="tex2html252"
HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html258"
<A NAME="tex2html260"
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="tex2html263"
HREF="node7.html">User-defined index mappings</A>
<B> Up:</B> <A NAME="tex2html257"
<B> Up:</B> <A NAME="tex2html259"
HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html251"
<B> Previous:</B> <A NAME="tex2html253"
HREF="node5.html">Library contents</A>
&nbsp; <B> <A NAME="tex2html259"
&nbsp; <B> <A NAME="tex2html261"
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="tex2html262"
<LI><A NAME="tex2html264"
HREF="node7.html">User-defined index mappings</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html260"
<A NAME="tex2html262"
HREF="node7.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html256"
<A NAME="tex2html258"
HREF="node3.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html250"
<A NAME="tex2html252"
HREF="node5.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html258"
<A NAME="tex2html260"
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="tex2html263"
HREF="node7.html">User-defined index mappings</A>
<B> Up:</B> <A NAME="tex2html257"
<B> Up:</B> <A NAME="tex2html259"
HREF="node3.html">General overview</A>
<B> Previous:</B> <A NAME="tex2html251"
<B> Previous:</B> <A NAME="tex2html253"
HREF="node5.html">Library contents</A>
&nbsp; <B> <A NAME="tex2html259"
&nbsp; <B> <A NAME="tex2html261"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<HTML>
<HEAD>
<TITLE>psb_normi -- Infinity Norm of Sparse Matrix</TITLE>
<META NAME="description" CONTENT="psb_normi -- Infinity 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="node61.html">
<LINK REL="previous" HREF="node59.html">
<LINK REL="up" HREF="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node61.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html983"
<A NAME="tex2html989"
HREF="node61.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html979"
HREF="node49.html">
<A NAME="tex2html985"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html973"
<A NAME="tex2html979"
HREF="node59.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html981"
<A NAME="tex2html987"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html984"
HREF="node61.html">psb_spmm Sparse</A>
<B> Up:</B> <A NAME="tex2html980"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html974"
HREF="node59.html">psb_norm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html982"
<B> Next:</B> <A NAME="tex2html990"
HREF="node61.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html986"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html980"
HREF="node59.html">psb_norm2 2-Norm</A>
&nbsp; <B> <A NAME="tex2html988"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000511000000000000000">
psb_normi -- Infinity Norm of Sparse Matrix</A>
<H2><A NAME="SECTION00059000000000000000">
psb_genrm2s -- Generalized 2-Norm of Vector</A>
</H2>
<P>
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>
This subroutine computes a series of 2-norms on the columns of
a dense matrix <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">:
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{displaymath}
nrmi \leftarrow \|A\|_\infty
res(i) \leftarrow \|x(:,i)\|_2
\end{displaymath}
-->
<IMG
WIDTH="102" HEIGHT="28" BORDER="0"
SRC="img43.png"
ALT="\begin{displaymath}nrmi \leftarrow \Vert A\Vert _\infty \end{displaymath}">
WIDTH="126" 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="1871"></A>
<DIV ALIGN="CENTER"><A NAME="1951"></A>
<TABLE>
<CAPTION><STRONG>Table 11:</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="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img28.png"
ALT="$res$"></TD>
<TD ALIGN="LEFT"><IMG
WIDTH="13" HEIGHT="14" 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_spnrmi</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_spnrmi</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_spnrmi</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_spnrmi</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,12 +124,6 @@ Data types</CAPTION>
</DIV><P></P>
<BR>
<P>
<PRE>
psb_spnrmi(A, desc_a, info)
psb_normi(A, desc_a, info)
</PRE>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
@ -138,20 +132,22 @@ psb_normi(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="13" HEIGHT="14" 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&nbsp;<A HREF="#tab:f90nrm2s">9</A>.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
@ -163,19 +159,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 infinity-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="13" HEIGHT="14" 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.
@ -193,26 +193,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html983"
<A NAME="tex2html989"
HREF="node61.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html979"
HREF="node49.html">
<A NAME="tex2html985"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html973"
<A NAME="tex2html979"
HREF="node59.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html981"
<A NAME="tex2html987"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html984"
HREF="node61.html">psb_spmm Sparse</A>
<B> Up:</B> <A NAME="tex2html980"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html974"
HREF="node59.html">psb_norm1 1-Norm</A>
&nbsp; <B> <A NAME="tex2html982"
<B> Next:</B> <A NAME="tex2html990"
HREF="node61.html">psb_norm1 1-Norm</A>
<B> Up:</B> <A NAME="tex2html986"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html980"
HREF="node59.html">psb_norm2 2-Norm</A>
&nbsp; <B> <A NAME="tex2html988"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<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_norm1 -- 1-Norm of Sparse Matrix</TITLE>
<META NAME="description" CONTENT="psb_norm1 -- 1-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="node62.html">
<LINK REL="previous" HREF="node60.html">
<LINK REL="up" HREF="node49.html">
<LINK REL="up" HREF="node51.html">
<LINK REL="next" HREF="node62.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html995"
<A NAME="tex2html1001"
HREF="node62.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html991"
HREF="node49.html">
<A NAME="tex2html997"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html985"
<A NAME="tex2html991"
HREF="node60.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html993"
<A NAME="tex2html999"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html996"
HREF="node62.html">psb_spsm Triangular</A>
<B> Up:</B> <A NAME="tex2html992"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html986"
HREF="node60.html">psb_normi Infinity</A>
&nbsp; <B> <A NAME="tex2html994"
<B> Next:</B> <A NAME="tex2html1002"
HREF="node62.html">psb_normi Infinity</A>
<B> Up:</B> <A NAME="tex2html998"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html992"
HREF="node60.html">psb_genrm2s Generalized</A>
&nbsp; <B> <A NAME="tex2html1000"
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="SECTION000510000000000000000">
psb_norm1 -- 1-Norm of Sparse Matrix</A>
</H2>
<P>
This subroutine computes the Sparse Matrix by Dense Matrix Product:
<P>
<BR>
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A x + \beta y
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_no_tra"></A><IMG
WIDTH="102" HEIGHT="27" BORDER="0"
SRC="img44.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(1)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<BR>
<DIV ALIGN="RIGHT">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A^T x + \beta y
\end{equation}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_tra"></A><IMG
WIDTH="111" 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>
This function computes the 1-norm of a matrix <IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img1.png"
ALT="$A$">:
<BR>
<DIV ALIGN="RIGHT">
<P>
<BR><P></P>
<DIV ALIGN="CENTER">
<!-- MATH
\begin{equation}
y \leftarrow \alpha A^H x + \beta y
\end{equation}
\begin{displaymath}
nrm1 \leftarrow \|A\|_1
\end{displaymath}
-->
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:f90spmm_con"></A><IMG
WIDTH="114" HEIGHT="27" BORDER="0"
SRC="img46.png"
ALT="\begin{displaymath}
y \leftarrow \alpha A^H x + \beta y
\end{displaymath}"></TD>
<TD WIDTH=10 ALIGN="RIGHT">
(3)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P>
<P>
<IMG
WIDTH="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>
where:
<DL>
<DT><STRONG><IMG
WIDTH="13" HEIGHT="14" 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="1872"></A>
<DIV ALIGN="CENTER"><A NAME="1952"></A>
<TABLE>
<CAPTION><STRONG>Table 12:</STRONG>
<CAPTION><STRONG>Table 10:</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="13" HEIGHT="14" 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="14" 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_spnrm1</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Real</TD>
<TD ALIGN="LEFT">psb_spmm</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD>
</TR>
<TR><TD ALIGN="LEFT">Short Precision Complex</TD>
<TD ALIGN="LEFT">psb_spmm</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD>
</TR>
<TR><TD ALIGN="LEFT">Long Precision Complex</TD>
<TD ALIGN="LEFT">psb_spmm</TD>
<TD ALIGN="LEFT">psb_spnrm1</TD>
</TR>
</TABLE>
</DIV>
@ -198,10 +126,9 @@ 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, &amp;
&amp; trans, work)
</PRE>
psb_spnrm1(A, desc_a, info)
psb_norm1(A, desc_a, info)
</PRE>
<P>
<DL>
@ -211,23 +138,8 @@ call psb_spmm(alpha, a, x, beta, y,desc_a, info, &amp;
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>alpha</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img22.png"
ALT="$\alpha$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD>
<DT><STRONG>a</STRONG></DT>
<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,66 +153,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="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>. The rank of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$"> must be the same of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
</DD>
<DT><STRONG>beta</STRONG></DT>
<DD>the scalar <IMG
WIDTH="14" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img23.png"
ALT="$\beta$">.
<BR>
Scope: <B>global</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>in</B>.
<BR>
Specified as: a number of the data type indicated in Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
</DD>
<DT><STRONG>y</STRONG></DT>
<DD>the local portion of global dense matrix
<IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a rank one or two array or an object of type vdata<TT>psb_T_vect_type</TT>
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>. The rank of <IMG
WIDTH="13" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img21.png"
ALT="$y$"> must be the same of <IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img20.png"
ALT="$x$">.
</DD>
<DT><STRONG>desc_a</STRONG></DT>
<DD>contains data structures for communications.
<BR>
@ -312,73 +164,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="15" 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="13" HEIGHT="14" 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$">.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>required</B>
<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$">.
<BR>
Intent: <B>inout</B>.
Scope: <B>global</B>
<BR>
Specified as: an array of rank one or two
containing numbers of type specified in
Table&nbsp;<A HREF="#tab:f90spmm">12</A>.
Specified as: a long precision real number.
</DD>
<DT><STRONG>info</STRONG></DT>
<DD>Error code.
@ -396,26 +193,26 @@ An integer value; 0 means no error has been detected.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html995"
<A NAME="tex2html1001"
HREF="node62.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html991"
HREF="node49.html">
<A NAME="tex2html997"
HREF="node51.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html985"
<A NAME="tex2html991"
HREF="node60.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html993"
<A NAME="tex2html999"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html996"
HREF="node62.html">psb_spsm Triangular</A>
<B> Up:</B> <A NAME="tex2html992"
HREF="node49.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html986"
HREF="node60.html">psb_normi Infinity</A>
&nbsp; <B> <A NAME="tex2html994"
<B> Next:</B> <A NAME="tex2html1002"
HREF="node62.html">psb_normi Infinity</A>
<B> Up:</B> <A NAME="tex2html998"
HREF="node51.html">Computational routines</A>
<B> Previous:</B> <A NAME="tex2html992"
HREF="node60.html">psb_genrm2s Generalized</A>
&nbsp; <B> <A NAME="tex2html1000"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

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

Loading…
Cancel
Save