docs/html/footnode.html
 docs/html/img104.png
 docs/html/img109.png
 docs/html/img110.png
 docs/html/img112.png
 docs/html/img113.png
 docs/html/img114.png
 docs/html/img115.png
 docs/html/img116.png
 docs/html/img117.png
 docs/html/img118.png
 docs/html/img119.png
 docs/html/img120.png
 docs/html/img121.png
 docs/html/img122.png
 docs/html/img123.png
 docs/html/img124.png
 docs/html/img125.png
 docs/html/img127.png
 docs/html/img128.png
 docs/html/img129.png
 docs/html/img133.png
 docs/html/img140.png
 docs/html/img141.png
 docs/html/img143.png
 docs/html/img145.png
 docs/html/img146.png
 docs/html/img147.png
 docs/html/img148.png
 docs/html/img149.png
 docs/html/img150.png
 docs/html/img151.png
 docs/html/img152.png
 docs/html/img153.png
 docs/html/img154.png
 docs/html/img155.png
 docs/html/img156.png
 docs/html/img157.png
 docs/html/img158.png
 docs/html/img159.png
 docs/html/img160.png
 docs/html/img161.png
 docs/html/img162.png
 docs/html/img163.png
 docs/html/img164.png
 docs/html/img165.png
 docs/html/img21.png
 docs/html/img22.png
 docs/html/img23.png
 docs/html/img24.png
 docs/html/img28.png
 docs/html/img30.png
 docs/html/img40.png
 docs/html/img44.png
 docs/html/img47.png
 docs/html/img48.png
 docs/html/img56.png
 docs/html/img57.png
 docs/html/img59.png
 docs/html/img60.png
 docs/html/img61.png
 docs/html/img62.png
 docs/html/img63.png
 docs/html/img64.png
 docs/html/img65.png
 docs/html/img66.png
 docs/html/img67.png
 docs/html/img68.png
 docs/html/img69.png
 docs/html/img70.png
 docs/html/img71.png
 docs/html/img72.png
 docs/html/img73.png
 docs/html/img74.png
 docs/html/img75.png
 docs/html/img76.png
 docs/html/img77.png
 docs/html/img78.png
 docs/html/img79.png
 docs/html/img80.png
 docs/html/img81.png
 docs/html/img82.png
 docs/html/img91.png
 docs/html/img92.png
 docs/html/img93.png
 docs/html/img94.png
 docs/html/img95.png
 docs/html/img96.png
 docs/html/img97.png
 docs/html/img98.png
 docs/html/index.html
 docs/html/node1.html
 docs/html/node10.html
 docs/html/node100.html
 docs/html/node101.html
 docs/html/node102.html
 docs/html/node103.html
 docs/html/node104.html
 docs/html/node105.html
 docs/html/node106.html
 docs/html/node107.html
 docs/html/node108.html
 docs/html/node109.html
 docs/html/node11.html
 docs/html/node110.html
 docs/html/node111.html
 docs/html/node112.html
 docs/html/node113.html
 docs/html/node114.html
 docs/html/node115.html
 docs/html/node116.html
 docs/html/node117.html
 docs/html/node118.html
 docs/html/node119.html
 docs/html/node12.html
 docs/html/node120.html
 docs/html/node121.html
 docs/html/node122.html
 docs/html/node123.html
 docs/html/node13.html
 docs/html/node14.html
 docs/html/node15.html
 docs/html/node16.html
 docs/html/node17.html
 docs/html/node18.html
 docs/html/node19.html
 docs/html/node2.html
 docs/html/node20.html
 docs/html/node21.html
 docs/html/node22.html
 docs/html/node23.html
 docs/html/node24.html
 docs/html/node25.html
 docs/html/node26.html
 docs/html/node27.html
 docs/html/node28.html
 docs/html/node29.html
 docs/html/node3.html
 docs/html/node30.html
 docs/html/node31.html
 docs/html/node32.html
 docs/html/node33.html
 docs/html/node34.html
 docs/html/node35.html
 docs/html/node36.html
 docs/html/node37.html
 docs/html/node38.html
 docs/html/node39.html
 docs/html/node4.html
 docs/html/node40.html
 docs/html/node41.html
 docs/html/node42.html
 docs/html/node43.html
 docs/html/node44.html
 docs/html/node45.html
 docs/html/node46.html
 docs/html/node47.html
 docs/html/node48.html
 docs/html/node49.html
 docs/html/node5.html
 docs/html/node50.html
 docs/html/node51.html
 docs/html/node52.html
 docs/html/node53.html
 docs/html/node54.html
 docs/html/node55.html
 docs/html/node56.html
 docs/html/node57.html
 docs/html/node58.html
 docs/html/node59.html
 docs/html/node6.html
 docs/html/node60.html
 docs/html/node61.html
 docs/html/node62.html
 docs/html/node63.html
 docs/html/node64.html
 docs/html/node65.html
 docs/html/node66.html
 docs/html/node67.html
 docs/html/node68.html
 docs/html/node69.html
 docs/html/node7.html
 docs/html/node70.html
 docs/html/node71.html
 docs/html/node72.html
 docs/html/node73.html
 docs/html/node74.html
 docs/html/node75.html
 docs/html/node76.html
 docs/html/node77.html
 docs/html/node78.html
 docs/html/node79.html
 docs/html/node8.html
 docs/html/node80.html
 docs/html/node81.html
 docs/html/node82.html
 docs/html/node83.html
 docs/html/node84.html
 docs/html/node85.html
 docs/html/node86.html
 docs/html/node87.html
 docs/html/node88.html
 docs/html/node89.html
 docs/html/node9.html
 docs/html/node90.html
 docs/html/node91.html
 docs/html/node92.html
 docs/html/node93.html
 docs/html/node94.html
 docs/html/node95.html
 docs/html/node96.html
 docs/html/node97.html
 docs/html/node98.html
 docs/html/node99.html
 docs/html/userhtml.html
 docs/psblas-3.2.pdf
 docs/src/datastruct.tex

Docs update.
psblas-3.2.0
Salvatore Filippone 11 years ago
parent c590c5a3ee
commit 38b70b287f

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 258 B

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 387 B

After

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 244 B

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 399 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 222 B

After

Width:  |  Height:  |  Size: 208 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 804 B

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 406 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 B

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

After

Width:  |  Height:  |  Size: 840 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

After

Width:  |  Height:  |  Size: 405 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 533 B

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 544 B

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 B

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 577 B

After

Width:  |  Height:  |  Size: 581 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 B

After

Width:  |  Height:  |  Size: 561 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 B

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 750 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 875 B

After

Width:  |  Height:  |  Size: 846 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 867 B

After

Width:  |  Height:  |  Size: 901 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 675 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 429 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 412 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 387 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 B

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 B

After

Width:  |  Height:  |  Size: 201 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 226 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 449 B

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 523 B

After

Width:  |  Height:  |  Size: 529 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 230 B

After

Width:  |  Height:  |  Size: 242 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 B

After

Width:  |  Height:  |  Size: 255 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 402 B

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

After

Width:  |  Height:  |  Size: 364 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 335 B

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 771 B

After

Width:  |  Height:  |  Size: 792 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 B

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 794 B

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 366 B

After

Width:  |  Height:  |  Size: 375 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 497 B

After

Width:  |  Height:  |  Size: 489 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 325 B

After

Width:  |  Height:  |  Size: 329 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 362 B

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 350 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 B

After

Width:  |  Height:  |  Size: 534 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 172 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 791 B

After

Width:  |  Height:  |  Size: 828 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 369 B

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 573 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 B

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 456 B

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 B

After

Width:  |  Height:  |  Size: 395 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 285 B

After

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 412 B

After

Width:  |  Height:  |  Size: 415 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 178 B

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 B

After

Width:  |  Height:  |  Size: 375 B

@ -142,219 +142,234 @@ of a sparse matrix</A>
<LI><A NAME="tex2html63"
HREF="node29.html">is_bld, is_upd, is_asb -- Status check</A>
<LI><A NAME="tex2html64"
HREF="node30.html">clone -- Clone current object</A>
HREF="node30.html">is_lower, is_upper, is_triangle, is_unit --
Format check</A>
<LI><A NAME="tex2html65"
HREF="node31.html">Named Constants</A>
</UL>
HREF="node31.html">cscnv -- Convert to a different storage format</A>
<LI><A NAME="tex2html66"
HREF="node32.html">Dense Vector Data Structure</A>
<UL>
HREF="node32.html">csclip -- Reduce to a submatrix</A>
<LI><A NAME="tex2html67"
HREF="node33.html">Vector Methods</A>
HREF="node33.html">clip_diag -- Cut out main diagonal</A>
<LI><A NAME="tex2html68"
HREF="node34.html">get_nrows -- Get number of rows in a dense vector</A>
HREF="node34.html">tril -- Return the lower triangle</A>
<LI><A NAME="tex2html69"
HREF="node35.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
HREF="node35.html">triu -- Return the upper triangle</A>
<LI><A NAME="tex2html70"
HREF="node36.html">get_vect -- Get a copy of the vector contents</A>
HREF="node36.html">psb_set_mat_default -- Set default storage format</A>
<LI><A NAME="tex2html71"
HREF="node37.html">clone -- Clone current object</A>
</UL>
<LI><A NAME="tex2html72"
HREF="node38.html">Preconditioner data structure</A>
HREF="node38.html">Named Constants</A>
</UL>
<BR>
<LI><A NAME="tex2html73"
HREF="node39.html">Computational routines</A>
HREF="node39.html">Dense Vector Data Structure</A>
<UL>
<LI><A NAME="tex2html74"
HREF="node40.html">psb_geaxpby -- General Dense Matrix Sum</A>
HREF="node40.html">Vector Methods</A>
<LI><A NAME="tex2html75"
HREF="node41.html">psb_gedot -- Dot Product</A>
HREF="node41.html">get_nrows -- Get number of rows in a dense vector</A>
<LI><A NAME="tex2html76"
HREF="node42.html">psb_gedots -- Generalized Dot Product</A>
HREF="node42.html">sizeof -- Get memory occupation in bytes
of a dense vector</A>
<LI><A NAME="tex2html77"
HREF="node43.html">psb_geamax -- Infinity-Norm of Vector</A>
HREF="node43.html">get_vect -- Get a copy of the vector contents</A>
<LI><A NAME="tex2html78"
HREF="node44.html">psb_geamaxs -- Generalized Infinity Norm</A>
HREF="node44.html">clone -- Clone current object</A>
</UL>
<LI><A NAME="tex2html79"
HREF="node45.html">psb_geasum -- 1-Norm of Vector</A>
HREF="node45.html">Preconditioner data structure</A>
</UL>
<BR>
<LI><A NAME="tex2html80"
HREF="node46.html">psb_geasums -- Generalized 1-Norm of Vector</A>
HREF="node46.html">Computational routines</A>
<UL>
<LI><A NAME="tex2html81"
HREF="node47.html">psb_genrm2 -- 2-Norm of Vector</A>
HREF="node47.html">psb_geaxpby -- General Dense Matrix Sum</A>
<LI><A NAME="tex2html82"
HREF="node48.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
HREF="node48.html">psb_gedot -- Dot Product</A>
<LI><A NAME="tex2html83"
HREF="node49.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
HREF="node49.html">psb_gedots -- Generalized Dot Product</A>
<LI><A NAME="tex2html84"
HREF="node50.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
HREF="node50.html">psb_geamax -- Infinity-Norm of Vector</A>
<LI><A NAME="tex2html85"
HREF="node51.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
HREF="node51.html">psb_geamaxs -- Generalized Infinity Norm</A>
<LI><A NAME="tex2html86"
HREF="node52.html">psb_spsm -- Triangular System Solve</A>
</UL>
<BR>
HREF="node52.html">psb_geasum -- 1-Norm of Vector</A>
<LI><A NAME="tex2html87"
HREF="node53.html">Communication routines</A>
<UL>
HREF="node53.html">psb_geasums -- Generalized 1-Norm of Vector</A>
<LI><A NAME="tex2html88"
HREF="node54.html">psb_halo -- Halo Data Communication</A>
HREF="node54.html">psb_genrm2 -- 2-Norm of Vector</A>
<LI><A NAME="tex2html89"
HREF="node55.html">psb_ovrl -- Overlap Update</A>
HREF="node55.html">psb_genrm2s -- Generalized 2-Norm of Vector</A>
<LI><A NAME="tex2html90"
HREF="node56.html">psb_gather -- Gather Global Dense Matrix</A>
HREF="node56.html">psb_spnrm1 -- 1-Norm of Sparse Matrix</A>
<LI><A NAME="tex2html91"
HREF="node57.html">psb_scatter -- Scatter Global Dense Matrix</A>
</UL>
<BR>
HREF="node57.html">psb_spnrmi -- Infinity Norm of Sparse Matrix</A>
<LI><A NAME="tex2html92"
HREF="node58.html">Data management routines</A>
<UL>
HREF="node58.html">psb_spmm -- Sparse Matrix by Dense Matrix
Product</A>
<LI><A NAME="tex2html93"
HREF="node59.html">psb_cdall -- Allocates a communication descriptor</A>
HREF="node59.html">psb_spsm -- Triangular System Solve</A>
</UL>
<BR>
<LI><A NAME="tex2html94"
HREF="node60.html">psb_cdins -- Communication descriptor insert
routine</A>
HREF="node60.html">Communication routines</A>
<UL>
<LI><A NAME="tex2html95"
HREF="node61.html">psb_cdasb -- Communication descriptor assembly
routine</A>
HREF="node61.html">psb_halo -- Halo Data Communication</A>
<LI><A NAME="tex2html96"
HREF="node62.html">psb_cdcpy -- Copies a communication descriptor</A>
HREF="node62.html">psb_ovrl -- Overlap Update</A>
<LI><A NAME="tex2html97"
HREF="node63.html">psb_cdfree -- Frees a communication descriptor</A>
HREF="node63.html">psb_gather -- Gather Global Dense Matrix</A>
<LI><A NAME="tex2html98"
HREF="node64.html">psb_cdbldext -- Build an extended communication
descriptor</A>
HREF="node64.html">psb_scatter -- Scatter Global Dense Matrix</A>
</UL>
<BR>
<LI><A NAME="tex2html99"
HREF="node65.html">psb_spall -- Allocates a sparse matrix</A>
HREF="node65.html">Data management routines</A>
<UL>
<LI><A NAME="tex2html100"
HREF="node66.html">psb_spins -- Insert a cloud of elements into a sparse
matrix</A>
HREF="node66.html">psb_cdall -- Allocates a communication descriptor</A>
<LI><A NAME="tex2html101"
HREF="node67.html">psb_spasb -- Sparse matrix assembly routine</A>
HREF="node67.html">psb_cdins -- Communication descriptor insert
routine</A>
<LI><A NAME="tex2html102"
HREF="node68.html">psb_spfree -- Frees a sparse matrix</A>
HREF="node68.html">psb_cdasb -- Communication descriptor assembly
routine</A>
<LI><A NAME="tex2html103"
HREF="node69.html">psb_sprn -- Reinit sparse matrix structure for psblas
routines.</A>
HREF="node69.html">psb_cdcpy -- Copies a communication descriptor</A>
<LI><A NAME="tex2html104"
HREF="node70.html">psb_geall -- Allocates a dense matrix</A>
HREF="node70.html">psb_cdfree -- Frees a communication descriptor</A>
<LI><A NAME="tex2html105"
HREF="node71.html">psb_geins -- Dense matrix insertion routine</A>
HREF="node71.html">psb_cdbldext -- Build an extended communication
descriptor</A>
<LI><A NAME="tex2html106"
HREF="node72.html">psb_geasb -- Assembly a dense matrix</A>
HREF="node72.html">psb_spall -- Allocates a sparse matrix</A>
<LI><A NAME="tex2html107"
HREF="node73.html">psb_gefree -- Frees a dense matrix</A>
<LI><A NAME="tex2html108"
HREF="node74.html">psb_gelp -- Applies a left permutation to a dense
HREF="node73.html">psb_spins -- Insert a cloud of elements into a sparse
matrix</A>
<LI><A NAME="tex2html108"
HREF="node74.html">psb_spasb -- Sparse matrix assembly routine</A>
<LI><A NAME="tex2html109"
HREF="node75.html">psb_glob_to_loc -- Global to local indices
convertion</A>
HREF="node75.html">psb_spfree -- Frees a sparse matrix</A>
<LI><A NAME="tex2html110"
HREF="node76.html">psb_loc_to_glob -- Local to global indices
conversion</A>
HREF="node76.html">psb_sprn -- Reinit sparse matrix structure for psblas
routines.</A>
<LI><A NAME="tex2html111"
HREF="node77.html">psb_is_owned -- </A>
HREF="node77.html">psb_geall -- Allocates a dense matrix</A>
<LI><A NAME="tex2html112"
HREF="node78.html">psb_owned_index -- </A>
HREF="node78.html">psb_geins -- Dense matrix insertion routine</A>
<LI><A NAME="tex2html113"
HREF="node79.html">psb_is_local -- </A>
HREF="node79.html">psb_geasb -- Assembly a dense matrix</A>
<LI><A NAME="tex2html114"
HREF="node80.html">psb_local_index -- </A>
HREF="node80.html">psb_gefree -- Frees a dense matrix</A>
<LI><A NAME="tex2html115"
HREF="node81.html">psb_get_boundary -- Extract list of boundary
elements</A>
HREF="node81.html">psb_gelp -- Applies a left permutation to a dense
matrix</A>
<LI><A NAME="tex2html116"
HREF="node82.html">psb_get_overlap -- Extract list of overlap
elements</A>
HREF="node82.html">psb_glob_to_loc -- Global to local indices
convertion</A>
<LI><A NAME="tex2html117"
HREF="node83.html">psb_sp_getrow -- Extract row(s) from a sparse
matrix</A>
HREF="node83.html">psb_loc_to_glob -- Local to global indices
conversion</A>
<LI><A NAME="tex2html118"
HREF="node84.html">psb_sizeof -- Memory occupation</A>
HREF="node84.html">psb_is_owned -- </A>
<LI><A NAME="tex2html119"
HREF="node85.html">Sorting utilities -- </A>
</UL>
<BR>
HREF="node85.html">psb_owned_index -- </A>
<LI><A NAME="tex2html120"
HREF="node86.html">Parallel environment routines</A>
<UL>
HREF="node86.html">psb_is_local -- </A>
<LI><A NAME="tex2html121"
HREF="node87.html">psb_init -- Initializes PSBLAS parallel
environment</A>
HREF="node87.html">psb_local_index -- </A>
<LI><A NAME="tex2html122"
HREF="node88.html">psb_info -- Return information about PSBLAS parallel
environment</A>
HREF="node88.html">psb_get_boundary -- Extract list of boundary
elements</A>
<LI><A NAME="tex2html123"
HREF="node89.html">psb_exit -- Exit from PSBLAS parallel
environment</A>
HREF="node89.html">psb_get_overlap -- Extract list of overlap
elements</A>
<LI><A NAME="tex2html124"
HREF="node90.html">psb_get_mpicomm -- Get the MPI communicator</A>
HREF="node90.html">psb_sp_getrow -- Extract row(s) from a sparse
matrix</A>
<LI><A NAME="tex2html125"
HREF="node91.html">psb_get_rank -- Get the MPI rank</A>
HREF="node91.html">psb_sizeof -- Memory occupation</A>
<LI><A NAME="tex2html126"
HREF="node92.html">psb_wtime -- Wall clock timing</A>
HREF="node92.html">Sorting utilities -- </A>
</UL>
<BR>
<LI><A NAME="tex2html127"
HREF="node93.html">psb_barrier -- Sinchronization point parallel
environment</A>
HREF="node93.html">Parallel environment routines</A>
<UL>
<LI><A NAME="tex2html128"
HREF="node94.html">psb_abort -- Abort a computation</A>
HREF="node94.html">psb_init -- Initializes PSBLAS parallel
environment</A>
<LI><A NAME="tex2html129"
HREF="node95.html">psb_bcast -- Broadcast data</A>
HREF="node95.html">psb_info -- Return information about PSBLAS parallel
environment</A>
<LI><A NAME="tex2html130"
HREF="node96.html">psb_sum -- Global sum</A>
HREF="node96.html">psb_exit -- Exit from PSBLAS parallel
environment</A>
<LI><A NAME="tex2html131"
HREF="node97.html">psb_max -- Global maximum</A>
HREF="node97.html">psb_get_mpicomm -- Get the MPI communicator</A>
<LI><A NAME="tex2html132"
HREF="node98.html">psb_min -- Global minimum</A>
HREF="node98.html">psb_get_rank -- Get the MPI rank</A>
<LI><A NAME="tex2html133"
HREF="node99.html">psb_amx -- Global maximum absolute value</A>
HREF="node99.html">psb_wtime -- Wall clock timing</A>
<LI><A NAME="tex2html134"
HREF="node100.html">psb_amn -- Global minimum absolute value</A>
HREF="node100.html">psb_barrier -- Sinchronization point parallel
environment</A>
<LI><A NAME="tex2html135"
HREF="node101.html">psb_snd -- Send data</A>
HREF="node101.html">psb_abort -- Abort a computation</A>
<LI><A NAME="tex2html136"
HREF="node102.html">psb_rcv -- Receive data</A>
</UL>
<BR>
HREF="node102.html">psb_bcast -- Broadcast data</A>
<LI><A NAME="tex2html137"
HREF="node103.html">Error handling</A>
HREF="node103.html">psb_sum -- Global sum</A>
<LI><A NAME="tex2html138"
HREF="node104.html">Utilities</A>
HREF="node104.html">psb_max -- Global maximum</A>
<LI><A NAME="tex2html139"
HREF="node105.html">Preconditioner routines</A>
<UL>
HREF="node105.html">psb_min -- Global minimum</A>
<LI><A NAME="tex2html140"
HREF="node106.html">psb_precinit -- Initialize a preconditioner</A>
HREF="node106.html">psb_amx -- Global maximum absolute value</A>
<LI><A NAME="tex2html141"
HREF="node107.html">psb_precbld -- Builds a preconditioner</A>
HREF="node107.html">psb_amn -- Global minimum absolute value</A>
<LI><A NAME="tex2html142"
HREF="node108.html">psb_precaply -- Preconditioner application
routine</A>
HREF="node108.html">psb_snd -- Send data</A>
<LI><A NAME="tex2html143"
HREF="node109.html">psb_precdescr -- Prints a description of current
preconditioner</A>
HREF="node109.html">psb_rcv -- Receive data</A>
</UL>
<BR>
<LI><A NAME="tex2html144"
HREF="node110.html">clone -- clone current
HREF="node110.html">Error handling</A>
<LI><A NAME="tex2html145"
HREF="node111.html">Utilities</A>
<LI><A NAME="tex2html146"
HREF="node112.html">Preconditioner routines</A>
<UL>
<LI><A NAME="tex2html147"
HREF="node113.html">psb_precinit -- Initialize a preconditioner</A>
<LI><A NAME="tex2html148"
HREF="node114.html">psb_precbld -- Builds a preconditioner</A>
<LI><A NAME="tex2html149"
HREF="node115.html">psb_precaply -- Preconditioner application
routine</A>
<LI><A NAME="tex2html150"
HREF="node116.html">psb_precdescr -- Prints a description of current
preconditioner</A>
<LI><A NAME="tex2html151"
HREF="node117.html">clone -- clone current
preconditioner</A>
</UL>
<BR>
<LI><A NAME="tex2html145"
HREF="node111.html">Iterative Methods</A>
<LI><A NAME="tex2html152"
HREF="node118.html">Iterative Methods</A>
<UL>
<LI><A NAME="tex2html146"
HREF="node112.html">psb_krylov -- Krylov Methods Driver
<LI><A NAME="tex2html153"
HREF="node119.html">psb_krylov -- Krylov Methods Driver
Routine</A>
</UL>
<BR>
<LI><A NAME="tex2html147"
HREF="node113.html">Bibliography</A>
<LI><A NAME="tex2html148"
HREF="node114.html">About this document ...</A>
<LI><A NAME="tex2html154"
HREF="node120.html">Bibliography</A>
<LI><A NAME="tex2html155"
HREF="node121.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="tex2html157"
<A NAME="tex2html164"
HREF="node2.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html155"
<A NAME="tex2html162"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html149"
<A NAME="tex2html156"
HREF="userhtml.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html158"
<B> Next:</B> <A NAME="tex2html165"
HREF="node2.html">Introduction</A>
<B> Up:</B> <A NAME="tex2html156"
<B> Up:</B> <A NAME="tex2html163"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html150"
<B> Previous:</B> <A NAME="tex2html157"
HREF="userhtml.html">userhtml</A>
<BR>
<BR>
@ -53,52 +53,52 @@ Contents</A>
<!--Table of Contents-->
<UL>
<LI><A NAME="tex2html159"
<LI><A NAME="tex2html166"
HREF="node2.html">Introduction</A>
<LI><A NAME="tex2html160"
<LI><A NAME="tex2html167"
HREF="node3.html">General overview</A>
<UL>
<LI><A NAME="tex2html161"
<LI><A NAME="tex2html168"
HREF="node4.html">Basic Nomenclature</A>
<LI><A NAME="tex2html162"
<LI><A NAME="tex2html169"
HREF="node5.html">Library contents</A>
<LI><A NAME="tex2html163"
<LI><A NAME="tex2html170"
HREF="node6.html">Application structure</A>
<LI><A NAME="tex2html164"
<LI><A NAME="tex2html171"
HREF="node8.html">Programming model</A>
</UL>
<BR>
<LI><A NAME="tex2html165"
<LI><A NAME="tex2html172"
HREF="node9.html">Data Structures and Classes</A>
<UL>
<LI><A NAME="tex2html166"
HREF="node10.html">Descriptor data structure</A>
<LI><A NAME="tex2html167"
HREF="node21.html">Sparse Matrix class</A>
<LI><A NAME="tex2html168"
HREF="node32.html">Dense Vector Data Structure</A>
<LI><A NAME="tex2html169"
HREF="node38.html">Preconditioner data structure</A>
</UL>
<BR>
<LI><A NAME="tex2html170"
HREF="node39.html">Computational routines</A>
<LI><A NAME="tex2html171"
HREF="node53.html">Communication routines</A>
<LI><A NAME="tex2html172"
HREF="node58.html">Data management routines</A>
<LI><A NAME="tex2html173"
HREF="node86.html">Parallel environment routines</A>
HREF="node10.html">Descriptor data structure</A>
<LI><A NAME="tex2html174"
HREF="node103.html">Error handling</A>
HREF="node21.html">Sparse Matrix class</A>
<LI><A NAME="tex2html175"
HREF="node104.html">Utilities</A>
HREF="node39.html">Dense Vector Data Structure</A>
<LI><A NAME="tex2html176"
HREF="node105.html">Preconditioner routines</A>
HREF="node45.html">Preconditioner data structure</A>
</UL>
<BR>
<LI><A NAME="tex2html177"
HREF="node111.html">Iterative Methods</A>
HREF="node46.html">Computational routines</A>
<LI><A NAME="tex2html178"
HREF="node113.html">Bibliography</A>
HREF="node60.html">Communication routines</A>
<LI><A NAME="tex2html179"
HREF="node65.html">Data management routines</A>
<LI><A NAME="tex2html180"
HREF="node93.html">Parallel environment routines</A>
<LI><A NAME="tex2html181"
HREF="node110.html">Error handling</A>
<LI><A NAME="tex2html182"
HREF="node111.html">Utilities</A>
<LI><A NAME="tex2html183"
HREF="node112.html">Preconditioner routines</A>
<LI><A NAME="tex2html184"
HREF="node118.html">Iterative Methods</A>
<LI><A NAME="tex2html185"
HREF="node120.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="tex2html316"
<A NAME="tex2html330"
HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html312"
<A NAME="tex2html326"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html306"
<A NAME="tex2html320"
HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html314"
<A NAME="tex2html328"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html317"
<B> Next:</B> <A NAME="tex2html331"
HREF="node11.html">Descriptor Methods</A>
<B> Up:</B> <A NAME="tex2html313"
<B> Up:</B> <A NAME="tex2html327"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html307"
<B> Previous:</B> <A NAME="tex2html321"
HREF="node9.html">Data Structures and Classes</A>
&nbsp; <B> <A NAME="tex2html315"
&nbsp; <B> <A NAME="tex2html329"
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="node58.html#sec:toolsrout">6</A> or the query routines detailed below;
Sec.&nbsp;<A HREF="node65.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="node58.html#sec:toolsrout">6</A>).
the mode of initialization (see also&nbsp;<A HREF="node65.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="773"></A>
<DIV ALIGN="CENTER"><A NAME="fig:desctype"></A><A NAME="847"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
The PSBLAS defined data type that
@ -249,52 +249,52 @@ state, which can take the following values:
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html318"
<LI><A NAME="tex2html332"
HREF="node11.html">Descriptor Methods</A>
<LI><A NAME="tex2html319"
<LI><A NAME="tex2html333"
HREF="node12.html">get_local_rows -- Get number of local rows</A>
<LI><A NAME="tex2html320"
<LI><A NAME="tex2html334"
HREF="node13.html">get_local_cols -- Get number of local cols</A>
<LI><A NAME="tex2html321"
<LI><A NAME="tex2html335"
HREF="node14.html">get_global_rows -- Get number of global rows</A>
<LI><A NAME="tex2html322"
<LI><A NAME="tex2html336"
HREF="node15.html">get_global_cols -- Get number of global cols</A>
<LI><A NAME="tex2html323"
<LI><A NAME="tex2html337"
HREF="node16.html">get_context -- Get communication context</A>
<LI><A NAME="tex2html324"
<LI><A NAME="tex2html338"
HREF="node17.html">Clone -- clone current object</A>
<LI><A NAME="tex2html325"
<LI><A NAME="tex2html339"
HREF="node18.html">psb_cd_get_large_threshold -- Get threshold for
index mapping switch</A>
<LI><A NAME="tex2html326"
<LI><A NAME="tex2html340"
HREF="node19.html">psb_cd_set_large_threshold -- Set threshold for
index mapping switch</A>
<LI><A NAME="tex2html327"
<LI><A NAME="tex2html341"
HREF="node20.html">Named Constants</A>
</UL>
<!--End of Table of Child-Links-->
<HR>
<!--Navigation Panel-->
<A NAME="tex2html316"
<A NAME="tex2html330"
HREF="node11.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html312"
<A NAME="tex2html326"
HREF="node9.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html306"
<A NAME="tex2html320"
HREF="node9.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html314"
<A NAME="tex2html328"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html317"
<B> Next:</B> <A NAME="tex2html331"
HREF="node11.html">Descriptor Methods</A>
<B> Up:</B> <A NAME="tex2html313"
<B> Up:</B> <A NAME="tex2html327"
HREF="node9.html">Data Structures and Classes</A>
<B> Previous:</B> <A NAME="tex2html307"
<B> Previous:</B> <A NAME="tex2html321"
HREF="node9.html">Data Structures and Classes</A>
&nbsp; <B> <A NAME="tex2html315"
&nbsp; <B> <A NAME="tex2html329"
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_amn -- Global minimum absolute value</TITLE>
<META NAME="description" CONTENT="psb_amn -- Global minimum absolute value">
<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="node101.html">
<LINK REL="previous" HREF="node99.html">
<LINK REL="up" HREF="node86.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node101.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1467"
<A NAME="tex2html1488"
HREF="node101.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1463"
HREF="node86.html">
<A NAME="tex2html1484"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1457"
<A NAME="tex2html1478"
HREF="node99.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1465"
<A NAME="tex2html1486"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1468"
HREF="node101.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1464"
HREF="node86.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1458"
HREF="node99.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1466"
<B> Next:</B> <A NAME="tex2html1489"
HREF="node101.html">psb_abort Abort</A>
<B> Up:</B> <A NAME="tex2html1485"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1479"
HREF="node99.html">psb_wtime Wall</A>
&nbsp; <B> <A NAME="tex2html1487"
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="SECTION00087000000000000000">
psb_barrier -- Sinchronization point parallel
environment</A>
</H2>
<P>
<PRE>
call psb_amn(icontxt, dat, root)
call psb_barrier(icontxt)
</PRE>
<P>
This subroutine implements a minimum absolute value reduction
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,99 +83,10 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global minimum.
<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. 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="img79.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="img133.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></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 minimum operation.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array.
<BR>
Type, kind, rank and size must agree on all processes.
</DD>
</DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>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="tex2html1467"
HREF="node101.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1463"
HREF="node86.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1457"
HREF="node99.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1465"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1468"
HREF="node101.html">psb_snd Send</A>
<B> Up:</B> <A NAME="tex2html1464"
HREF="node86.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1458"
HREF="node99.html">psb_amx Global</A>
&nbsp; <B> <A NAME="tex2html1466"
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_snd -- Send data</TITLE>
<META NAME="description" CONTENT="psb_snd -- Send data">
<TITLE>psb_abort -- Abort a computation</TITLE>
<META NAME="description" CONTENT="psb_abort -- Abort a computation">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
@ -20,51 +20,51 @@ 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="node86.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node102.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1479"
<A NAME="tex2html1500"
HREF="node102.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1475"
HREF="node86.html">
<A NAME="tex2html1496"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1469"
<A NAME="tex2html1490"
HREF="node100.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1477"
<A NAME="tex2html1498"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1480"
HREF="node102.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1476"
HREF="node86.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1470"
HREF="node100.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1478"
<B> Next:</B> <A NAME="tex2html1501"
HREF="node102.html">psb_bcast Broadcast</A>
<B> Up:</B> <A NAME="tex2html1497"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1491"
HREF="node100.html">psb_barrier Sinchronization</A>
&nbsp; <B> <A NAME="tex2html1499"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000815000000000000000">
psb_snd -- Send data</A>
<H2><A NAME="SECTION00088000000000000000">
psb_abort -- Abort a computation</A>
</H2>
<P>
<PRE>
call psb_snd(icontxt, dat, dst, m)
call psb_abort(icontxt)
</PRE>
<P>
This subroutine sends a packet of data to a destination.
This subroutine aborts computation on the parallel virtual machine.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous: see usage notes.
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
@ -81,112 +81,10 @@ Intent: <B>in</B>.
<BR>
Specified as: an integer variable.
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The data to be sent.
<BR>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
ALT="$m$"> is
not specified, size must agree as well.
</DD>
<DT><STRONG>dst</STRONG></DT>
<DD>Destination process.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= dst <= np-1$
-->
<IMG
WIDTH="146" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img135.png"
ALT="$0&lt;= dst &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="171" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img136.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="27" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img137.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="82" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img138.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
</DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT>
<OL>
<LI>This subroutine implies a synchronization, but only between the
calling process and the destination process <IMG
WIDTH="26" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img139.png"
ALT="$dst$">.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1479"
HREF="node102.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1475"
HREF="node86.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1469"
HREF="node100.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1477"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1480"
HREF="node102.html">psb_rcv Receive</A>
<B> Up:</B> <A NAME="tex2html1476"
HREF="node86.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1470"
HREF="node100.html">psb_amn Global</A>
&nbsp; <B> <A NAME="tex2html1478"
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_rcv -- Receive data</TITLE>
<META NAME="description" CONTENT="psb_rcv -- Receive data">
<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">
@ -18,52 +18,54 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node103.html">
<LINK REL="previous" HREF="node101.html">
<LINK REL="up" HREF="node86.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node103.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1489"
<A NAME="tex2html1512"
HREF="node103.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1485"
HREF="node86.html">
<A NAME="tex2html1508"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1481"
<A NAME="tex2html1502"
HREF="node101.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1487"
<A NAME="tex2html1510"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1490"
HREF="node103.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1486"
HREF="node86.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1482"
HREF="node101.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1488"
<B> Next:</B> <A NAME="tex2html1513"
HREF="node103.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1509"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1503"
HREF="node101.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1511"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION000816000000000000000">
psb_rcv -- Receive data</A>
<H2><A NAME="SECTION00089000000000000000">
psb_bcast -- Broadcast data</A>
</H2>
<P>
<PRE>
call psb_rcv(icontxt, dat, src, m)
call psb_bcast(icontxt, dat, root)
</PRE>
<P>
This subroutine receives a packet of data to a destination.
This subroutine implements a broadcast 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,35 @@ 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>On the root process, 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 value <!-- MATH
$0<= src <= np-1$
-->
<IMG
WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img140.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, 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>.
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$0<= m <= size(dat,1)$
$0<= root <= np-1$
-->
<IMG
WIDTH="171" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img136.png"
ALT="$0&lt;= m &lt;= size(dat,1)$">.
<BR>
When <IMG
WIDTH="27" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img137.png"
ALT="$dat$"> is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension <IMG
WIDTH="82" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img138.png"
ALT="$size(dat,1)$">; must have the
same value on sending and receiving processes.
</DD>
WIDTH="152" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img132.png"
ALT="$0&lt;= root &lt;= np-1$">, default 0 </DD>
</DL>
<P>
@ -132,58 +119,42 @@ same value on sending and receiving processes.
<DD>
</DD>
<DT><STRONG>dat</STRONG></DT>
<DD>The data to be received.
<DD>On processes other than root, 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, real or complex variable, which may be a
scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if <IMG
WIDTH="18" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img134.png"
ALT="$m$"> is
not specified, size must agree as well.
scalar, or a rank 1 or 2 array, 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>This subroutine implies a synchronization, but only between the
calling process and the source process <IMG
WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
SRC="img141.png"
ALT="$src$">.
</LI>
</OL>
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1489"
<A NAME="tex2html1512"
HREF="node103.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1485"
HREF="node86.html">
<A NAME="tex2html1508"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1481"
<A NAME="tex2html1502"
HREF="node101.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1487"
<A NAME="tex2html1510"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1490"
HREF="node103.html">Error handling</A>
<B> Up:</B> <A NAME="tex2html1486"
HREF="node86.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1482"
HREF="node101.html">psb_snd Send</A>
&nbsp; <B> <A NAME="tex2html1488"
<B> Next:</B> <A NAME="tex2html1513"
HREF="node103.html">psb_sum Global</A>
<B> Up:</B> <A NAME="tex2html1509"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1503"
HREF="node101.html">psb_abort Abort</A>
&nbsp; <B> <A NAME="tex2html1511"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->

@ -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_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">
@ -19,324 +19,159 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node104.html">
<LINK REL="previous" HREF="node86.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="previous" HREF="node102.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node104.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1501"
<A NAME="tex2html1524"
HREF="node104.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1497"
HREF="userhtml.html">
<A NAME="tex2html1520"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1491"
<A NAME="tex2html1514"
HREF="node102.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1499"
<A NAME="tex2html1522"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1502"
HREF="node104.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1498"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1492"
HREF="node102.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1500"
<B> Next:</B> <A NAME="tex2html1525"
HREF="node104.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1521"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1515"
HREF="node102.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1523"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION00090000000000000000">
Error handling</A>
</H1>
<H2><A NAME="SECTION000810000000000000000">
psb_sum -- Global sum</A>
</H2>
<P>
The PSBLAS library error handling policy has been completely rewritten
in version 2.0. The idea behind the design of this new error handling
strategy is to keep error messages on a stack allowing the user to
trace back up to the point where the first error message has been
generated. Every routine in the PSBLAS-2.0 library has, as last
non-optional argument, an integer <code>info</code> variable; whenever,
inside the routine, an error is detected, this variable is set to a
value corresponding to a specific error code. Then this error code is
also pushed on the error stack and then either control is returned to
the caller routine or the execution is aborted, depending on the users
choice. At the time when the execution is aborted, an error message is
printed on standard output with a level of verbosity than can be
chosen by the user. If the execution is not aborted, then, the caller
routine checks the value returned in the <code>info</code> variable and, if
not zero, an error condition is raised. This process continues on all the
levels of nested calls until the level where the user decides to abort
the program execution.
<P>
Figure&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="6908"></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="img143.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="6909"></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="img143.png"
ALT="\fbox{\TheSbox}">
</DIV></TD></TR>
</TABLE>
</DIV>
<P>
ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
stack
<P>
<BR>
<IMG
WIDTH="423" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img145.png"
ALT="\begin{lstlisting}
call psb_errpush(err_c, r_name, i_err, a_err)
\end{lstlisting}">
<BR>
<PRE>
call psb_sum(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a sum reduction operation based on the
underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
<DD>Synchronous.
</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.
<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>
<DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global sum.
<BR>
Type: <B>optional</B>
Scope: <B>global</B>.
<BR>
Specified as: an integer array
<BR></DD>
<DT><STRONG>a_err</STRONG></DT>
<DD>addional info for error code
Type: <B>required</B>.
<BR>
Scope: <B>local</B>
<BR>
Type: <B>optional</B>
<BR>
Specified as: a string.
<BR></DD>
</DL>
<P>
ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
execution
<P>
<BR>
<IMG
WIDTH="213" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img146.png"
ALT="\begin{lstlisting}
call psb_error(icontxt)
\end{lstlisting}">
Intent: <B>inout</B>.
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DD>
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>icontxt</STRONG></DT>
<DD>the communication context.
<DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final sum, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$-1$"> to make it available
on all processes.
<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.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
messages.
<P>
<BR>
Specified as: an integer value <!-- MATH
$-1<= root <= np-1$
-->
<IMG
WIDTH="261" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img147.png"
ALT="\begin{lstlisting}
call psb_set_errverbosity(v)
\end{lstlisting}">
<BR>
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1. </DD>
</DL>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry</B></STRONG></DT>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>v</STRONG></DT>
<DD>the verbosity level
<DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the sum operation.
<BR>
Scope: <B>global</B>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>
Type: <B>required</B>.
<BR>
Intent: <B>in</B>.
Intent: <B>inout</B>.
<BR>
Specified as: an integer.
Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array.
<BR>
Type, kind, rank and size must agree on all processes.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
taken upon error condition.
<P>
<BR>
<IMG
WIDTH="289" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img148.png"
ALT="\begin{lstlisting}
call psb_set_erraction(err_act)
\end{lstlisting}">
<BR>
<FONT SIZE="+1"><B>Notes</B></FONT>
<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>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="tex2html1501"
<A NAME="tex2html1524"
HREF="node104.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1497"
HREF="userhtml.html">
<A NAME="tex2html1520"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1491"
<A NAME="tex2html1514"
HREF="node102.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1499"
<A NAME="tex2html1522"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1502"
HREF="node104.html">Utilities</A>
<B> Up:</B> <A NAME="tex2html1498"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1492"
HREF="node102.html">psb_rcv Receive</A>
&nbsp; <B> <A NAME="tex2html1500"
<B> Next:</B> <A NAME="tex2html1525"
HREF="node104.html">psb_max Global</A>
<B> Up:</B> <A NAME="tex2html1521"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1515"
HREF="node102.html">psb_bcast Broadcast</A>
&nbsp; <B> <A NAME="tex2html1523"
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_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,199 +20,101 @@ 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="userhtml.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node105.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1513"
<A NAME="tex2html1536"
HREF="node105.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1509"
HREF="userhtml.html">
<A NAME="tex2html1532"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1503"
<A NAME="tex2html1526"
HREF="node103.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1511"
<A NAME="tex2html1534"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1514"
HREF="node105.html">Preconditioner routines</A>
<B> Up:</B> <A NAME="tex2html1510"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1504"
HREF="node103.html">Error handling</A>
&nbsp; <B> <A NAME="tex2html1512"
<B> Next:</B> <A NAME="tex2html1537"
HREF="node105.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1533"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1527"
HREF="node103.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1535"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION000100000000000000000"></A>
<A NAME="sec:util"></A>
<BR>
Utilities
</H1>
<P>
We have some utitlities available for input and output of
sparsematrices; the interfaces to these routines are available in the
module <code>psb_util_mod</code>.
<P>
ifstarsubroutinesubroutinehb_readRead a sparse matrix from a file in the
Harwell-Boeing format
<H2><A NAME="SECTION000811000000000000000">
psb_max -- Global maximum</A>
</H2>
<P>
<BR>
<IMG
WIDTH="461" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img149.png"
ALT="\begin{lstlisting}
call hb_read(a, iret, iunit, filename, b, mtitle)
\end{lstlisting}">
<BR>
<PRE>
call psb_max(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a maximum valuereduction
operation based on the underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
<DD>Synchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be read.
<DT><STRONG>icontxt</STRONG></DT>
<DD>the communication context identifying the virtual
parallel machine.
<BR>
Type:<B>optional</B>.
Scope: <B>global</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
Type: <B>required</B>.
<BR>
Type:<B>optional</B>.
Intent: <B>in</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
Specified as: an integer variable.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix read from file.
<DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global maximum.
<BR>
Type:<B>required</B>.
Scope: <B>local</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).
Type: <B>required</B>.
<BR>
Type: <B>Optional</B>
Intent: <B>inout</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.
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>mtitle</STRONG></DT>
<DD>Matrix title.
<DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final maximum, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$-1$"> to make it available
on all processes.
<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.
Scope: <B>global</B>.
<BR>
Type: <B>required</B>
Type: <B>optional</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinehb_writeWrite a sparse matrix to a file
in the Harwell-Boeing format
<P>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$-1<= root <= np-1$
-->
<IMG
WIDTH="537" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img150.png"
ALT="\begin{lstlisting}
call hb_write(a, iret, iunit, filename, key, rhs, mtitle)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix to be written.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side.
<BR>
Type: <B>Optional</B>
<BR>
An array of type real or complex, rank 1 and having the ALLOCATABLE
attribute; will be allocated and filled in if the input file contains
a right hand side.
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written to.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
<DT><STRONG>key</STRONG></DT>
<DD>Matrix key.
<BR>
Type: <B>Optional</B>
<BR>
A charachter variable of length 8 holding the
matrix key as specified by the Harwell-Boeing format and to be
written to file.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>Optional</B>
<BR>
A charachter variable of length 72 holding the
matrix title as specified by the Harwell-Boeing format and to be
written to file.
</DD>
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>
<P>
@ -220,225 +122,55 @@ written to file.
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<DT><STRONG>dat</STRONG></DT>
<DD>On destination process(es), the result of the maximum operation.
<BR>
Type: <B>required</B>
Scope: <B>global</B>.
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinemm_mat_readRead a sparse matrix from a
file in the MatrixMarket format
<P>
<BR>
<IMG
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img151.png"
ALT="\begin{lstlisting}
call mm_mat_read(a, iret, iunit, filename)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be read.
Type: <B>required</B>.
<BR>
Type:<B>optional</B>.
Intent: <B>in</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
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>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix read from file.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<P>
ifstarsubroutinesubroutinemm_vet_readRead a dense vector from a
file in the MatrixMarket format
<BR>
<IMG
WIDTH="394" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img152.png"
ALT="\begin{lstlisting}
call mm_vet_read(b, iret, iunit, filename)
\end{lstlisting}">
<BR>
<P>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be read.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>b</STRONG></DT>
<DD>Rigth hand side(s).
<BR>
Type: <B>required</B>
<BR>
An array of type real or complex, rank 2 and having the ALLOCATABLE
attribute; will be allocated and filled in if the input file contains
a right hand side, otherwise will be left in the UNALLOCATED state.
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
<P>
ifstarsubroutinesubroutinemm_mat_writeWrite a sparse matrix to a
file in the MatrixMarket format
<BR>
<IMG
WIDTH="480" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
SRC="img153.png"
ALT="\begin{lstlisting}
call mm_mat_write(a, mtitle, iret, iunit, filename)
\end{lstlisting}">
<BR>
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
</DD>
<DT><STRONG><B>On Entry </B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>a</STRONG></DT>
<DD>the sparse matrix to be written.
<BR>
Type:<B>required</B>.
<BR>
Specified as: a structured data of type spdata<TT>psb_Tspmat_type</TT>.
</DD>
<DT><STRONG>mtitle</STRONG></DT>
<DD>Matrix title.
<BR>
Type: <B>required</B>
<BR>
A charachter variable holding a descriptive title for the matrix to be
written to file.
</DD>
<DT><STRONG>filename</STRONG></DT>
<DD>The name of the file to be written to.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: a character variable containing a valid file name, or
<code>-</code>, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: <code>-</code>.
</DD>
<DT><STRONG>iunit</STRONG></DT>
<DD>The Fortran file unit number.
<BR>
Type:<B>optional</B>.
<BR>
Specified as: an integer value. Only meaningful if filename is not <code>-</code>.
</DD>
</DL>
<P>
<DL>
<DT><STRONG><B>On Return</B></STRONG></DT>
<DD>
</DD>
<DT><STRONG>iret</STRONG></DT>
<DD>Error code.
<BR>
Type: <B>required</B>
<BR>
An integer value; 0 means no error has been detected.
</DD>
</DL>
<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="tex2html1513"
<A NAME="tex2html1536"
HREF="node105.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1509"
HREF="userhtml.html">
<A NAME="tex2html1532"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1503"
<A NAME="tex2html1526"
HREF="node103.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1511"
<A NAME="tex2html1534"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1514"
HREF="node105.html">Preconditioner routines</A>
<B> Up:</B> <A NAME="tex2html1510"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1504"
HREF="node103.html">Error handling</A>
&nbsp; <B> <A NAME="tex2html1512"
<B> Next:</B> <A NAME="tex2html1537"
HREF="node105.html">psb_min Global</A>
<B> Up:</B> <A NAME="tex2html1533"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1527"
HREF="node103.html">psb_sum Global</A>
&nbsp; <B> <A NAME="tex2html1535"
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>Preconditioner routines</TITLE>
<META NAME="description" CONTENT="Preconditioner routines">
<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">
@ -18,80 +18,163 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node111.html">
<LINK REL="next" HREF="node106.html">
<LINK REL="previous" HREF="node104.html">
<LINK REL="up" HREF="userhtml.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node106.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1525"
<A NAME="tex2html1548"
HREF="node106.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1521"
HREF="userhtml.html">
<A NAME="tex2html1544"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1515"
<A NAME="tex2html1538"
HREF="node104.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1523"
<A NAME="tex2html1546"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1526"
HREF="node106.html">psb_precinit Initialize</A>
<B> Up:</B> <A NAME="tex2html1522"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html1516"
HREF="node104.html">Utilities</A>
&nbsp; <B> <A NAME="tex2html1524"
<B> Next:</B> <A NAME="tex2html1549"
HREF="node106.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1545"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1539"
HREF="node104.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1547"
HREF="node1.html">Contents</A></B>
<BR>
<BR>
<!--End of Navigation Panel-->
<H1><A NAME="SECTION000110000000000000000"></A>
<A NAME="sec:precs"></A>
<H2><A NAME="SECTION000812000000000000000">
psb_min -- Global minimum</A>
</H2>
<P>
<PRE>
call psb_min(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a minimum value reduction
operation based on the underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Synchronous.
</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>dat</STRONG></DT>
<DD>The local contribution to the global minimum.
<BR>
Preconditioner routines
</H1>
Scope: <B>local</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.
</DD>
<DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final value, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$-1$"> to make it available
on all processes.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>optional</B>.
<BR>
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$-1<= root <= np-1$
-->
<IMG
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>
<P>
<A NAME="sec:psprecs"></A>The base PSBLAS library contains the implementation of two simple
preconditioning techniques:
<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 minimum operation.
<BR>
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.
<BR>
Type, kind, rank and size must agree on all processes.
</DD>
</DL>
<P>
<FONT SIZE="+1"><B>Notes</B></FONT>
<UL>
<LI>Diagonal Scaling
<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>Block Jacobi with ILU(0) factorization
<LI>The <code>dat</code> argument may also be a long integer scalar.
</LI>
</UL>
The supporting data type and subroutine interfaces are defined in the
module <code>psb_prec_mod</code>.
</OL>
<P>
<BR><HR>
<!--Table of Child-Links-->
<A NAME="CHILD_LINKS"><STRONG>Subsections</STRONG></A>
<UL>
<LI><A NAME="tex2html1527"
HREF="node106.html">psb_precinit -- Initialize a preconditioner</A>
<LI><A NAME="tex2html1528"
HREF="node107.html">psb_precbld -- Builds a preconditioner</A>
<LI><A NAME="tex2html1529"
HREF="node108.html">psb_precaply -- Preconditioner application
routine</A>
<LI><A NAME="tex2html1530"
HREF="node109.html">psb_precdescr -- Prints a description of current
preconditioner</A>
<LI><A NAME="tex2html1531"
HREF="node110.html">clone -- clone current
preconditioner</A>
</UL>
<!--End of Table of Child-Links-->
<BR><HR>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html1548"
HREF="node106.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1544"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1538"
HREF="node104.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1546"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1549"
HREF="node106.html">psb_amx Global</A>
<B> Up:</B> <A NAME="tex2html1545"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1539"
HREF="node104.html">psb_max Global</A>
&nbsp; <B> <A NAME="tex2html1547"
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_precinit -- Initialize a preconditioner</TITLE>
<META NAME="description" CONTENT="psb_precinit -- Initialize a preconditioner">
<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,123 +20,159 @@ 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="node105.html">
<LINK REL="up" HREF="node93.html">
<LINK REL="next" HREF="node107.html">
</HEAD>
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html1542"
<A NAME="tex2html1560"
HREF="node107.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1538"
HREF="node105.html">
<A NAME="tex2html1556"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1532"
<A NAME="tex2html1550"
HREF="node105.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1540"
<A NAME="tex2html1558"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1543"
HREF="node107.html">psb_precbld Builds</A>
<B> Up:</B> <A NAME="tex2html1539"
HREF="node105.html">Preconditioner routines</A>
<B> Previous:</B> <A NAME="tex2html1533"
HREF="node105.html">Preconditioner routines</A>
&nbsp; <B> <A NAME="tex2html1541"
<B> Next:</B> <A NAME="tex2html1561"
HREF="node107.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1557"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1551"
HREF="node105.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1559"
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="SECTION000813000000000000000">
psb_amx -- Global maximum absolute value</A>
</H2>
<P>
<PRE>
call psb_precinit(prec, ptype, info)
call psb_amx(icontxt, dat, root)
</PRE>
<P>
This subroutine implements a maximum absolute value reduction
operation based on the underlying communication library.
<DL>
<DT><STRONG>Type:</STRONG></DT>
<DD>Asynchronous.
<DD>Synchronous.
</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>icontxt</STRONG></DT>
<DD>the communication context identifying the virtual
parallel machine.
<BR>
Scope: <B>global</B>.
<BR>
Type: <B>required</B>
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>
Specified as: an integer variable.
</DD>
<DT><STRONG>prec</STRONG></DT>
<DD>Scope: <B>local</B>
<DT><STRONG>dat</STRONG></DT>
<DD>The local contribution to the global maximum.
<BR>
Type: <B>required</B>
Scope: <B>local</B>.
<BR>
Type: <B>required</B>.
<BR>
Intent: <B>inout</B>.
<BR>
Specified as: a preconditioner data structure precdata<TT>psb_prec_type</TT>.
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>info</STRONG></DT>
<DD>Scope: <B>global</B>
<DT><STRONG>root</STRONG></DT>
<DD>Process to hold the final value, or <IMG
WIDTH="25" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$-1$"> to make it available
on all processes.
<BR>
Type: <B>required</B>
Scope: <B>global</B>.
<BR>
Intent: <B>out</B>.
Type: <B>optional</B>.
<BR>
Error code: if no error, 0 is returned.
</DD>
</DL>
<FONT SIZE="+1"><B>Notes</B></FONT>
Legal inputs to this subroutine are interpreted depending on the
Intent: <B>in</B>.
<BR>
Specified as: an integer value <!-- MATH
$-1<= root <= np-1$
-->
<IMG
WIDTH="41" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img154.png"
ALT="$ptype$"> string as follows<A NAME="tex2html30"
HREF="footnode.html#foot7249"><SUP>3</SUP></A>:
WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
SRC="img133.png"
ALT="$-1&lt;= root &lt;= np-1$">, default -1.
<BR></DD>
</DL>
<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>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>
<BR><HR>
<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="tex2html1560"
HREF="node107.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html1556"
HREF="node93.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html1550"
HREF="node105.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html1558"
HREF="node1.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html1561"
HREF="node107.html">psb_amn Global</A>
<B> Up:</B> <A NAME="tex2html1557"
HREF="node93.html">Parallel environment routines</A>
<B> Previous:</B> <A NAME="tex2html1551"
HREF="node105.html">psb_min Global</A>
&nbsp; <B> <A NAME="tex2html1559"
HREF="node1.html">Contents</A></B>
<!--End of Navigation Panel-->
</BODY>
</HTML>

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

Loading…
Cancel
Save