Switch to htlatex step 2.
After Width: | Height: | Size: 331 B |
After Width: | Height: | Size: 373 B |
After Width: | Height: | Size: 292 B |
@ -0,0 +1,255 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 89--><p class="noindent" ><span
|
||||
class="cmbx-12x-x-144">PSBLAS</span><br
|
||||
class="newline" /> <span
|
||||
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
||||
class="newline" /> <span
|
||||
class="cmti-12">A reference guide for the Parallel Sparse BLAS library</span><br
|
||||
class="newline" /> <span
|
||||
class="cmbx-10">Salvatore Filippone</span><br
|
||||
class="newline" /><span
|
||||
class="cmbx-10">Alfredo Buttari </span><br
|
||||
class="newline" />Software version: 3.6.1<br
|
||||
class="newline" />May 31st, 2019
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="tableofcontents">
|
||||
<span class="likesectionToc" ><a
|
||||
href="userhtmlli1.html#x2-1000" id="QQ2-2-1">Contents</a></span>
|
||||
<br /> <span class="sectionToc" >1 <a
|
||||
href="userhtmlse1.html#x3-20001" id="QQ2-3-2">Introduction</a></span>
|
||||
<br /> <span class="sectionToc" >2 <a
|
||||
href="userhtmlse2.html#x4-30002" id="QQ2-4-3">General overview</a></span>
|
||||
<br />  <span class="subsectionToc" >2.1 <a
|
||||
href="userhtmlsu1.html#x6-40002.1" id="QQ2-6-5">Basic Nomenclature</a></span>
|
||||
<br />  <span class="subsectionToc" >2.2 <a
|
||||
href="userhtmlsu2.html#x8-50002.2" id="QQ2-8-7">Library contents</a></span>
|
||||
<br />  <span class="subsectionToc" >2.3 <a
|
||||
href="userhtmlsu3.html#x9-60002.3" id="QQ2-9-8">Application structure</a></span>
|
||||
<br />  <span class="subsectionToc" >2.4 <a
|
||||
href="userhtmlsu4.html#x11-80002.4" id="QQ2-11-10">Programming model</a></span>
|
||||
<br /> <span class="sectionToc" >3 <a
|
||||
href="userhtmlse3.html#x12-90003" id="QQ2-12-11">Data Structures and Classes</a></span>
|
||||
<br />  <span class="subsectionToc" >3.1 <a
|
||||
href="userhtmlsu5.html#x13-100003.1" id="QQ2-13-12">Descriptor data structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.2 <a
|
||||
href="userhtmlsu6.html#x14-230003.2" id="QQ2-14-26">Sparse Matrix class</a></span>
|
||||
<br />  <span class="subsectionToc" >3.3 <a
|
||||
href="userhtmlsu7.html#x15-430003.3" id="QQ2-15-47">Dense Vector Data Structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.4 <a
|
||||
href="userhtmlsu8.html#x16-500003.4" id="QQ2-16-55">Preconditioner data structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.5 <a
|
||||
href="userhtmlsu9.html#x17-510003.5" id="QQ2-17-57">Heap data structure</a></span>
|
||||
<br /> <span class="sectionToc" >4 <a
|
||||
href="userhtmlse4.html#x18-520004" id="QQ2-18-58">Computational routines</a></span>
|
||||
<br />  <span class="subsectionToc" >4.1 <a
|
||||
href="userhtmlsu10.html#x19-530004.1" id="QQ2-19-59">psb_geaxpby — General Dense Matrix Sum</a></span>
|
||||
<br />  <span class="subsectionToc" >4.2 <a
|
||||
href="userhtmlsu11.html#x20-540004.2" id="QQ2-20-61">psb_gedot — Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.3 <a
|
||||
href="userhtmlsu12.html#x21-550004.3" id="QQ2-21-63">psb_gedots — Generalized Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.4 <a
|
||||
href="userhtmlsu13.html#x22-560004.4" id="QQ2-22-65">psb_normi — Infinity-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.5 <a
|
||||
href="userhtmlsu14.html#x23-570004.5" id="QQ2-23-67">psb_geamaxs — Generalized Infinity Norm</a></span>
|
||||
<br />  <span class="subsectionToc" >4.6 <a
|
||||
href="userhtmlsu15.html#x24-580004.6" id="QQ2-24-69">psb_norm1 — 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.7 <a
|
||||
href="userhtmlsu16.html#x25-590004.7" id="QQ2-25-71">psb_geasums — Generalized 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.8 <a
|
||||
href="userhtmlsu17.html#x26-600004.8" id="QQ2-26-73">psb_norm2 — 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.9 <a
|
||||
href="userhtmlsu18.html#x27-610004.9" id="QQ2-27-75">psb_genrm2s — Generalized 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.10 <a
|
||||
href="userhtmlsu19.html#x28-620004.10" id="QQ2-28-77">psb_norm1 — 1-Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.11 <a
|
||||
href="userhtmlsu20.html#x29-630004.11" id="QQ2-29-79">psb_normi — Infinity Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.12 <a
|
||||
href="userhtmlsu21.html#x30-640004.12" id="QQ2-30-81">psb_spmm — Sparse Matrix by Dense Matrix Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.13 <a
|
||||
href="userhtmlsu22.html#x31-650004.13" id="QQ2-31-83">psb_spsm — Triangular System Solve</a></span>
|
||||
<br /> <span class="sectionToc" >5 <a
|
||||
href="userhtmlse5.html#x32-660005" id="QQ2-32-85">Communication routines</a></span>
|
||||
<br />  <span class="subsectionToc" >5.1 <a
|
||||
href="userhtmlsu23.html#x33-670005.1" id="QQ2-33-86">psb_halo — Halo Data Communication</a></span>
|
||||
<br />  <span class="subsectionToc" >5.2 <a
|
||||
href="userhtmlsu24.html#x34-680005.2" id="QQ2-34-89">psb_ovrl — Overlap Update</a></span>
|
||||
<br />  <span class="subsectionToc" >5.3 <a
|
||||
href="userhtmlsu25.html#x35-690005.3" id="QQ2-35-92">psb_gather — Gather Global Dense Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >5.4 <a
|
||||
href="userhtmlsu26.html#x36-700005.4" id="QQ2-36-94">psb_scatter — Scatter Global Dense Matrix</a></span>
|
||||
<br /> <span class="sectionToc" >6 <a
|
||||
href="userhtmlse6.html#x37-710006" id="QQ2-37-96">Data management routines</a></span>
|
||||
<br />  <span class="subsectionToc" >6.1 <a
|
||||
href="userhtmlsu27.html#x38-720006.1" id="QQ2-38-97">psb_cdall — Allocates a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.2 <a
|
||||
href="userhtmlsu28.html#x39-730006.2" id="QQ2-39-98">psb_cdins — Communication descriptor insert routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.3 <a
|
||||
href="userhtmlsu29.html#x40-740006.3" id="QQ2-40-99">psb_cdasb — Communication descriptor assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.4 <a
|
||||
href="userhtmlsu30.html#x41-750006.4" id="QQ2-41-100">psb_cdcpy — Copies a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.5 <a
|
||||
href="userhtmlsu31.html#x42-760006.5" id="QQ2-42-101">psb_cdfree — Frees a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.6 <a
|
||||
href="userhtmlsu32.html#x43-770006.6" id="QQ2-43-102">psb_cdbldext — Build an extended communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.7 <a
|
||||
href="userhtmlsu33.html#x44-780006.7" id="QQ2-44-103">psb_spall — Allocates a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.8 <a
|
||||
href="userhtmlsu34.html#x45-790006.8" id="QQ2-45-104">psb_spins — Insert a set of coefficients into a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.9 <a
|
||||
href="userhtmlsu35.html#x46-800006.9" id="QQ2-46-105">psb_spasb — Sparse matrix assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.10 <a
|
||||
href="userhtmlsu36.html#x47-810006.10" id="QQ2-47-106">psb_spfree — Frees a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.11 <a
|
||||
href="userhtmlsu37.html#x48-820006.11" id="QQ2-48-107">psb_sprn — Reinit sparse matrix structure for psblas routines.</a></span>
|
||||
<br />  <span class="subsectionToc" >6.12 <a
|
||||
href="userhtmlsu38.html#x49-830006.12" id="QQ2-49-108">psb_geall — Allocates a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.13 <a
|
||||
href="userhtmlsu39.html#x50-840006.13" id="QQ2-50-109">psb_geins — Dense matrix insertion routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.14 <a
|
||||
href="userhtmlsu40.html#x51-850006.14" id="QQ2-51-110">psb_geasb — Assembly a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.15 <a
|
||||
href="userhtmlsu41.html#x52-860006.15" id="QQ2-52-111">psb_gefree — Frees a dense matrix</a></span>
|
||||
|
||||
|
||||
|
||||
<br />  <span class="subsectionToc" >6.16 <a
|
||||
href="userhtmlsu42.html#x53-870006.16" id="QQ2-53-112">psb_gelp — Applies a left permutation to a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.17 <a
|
||||
href="userhtmlsu43.html#x54-880006.17" id="QQ2-54-113">psb_glob_to_loc — Global to local indices convertion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.18 <a
|
||||
href="userhtmlsu44.html#x55-890006.18" id="QQ2-55-114">psb_loc_to_glob — Local to global indices conversion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.19 <a
|
||||
href="userhtmlsu45.html#x56-900006.19" id="QQ2-56-115">psb_is_owned — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.20 <a
|
||||
href="userhtmlsu46.html#x57-910006.20" id="QQ2-57-116">psb_owned_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.21 <a
|
||||
href="userhtmlsu47.html#x58-920006.21" id="QQ2-58-117">psb_is_local — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.22 <a
|
||||
href="userhtmlsu48.html#x59-930006.22" id="QQ2-59-118">psb_local_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.23 <a
|
||||
href="userhtmlsu49.html#x60-940006.23" id="QQ2-60-119">psb_get_boundary — Extract list of boundary elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.24 <a
|
||||
href="userhtmlsu50.html#x61-950006.24" id="QQ2-61-120">psb_get_overlap — Extract list of overlap elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.25 <a
|
||||
href="userhtmlsu51.html#x62-960006.25" id="QQ2-62-121">psb_sp_getrow — Extract row(s) from a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.26 <a
|
||||
href="userhtmlsu52.html#x63-970006.26" id="QQ2-63-122">psb_sizeof — Memory occupation</a></span>
|
||||
<br />  <span class="subsectionToc" >6.27 <a
|
||||
href="userhtmlsu53.html#x64-980006.27" id="QQ2-64-123">Sorting utilities — </a></span>
|
||||
<br /> <span class="sectionToc" >7 <a
|
||||
href="userhtmlse7.html#x65-990007" id="QQ2-65-124">Parallel environment routines</a></span>
|
||||
<br />  <span class="subsectionToc" >7.1 <a
|
||||
href="userhtmlsu54.html#x66-1000007.1" id="QQ2-66-125">psb_init — Initializes PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.2 <a
|
||||
href="userhtmlsu55.html#x67-1010007.2" id="QQ2-67-126">psb_info — Return information about PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.3 <a
|
||||
href="userhtmlsu56.html#x68-1020007.3" id="QQ2-68-127">psb_exit — Exit from PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.4 <a
|
||||
href="userhtmlsu57.html#x69-1030007.4" id="QQ2-69-128">psb_get_mpicomm — Get the MPI communicator</a></span>
|
||||
<br />  <span class="subsectionToc" >7.5 <a
|
||||
href="userhtmlsu58.html#x70-1040007.5" id="QQ2-70-129">psb_get_rank — Get the MPI rank</a></span>
|
||||
<br />  <span class="subsectionToc" >7.6 <a
|
||||
href="userhtmlsu59.html#x71-1050007.6" id="QQ2-71-130">psb_wtime — Wall clock timing</a></span>
|
||||
<br />  <span class="subsectionToc" >7.7 <a
|
||||
href="userhtmlsu60.html#x72-1060007.7" id="QQ2-72-131">psb_barrier — Sinchronization point parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.8 <a
|
||||
href="userhtmlsu61.html#x73-1070007.8" id="QQ2-73-132">psb_abort — Abort a computation</a></span>
|
||||
<br />  <span class="subsectionToc" >7.9 <a
|
||||
href="userhtmlsu62.html#x74-1080007.9" id="QQ2-74-133">psb_bcast — Broadcast data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.10 <a
|
||||
href="userhtmlsu63.html#x75-1090007.10" id="QQ2-75-134">psb_sum — Global sum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.11 <a
|
||||
href="userhtmlsu64.html#x76-1100007.11" id="QQ2-76-135">psb_max — Global maximum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.12 <a
|
||||
href="userhtmlsu65.html#x77-1110007.12" id="QQ2-77-136">psb_min — Global minimum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.13 <a
|
||||
href="userhtmlsu66.html#x78-1120007.13" id="QQ2-78-137">psb_amx — Global maximum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.14 <a
|
||||
href="userhtmlsu67.html#x79-1130007.14" id="QQ2-79-138">psb_amn — Global minimum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.15 <a
|
||||
href="userhtmlsu68.html#x80-1140007.15" id="QQ2-80-139">psb_nrm2 — Global 2-norm reduction</a></span>
|
||||
<br />  <span class="subsectionToc" >7.16 <a
|
||||
href="userhtmlsu69.html#x81-1150007.16" id="QQ2-81-140">psb_snd — Send data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.17 <a
|
||||
href="userhtmlsu70.html#x82-1160007.17" id="QQ2-82-141">psb_rcv — Receive data</a></span>
|
||||
<br /> <span class="sectionToc" >8 <a
|
||||
href="userhtmlse8.html#x83-1170008" id="QQ2-83-142">Error handling</a></span>
|
||||
<br />  <span class="subsectionToc" >8.1 <a
|
||||
href="userhtmlsu71.html#x84-1180008.1" id="QQ2-84-145">psb_errpush — Pushes an error code onto the error stack</a></span>
|
||||
<br />  <span class="subsectionToc" >8.2 <a
|
||||
href="userhtmlsu72.html#x85-1190008.2" id="QQ2-85-146">psb_error — Prints the error stack content and aborts execution</a></span>
|
||||
<br />  <span class="subsectionToc" >8.3 <a
|
||||
href="userhtmlsu73.html#x86-1200008.3" id="QQ2-86-147">psb_set_errverbosity — Sets the verbosity of error messages</a></span>
|
||||
<br />  <span class="subsectionToc" >8.4 <a
|
||||
href="userhtmlsu74.html#x87-1210008.4" id="QQ2-87-148">psb_set_erraction — Set the type of action to be taken upon error condition</a></span>
|
||||
<br /> <span class="sectionToc" >9 <a
|
||||
href="userhtmlse9.html#x88-1220009" id="QQ2-88-149">Utilities</a></span>
|
||||
<br />  <span class="subsectionToc" >9.1 <a
|
||||
href="userhtmlsu75.html#x89-1230009.1" id="QQ2-89-150"> hb_read — Read a sparse matrix from a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.2 <a
|
||||
href="userhtmlsu76.html#x90-1240009.2" id="QQ2-90-151">hb_write — Write a sparse matrix to a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.3 <a
|
||||
href="userhtmlsu77.html#x91-1250009.3" id="QQ2-91-152">mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.4 <a
|
||||
href="userhtmlsu78.html#x92-1260009.4" id="QQ2-92-153">mm_array_read — Read a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.5 <a
|
||||
href="userhtmlsu79.html#x93-1270009.5" id="QQ2-93-154">mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.6 <a
|
||||
href="userhtmlsu80.html#x94-1280009.6" id="QQ2-94-155">mm_array_write — Write a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br /> <span class="sectionToc" >10 <a
|
||||
href="userhtmlse10.html#x95-12900010" id="QQ2-95-156">Preconditioner routines</a></span>
|
||||
<br />  <span class="subsectionToc" >10.1 <a
|
||||
href="userhtmlsu81.html#x96-13000010.1" id="QQ2-96-157">init — Initialize a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.2 <a
|
||||
href="userhtmlsu82.html#x98-13100010.2" id="QQ2-98-158">build — Builds a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.3 <a
|
||||
href="userhtmlsu83.html#x99-13200010.3" id="QQ2-99-159">apply — Preconditioner application routine</a></span>
|
||||
<br />  <span class="subsectionToc" >10.4 <a
|
||||
href="userhtmlsu84.html#x100-13300010.4" id="QQ2-100-160">descr — Prints a description of current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.5 <a
|
||||
href="userhtmlsu85.html#x101-13400010.5" id="QQ2-101-161">clone — clone current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.6 <a
|
||||
href="userhtmlsu86.html#x102-13500010.6" id="QQ2-102-162">free — Free a preconditioner</a></span>
|
||||
<br /> <span class="sectionToc" >11 <a
|
||||
href="userhtmlse11.html#x103-13600011" id="QQ2-103-163">Iterative Methods</a></span>
|
||||
|
||||
|
||||
|
||||
<br />  <span class="subsectionToc" >11.1 <a
|
||||
href="userhtmlsu87.html#x104-13700011.1" id="QQ2-104-164">psb_krylov — Krylov Methods Driver Routine</a></span>
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli2.html#x106-13800011.1" id="QQ2-106-165">References</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body></html>
|
||||
|
||||
|
||||
|
||||
|
@ -0,0 +1,157 @@
|
||||
|
||||
/* start css.sty */
|
||||
.cmr-7{font-size:70%;}
|
||||
.cmmi-5{font-size:50%;font-style: italic;}
|
||||
.cmmi-7{font-size:70%;font-style: italic;}
|
||||
.cmmi-10{font-style: italic;}
|
||||
.cmsy-7{font-size:70%;}
|
||||
.cmbx-12x-x-144{font-size:172%; font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmti-10{ font-style: italic;}
|
||||
.cmti-12{font-size:120%; font-style: italic;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmtt-10{font-family: monospace;}
|
||||
.cmtt-10{font-family: monospace;}
|
||||
.cmtt-10{font-family: monospace;}
|
||||
.cmr-9{font-size:90%;}
|
||||
.cmr-8{font-size:80%;}
|
||||
.cmbx-12{font-size:120%; font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmtt-8{font-size:80%;font-family: monospace;}
|
||||
.cmtt-8{font-family: monospace;}
|
||||
.cmtt-8{font-family: monospace;}
|
||||
.cmtt-9{font-size:90%;font-family: monospace;}
|
||||
.cmtt-9{font-family: monospace;}
|
||||
.cmtt-9{font-family: monospace;}
|
||||
.cmmi-8{font-size:80%;font-style: italic;}
|
||||
.cmbx-9{font-size:90%; font-weight: bold;}
|
||||
.cmbx-9{ font-weight: bold;}
|
||||
.cmbx-9{ font-weight: bold;}
|
||||
.cmbx-9{ font-weight: bold;}
|
||||
p.noindent { text-indent: 0em }
|
||||
td p.noindent { text-indent: 0em; margin-top:0em; }
|
||||
p.nopar { text-indent: 0em; }
|
||||
p.indent{ text-indent: 1.5em }
|
||||
@media print {div.crosslinks {visibility:hidden;}}
|
||||
a img { border-top: 0; border-left: 0; border-right: 0; }
|
||||
center { margin-top:1em; margin-bottom:1em; }
|
||||
td center { margin-top:0em; margin-bottom:0em; }
|
||||
.Canvas { position:relative; }
|
||||
img.math{vertical-align:middle;}
|
||||
li p.indent { text-indent: 0em }
|
||||
li p:first-child{ margin-top:0em; }
|
||||
li p:last-child, li div:last-child { margin-bottom:0.5em; }
|
||||
li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; }
|
||||
.enumerate1 {list-style-type:decimal;}
|
||||
.enumerate2 {list-style-type:lower-alpha;}
|
||||
.enumerate3 {list-style-type:lower-roman;}
|
||||
.enumerate4 {list-style-type:upper-alpha;}
|
||||
div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
|
||||
.obeylines-h,.obeylines-v {white-space: nowrap; }
|
||||
div.obeylines-v p { margin-top:0; margin-bottom:0; }
|
||||
.overline{ text-decoration:overline; }
|
||||
.overline img{ border-top: 1px solid black; }
|
||||
td.displaylines {text-align:center; white-space:nowrap;}
|
||||
.centerline {text-align:center;}
|
||||
.rightline {text-align:right;}
|
||||
div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; }
|
||||
.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
|
||||
div.fbox {display:table}
|
||||
div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
|
||||
div.minipage{width:100%;}
|
||||
div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;}
|
||||
div.center div {text-align: left;}
|
||||
div.flushright, div.flushright div.flushright {text-align: right;}
|
||||
div.flushright div {text-align: left;}
|
||||
div.flushleft {text-align: left;}
|
||||
.underline{ text-decoration:underline; }
|
||||
.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
|
||||
.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
|
||||
.framebox-c {text-align:center;}
|
||||
.framebox-l {text-align:left;}
|
||||
.framebox-r {text-align:right;}
|
||||
span.thank-mark{ vertical-align: super }
|
||||
span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
|
||||
div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
|
||||
table.tabular td p{margin-top:0em;}
|
||||
table.tabular {margin-left: auto; margin-right: auto;}
|
||||
td p:first-child{ margin-top:0em; }
|
||||
td p:last-child{ margin-bottom:0em; }
|
||||
div.td00{ margin-left:0pt; margin-right:0pt; }
|
||||
div.td01{ margin-left:0pt; margin-right:5pt; }
|
||||
div.td10{ margin-left:5pt; margin-right:0pt; }
|
||||
div.td11{ margin-left:5pt; margin-right:5pt; }
|
||||
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
|
||||
td.td00{ padding-left:0pt; padding-right:0pt; }
|
||||
td.td01{ padding-left:0pt; padding-right:5pt; }
|
||||
td.td10{ padding-left:5pt; padding-right:0pt; }
|
||||
td.td11{ padding-left:5pt; padding-right:5pt; }
|
||||
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
|
||||
.hline hr, .cline hr{ height : 1px; margin:0px; }
|
||||
.tabbing-right {text-align:right;}
|
||||
span.TEX {letter-spacing: -0.125em; }
|
||||
span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
|
||||
a span.TEX span.E {text-decoration: none; }
|
||||
span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
|
||||
span.LATEX span.TEX{ position:relative; left: -0.4em; }
|
||||
div.float, div.figure {margin-left: auto; margin-right: auto;}
|
||||
div.float img {text-align:center;}
|
||||
div.figure img {text-align:center;}
|
||||
.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
|
||||
.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
|
||||
table.equation {width:100%;}
|
||||
.equation td{text-align:center; }
|
||||
td.equation { margin-top:1em; margin-bottom:1em; }
|
||||
td.equation-label { width:5%; text-align:center; }
|
||||
td.eqnarray4 { width:5%; white-space: normal; }
|
||||
td.eqnarray2 { width:5%; }
|
||||
table.eqnarray-star, table.eqnarray {width:100%;}
|
||||
div.eqnarray{text-align:center;}
|
||||
div.array {text-align:center;}
|
||||
div.pmatrix {text-align:center;}
|
||||
table.pmatrix {width:100%;}
|
||||
span.pmatrix img{vertical-align:middle;}
|
||||
div.pmatrix {text-align:center;}
|
||||
table.pmatrix {width:100%;}
|
||||
span.bar-css {text-decoration:overline;}
|
||||
img.cdots{vertical-align:middle;}
|
||||
.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
|
||||
.index-item, .index-subitem, .index-subsubitem {display:block}
|
||||
div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;}
|
||||
div.caption span.id{font-weight: bold; white-space: nowrap; }
|
||||
h1.partHead{text-align: center}
|
||||
p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
|
||||
p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
|
||||
.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
|
||||
.subparagraphHead, .likesubparagraphHead { font-weight: bold;}
|
||||
.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
|
||||
.verse{white-space:nowrap; margin-left:2em}
|
||||
div.maketitle {text-align:center;}
|
||||
h2.titleHead{text-align:center;}
|
||||
div.maketitle{ margin-bottom: 2em; }
|
||||
div.author, div.date {text-align:center;}
|
||||
div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
|
||||
div.author{white-space: nowrap;}
|
||||
.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; }
|
||||
.abstract p {margin-left:5%; margin-right:5%;}
|
||||
div.abstract {width:100%;}
|
||||
.subsectionToc, .likesubsectionToc {margin-left:2em;}
|
||||
.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;}
|
||||
.ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; }
|
||||
.Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; }
|
||||
.shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; }
|
||||
.doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; }
|
||||
.figure img.graphics {margin-left:10%;}
|
||||
.lstlisting .label{margin-right:0.5em; }
|
||||
div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
|
||||
div.lstinputlisting{ font-family: monospace; white-space: nowrap; }
|
||||
.lstinputlisting .label{margin-right:0.5em;}
|
||||
/* end css.sty */
|
||||
|
@ -0,0 +1,255 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 89--><p class="noindent" ><span
|
||||
class="cmbx-12x-x-144">PSBLAS</span><br
|
||||
class="newline" /> <span
|
||||
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
||||
class="newline" /> <span
|
||||
class="cmti-12">A reference guide for the Parallel Sparse BLAS library</span><br
|
||||
class="newline" /> <span
|
||||
class="cmbx-10">Salvatore Filippone</span><br
|
||||
class="newline" /><span
|
||||
class="cmbx-10">Alfredo Buttari </span><br
|
||||
class="newline" />Software version: 3.6.1<br
|
||||
class="newline" />May 31st, 2019
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="tableofcontents">
|
||||
<span class="likesectionToc" ><a
|
||||
href="userhtmlli1.html#x2-1000" id="QQ2-2-1">Contents</a></span>
|
||||
<br /> <span class="sectionToc" >1 <a
|
||||
href="userhtmlse1.html#x3-20001" id="QQ2-3-2">Introduction</a></span>
|
||||
<br /> <span class="sectionToc" >2 <a
|
||||
href="userhtmlse2.html#x4-30002" id="QQ2-4-3">General overview</a></span>
|
||||
<br />  <span class="subsectionToc" >2.1 <a
|
||||
href="userhtmlsu1.html#x6-40002.1" id="QQ2-6-5">Basic Nomenclature</a></span>
|
||||
<br />  <span class="subsectionToc" >2.2 <a
|
||||
href="userhtmlsu2.html#x8-50002.2" id="QQ2-8-7">Library contents</a></span>
|
||||
<br />  <span class="subsectionToc" >2.3 <a
|
||||
href="userhtmlsu3.html#x9-60002.3" id="QQ2-9-8">Application structure</a></span>
|
||||
<br />  <span class="subsectionToc" >2.4 <a
|
||||
href="userhtmlsu4.html#x11-80002.4" id="QQ2-11-10">Programming model</a></span>
|
||||
<br /> <span class="sectionToc" >3 <a
|
||||
href="userhtmlse3.html#x12-90003" id="QQ2-12-11">Data Structures and Classes</a></span>
|
||||
<br />  <span class="subsectionToc" >3.1 <a
|
||||
href="userhtmlsu5.html#x13-100003.1" id="QQ2-13-12">Descriptor data structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.2 <a
|
||||
href="userhtmlsu6.html#x14-230003.2" id="QQ2-14-26">Sparse Matrix class</a></span>
|
||||
<br />  <span class="subsectionToc" >3.3 <a
|
||||
href="userhtmlsu7.html#x15-430003.3" id="QQ2-15-47">Dense Vector Data Structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.4 <a
|
||||
href="userhtmlsu8.html#x16-500003.4" id="QQ2-16-55">Preconditioner data structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.5 <a
|
||||
href="userhtmlsu9.html#x17-510003.5" id="QQ2-17-57">Heap data structure</a></span>
|
||||
<br /> <span class="sectionToc" >4 <a
|
||||
href="userhtmlse4.html#x18-520004" id="QQ2-18-58">Computational routines</a></span>
|
||||
<br />  <span class="subsectionToc" >4.1 <a
|
||||
href="userhtmlsu10.html#x19-530004.1" id="QQ2-19-59">psb_geaxpby — General Dense Matrix Sum</a></span>
|
||||
<br />  <span class="subsectionToc" >4.2 <a
|
||||
href="userhtmlsu11.html#x20-540004.2" id="QQ2-20-61">psb_gedot — Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.3 <a
|
||||
href="userhtmlsu12.html#x21-550004.3" id="QQ2-21-63">psb_gedots — Generalized Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.4 <a
|
||||
href="userhtmlsu13.html#x22-560004.4" id="QQ2-22-65">psb_normi — Infinity-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.5 <a
|
||||
href="userhtmlsu14.html#x23-570004.5" id="QQ2-23-67">psb_geamaxs — Generalized Infinity Norm</a></span>
|
||||
<br />  <span class="subsectionToc" >4.6 <a
|
||||
href="userhtmlsu15.html#x24-580004.6" id="QQ2-24-69">psb_norm1 — 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.7 <a
|
||||
href="userhtmlsu16.html#x25-590004.7" id="QQ2-25-71">psb_geasums — Generalized 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.8 <a
|
||||
href="userhtmlsu17.html#x26-600004.8" id="QQ2-26-73">psb_norm2 — 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.9 <a
|
||||
href="userhtmlsu18.html#x27-610004.9" id="QQ2-27-75">psb_genrm2s — Generalized 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.10 <a
|
||||
href="userhtmlsu19.html#x28-620004.10" id="QQ2-28-77">psb_norm1 — 1-Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.11 <a
|
||||
href="userhtmlsu20.html#x29-630004.11" id="QQ2-29-79">psb_normi — Infinity Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.12 <a
|
||||
href="userhtmlsu21.html#x30-640004.12" id="QQ2-30-81">psb_spmm — Sparse Matrix by Dense Matrix Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.13 <a
|
||||
href="userhtmlsu22.html#x31-650004.13" id="QQ2-31-83">psb_spsm — Triangular System Solve</a></span>
|
||||
<br /> <span class="sectionToc" >5 <a
|
||||
href="userhtmlse5.html#x32-660005" id="QQ2-32-85">Communication routines</a></span>
|
||||
<br />  <span class="subsectionToc" >5.1 <a
|
||||
href="userhtmlsu23.html#x33-670005.1" id="QQ2-33-86">psb_halo — Halo Data Communication</a></span>
|
||||
<br />  <span class="subsectionToc" >5.2 <a
|
||||
href="userhtmlsu24.html#x34-680005.2" id="QQ2-34-89">psb_ovrl — Overlap Update</a></span>
|
||||
<br />  <span class="subsectionToc" >5.3 <a
|
||||
href="userhtmlsu25.html#x35-690005.3" id="QQ2-35-92">psb_gather — Gather Global Dense Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >5.4 <a
|
||||
href="userhtmlsu26.html#x36-700005.4" id="QQ2-36-94">psb_scatter — Scatter Global Dense Matrix</a></span>
|
||||
<br /> <span class="sectionToc" >6 <a
|
||||
href="userhtmlse6.html#x37-710006" id="QQ2-37-96">Data management routines</a></span>
|
||||
<br />  <span class="subsectionToc" >6.1 <a
|
||||
href="userhtmlsu27.html#x38-720006.1" id="QQ2-38-97">psb_cdall — Allocates a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.2 <a
|
||||
href="userhtmlsu28.html#x39-730006.2" id="QQ2-39-98">psb_cdins — Communication descriptor insert routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.3 <a
|
||||
href="userhtmlsu29.html#x40-740006.3" id="QQ2-40-99">psb_cdasb — Communication descriptor assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.4 <a
|
||||
href="userhtmlsu30.html#x41-750006.4" id="QQ2-41-100">psb_cdcpy — Copies a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.5 <a
|
||||
href="userhtmlsu31.html#x42-760006.5" id="QQ2-42-101">psb_cdfree — Frees a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.6 <a
|
||||
href="userhtmlsu32.html#x43-770006.6" id="QQ2-43-102">psb_cdbldext — Build an extended communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.7 <a
|
||||
href="userhtmlsu33.html#x44-780006.7" id="QQ2-44-103">psb_spall — Allocates a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.8 <a
|
||||
href="userhtmlsu34.html#x45-790006.8" id="QQ2-45-104">psb_spins — Insert a set of coefficients into a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.9 <a
|
||||
href="userhtmlsu35.html#x46-800006.9" id="QQ2-46-105">psb_spasb — Sparse matrix assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.10 <a
|
||||
href="userhtmlsu36.html#x47-810006.10" id="QQ2-47-106">psb_spfree — Frees a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.11 <a
|
||||
href="userhtmlsu37.html#x48-820006.11" id="QQ2-48-107">psb_sprn — Reinit sparse matrix structure for psblas routines.</a></span>
|
||||
<br />  <span class="subsectionToc" >6.12 <a
|
||||
href="userhtmlsu38.html#x49-830006.12" id="QQ2-49-108">psb_geall — Allocates a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.13 <a
|
||||
href="userhtmlsu39.html#x50-840006.13" id="QQ2-50-109">psb_geins — Dense matrix insertion routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.14 <a
|
||||
href="userhtmlsu40.html#x51-850006.14" id="QQ2-51-110">psb_geasb — Assembly a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.15 <a
|
||||
href="userhtmlsu41.html#x52-860006.15" id="QQ2-52-111">psb_gefree — Frees a dense matrix</a></span>
|
||||
|
||||
|
||||
|
||||
<br />  <span class="subsectionToc" >6.16 <a
|
||||
href="userhtmlsu42.html#x53-870006.16" id="QQ2-53-112">psb_gelp — Applies a left permutation to a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.17 <a
|
||||
href="userhtmlsu43.html#x54-880006.17" id="QQ2-54-113">psb_glob_to_loc — Global to local indices convertion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.18 <a
|
||||
href="userhtmlsu44.html#x55-890006.18" id="QQ2-55-114">psb_loc_to_glob — Local to global indices conversion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.19 <a
|
||||
href="userhtmlsu45.html#x56-900006.19" id="QQ2-56-115">psb_is_owned — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.20 <a
|
||||
href="userhtmlsu46.html#x57-910006.20" id="QQ2-57-116">psb_owned_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.21 <a
|
||||
href="userhtmlsu47.html#x58-920006.21" id="QQ2-58-117">psb_is_local — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.22 <a
|
||||
href="userhtmlsu48.html#x59-930006.22" id="QQ2-59-118">psb_local_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.23 <a
|
||||
href="userhtmlsu49.html#x60-940006.23" id="QQ2-60-119">psb_get_boundary — Extract list of boundary elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.24 <a
|
||||
href="userhtmlsu50.html#x61-950006.24" id="QQ2-61-120">psb_get_overlap — Extract list of overlap elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.25 <a
|
||||
href="userhtmlsu51.html#x62-960006.25" id="QQ2-62-121">psb_sp_getrow — Extract row(s) from a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.26 <a
|
||||
href="userhtmlsu52.html#x63-970006.26" id="QQ2-63-122">psb_sizeof — Memory occupation</a></span>
|
||||
<br />  <span class="subsectionToc" >6.27 <a
|
||||
href="userhtmlsu53.html#x64-980006.27" id="QQ2-64-123">Sorting utilities — </a></span>
|
||||
<br /> <span class="sectionToc" >7 <a
|
||||
href="userhtmlse7.html#x65-990007" id="QQ2-65-124">Parallel environment routines</a></span>
|
||||
<br />  <span class="subsectionToc" >7.1 <a
|
||||
href="userhtmlsu54.html#x66-1000007.1" id="QQ2-66-125">psb_init — Initializes PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.2 <a
|
||||
href="userhtmlsu55.html#x67-1010007.2" id="QQ2-67-126">psb_info — Return information about PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.3 <a
|
||||
href="userhtmlsu56.html#x68-1020007.3" id="QQ2-68-127">psb_exit — Exit from PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.4 <a
|
||||
href="userhtmlsu57.html#x69-1030007.4" id="QQ2-69-128">psb_get_mpicomm — Get the MPI communicator</a></span>
|
||||
<br />  <span class="subsectionToc" >7.5 <a
|
||||
href="userhtmlsu58.html#x70-1040007.5" id="QQ2-70-129">psb_get_rank — Get the MPI rank</a></span>
|
||||
<br />  <span class="subsectionToc" >7.6 <a
|
||||
href="userhtmlsu59.html#x71-1050007.6" id="QQ2-71-130">psb_wtime — Wall clock timing</a></span>
|
||||
<br />  <span class="subsectionToc" >7.7 <a
|
||||
href="userhtmlsu60.html#x72-1060007.7" id="QQ2-72-131">psb_barrier — Sinchronization point parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.8 <a
|
||||
href="userhtmlsu61.html#x73-1070007.8" id="QQ2-73-132">psb_abort — Abort a computation</a></span>
|
||||
<br />  <span class="subsectionToc" >7.9 <a
|
||||
href="userhtmlsu62.html#x74-1080007.9" id="QQ2-74-133">psb_bcast — Broadcast data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.10 <a
|
||||
href="userhtmlsu63.html#x75-1090007.10" id="QQ2-75-134">psb_sum — Global sum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.11 <a
|
||||
href="userhtmlsu64.html#x76-1100007.11" id="QQ2-76-135">psb_max — Global maximum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.12 <a
|
||||
href="userhtmlsu65.html#x77-1110007.12" id="QQ2-77-136">psb_min — Global minimum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.13 <a
|
||||
href="userhtmlsu66.html#x78-1120007.13" id="QQ2-78-137">psb_amx — Global maximum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.14 <a
|
||||
href="userhtmlsu67.html#x79-1130007.14" id="QQ2-79-138">psb_amn — Global minimum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.15 <a
|
||||
href="userhtmlsu68.html#x80-1140007.15" id="QQ2-80-139">psb_nrm2 — Global 2-norm reduction</a></span>
|
||||
<br />  <span class="subsectionToc" >7.16 <a
|
||||
href="userhtmlsu69.html#x81-1150007.16" id="QQ2-81-140">psb_snd — Send data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.17 <a
|
||||
href="userhtmlsu70.html#x82-1160007.17" id="QQ2-82-141">psb_rcv — Receive data</a></span>
|
||||
<br /> <span class="sectionToc" >8 <a
|
||||
href="userhtmlse8.html#x83-1170008" id="QQ2-83-142">Error handling</a></span>
|
||||
<br />  <span class="subsectionToc" >8.1 <a
|
||||
href="userhtmlsu71.html#x84-1180008.1" id="QQ2-84-145">psb_errpush — Pushes an error code onto the error stack</a></span>
|
||||
<br />  <span class="subsectionToc" >8.2 <a
|
||||
href="userhtmlsu72.html#x85-1190008.2" id="QQ2-85-146">psb_error — Prints the error stack content and aborts execution</a></span>
|
||||
<br />  <span class="subsectionToc" >8.3 <a
|
||||
href="userhtmlsu73.html#x86-1200008.3" id="QQ2-86-147">psb_set_errverbosity — Sets the verbosity of error messages</a></span>
|
||||
<br />  <span class="subsectionToc" >8.4 <a
|
||||
href="userhtmlsu74.html#x87-1210008.4" id="QQ2-87-148">psb_set_erraction — Set the type of action to be taken upon error condition</a></span>
|
||||
<br /> <span class="sectionToc" >9 <a
|
||||
href="userhtmlse9.html#x88-1220009" id="QQ2-88-149">Utilities</a></span>
|
||||
<br />  <span class="subsectionToc" >9.1 <a
|
||||
href="userhtmlsu75.html#x89-1230009.1" id="QQ2-89-150"> hb_read — Read a sparse matrix from a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.2 <a
|
||||
href="userhtmlsu76.html#x90-1240009.2" id="QQ2-90-151">hb_write — Write a sparse matrix to a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.3 <a
|
||||
href="userhtmlsu77.html#x91-1250009.3" id="QQ2-91-152">mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.4 <a
|
||||
href="userhtmlsu78.html#x92-1260009.4" id="QQ2-92-153">mm_array_read — Read a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.5 <a
|
||||
href="userhtmlsu79.html#x93-1270009.5" id="QQ2-93-154">mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.6 <a
|
||||
href="userhtmlsu80.html#x94-1280009.6" id="QQ2-94-155">mm_array_write — Write a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br /> <span class="sectionToc" >10 <a
|
||||
href="userhtmlse10.html#x95-12900010" id="QQ2-95-156">Preconditioner routines</a></span>
|
||||
<br />  <span class="subsectionToc" >10.1 <a
|
||||
href="userhtmlsu81.html#x96-13000010.1" id="QQ2-96-157">init — Initialize a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.2 <a
|
||||
href="userhtmlsu82.html#x98-13100010.2" id="QQ2-98-158">build — Builds a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.3 <a
|
||||
href="userhtmlsu83.html#x99-13200010.3" id="QQ2-99-159">apply — Preconditioner application routine</a></span>
|
||||
<br />  <span class="subsectionToc" >10.4 <a
|
||||
href="userhtmlsu84.html#x100-13300010.4" id="QQ2-100-160">descr — Prints a description of current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.5 <a
|
||||
href="userhtmlsu85.html#x101-13400010.5" id="QQ2-101-161">clone — clone current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.6 <a
|
||||
href="userhtmlsu86.html#x102-13500010.6" id="QQ2-102-162">free — Free a preconditioner</a></span>
|
||||
<br /> <span class="sectionToc" >11 <a
|
||||
href="userhtmlse11.html#x103-13600011" id="QQ2-103-163">Iterative Methods</a></span>
|
||||
|
||||
|
||||
|
||||
<br />  <span class="subsectionToc" >11.1 <a
|
||||
href="userhtmlsu87.html#x104-13700011.1" id="QQ2-104-164">psb_krylov — Krylov Methods Driver Routine</a></span>
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli2.html#x106-13800011.1" id="QQ2-106-165">References</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</body></html>
|
||||
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<div class="footnote-text">
|
||||
<!--l. 362--><p class="noindent" ><span class="footnote-mark"><a
|
||||
id="fn3x0"> <sup class="textsuperscript">3</sup></a></span><span
|
||||
class="cmr-8">The subroutine style </span><span
|
||||
class="cmtt-8">psb</span><span
|
||||
class="cmtt-8">_precinit </span><span
|
||||
class="cmr-8">and </span><span
|
||||
class="cmtt-8">psb</span><span
|
||||
class="cmtt-8">_precbl </span><span
|
||||
class="cmr-8">are still supported for backward</span>
|
||||
<span
|
||||
class="cmr-8">compatibility</span></div>
|
||||
</body></html>
|
@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<div class="footnote-text">
|
||||
<!--l. 53--><p class="noindent" ><span class="footnote-mark"><a
|
||||
id="fn5x0"> <sup class="textsuperscript">5</sup></a></span><span
|
||||
class="cmr-8">Note: the implementation is for </span><span
|
||||
class="cmmi-8">FCG</span><span
|
||||
class="cmr-8">(1).</span></div>
|
||||
</body></html>
|
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 439 B |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 765 B |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<div class="footnote-text">
|
||||
<!--l. 151--><p class="indent" > <span class="footnote-mark"><a
|
||||
id="fn1x0"> <sup class="textsuperscript">1</sup></a></span><span
|
||||
class="cmr-8">In our prototype implementation we provide sample scatter/gather routines.</span></div>
|
||||
|
||||
</body></html>
|
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,23 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<div class="footnote-text">
|
||||
<!--l. 195--><p class="noindent" ><span class="footnote-mark"><a
|
||||
id="fn2x0"> <sup class="textsuperscript">2</sup></a></span><span
|
||||
class="cmr-8">This is the normal situation when the pattern of the sparse matrix is symmetric, which is</span>
|
||||
<span
|
||||
class="cmr-8">equivalent to say that the interaction between two variables is reciprocal. If the matrix pattern is</span>
|
||||
<span
|
||||
class="cmr-8">non-symmetric we may have one-way interactions, and these could cause a situation in which a</span>
|
||||
<span
|
||||
class="cmr-8">boundary point is not a halo point for its neighbour.</span></div>
|
||||
</body></html>
|
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.5 KiB |
@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title></title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<div class="footnote-text">
|
||||
<!--l. 73--><p class="indent" > <span class="footnote-mark"><a
|
||||
id="fn4x0"> <sup class="textsuperscript">4</sup></a></span><span
|
||||
class="cmr-8">The string is case-insensitive</span></div>
|
||||
|
||||
</body></html>
|
After Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,318 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Contents</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 104--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse1.html" >next</a>] [<a
|
||||
href="#tailuserhtmlli1.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlli1.html" >up</a>] </p></div>
|
||||
<h3 class="likesectionHead"><a
|
||||
id="x2-1000"></a>Contents</h3>
|
||||
<div class="tableofcontents">
|
||||
<span class="sectionToc" >1 <a
|
||||
href="userhtmlse1.html#x3-20001">Introduction</a></span>
|
||||
<br /> <span class="sectionToc" >2 <a
|
||||
href="userhtmlse2.html#x4-30002">General overview</a></span>
|
||||
<br />  <span class="subsectionToc" >2.1 <a
|
||||
href="userhtmlsu1.html#x6-40002.1">Basic Nomenclature</a></span>
|
||||
<br />  <span class="subsectionToc" >2.2 <a
|
||||
href="userhtmlsu2.html#x8-50002.2">Library contents</a></span>
|
||||
<br />  <span class="subsectionToc" >2.3 <a
|
||||
href="userhtmlsu3.html#x9-60002.3">Application structure</a></span>
|
||||
<br />   <span class="subsubsectionToc" >2.3.1 <a
|
||||
href="userhtmlsu3.html#x9-70002.3.1" id="QQ2-9-9">User-defined index mappings</a></span>
|
||||
<br />  <span class="subsectionToc" >2.4 <a
|
||||
href="userhtmlsu4.html#x11-80002.4">Programming model</a></span>
|
||||
<br /> <span class="sectionToc" >3 <a
|
||||
href="userhtmlse3.html#x12-90003">Data Structures and Classes</a></span>
|
||||
<br />  <span class="subsectionToc" >3.1 <a
|
||||
href="userhtmlsu5.html#x13-100003.1">Descriptor data structure</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.1 <a
|
||||
href="userhtmlsu5.html#x13-110003.1.1" id="QQ2-13-14">Descriptor Methods</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.2 <a
|
||||
href="userhtmlsu5.html#x13-120003.1.2" id="QQ2-13-15">get_local_rows — Get number of local rows</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.3 <a
|
||||
href="userhtmlsu5.html#x13-130003.1.3" id="QQ2-13-16">get_local_cols — Get number of local cols</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.4 <a
|
||||
href="userhtmlsu5.html#x13-140003.1.4" id="QQ2-13-17">get_global_rows — Get number of global rows</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.5 <a
|
||||
href="userhtmlsu5.html#x13-150003.1.5" id="QQ2-13-18">get_global_cols — Get number of global cols</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.6 <a
|
||||
href="userhtmlsu5.html#x13-160003.1.6" id="QQ2-13-19">get_global_indices — Get vector of global indices</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.7 <a
|
||||
href="userhtmlsu5.html#x13-170003.1.7" id="QQ2-13-20">get_context — Get communication context</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.8 <a
|
||||
href="userhtmlsu5.html#x13-180003.1.8" id="QQ2-13-21">Clone — clone current object</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.9 <a
|
||||
href="userhtmlsu5.html#x13-190003.1.9" id="QQ2-13-22">CNV — convert internal storage format</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.10 <a
|
||||
href="userhtmlsu5.html#x13-200003.1.10" id="QQ2-13-23">psb_cd_get_large_threshold — Get threshold for index mapping switch</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.11 <a
|
||||
href="userhtmlsu5.html#x13-210003.1.11" id="QQ2-13-24">psb_cd_set_large_threshold — Set threshold for index mapping switch</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.12 <a
|
||||
href="userhtmlsu5.html#x13-220003.1.12" id="QQ2-13-25">Named Constants</a></span>
|
||||
<br />  <span class="subsectionToc" >3.2 <a
|
||||
href="userhtmlsu6.html#x14-230003.2">Sparse Matrix class</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.1 <a
|
||||
href="userhtmlsu6.html#x14-240003.2.1" id="QQ2-14-28">Sparse Matrix Methods</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.2 <a
|
||||
href="userhtmlsu6.html#x14-250003.2.2" id="QQ2-14-29">get_nrows — Get number of rows in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.3 <a
|
||||
href="userhtmlsu6.html#x14-260003.2.3" id="QQ2-14-30">get_ncols — Get number of columns in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.4 <a
|
||||
href="userhtmlsu6.html#x14-270003.2.4" id="QQ2-14-31">get_nnzeros — Get number of nonzero elements in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.5 <a
|
||||
href="userhtmlsu6.html#x14-280003.2.5" id="QQ2-14-32">get_size — Get maximum number of nonzero elements in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.6 <a
|
||||
href="userhtmlsu6.html#x14-290003.2.6" id="QQ2-14-33">sizeof — Get memory occupation in bytes of a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.7 <a
|
||||
href="userhtmlsu6.html#x14-300003.2.7" id="QQ2-14-34">get_fmt — Short description of the dynamic type</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.8 <a
|
||||
href="userhtmlsu6.html#x14-310003.2.8" id="QQ2-14-35">is_bld, is_upd, is_asb — Status check</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.9 <a
|
||||
href="userhtmlsu6.html#x14-320003.2.9" id="QQ2-14-36">is_lower, is_upper, is_triangle, is_unit — Format check</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.10 <a
|
||||
href="userhtmlsu6.html#x14-330003.2.10" id="QQ2-14-37">cscnv — Convert to a different storage format</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.11 <a
|
||||
href="userhtmlsu6.html#x14-340003.2.11" id="QQ2-14-38">csclip — Reduce to a submatrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.12 <a
|
||||
href="userhtmlsu6.html#x14-350003.2.12" id="QQ2-14-39">clean_zeros — Eliminate zero coefficients</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.13 <a
|
||||
href="userhtmlsu6.html#x14-360003.2.13" id="QQ2-14-40">get_diag — Get main diagonal</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.14 <a
|
||||
href="userhtmlsu6.html#x14-370003.2.14" id="QQ2-14-41">clip_diag — Cut out main diagonal</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.15 <a
|
||||
href="userhtmlsu6.html#x14-380003.2.15" id="QQ2-14-42">tril — Return the lower triangle</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.16 <a
|
||||
href="userhtmlsu6.html#x14-390003.2.16" id="QQ2-14-43">triu — Return the upper triangle</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.17 <a
|
||||
href="userhtmlsu6.html#x14-400003.2.17" id="QQ2-14-44">psb_set_mat_default — Set default storage format</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.18 <a
|
||||
href="userhtmlsu6.html#x14-410003.2.18" id="QQ2-14-45">clone — Clone current object</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.19 <a
|
||||
href="userhtmlsu6.html#x14-420003.2.19" id="QQ2-14-46">Named Constants</a></span>
|
||||
<br />  <span class="subsectionToc" >3.3 <a
|
||||
href="userhtmlsu7.html#x15-430003.3">Dense Vector Data Structure</a></span>
|
||||
|
||||
|
||||
|
||||
<br />   <span class="subsubsectionToc" >3.3.1 <a
|
||||
href="userhtmlsu7.html#x15-440003.3.1" id="QQ2-15-49">Vector Methods</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.2 <a
|
||||
href="userhtmlsu7.html#x15-450003.3.2" id="QQ2-15-50">get_nrows — Get number of rows in a dense vector</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.3 <a
|
||||
href="userhtmlsu7.html#x15-460003.3.3" id="QQ2-15-51">sizeof — Get memory occupation in bytes of a dense vector</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.4 <a
|
||||
href="userhtmlsu7.html#x15-470003.3.4" id="QQ2-15-52">set — Set contents of the vector</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.5 <a
|
||||
href="userhtmlsu7.html#x15-480003.3.5" id="QQ2-15-53">get_vect — Get a copy of the vector contents</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.6 <a
|
||||
href="userhtmlsu7.html#x15-490003.3.6" id="QQ2-15-54">clone — Clone current object</a></span>
|
||||
<br />  <span class="subsectionToc" >3.4 <a
|
||||
href="userhtmlsu8.html#x16-500003.4">Preconditioner data structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.5 <a
|
||||
href="userhtmlsu9.html#x17-510003.5">Heap data structure</a></span>
|
||||
<br /> <span class="sectionToc" >4 <a
|
||||
href="userhtmlse4.html#x18-520004">Computational routines</a></span>
|
||||
<br />  <span class="subsectionToc" >4.1 <a
|
||||
href="userhtmlsu10.html#x19-530004.1">psb_geaxpby — General Dense Matrix Sum</a></span>
|
||||
<br />  <span class="subsectionToc" >4.2 <a
|
||||
href="userhtmlsu11.html#x20-540004.2">psb_gedot — Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.3 <a
|
||||
href="userhtmlsu12.html#x21-550004.3">psb_gedots — Generalized Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.4 <a
|
||||
href="userhtmlsu13.html#x22-560004.4">psb_normi — Infinity-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.5 <a
|
||||
href="userhtmlsu14.html#x23-570004.5">psb_geamaxs — Generalized Infinity Norm</a></span>
|
||||
<br />  <span class="subsectionToc" >4.6 <a
|
||||
href="userhtmlsu15.html#x24-580004.6">psb_norm1 — 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.7 <a
|
||||
href="userhtmlsu16.html#x25-590004.7">psb_geasums — Generalized 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.8 <a
|
||||
href="userhtmlsu17.html#x26-600004.8">psb_norm2 — 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.9 <a
|
||||
href="userhtmlsu18.html#x27-610004.9">psb_genrm2s — Generalized 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.10 <a
|
||||
href="userhtmlsu19.html#x28-620004.10">psb_norm1 — 1-Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.11 <a
|
||||
href="userhtmlsu20.html#x29-630004.11">psb_normi — Infinity Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.12 <a
|
||||
href="userhtmlsu21.html#x30-640004.12">psb_spmm — Sparse Matrix by Dense Matrix Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.13 <a
|
||||
href="userhtmlsu22.html#x31-650004.13">psb_spsm — Triangular System Solve</a></span>
|
||||
<br /> <span class="sectionToc" >5 <a
|
||||
href="userhtmlse5.html#x32-660005">Communication routines</a></span>
|
||||
<br />  <span class="subsectionToc" >5.1 <a
|
||||
href="userhtmlsu23.html#x33-670005.1">psb_halo — Halo Data Communication</a></span>
|
||||
<br />  <span class="subsectionToc" >5.2 <a
|
||||
href="userhtmlsu24.html#x34-680005.2">psb_ovrl — Overlap Update</a></span>
|
||||
<br />  <span class="subsectionToc" >5.3 <a
|
||||
href="userhtmlsu25.html#x35-690005.3">psb_gather — Gather Global Dense Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >5.4 <a
|
||||
href="userhtmlsu26.html#x36-700005.4">psb_scatter — Scatter Global Dense Matrix</a></span>
|
||||
<br /> <span class="sectionToc" >6 <a
|
||||
href="userhtmlse6.html#x37-710006">Data management routines</a></span>
|
||||
<br />  <span class="subsectionToc" >6.1 <a
|
||||
href="userhtmlsu27.html#x38-720006.1">psb_cdall — Allocates a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.2 <a
|
||||
href="userhtmlsu28.html#x39-730006.2">psb_cdins — Communication descriptor insert routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.3 <a
|
||||
href="userhtmlsu29.html#x40-740006.3">psb_cdasb — Communication descriptor assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.4 <a
|
||||
href="userhtmlsu30.html#x41-750006.4">psb_cdcpy — Copies a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.5 <a
|
||||
href="userhtmlsu31.html#x42-760006.5">psb_cdfree — Frees a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.6 <a
|
||||
href="userhtmlsu32.html#x43-770006.6">psb_cdbldext — Build an extended communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.7 <a
|
||||
href="userhtmlsu33.html#x44-780006.7">psb_spall — Allocates a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.8 <a
|
||||
href="userhtmlsu34.html#x45-790006.8">psb_spins — Insert a set of coefficients into a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.9 <a
|
||||
href="userhtmlsu35.html#x46-800006.9">psb_spasb — Sparse matrix assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.10 <a
|
||||
href="userhtmlsu36.html#x47-810006.10">psb_spfree — Frees a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.11 <a
|
||||
href="userhtmlsu37.html#x48-820006.11">psb_sprn — Reinit sparse matrix structure for psblas routines.</a></span>
|
||||
<br />  <span class="subsectionToc" >6.12 <a
|
||||
href="userhtmlsu38.html#x49-830006.12">psb_geall — Allocates a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.13 <a
|
||||
href="userhtmlsu39.html#x50-840006.13">psb_geins — Dense matrix insertion routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.14 <a
|
||||
href="userhtmlsu40.html#x51-850006.14">psb_geasb — Assembly a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.15 <a
|
||||
href="userhtmlsu41.html#x52-860006.15">psb_gefree — Frees a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.16 <a
|
||||
href="userhtmlsu42.html#x53-870006.16">psb_gelp — Applies a left permutation to a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.17 <a
|
||||
href="userhtmlsu43.html#x54-880006.17">psb_glob_to_loc — Global to local indices convertion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.18 <a
|
||||
href="userhtmlsu44.html#x55-890006.18">psb_loc_to_glob — Local to global indices conversion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.19 <a
|
||||
href="userhtmlsu45.html#x56-900006.19">psb_is_owned — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.20 <a
|
||||
href="userhtmlsu46.html#x57-910006.20">psb_owned_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.21 <a
|
||||
href="userhtmlsu47.html#x58-920006.21">psb_is_local — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.22 <a
|
||||
href="userhtmlsu48.html#x59-930006.22">psb_local_index — </a></span>
|
||||
|
||||
|
||||
|
||||
<br />  <span class="subsectionToc" >6.23 <a
|
||||
href="userhtmlsu49.html#x60-940006.23">psb_get_boundary — Extract list of boundary elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.24 <a
|
||||
href="userhtmlsu50.html#x61-950006.24">psb_get_overlap — Extract list of overlap elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.25 <a
|
||||
href="userhtmlsu51.html#x62-960006.25">psb_sp_getrow — Extract row(s) from a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.26 <a
|
||||
href="userhtmlsu52.html#x63-970006.26">psb_sizeof — Memory occupation</a></span>
|
||||
<br />  <span class="subsectionToc" >6.27 <a
|
||||
href="userhtmlsu53.html#x64-980006.27">Sorting utilities — </a></span>
|
||||
<br /> <span class="sectionToc" >7 <a
|
||||
href="userhtmlse7.html#x65-990007">Parallel environment routines</a></span>
|
||||
<br />  <span class="subsectionToc" >7.1 <a
|
||||
href="userhtmlsu54.html#x66-1000007.1">psb_init — Initializes PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.2 <a
|
||||
href="userhtmlsu55.html#x67-1010007.2">psb_info — Return information about PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.3 <a
|
||||
href="userhtmlsu56.html#x68-1020007.3">psb_exit — Exit from PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.4 <a
|
||||
href="userhtmlsu57.html#x69-1030007.4">psb_get_mpicomm — Get the MPI communicator</a></span>
|
||||
<br />  <span class="subsectionToc" >7.5 <a
|
||||
href="userhtmlsu58.html#x70-1040007.5">psb_get_rank — Get the MPI rank</a></span>
|
||||
<br />  <span class="subsectionToc" >7.6 <a
|
||||
href="userhtmlsu59.html#x71-1050007.6">psb_wtime — Wall clock timing</a></span>
|
||||
<br />  <span class="subsectionToc" >7.7 <a
|
||||
href="userhtmlsu60.html#x72-1060007.7">psb_barrier — Sinchronization point parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.8 <a
|
||||
href="userhtmlsu61.html#x73-1070007.8">psb_abort — Abort a computation</a></span>
|
||||
<br />  <span class="subsectionToc" >7.9 <a
|
||||
href="userhtmlsu62.html#x74-1080007.9">psb_bcast — Broadcast data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.10 <a
|
||||
href="userhtmlsu63.html#x75-1090007.10">psb_sum — Global sum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.11 <a
|
||||
href="userhtmlsu64.html#x76-1100007.11">psb_max — Global maximum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.12 <a
|
||||
href="userhtmlsu65.html#x77-1110007.12">psb_min — Global minimum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.13 <a
|
||||
href="userhtmlsu66.html#x78-1120007.13">psb_amx — Global maximum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.14 <a
|
||||
href="userhtmlsu67.html#x79-1130007.14">psb_amn — Global minimum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.15 <a
|
||||
href="userhtmlsu68.html#x80-1140007.15">psb_nrm2 — Global 2-norm reduction</a></span>
|
||||
<br />  <span class="subsectionToc" >7.16 <a
|
||||
href="userhtmlsu69.html#x81-1150007.16">psb_snd — Send data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.17 <a
|
||||
href="userhtmlsu70.html#x82-1160007.17">psb_rcv — Receive data</a></span>
|
||||
<br /> <span class="sectionToc" >8 <a
|
||||
href="userhtmlse8.html#x83-1170008">Error handling</a></span>
|
||||
<br />  <span class="subsectionToc" >8.1 <a
|
||||
href="userhtmlsu71.html#x84-1180008.1">psb_errpush — Pushes an error code onto the error stack</a></span>
|
||||
<br />  <span class="subsectionToc" >8.2 <a
|
||||
href="userhtmlsu72.html#x85-1190008.2">psb_error — Prints the error stack content and aborts execution</a></span>
|
||||
<br />  <span class="subsectionToc" >8.3 <a
|
||||
href="userhtmlsu73.html#x86-1200008.3">psb_set_errverbosity — Sets the verbosity of error messages</a></span>
|
||||
<br />  <span class="subsectionToc" >8.4 <a
|
||||
href="userhtmlsu74.html#x87-1210008.4">psb_set_erraction — Set the type of action to be taken upon error condition</a></span>
|
||||
<br /> <span class="sectionToc" >9 <a
|
||||
href="userhtmlse9.html#x88-1220009">Utilities</a></span>
|
||||
<br />  <span class="subsectionToc" >9.1 <a
|
||||
href="userhtmlsu75.html#x89-1230009.1"> hb_read — Read a sparse matrix from a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.2 <a
|
||||
href="userhtmlsu76.html#x90-1240009.2">hb_write — Write a sparse matrix to a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.3 <a
|
||||
href="userhtmlsu77.html#x91-1250009.3">mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.4 <a
|
||||
href="userhtmlsu78.html#x92-1260009.4">mm_array_read — Read a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.5 <a
|
||||
href="userhtmlsu79.html#x93-1270009.5">mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.6 <a
|
||||
href="userhtmlsu80.html#x94-1280009.6">mm_array_write — Write a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br /> <span class="sectionToc" >10 <a
|
||||
href="userhtmlse10.html#x95-12900010">Preconditioner routines</a></span>
|
||||
<br />  <span class="subsectionToc" >10.1 <a
|
||||
href="userhtmlsu81.html#x96-13000010.1">init — Initialize a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.2 <a
|
||||
href="userhtmlsu82.html#x98-13100010.2">build — Builds a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.3 <a
|
||||
href="userhtmlsu83.html#x99-13200010.3">apply — Preconditioner application routine</a></span>
|
||||
<br />  <span class="subsectionToc" >10.4 <a
|
||||
href="userhtmlsu84.html#x100-13300010.4">descr — Prints a description of current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.5 <a
|
||||
href="userhtmlsu85.html#x101-13400010.5">clone — clone current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.6 <a
|
||||
href="userhtmlsu86.html#x102-13500010.6">free — Free a preconditioner</a></span>
|
||||
<br /> <span class="sectionToc" >11 <a
|
||||
href="userhtmlse11.html#x103-13600011">Iterative Methods</a></span>
|
||||
<br />  <span class="subsectionToc" >11.1 <a
|
||||
href="userhtmlsu87.html#x104-13700011.1">psb_krylov — Krylov Methods Driver Routine</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--l. 107--><p class="indent" >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse1.html" >next</a>] [<a
|
||||
href="userhtmlli1.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlli1.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlli1.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>References</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 2--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse11.html" >prev</a>] [<a
|
||||
href="userhtmlse11.html#tailuserhtmlse11.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu85.html#tailuserhtmlli2.html">tail</a>] [<a
|
||||
href="userhtml.html# " >up</a>] </p></div>
|
||||
<h3 class="likesectionHead"><a
|
||||
id="x106-13800011.1"></a>References</h3>
|
||||
<!--l. 2--><p class="noindent" >
|
||||
<div class="thebibliography">
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[1]<span class="bibsp">   </span></span>
|
||||
<a
|
||||
id="XDesPat:11"></a>D. Barbieri, V. Cardellini, S. Filippone and D. Rouson <span
|
||||
class="cmti-10">Design Patterns</span>
|
||||
<span
|
||||
class="cmti-10">for Scientific Computations on Sparse Matrices</span>, HPSS 2011, Algorithms
|
||||
and Programming Tools for Next-Generation High-Performance Scientific
|
||||
Software, Bordeaux, Sep. 2011
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[2]<span class="bibsp">   </span></span><a
|
||||
id="XPARA04FOREST"></a>G. Bella, S. Filippone, A. De Maio and M. Testa, <span
|
||||
class="cmti-10">A Simulation Model</span>
|
||||
<span
|
||||
class="cmti-10">for Forest Fires</span>, in J. Dongarra, K. Madsen, J. Wasniewski, editors,
|
||||
Proceedings of PARA 04 Workshop on State of the Art in Scientific
|
||||
Computing, pp. 546–553, Lecture Notes in Computer Science, Springer,
|
||||
2005.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[3]<span class="bibsp">   </span></span><a
|
||||
id="X2007d"></a>A. Buttari, D. di Serafino, P. D’Ambra, S. Filippone, 2LEV-D2P4:
|
||||
a package of high-performance preconditioners, Applicable Algebra in
|
||||
Engineering, Communications and Computing, Volume 18, Number 3, May,
|
||||
2007, pp. 223-239
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[4]<span class="bibsp">   </span></span><a
|
||||
id="X2007c"></a>P. D’Ambra, S. Filippone, D. Di Serafino On the Development
|
||||
of PSBLAS-based Parallel Two-level Schwarz Preconditioners Applied
|
||||
Numerical Mathematics, Elsevier Science, Volume 57, Issues 11-12,
|
||||
November-December 2007, Pages 1181-1196.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[5]<span class="bibsp">   </span></span><a
|
||||
id="XBLAS2"></a>Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R., An
|
||||
Extended Set of Fortran Basic Linear Algebra Subprograms, ACM Trans.
|
||||
Math. Softw. vol. 14, 1–17, 1988.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[6]<span class="bibsp">   </span></span><a
|
||||
id="XBLAS3"></a>Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I., A Set of level
|
||||
3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw. vol. 16,
|
||||
1–17, 1990.
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[7]<span class="bibsp">   </span></span><a
|
||||
id="XBLACS"></a>J. J. Dongarra and R. C. Whaley, <span
|
||||
class="cmti-10">A User’s Guide to the BLACS</span>
|
||||
<span
|
||||
class="cmti-10">v.</span><span
|
||||
class="cmti-10"> 1.1</span>, Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
|
||||
Tennessee, March 1995 (updated May 1997).
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[8]<span class="bibsp">   </span></span><a
|
||||
id="Xsblas97"></a>I. Duff, M. Marrone, G. Radicati and C. Vittoli, <span
|
||||
class="cmti-10">Level 3 Basic Linear</span>
|
||||
<span
|
||||
class="cmti-10">Algebra Subprograms for Sparse Matrices: a User Level Interface</span>, ACM
|
||||
Transactions on Mathematical Software, 23(3), pp. 379–401, 1997.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[9]<span class="bibsp">   </span></span><a
|
||||
id="Xsblas02"></a>I. Duff, M. Heroux and R. Pozo, <span
|
||||
class="cmti-10">An Overview of the Sparse Basic</span>
|
||||
<span
|
||||
class="cmti-10">Linear Algebra Subprograms: the New Standard from the BLAS Technical</span>
|
||||
<span
|
||||
class="cmti-10">Forum</span>, ACM Transactions on Mathematical Software, 28(2), pp. 239–267,
|
||||
2002.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[10]<span class="bibsp">   </span></span><a
|
||||
id="XPSBLAS"></a>S. Filippone and M. Colajanni, <span
|
||||
class="cmti-10">PSBLAS: A Library for Parallel</span>
|
||||
<span
|
||||
class="cmti-10">Linear Algebra Computation on Sparse Matrices</span>, ACM Transactions on
|
||||
Mathematical Software, 26(4), pp. 527–550, 2000.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[11]<span class="bibsp">   </span></span><a
|
||||
id="XSparse03"></a>S. Filippone and A. Buttari, <span
|
||||
class="cmti-10">Object-Oriented Techniques for Sparse</span>
|
||||
<span
|
||||
class="cmti-10">Matrix Computations in Fortran 2003</span>, ACM Transactions on Mathematical
|
||||
Software, 38(4), 2012.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[12]<span class="bibsp">   </span></span><a
|
||||
id="XKIVA3PSBLAS"></a>S. Filippone, P. D’Ambra, M. Colajanni, <span
|
||||
class="cmti-10">Using a Parallel Library</span>
|
||||
<span
|
||||
class="cmti-10">of Sparse Linear Algebra in a Fluid Dynamics Applications Code on</span>
|
||||
<span
|
||||
class="cmti-10">Linux Clusters</span>, in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
|
||||
Parallel Computing - Advances & Current Issues, pp. 441–448, Imperial
|
||||
College Press, 2002.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[13]<span class="bibsp">   </span></span><a
|
||||
id="XDesignPatterns"></a> Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. <span
|
||||
class="cmti-10">Design</span>
|
||||
<span
|
||||
class="cmti-10">Patterns: Elements of Reusable Object-Oriented Software</span>. Addison-Wesley.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[14]<span class="bibsp">   </span></span><a
|
||||
id="XMETIS"></a>Karypis, G. and Kumar, V., <span
|
||||
class="cmti-10">METIS: Unstructured Graph Partitioning</span>
|
||||
<span
|
||||
class="cmti-10">and Sparse Matrix Ordering System</span>. Minneapolis, MN 55455: University
|
||||
of Minnesota, Department of Computer Science, 1995. Internet Address:
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">http://www.cs.umn.edu/~karypis</span></span></span>.
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[15]<span class="bibsp">   </span></span><a
|
||||
id="XBLAS1"></a>Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., Basic Linear
|
||||
Algebra Subprograms for Fortran usage, ACM Trans. Math. Softw. vol. 5,
|
||||
38–329, 1979.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[16]<span class="bibsp">   </span></span><a
|
||||
id="Xmachiels"></a>Machiels, L. and Deville, M. <span
|
||||
class="cmti-10">Fortran 90: An entry to object-oriented</span>
|
||||
<span
|
||||
class="cmti-10">programming for the solution of partial differential equations. </span>ACM Trans.
|
||||
Math. Softw. vol. 23, 32–49.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[17]<span class="bibsp">   </span></span><a
|
||||
id="Xmetcalf"></a>Metcalf, M., Reid, J. and Cohen, M. <span
|
||||
class="cmti-10">Fortran 95/2003 explained. </span>Oxford
|
||||
University Press, 2004.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[18]<span class="bibsp">   </span></span><a
|
||||
id="XRouXiaXu:11"></a>Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
|
||||
Object-Oriented Way. Cambridge University Press (2011)
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
[19]<span class="bibsp">   </span></span><a
|
||||
id="XMPI1"></a>M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
|
||||
<span
|
||||
class="cmti-10">MPI: The Complete Reference. Volume 1 - The MPI Core</span>, second edition,
|
||||
MIT Press, 1998.</p></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 127--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse11.html" >prev</a>] [<a
|
||||
href="userhtmlse11.html#tailuserhtmlse11.html" >prev-tail</a>] [<a
|
||||
href="userhtmlli2.html" >front</a>] [<a
|
||||
href="userhtml.html# " >up</a>] </p></div>
|
||||
<!--l. 127--><p class="indent" > <a
|
||||
id="tailuserhtmlli2.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Introduction</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse2.html" >next</a>] [<a
|
||||
href="userhtmlli1.html" >prev</a>] [<a
|
||||
href="userhtmlli1.html#tailuserhtmlli1.html" >prev-tail</a>] [<a
|
||||
href="#tailuserhtmlse1.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlse1.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">1 </span> <a
|
||||
id="x3-20001"></a>Introduction</h3>
|
||||
<!--l. 3--><p class="noindent" >The PSBLAS library, developed with the aim to facilitate the parallelization of
|
||||
computationally intensive scientific applications, is designed to address parallel
|
||||
implementation of iterative solvers for sparse linear systems through the distributed
|
||||
memory paradigm. It includes routines for multiplying sparse matrices by dense
|
||||
matrices, solving block diagonal systems with triangular diagonal entries,
|
||||
preprocessing sparse matrices, and contains additional routines for dense matrix
|
||||
operations. The current implementation of PSBLAS addresses a distributed memory
|
||||
execution model operating with message passing.
|
||||
<!--l. 14--><p class="indent" > The PSBLAS library version 3 is implemented in the Fortran 2003 <span class="cite">[<a
|
||||
href="userhtmlli2.html#Xmetcalf">17</a>]</span>
|
||||
programming language, with reuse and/or adaptation of existing Fortran 77 and
|
||||
Fortran 95 software, plus a handful of C routines.
|
||||
<!--l. 19--><p class="indent" > The use of Fortran 2003 offers a number of advantages over Fortran 95, 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 <span class="cite">[<a
|
||||
href="userhtmlli2.html#XSparse03">11</a>]</span>; other works discussing advanced programming in Fortran 2003
|
||||
include <span class="cite">[<a
|
||||
href="userhtmlli2.html#XDesPat:11">1</a>, <a
|
||||
href="userhtmlli2.html#XRouXiaXu:11">18</a>]</span>; sufficient support for Fortran 2003 is now available from many
|
||||
compilers, including the GNU Fortran compiler from the Free Software Foundation
|
||||
(as of version 4.8).
|
||||
<!--l. 30--><p class="indent" > Previous approaches have been based on mixing Fortran 95, with its support for
|
||||
object-based design, with other languages; these have been advocated by a number of
|
||||
authors, e.g. <span class="cite">[<a
|
||||
href="userhtmlli2.html#Xmachiels">16</a>]</span>. Moreover, the Fortran 95 facilities for dynamic memory
|
||||
management and interface overloading greatly enhance the usability of the PSBLAS
|
||||
subroutines. In this way, the library can take care of runtime memory requirements
|
||||
that are quite difficult or even impossible to predict at implementation or
|
||||
compilation time.
|
||||
<!--l. 40--><p class="indent" > The presentation of the PSBLAS library follows the general structure of the
|
||||
proposal for serial Sparse BLAS <span class="cite">[<a
|
||||
href="userhtmlli2.html#Xsblas97">8</a>, <a
|
||||
href="userhtmlli2.html#Xsblas02">9</a>]</span>, which in its turn is based on the proposal for
|
||||
BLAS on dense matrices <span class="cite">[<a
|
||||
href="userhtmlli2.html#XBLAS1">15</a>, <a
|
||||
href="userhtmlli2.html#XBLAS2">5</a>, <a
|
||||
href="userhtmlli2.html#XBLAS3">6</a>]</span>.
|
||||
<!--l. 45--><p class="indent" > The applicability of sparse iterative solvers to many different areas causes some
|
||||
terminology problems because the same concept may be denoted through different
|
||||
names depending on the application area. The PSBLAS features presented in this
|
||||
document will be discussed referring to a finite difference discretization of a Partial
|
||||
Differential Equation (PDE). However, the scope of the library is wider than that: for
|
||||
example, it can be applied to finite element discretizations of PDEs, and even to
|
||||
different classes of problems such as nonlinear optimization, for example in optimal
|
||||
control problems.
|
||||
<!--l. 55--><p class="indent" > The design of a solver for sparse linear systems is driven by many conflicting
|
||||
objectives, such as limiting occupation of storage resources, exploiting regularities in
|
||||
the input data, exploiting hardware characteristics of the parallel platform. To
|
||||
achieve an optimal communication to computation ratio on distributed memory
|
||||
machines it is essential to keep the <span
|
||||
class="cmti-10">data locality </span>as high as possible; this can be
|
||||
done through an appropriate data allocation strategy. The choice of the
|
||||
|
||||
|
||||
|
||||
preconditioner is another very important factor that affects efficiency of the
|
||||
implemented application. Optimal data distribution requirements for a given
|
||||
preconditioner may conflict with distribution requirements of the rest of the solver.
|
||||
Finding the optimal trade-off may be very difficult because it is application
|
||||
dependent. Possible solutions to these problems and other important inputs to the
|
||||
development of the PSBLAS software package have come from an established
|
||||
experience in applying the PSBLAS solvers to computational fluid dynamics
|
||||
applications.
|
||||
|
||||
|
||||
|
||||
<!--l. 72--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse2.html" >next</a>] [<a
|
||||
href="userhtmlli1.html" >prev</a>] [<a
|
||||
href="userhtmlli1.html#tailuserhtmlli1.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse1.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlse1.html" >up</a>] </p></div>
|
||||
<!--l. 72--><p class="indent" > <a
|
||||
id="tailuserhtmlse1.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Preconditioner routines</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse9.html" >prev</a>] [<a
|
||||
href="userhtmlse9.html#tailuserhtmlse9.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu78.html#tailuserhtmlse10.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu83.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">10 </span> <a
|
||||
id="x95-12900010"></a>Preconditioner routines</h3>
|
||||
<!--l. 6--><p class="noindent" >The base PSBLAS library contains the implementation of two simple preconditioning
|
||||
techniques:
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">Diagonal Scaling
|
||||
</li>
|
||||
<li class="itemize">Block Jacobi with ILU(0) factorization</li></ul>
|
||||
<!--l. 14--><p class="noindent" >The supporting data type and subroutine interfaces are defined in the module
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_prec_mod</span></span></span>. The old interfaces <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_precinit</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_precbld</span></span></span> are still
|
||||
supported for backward compatibility
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >10.1 <a
|
||||
href="userhtmlsu81.html#x96-13000010.1">init — Initialize a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.2 <a
|
||||
href="userhtmlsu82.html#x98-13100010.2">build — Builds a preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.3 <a
|
||||
href="userhtmlsu83.html#x99-13200010.3">apply — Preconditioner application routine</a></span>
|
||||
<br />  <span class="subsectionToc" >10.4 <a
|
||||
href="userhtmlsu84.html#x100-13300010.4">descr — Prints a description of current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.5 <a
|
||||
href="userhtmlsu85.html#x101-13400010.5">clone — clone current preconditioner</a></span>
|
||||
<br />  <span class="subsectionToc" >10.6 <a
|
||||
href="userhtmlsu86.html#x102-13500010.6">free — Free a preconditioner</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse9.html" >prev</a>] [<a
|
||||
href="userhtmlse9.html#tailuserhtmlse9.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse10.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu83.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse10.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,41 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Iterative Methods</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse10.html" >prev</a>] [<a
|
||||
href="userhtmlse10.html#tailuserhtmlse10.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu83.html#tailuserhtmlse11.html">tail</a>] [<a
|
||||
href="userhtml.html# " >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">11 </span> <a
|
||||
id="x103-13600011"></a>Iterative Methods</h3>
|
||||
<!--l. 4--><p class="noindent" >In this chapter we provide routines for preconditioners and iterative methods.
|
||||
The interfaces for Krylov subspace methods are available in the module
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_krylov_mod</span></span></span>.
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >11.1 <a
|
||||
href="userhtmlsu87.html#x104-13700011.1">psb_krylov — Krylov Methods Driver Routine</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--l. 2--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse10.html" >prev</a>] [<a
|
||||
href="userhtmlse10.html#tailuserhtmlse10.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse11.html" >front</a>] [<a
|
||||
href="userhtml.html# " >up</a>] </p></div>
|
||||
<!--l. 2--><p class="indent" > <a
|
||||
id="tailuserhtmlse11.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,126 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>General overview</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 72--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu7.html" >next</a>] [<a
|
||||
href="userhtmlse1.html" >prev</a>] [<a
|
||||
href="userhtmlse1.html#tailuserhtmlse1.html" >prev-tail</a>] [<a
|
||||
href="#tailuserhtmlse2.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlse2.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">2 </span> <a
|
||||
id="x4-30002"></a>General overview</h3>
|
||||
<!--l. 74--><p class="noindent" >The PSBLAS library is designed to handle the implementation of iterative solvers for
|
||||
sparse linear systems on distributed memory parallel computers. The system
|
||||
coefficient matrix <span
|
||||
class="cmmi-10">A </span>must be square; it may be real or complex, nonsymmetric, and
|
||||
its sparsity pattern needs not to be symmetric. The serial computation parts are
|
||||
based on the serial sparse BLAS, so that any extension made to the data structures
|
||||
of the serial kernels is available to the parallel version. The overall design and
|
||||
parallelization strategy have been influenced by the structure of the ScaLAPACK
|
||||
parallel library. The layered structure of the PSBLAS library is shown in figure <a
|
||||
href="#x4-30011">1<!--tex4ht:ref: fig:psblas --></a>;
|
||||
lower layers of the library indicate an encapsulation relationship with upper
|
||||
layers. The ongoing discussion focuses on the Fortran 2003 layer immediately
|
||||
below the application layer. The serial parts of the computation on each
|
||||
process are executed through 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 <span class="cite">[<a
|
||||
href="userhtmlli2.html#XBLACS">7</a>]</span>. Usually there is no need to deal
|
||||
directly with MPI; however, in some cases, MPI routines are used directly
|
||||
to improve efficiency. For further details on our communication layer see
|
||||
Sec. <a
|
||||
href="userhtmlse7.html#x65-990007">7<!--tex4ht:ref: sec:parenv --></a>.
|
||||
<!--l. 101--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x4-30011"></a>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 102--><p class="noindent" >
|
||||
<!--l. 104--><p class="noindent" ><img
|
||||
src="userhtml0x.png" alt="PIC" class="graphics" width="128" height="140" ><!--tex4ht:graphics
|
||||
name="userhtml0x.png" src="figures/psblas.eps"
|
||||
--></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 1: </span><span
|
||||
class="content">PSBLAS library components hierarchy.</span></div><!--tex4ht:label?: x4-30011 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 110--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 113--><p class="indent" > The type of linear system matrices that we address typically arise in
|
||||
the numerical solution of PDEs; in such a context, it is necessary to pay
|
||||
special attention to the structure of the problem from which the application
|
||||
originates. The nonzero pattern of a matrix arising from the discretization of a
|
||||
PDE is influenced by various factors, such as the shape of the domain, the
|
||||
discretization strategy, and the equation/unknown ordering. The matrix itself can be
|
||||
interpreted as the adjacency matrix of the graph associated with the discretization
|
||||
mesh.
|
||||
<!--l. 124--><p class="indent" > The distribution of the coefficient matrix for the linear system is based on the
|
||||
“owner computes” rule: the variable associated to each mesh point is assigned to a
|
||||
process that will own the corresponding row in the coefficient matrix and will
|
||||
carry out all related computations. This allocation strategy is equivalent to a
|
||||
partition of the discretization mesh into <span
|
||||
class="cmti-10">sub-domains</span>. Our library supports any
|
||||
distribution that keeps together the coefficients of each matrix row; there are no
|
||||
other constraints on the variable assignment. This choice is consistent with
|
||||
simple data distributions such as <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">CYCLIC(N)</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">BLOCK</span></span></span>, as well as completely
|
||||
arbitrary assignments of equation indices to processes. In particular it is
|
||||
consistent with the usage of graph partitioning tools commonly available in
|
||||
the literature, e.g. METIS <span class="cite">[<a
|
||||
href="userhtmlli2.html#XMETIS">14</a>]</span>. Dense vectors conform to sparse matrices,
|
||||
that is, the entries of a vector follow the same distribution of the matrix
|
||||
rows.
|
||||
<!--l. 146--><p class="indent" > We assume that the sparse matrix is built in parallel, where each process generates
|
||||
its own portion. We never require that the entire matrix be available on a single
|
||||
node. However, it is possible to hold the entire matrix in one process and distribute it
|
||||
explicitly<span class="footnote-mark"><a
|
||||
href="userhtml5.html#fn1x0"><sup class="textsuperscript">1</sup></a></span><a
|
||||
id="x4-3002f1"></a> ,
|
||||
even though the resulting memory bottleneck would make this option unattractive in
|
||||
most cases.
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >2.1 <a
|
||||
href="userhtmlsu1.html#x6-40002.1">Basic Nomenclature</a></span>
|
||||
<br />  <span class="subsectionToc" >2.2 <a
|
||||
href="userhtmlsu2.html#x8-50002.2">Library contents</a></span>
|
||||
<br />  <span class="subsectionToc" >2.3 <a
|
||||
href="userhtmlsu3.html#x9-60002.3">Application structure</a></span>
|
||||
<br />   <span class="subsubsectionToc" >2.3.1 <a
|
||||
href="userhtmlsu3.html#x9-70002.3.1">User-defined index mappings</a></span>
|
||||
<br />  <span class="subsectionToc" >2.4 <a
|
||||
href="userhtmlsu4.html#x11-80002.4">Programming model</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu7.html" >next</a>] [<a
|
||||
href="userhtmlse1.html" >prev</a>] [<a
|
||||
href="userhtmlse1.html#tailuserhtmlse1.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse2.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlse2.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse2.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,184 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Data Structures and Classes</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu12.html" >next</a>] [<a
|
||||
href="userhtmlse2.html" >prev</a>] [<a
|
||||
href="userhtmlse2.html#tailuserhtmlse2.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu3.html#tailuserhtmlse3.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu7.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">3 </span> <a
|
||||
id="x12-90003"></a>Data Structures and Classes</h3>
|
||||
<!--l. 5--><p class="noindent" >In this chapter we illustrate the data structures used for definition of routines
|
||||
interfaces. They include data structures for sparse matrices, communication
|
||||
descriptors and preconditioners.
|
||||
<!--l. 11--><p class="indent" > All the data types and the basic subroutine interfaces related to descriptors and
|
||||
sparse matrices are defined in the module <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_base_mod</span></span></span>; this will have to be
|
||||
included by every user subroutine that makes use of the library. The preconditioners
|
||||
are defined in the module <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_prec_mod</span></span></span>
|
||||
<!--l. 17--><p class="indent" > Integer, real and complex data types are parametrized with a kind type defined in
|
||||
the library as follows:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_spk</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for short precision real and complex data;
|
||||
corresponds to a <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">REAL</span></span></span> declaration and is normally 4 bytes;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_dpk</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for long precision real and complex data;
|
||||
corresponds to a <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">DOUBLE</span><span
|
||||
class="cmtt-10"> PRECISION</span></span></span> declaration and is normally 8 bytes;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_ipk</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for integer data; with default build options this is
|
||||
a 4 bytes integer, but there is (highly) experimental support for 8-bytes
|
||||
integers;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_mpik</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for 4-bytes integer data, as is always used by MPI;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">psb</span><span
|
||||
class="cmbx-10">_long</span><span
|
||||
class="cmbx-10">_int</span><span
|
||||
class="cmbx-10">_k</span><span
|
||||
class="cmbx-10">_</span> </dt><dd
|
||||
class="description">Kind parameter for long (8 bytes) integers, which are always
|
||||
used by the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">sizeof</span></span></span> methods.</dd></dl>
|
||||
<!--l. 34--><p class="noindent" >Together with the classes attributes we also discuss their methods. Most methods
|
||||
detailed here only act on the local variable, i.e. their action is purely local and
|
||||
asynchronous unless otherwise stated. The list of methods here is not completely
|
||||
exhaustive; many methods, especially those that alter the contents of the various
|
||||
objects, are usually not needed by the end-user, and therefore are described in the
|
||||
developer’s documentation.
|
||||
<!--l. 44--><p class="noindent" >
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >3.1 <a
|
||||
href="userhtmlsu5.html#x13-100003.1">Descriptor data structure</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.1 <a
|
||||
href="userhtmlsu5.html#x13-110003.1.1">Descriptor Methods</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.2 <a
|
||||
href="userhtmlsu5.html#x13-120003.1.2">get_local_rows — Get number of local rows</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.3 <a
|
||||
href="userhtmlsu5.html#x13-130003.1.3">get_local_cols — Get number of local cols</a></span>
|
||||
|
||||
|
||||
|
||||
<br />   <span class="subsubsectionToc" >3.1.4 <a
|
||||
href="userhtmlsu5.html#x13-140003.1.4">get_global_rows — Get number of global rows</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.5 <a
|
||||
href="userhtmlsu5.html#x13-150003.1.5">get_global_cols — Get number of global cols</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.6 <a
|
||||
href="userhtmlsu5.html#x13-160003.1.6">get_global_indices — Get vector of global indices</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.7 <a
|
||||
href="userhtmlsu5.html#x13-170003.1.7">get_context — Get communication context</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.8 <a
|
||||
href="userhtmlsu5.html#x13-180003.1.8">Clone — clone current object</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.9 <a
|
||||
href="userhtmlsu5.html#x13-190003.1.9">CNV — convert internal storage format</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.10 <a
|
||||
href="userhtmlsu5.html#x13-200003.1.10">psb_cd_get_large_threshold — Get threshold for index mapping switch</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.11 <a
|
||||
href="userhtmlsu5.html#x13-210003.1.11">psb_cd_set_large_threshold — Set threshold for index mapping switch</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.1.12 <a
|
||||
href="userhtmlsu5.html#x13-220003.1.12">Named Constants</a></span>
|
||||
<br />  <span class="subsectionToc" >3.2 <a
|
||||
href="userhtmlsu6.html#x14-230003.2">Sparse Matrix class</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.1 <a
|
||||
href="userhtmlsu6.html#x14-240003.2.1">Sparse Matrix Methods</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.2 <a
|
||||
href="userhtmlsu6.html#x14-250003.2.2">get_nrows — Get number of rows in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.3 <a
|
||||
href="userhtmlsu6.html#x14-260003.2.3">get_ncols — Get number of columns in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.4 <a
|
||||
href="userhtmlsu6.html#x14-270003.2.4">get_nnzeros — Get number of nonzero elements in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.5 <a
|
||||
href="userhtmlsu6.html#x14-280003.2.5">get_size — Get maximum number of nonzero elements in a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.6 <a
|
||||
href="userhtmlsu6.html#x14-290003.2.6">sizeof — Get memory occupation in bytes of a sparse matrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.7 <a
|
||||
href="userhtmlsu6.html#x14-300003.2.7">get_fmt — Short description of the dynamic type</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.8 <a
|
||||
href="userhtmlsu6.html#x14-310003.2.8">is_bld, is_upd, is_asb — Status check</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.9 <a
|
||||
href="userhtmlsu6.html#x14-320003.2.9">is_lower, is_upper, is_triangle, is_unit — Format check</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.10 <a
|
||||
href="userhtmlsu6.html#x14-330003.2.10">cscnv — Convert to a different storage format</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.11 <a
|
||||
href="userhtmlsu6.html#x14-340003.2.11">csclip — Reduce to a submatrix</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.12 <a
|
||||
href="userhtmlsu6.html#x14-350003.2.12">clean_zeros — Eliminate zero coefficients</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.13 <a
|
||||
href="userhtmlsu6.html#x14-360003.2.13">get_diag — Get main diagonal</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.14 <a
|
||||
href="userhtmlsu6.html#x14-370003.2.14">clip_diag — Cut out main diagonal</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.15 <a
|
||||
href="userhtmlsu6.html#x14-380003.2.15">tril — Return the lower triangle</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.16 <a
|
||||
href="userhtmlsu6.html#x14-390003.2.16">triu — Return the upper triangle</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.17 <a
|
||||
href="userhtmlsu6.html#x14-400003.2.17">psb_set_mat_default — Set default storage format</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.18 <a
|
||||
href="userhtmlsu6.html#x14-410003.2.18">clone — Clone current object</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.2.19 <a
|
||||
href="userhtmlsu6.html#x14-420003.2.19">Named Constants</a></span>
|
||||
<br />  <span class="subsectionToc" >3.3 <a
|
||||
href="userhtmlsu7.html#x15-430003.3">Dense Vector Data Structure</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.1 <a
|
||||
href="userhtmlsu7.html#x15-440003.3.1">Vector Methods</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.2 <a
|
||||
href="userhtmlsu7.html#x15-450003.3.2">get_nrows — Get number of rows in a dense vector</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.3 <a
|
||||
href="userhtmlsu7.html#x15-460003.3.3">sizeof — Get memory occupation in bytes of a dense vector</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.4 <a
|
||||
href="userhtmlsu7.html#x15-470003.3.4">set — Set contents of the vector</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.5 <a
|
||||
href="userhtmlsu7.html#x15-480003.3.5">get_vect — Get a copy of the vector contents</a></span>
|
||||
<br />   <span class="subsubsectionToc" >3.3.6 <a
|
||||
href="userhtmlsu7.html#x15-490003.3.6">clone — Clone current object</a></span>
|
||||
<br />  <span class="subsectionToc" >3.4 <a
|
||||
href="userhtmlsu8.html#x16-500003.4">Preconditioner data structure</a></span>
|
||||
<br />  <span class="subsectionToc" >3.5 <a
|
||||
href="userhtmlsu9.html#x17-510003.5">Heap data structure</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu12.html" >next</a>] [<a
|
||||
href="userhtmlse2.html" >prev</a>] [<a
|
||||
href="userhtmlse2.html#tailuserhtmlse2.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse3.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu7.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse3.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,75 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Computational routines</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu25.html" >next</a>] [<a
|
||||
href="userhtmlse3.html" >prev</a>] [<a
|
||||
href="userhtmlse3.html#tailuserhtmlse3.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu7.html#tailuserhtmlse4.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu12.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">4 </span> <a
|
||||
id="x18-520004"></a>Computational routines</h3>
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >4.1 <a
|
||||
href="userhtmlsu10.html#x19-530004.1">psb_geaxpby — General Dense Matrix Sum</a></span>
|
||||
<br />  <span class="subsectionToc" >4.2 <a
|
||||
href="userhtmlsu11.html#x20-540004.2">psb_gedot — Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.3 <a
|
||||
href="userhtmlsu12.html#x21-550004.3">psb_gedots — Generalized Dot Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.4 <a
|
||||
href="userhtmlsu13.html#x22-560004.4">psb_normi — Infinity-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.5 <a
|
||||
href="userhtmlsu14.html#x23-570004.5">psb_geamaxs — Generalized Infinity Norm</a></span>
|
||||
<br />  <span class="subsectionToc" >4.6 <a
|
||||
href="userhtmlsu15.html#x24-580004.6">psb_norm1 — 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.7 <a
|
||||
href="userhtmlsu16.html#x25-590004.7">psb_geasums — Generalized 1-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.8 <a
|
||||
href="userhtmlsu17.html#x26-600004.8">psb_norm2 — 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.9 <a
|
||||
href="userhtmlsu18.html#x27-610004.9">psb_genrm2s — Generalized 2-Norm of Vector</a></span>
|
||||
<br />  <span class="subsectionToc" >4.10 <a
|
||||
href="userhtmlsu19.html#x28-620004.10">psb_norm1 — 1-Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.11 <a
|
||||
href="userhtmlsu20.html#x29-630004.11">psb_normi — Infinity Norm of Sparse Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >4.12 <a
|
||||
href="userhtmlsu21.html#x30-640004.12">psb_spmm — Sparse Matrix by Dense Matrix Product</a></span>
|
||||
<br />  <span class="subsectionToc" >4.13 <a
|
||||
href="userhtmlsu22.html#x31-650004.13">psb_spsm — Triangular System Solve</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu25.html" >next</a>] [<a
|
||||
href="userhtmlse3.html" >prev</a>] [<a
|
||||
href="userhtmlse3.html#tailuserhtmlse3.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse4.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu12.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse4.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,52 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Communication routines</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu29.html" >next</a>] [<a
|
||||
href="userhtmlse4.html" >prev</a>] [<a
|
||||
href="userhtmlse4.html#tailuserhtmlse4.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu20.html#tailuserhtmlse5.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu25.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">5 </span> <a
|
||||
id="x32-660005"></a>Communication routines</h3>
|
||||
<!--l. 7--><p class="noindent" >The routines in this chapter implement various global communication operators on
|
||||
vectors associated with a discretization mesh. For auxiliary communication routines
|
||||
not tied to a discretization space see <a
|
||||
href="userhtmlse6.html#x37-710006">6<!--tex4ht:ref: sec:toolsrout --></a>.
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >5.1 <a
|
||||
href="userhtmlsu23.html#x33-670005.1">psb_halo — Halo Data Communication</a></span>
|
||||
<br />  <span class="subsectionToc" >5.2 <a
|
||||
href="userhtmlsu24.html#x34-680005.2">psb_ovrl — Overlap Update</a></span>
|
||||
<br />  <span class="subsectionToc" >5.3 <a
|
||||
href="userhtmlsu25.html#x35-690005.3">psb_gather — Gather Global Dense Matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >5.4 <a
|
||||
href="userhtmlsu26.html#x36-700005.4">psb_scatter — Scatter Global Dense Matrix</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu29.html" >next</a>] [<a
|
||||
href="userhtmlse4.html" >prev</a>] [<a
|
||||
href="userhtmlse4.html#tailuserhtmlse4.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse5.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu25.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse5.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,115 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Data management routines</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu56.html" >next</a>] [<a
|
||||
href="userhtmlse5.html" >prev</a>] [<a
|
||||
href="userhtmlse5.html#tailuserhtmlse5.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu24.html#tailuserhtmlse6.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu29.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">6 </span> <a
|
||||
id="x37-710006"></a>Data management routines</h3>
|
||||
<!--l. 8--><p class="noindent" >
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >6.1 <a
|
||||
href="userhtmlsu27.html#x38-720006.1">psb_cdall — Allocates a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.2 <a
|
||||
href="userhtmlsu28.html#x39-730006.2">psb_cdins — Communication descriptor insert routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.3 <a
|
||||
href="userhtmlsu29.html#x40-740006.3">psb_cdasb — Communication descriptor assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.4 <a
|
||||
href="userhtmlsu30.html#x41-750006.4">psb_cdcpy — Copies a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.5 <a
|
||||
href="userhtmlsu31.html#x42-760006.5">psb_cdfree — Frees a communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.6 <a
|
||||
href="userhtmlsu32.html#x43-770006.6">psb_cdbldext — Build an extended communication descriptor</a></span>
|
||||
<br />  <span class="subsectionToc" >6.7 <a
|
||||
href="userhtmlsu33.html#x44-780006.7">psb_spall — Allocates a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.8 <a
|
||||
href="userhtmlsu34.html#x45-790006.8">psb_spins — Insert a set of coefficients into a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.9 <a
|
||||
href="userhtmlsu35.html#x46-800006.9">psb_spasb — Sparse matrix assembly routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.10 <a
|
||||
href="userhtmlsu36.html#x47-810006.10">psb_spfree — Frees a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.11 <a
|
||||
href="userhtmlsu37.html#x48-820006.11">psb_sprn — Reinit sparse matrix structure for psblas routines.</a></span>
|
||||
<br />  <span class="subsectionToc" >6.12 <a
|
||||
href="userhtmlsu38.html#x49-830006.12">psb_geall — Allocates a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.13 <a
|
||||
href="userhtmlsu39.html#x50-840006.13">psb_geins — Dense matrix insertion routine</a></span>
|
||||
<br />  <span class="subsectionToc" >6.14 <a
|
||||
href="userhtmlsu40.html#x51-850006.14">psb_geasb — Assembly a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.15 <a
|
||||
href="userhtmlsu41.html#x52-860006.15">psb_gefree — Frees a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.16 <a
|
||||
href="userhtmlsu42.html#x53-870006.16">psb_gelp — Applies a left permutation to a dense matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.17 <a
|
||||
href="userhtmlsu43.html#x54-880006.17">psb_glob_to_loc — Global to local indices convertion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.18 <a
|
||||
href="userhtmlsu44.html#x55-890006.18">psb_loc_to_glob — Local to global indices conversion</a></span>
|
||||
<br />  <span class="subsectionToc" >6.19 <a
|
||||
href="userhtmlsu45.html#x56-900006.19">psb_is_owned — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.20 <a
|
||||
href="userhtmlsu46.html#x57-910006.20">psb_owned_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.21 <a
|
||||
href="userhtmlsu47.html#x58-920006.21">psb_is_local — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.22 <a
|
||||
href="userhtmlsu48.html#x59-930006.22">psb_local_index — </a></span>
|
||||
<br />  <span class="subsectionToc" >6.23 <a
|
||||
href="userhtmlsu49.html#x60-940006.23">psb_get_boundary — Extract list of boundary elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.24 <a
|
||||
href="userhtmlsu50.html#x61-950006.24">psb_get_overlap — Extract list of overlap elements</a></span>
|
||||
<br />  <span class="subsectionToc" >6.25 <a
|
||||
href="userhtmlsu51.html#x62-960006.25">psb_sp_getrow — Extract row(s) from a sparse matrix</a></span>
|
||||
<br />  <span class="subsectionToc" >6.26 <a
|
||||
href="userhtmlsu52.html#x63-970006.26">psb_sizeof — Memory occupation</a></span>
|
||||
<br />  <span class="subsectionToc" >6.27 <a
|
||||
href="userhtmlsu53.html#x64-980006.27">Sorting utilities — </a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 2--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu56.html" >next</a>] [<a
|
||||
href="userhtmlse5.html" >prev</a>] [<a
|
||||
href="userhtmlse5.html#tailuserhtmlse5.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse6.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu29.html" >up</a>] </p></div>
|
||||
<!--l. 2--><p class="indent" > <a
|
||||
id="tailuserhtmlse6.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Parallel environment routines</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 2--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu73.html" >next</a>] [<a
|
||||
href="userhtmlse6.html" >prev</a>] [<a
|
||||
href="userhtmlse6.html#tailuserhtmlse6.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu51.html#tailuserhtmlse7.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu56.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">7 </span> <a
|
||||
id="x65-990007"></a>Parallel environment routines</h3>
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >7.1 <a
|
||||
href="userhtmlsu54.html#x66-1000007.1">psb_init — Initializes PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.2 <a
|
||||
href="userhtmlsu55.html#x67-1010007.2">psb_info — Return information about PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.3 <a
|
||||
href="userhtmlsu56.html#x68-1020007.3">psb_exit — Exit from PSBLAS parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.4 <a
|
||||
href="userhtmlsu57.html#x69-1030007.4">psb_get_mpicomm — Get the MPI communicator</a></span>
|
||||
<br />  <span class="subsectionToc" >7.5 <a
|
||||
href="userhtmlsu58.html#x70-1040007.5">psb_get_rank — Get the MPI rank</a></span>
|
||||
<br />  <span class="subsectionToc" >7.6 <a
|
||||
href="userhtmlsu59.html#x71-1050007.6">psb_wtime — Wall clock timing</a></span>
|
||||
<br />  <span class="subsectionToc" >7.7 <a
|
||||
href="userhtmlsu60.html#x72-1060007.7">psb_barrier — Sinchronization point parallel environment</a></span>
|
||||
<br />  <span class="subsectionToc" >7.8 <a
|
||||
href="userhtmlsu61.html#x73-1070007.8">psb_abort — Abort a computation</a></span>
|
||||
<br />  <span class="subsectionToc" >7.9 <a
|
||||
href="userhtmlsu62.html#x74-1080007.9">psb_bcast — Broadcast data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.10 <a
|
||||
href="userhtmlsu63.html#x75-1090007.10">psb_sum — Global sum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.11 <a
|
||||
href="userhtmlsu64.html#x76-1100007.11">psb_max — Global maximum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.12 <a
|
||||
href="userhtmlsu65.html#x77-1110007.12">psb_min — Global minimum</a></span>
|
||||
<br />  <span class="subsectionToc" >7.13 <a
|
||||
href="userhtmlsu66.html#x78-1120007.13">psb_amx — Global maximum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.14 <a
|
||||
href="userhtmlsu67.html#x79-1130007.14">psb_amn — Global minimum absolute value</a></span>
|
||||
<br />  <span class="subsectionToc" >7.15 <a
|
||||
href="userhtmlsu68.html#x80-1140007.15">psb_nrm2 — Global 2-norm reduction</a></span>
|
||||
<br />  <span class="subsectionToc" >7.16 <a
|
||||
href="userhtmlsu69.html#x81-1150007.16">psb_snd — Send data</a></span>
|
||||
<br />  <span class="subsectionToc" >7.17 <a
|
||||
href="userhtmlsu70.html#x82-1160007.17">psb_rcv — Receive data</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 3--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu73.html" >next</a>] [<a
|
||||
href="userhtmlse6.html" >prev</a>] [<a
|
||||
href="userhtmlse6.html#tailuserhtmlse6.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse7.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu56.html" >up</a>] </p></div>
|
||||
<!--l. 3--><p class="indent" > <a
|
||||
id="tailuserhtmlse7.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,418 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Error handling</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 3--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu77.html" >next</a>] [<a
|
||||
href="userhtmlse7.html" >prev</a>] [<a
|
||||
href="userhtmlse7.html#tailuserhtmlse7.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu68.html#tailuserhtmlse8.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu73.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">8 </span> <a
|
||||
id="x83-1170008"></a>Error handling</h3>
|
||||
<!--l. 5--><p class="noindent" >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 <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">info</span></span></span> 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 <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">info</span></span></span> 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.
|
||||
<!--l. 23--><p class="indent" > Figure <a
|
||||
href="#x83-1170259">9<!--tex4ht:ref: fig:routerr --></a> shows the layout of a generic <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_foo</span></span></span> routine with respect to the
|
||||
PSBLAS-2.0 error handling policy. It is possible to see how, whenever an error
|
||||
condition is detected, the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">info</span></span></span> variable is set to the corresponding error code which
|
||||
is, then, pushed on top of the stack by means of the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_errpush</span></span></span>. 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 <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb\_error</span></span></span> routine which prints the content of
|
||||
the error stack and aborts the program execution, according to the choice
|
||||
made by the user with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_set_erraction</span></span></span>. The default is to print the error
|
||||
and terminate the program, but the user may choose to handle the error
|
||||
explicitly.
|
||||
<!--l. 40--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x83-1170259"></a>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 73--><p class="noindent" >
|
||||
<div class="fbox"><div class="minipage"><!--l. 44-->
|
||||
<div class="lstlisting" id="listing-9"><span class="label"><a
|
||||
id="x83-117001r1"></a></span><span
|
||||
class="cmbx-9">subroutine</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">some</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">args</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117002r2"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">...</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117003r3"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">error</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">detected</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">then</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117004r4"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">=</span><span
|
||||
class="cmr-9">errcode1</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117005r5"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_errpush</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">errcode1</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117006r6"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">goto</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">9999</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117007r7"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117008r8"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">...</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117009r9"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_bar</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">some</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">args</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117010r10"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmbx-9">ne</span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">zero</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">then</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117011r11"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">info</span><span
|
||||
class="cmr-9">=</span><span
|
||||
class="cmr-9">errcode2</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117012r12"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_errpush</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span><span
|
||||
class="cmr-9">’</span><span
|
||||
class="cmr-9">,</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">errcode2</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117013r13"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">goto</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">9999</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117014r14"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117015r15"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">...</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117016r16"></a></span><span
|
||||
class="cmr-9">9999</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">continue</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117017r17"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">err</span><span
|
||||
class="cmr-9">_act</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmbx-9">eq</span><span
|
||||
class="cmr-9">.</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">act</span><span
|
||||
class="cmr-9">_abort</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">then</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117018r18"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">call</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_error</span><span
|
||||
class="cmr-9">(</span><span
|
||||
class="cmr-9">icontxt</span><span
|
||||
class="cmr-9">)</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117019r19"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">return</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117020r20"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">else</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117021r21"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">return</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117022r22"></a></span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">if</span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117023r23"></a></span><span
|
||||
class="cmr-9"> </span><br /><span class="label"><a
|
||||
id="x83-117024r24"></a></span><span
|
||||
class="cmbx-9">end</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmbx-9">subroutine</span><span
|
||||
class="cmr-9"> </span><span
|
||||
class="cmr-9">psb</span><span
|
||||
class="cmr-9">_foo</span>
|
||||
</div> </div> </div>
|
||||
</div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 9: </span><span
|
||||
class="content">The layout of a generic <span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_foo </span>routine with respect to PSBLAS-2.0
|
||||
error handling policy.</span></div><!--tex4ht:label?: x83-1170259 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 78--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 83--><p class="indent" > Figure <a
|
||||
href="#x83-11702610">10<!--tex4ht:ref: fig:errormsg --></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 <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cest</span></span></span> subroutine called by <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spasb</span></span></span> ... by process 0 (i.e. the root
|
||||
process).
|
||||
<!--l. 91--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x83-11702610"></a>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 113--><p class="noindent" >
|
||||
<div class="fbox"><div class="minipage"><div class="verbatim" id="verbatim-95">
|
||||
==========================================================
|
||||
 <br />Process: 0.  PSBLAS Error (4010) in subroutine: df_sample
|
||||
 <br />Error from call to subroutine mat dist
|
||||
 <br />==========================================================
|
||||
 <br />Process: 0.  PSBLAS Error (4010) in subroutine: mat_distv
|
||||
 <br />Error from call to subroutine psb_spasb
|
||||
 <br />==========================================================
|
||||
 <br />Process: 0.  PSBLAS Error (4010) in subroutine: psb_spasb
|
||||
 <br />Error from call to subroutine psb_cest
|
||||
 <br />==========================================================
|
||||
 <br />Process: 0.  PSBLAS Error (136) in subroutine: psb_cest
|
||||
 <br />Format FOO is unknown
|
||||
 <br />==========================================================
|
||||
 <br />Aborting...
|
||||
</div>
|
||||
<!--l. 109--><p class="nopar" > </div> </div>
|
||||
</div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 10: </span><span
|
||||
class="content">A sample PSBLAS-2.0 error message. Process 0 detected an error
|
||||
condition inside the psb_cest subroutine</span></div><!--tex4ht:label?: x83-11702610 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 119--><p class="indent" > </div><hr class="endfigure">
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >8.1 <a
|
||||
href="userhtmlsu71.html#x84-1180008.1">psb_errpush — Pushes an error code onto the error stack</a></span>
|
||||
<br />  <span class="subsectionToc" >8.2 <a
|
||||
href="userhtmlsu72.html#x85-1190008.2">psb_error — Prints the error stack content and aborts execution</a></span>
|
||||
<br />  <span class="subsectionToc" >8.3 <a
|
||||
href="userhtmlsu73.html#x86-1200008.3">psb_set_errverbosity — Sets the verbosity of error messages</a></span>
|
||||
<br />  <span class="subsectionToc" >8.4 <a
|
||||
href="userhtmlsu74.html#x87-1210008.4">psb_set_erraction — Set the type of action to be taken upon error condition</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu77.html" >next</a>] [<a
|
||||
href="userhtmlse7.html" >prev</a>] [<a
|
||||
href="userhtmlse7.html#tailuserhtmlse7.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse8.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu73.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse8.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,57 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Utilities</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu83.html" >next</a>] [<a
|
||||
href="userhtmlse8.html" >prev</a>] [<a
|
||||
href="userhtmlse8.html#tailuserhtmlse8.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu72.html#tailuserhtmlse9.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlsu77.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">9 </span> <a
|
||||
id="x88-1220009"></a>Utilities</h3>
|
||||
<!--l. 4--><p class="noindent" >We have some utilities available for input and output of sparse matrices; the
|
||||
interfaces to these routines are available in the module <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_util_mod</span></span></span>.
|
||||
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
 <span class="subsectionToc" >9.1 <a
|
||||
href="userhtmlsu75.html#x89-1230009.1"> hb_read — Read a sparse matrix from a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.2 <a
|
||||
href="userhtmlsu76.html#x90-1240009.2">hb_write — Write a sparse matrix to a file in the Harwell–Boeing format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.3 <a
|
||||
href="userhtmlsu77.html#x91-1250009.3">mm_mat_read — Read a sparse matrix from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.4 <a
|
||||
href="userhtmlsu78.html#x92-1260009.4">mm_array_read — Read a dense array from a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.5 <a
|
||||
href="userhtmlsu79.html#x93-1270009.5">mm_mat_write — Write a sparse matrix to a file in the MatrixMarket format</a></span>
|
||||
<br />  <span class="subsectionToc" >9.6 <a
|
||||
href="userhtmlsu80.html#x94-1280009.6">mm_array_write — Write a dense array from a file in the MatrixMarket format</a></span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu83.html" >next</a>] [<a
|
||||
href="userhtmlse8.html" >prev</a>] [<a
|
||||
href="userhtmlse8.html#tailuserhtmlse8.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse9.html" >front</a>] [<a
|
||||
href="userhtml.html#userhtmlsu77.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse9.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,149 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Basic Nomenclature</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 155--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu4.html" >next</a>] [<a
|
||||
href="#tailuserhtmlsu1.html">tail</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlsu2.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">2.1 </span> <a
|
||||
id="x6-40002.1"></a>Basic Nomenclature</h4>
|
||||
<!--l. 158--><p class="noindent" >Our computational model implies that the data allocation on the parallel distributed
|
||||
memory machine is guided by the structure of the physical model, and specifically by
|
||||
the discretization mesh of the PDE.
|
||||
<!--l. 163--><p class="indent" > Each point of the discretization mesh will have (at least) one associated
|
||||
equation/variable, and therefore one index. We say that point <span
|
||||
class="cmmi-10">i </span><span
|
||||
class="cmti-10">depends </span>on point <span
|
||||
class="cmmi-10">j </span>if
|
||||
the equation for a variable associated with <span
|
||||
class="cmmi-10">i </span>contains a term in <span
|
||||
class="cmmi-10">j</span>, or equivalently if
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmmi-10">a</span><sub><span
|
||||
class="cmmi-7">ij</span></sub><span
|
||||
class="cmmi-10">≠</span>0. After the partition of the discretization mesh into <span
|
||||
class="cmti-10">sub-domains </span>assigned
|
||||
to the parallel processes, we classify the points of a given sub-domain as
|
||||
following.
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Internal.</span> </dt><dd
|
||||
class="description">An internal point of a given domain <span
|
||||
class="cmti-10">depends </span>only on points of the
|
||||
same domain. If all points of a domain are assigned to one process, then
|
||||
a computational step (e.g., a matrix-vector product) of the equations
|
||||
associated with the internal points requires no data items from other
|
||||
domains and no communications.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Boundary.</span> </dt><dd
|
||||
class="description">A point of a given domain is a boundary point if it <span
|
||||
class="cmti-10">depends </span>on
|
||||
points belonging to other domains.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Halo.</span> </dt><dd
|
||||
class="description">A halo point for a given domain is a point belonging to another domain
|
||||
such that there is a boundary point which <span
|
||||
class="cmti-10">depends </span>on it. Whenever performing
|
||||
a computational step, such as a matrix-vector product, the values associated
|
||||
with halo points are requested from other domains. A boundary point of a
|
||||
given domain is usually a halo point for some other domain<span class="footnote-mark"><a
|
||||
href="userhtml7.html#fn2x0"><sup class="textsuperscript">2</sup></a></span><a
|
||||
id="x6-4001f2"></a> ;
|
||||
therefore the cardinality of the boundary points set denotes the amount
|
||||
of data sent to other domains.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Overlap.</span> </dt><dd
|
||||
class="description">An overlap point is a boundary point assigned to multiple domains.
|
||||
Any operation that involves an overlap point has to be replicated for each
|
||||
assignment.</dd></dl>
|
||||
<!--l. 202--><p class="noindent" >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 <span class="cite">[<a
|
||||
href="userhtmlli2.html#X2007c">4</a>, <a
|
||||
href="userhtmlli2.html#X2007d">3</a>]</span>.
|
||||
<!--l. 207--><p class="indent" > We denote the sets of internal, boundary and halo points for a given subdomain
|
||||
by <span
|
||||
class="cmsy-10"><img
|
||||
src="cmsy10-49.png" alt="I" class="10x-x-49" /></span>, <span
|
||||
class="cmsy-10"><img
|
||||
src="cmsy10-42.png" alt="B" class="10x-x-42" /> </span>and <span
|
||||
class="cmsy-10"><img
|
||||
src="cmsy10-48.png" alt="H" class="10x-x-48" /></span>. Each subdomain is assigned to one process; each process usually owns
|
||||
one subdomain, although the user may choose to assign more than one subdomain to
|
||||
a process. If each process <span
|
||||
class="cmmi-10">i </span>owns one subdomain, the number of rows in
|
||||
the local sparse matrix is <span
|
||||
class="cmsy-10">|<img
|
||||
src="cmsy10-49.png" alt="I" class="10x-x-49" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">| </span>+ <span
|
||||
class="cmsy-10">|<img
|
||||
src="cmsy10-42.png" alt="B" class="10x-x-42" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">|</span>, and the number of local columns (i.e.
|
||||
those for which there exists at least one non-zero entry in the local rows) is
|
||||
<span
|
||||
class="cmsy-10">|<img
|
||||
src="cmsy10-49.png" alt="I" class="10x-x-49" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">| </span>+ <span
|
||||
class="cmsy-10">|<img
|
||||
src="cmsy10-42.png" alt="B" class="10x-x-42" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">| </span>+ <span
|
||||
class="cmsy-10">|<img
|
||||
src="cmsy10-48.png" alt="H" class="10x-x-48" /></span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmsy-10">|</span>.
|
||||
<!--l. 217--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<a
|
||||
id="x6-40022"></a>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 218--><p class="noindent" >
|
||||
<!--l. 221--><p class="noindent" ><img
|
||||
src="userhtml1x.png" alt="PIC" class="graphics" width="200" height="179" ><!--tex4ht:graphics
|
||||
name="userhtml1x.png" src="figures/points.eps"
|
||||
--></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 2: </span><span
|
||||
class="content">Point classfication.</span></div><!--tex4ht:label?: x6-40022 -->
|
||||
|
||||
|
||||
|
||||
<!--l. 227--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 229--><p class="indent" > This classification of mesh points guides the naming scheme that we adopted in
|
||||
the library internals and in the data structures. We explicitly note that “Halo” points
|
||||
are also often called “ghost” points in the literature.
|
||||
|
||||
|
||||
|
||||
<!--l. 236--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu4.html" >next</a>] [<a
|
||||
href="userhtmlsu1.html" >front</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlsu2.html" >up</a>] </p></div>
|
||||
<!--l. 236--><p class="indent" > <a
|
||||
id="tailuserhtmlsu1.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,233 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_geaxpby — General Dense Matrix Sum</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 8--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu14.html" >next</a>] [<a
|
||||
href="userhtmlsu8.html#tailuserhtmlsu10.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu13.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.1 </span> <a
|
||||
id="x19-530004.1"></a>psb_geaxpby — General Dense Matrix Sum</h4>
|
||||
<!--l. 10--><p class="noindent" >This subroutine is an interface to the computational kernel for dense matrix
|
||||
sum:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml3x.png" alt="y ← α x+ βy
|
||||
" class="math-display" ></center>
|
||||
<!--l. 12--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-37">
|
||||
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
|
||||
</div>
|
||||
<!--l. 21--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 25--><p class="indent" > <a
|
||||
id="x19-530011"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 26--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-1" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-1-1g"><col
|
||||
id="TBL-1-1"><col
|
||||
id="TBL-1-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x</span>, <span
|
||||
class="cmmi-10">y</span>, <span
|
||||
class="cmmi-10">α</span>, <span
|
||||
class="cmmi-10">β </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-2"
|
||||
class="td11">psb_geaxpby</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-2"
|
||||
class="td11">psb_geaxpby</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-2"
|
||||
class="td11">psb_geaxpby</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-2"
|
||||
class="td11">psb_geaxpby</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 1: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x19-530011 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">alpha</span> </dt><dd
|
||||
class="description">the scalar <span
|
||||
class="cmmi-10">α</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x19-530011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x19-530011">1<!--tex4ht:ref: tab:f90axpby --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">beta</span> </dt><dd
|
||||
class="description">the scalar <span
|
||||
class="cmmi-10">β</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x19-530011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of the global dense matrix <span
|
||||
class="cmmi-10">y</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of the type indicated in Table <a
|
||||
href="#x19-530011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
The rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd></dl>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of result submatrix <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of the type indicated in Table <a
|
||||
href="#x19-530011">1<!--tex4ht:ref: tab:f90axpby --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 113--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu14.html" >next</a>] [<a
|
||||
href="userhtmlsu10.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu13.html" >up</a>] </p></div>
|
||||
<!--l. 113--><p class="indent" > <a
|
||||
id="tailuserhtmlsu10.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,249 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_gedot — Dot Product</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 113--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu15.html" >next</a>] [<a
|
||||
href="userhtmlsu10.html" >prev</a>] [<a
|
||||
href="userhtmlsu10.html#tailuserhtmlsu10.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu9.html#tailuserhtmlsu11.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu14.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.2 </span> <a
|
||||
id="x20-540004.2"></a>psb_gedot — Dot Product</h4>
|
||||
<!--l. 115--><p class="noindent" >This function computes dot product between two vectors <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y </span>are real vectors it computes dot-product as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml4x.png" alt=" T
|
||||
dot ← x y
|
||||
" class="math-display" ></center>
|
||||
<!--l. 119--><p class="nopar" > Else if <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y </span>are complex vectors then it computes dot-product as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml5x.png" alt="dot ← xHy
|
||||
" class="math-display" ></center>
|
||||
<!--l. 121--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-38">
|
||||
psb_gedot(x, y, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 130--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 132--><p class="indent" > <a
|
||||
id="x20-540012"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 133--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-2" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-2-1g"><col
|
||||
id="TBL-2-1"><col
|
||||
id="TBL-2-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">dot</span>, <span
|
||||
class="cmmi-10">x</span>, <span
|
||||
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-2-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Function</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-2-2"
|
||||
class="td11">psb_gedot</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-3-2"
|
||||
class="td11">psb_gedot</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-2-4-2"
|
||||
class="td11">psb_gedot</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-2-5-2"
|
||||
class="td11">psb_gedot</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-2-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 2: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x20-540012 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x20-540012">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">y</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x20-540012">2<!--tex4ht:ref: tab:f90dot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">global</span> </dt><dd
|
||||
class="description">Specifies whether the computation should include the global reduction
|
||||
across all processes.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the dot product of vectors <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
specified<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x20-540012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 207--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x20-54003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to
|
||||
compute multiple dot products at the same time; in this case, it is
|
||||
possible to improve the runtime efficiency by using the following scheme:
|
||||
<!--l. 214-->
|
||||
<div class="lstlisting" id="listing-1"><span class="label"><a
|
||||
id="x20-54004r1"></a></span>    vres(1) = psb_gedot(x1,y1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x20-54005r2"></a></span>    vres(2) = psb_gedot(x2,y2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x20-54006r3"></a></span>    vres(3) = psb_gedot(x3,y3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x20-54007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_sum(ictxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 220--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 230--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu15.html" >next</a>] [<a
|
||||
href="userhtmlsu10.html" >prev</a>] [<a
|
||||
href="userhtmlsu10.html#tailuserhtmlsu10.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu11.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu14.html" >up</a>] </p></div>
|
||||
<!--l. 230--><p class="indent" > <a
|
||||
id="tailuserhtmlsu11.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,208 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_gedots — Generalized Dot Product</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 230--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu16.html" >next</a>] [<a
|
||||
href="userhtmlsu11.html" >prev</a>] [<a
|
||||
href="userhtmlsu11.html#tailuserhtmlsu11.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse4.html#tailuserhtmlsu12.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu15.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.3 </span> <a
|
||||
id="x21-550004.3"></a>psb_gedots — Generalized Dot Product</h4>
|
||||
<!--l. 232--><p class="noindent" >This subroutine computes a series of dot products among the columns of two dense
|
||||
matrices <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml6x.png" alt=" T
|
||||
res(i) ← x(:,i) y(:,i)
|
||||
" class="math-display" ></center>
|
||||
<!--l. 234--><p class="nopar" > If the matrices are complex, then the usual convention applies, i.e. the conjugate
|
||||
transpose of <span
|
||||
class="cmmi-10">x </span>is used. If <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y </span>are of rank one, then <span
|
||||
class="cmmi-10">res </span>is a scalar, else it is a rank
|
||||
one array.
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-39">
|
||||
call psb_gedots(res, x, y, desc_a, info)
|
||||
</div>
|
||||
<!--l. 242--><p class="nopar" > <div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 243--><p class="indent" > <a
|
||||
id="x21-550013"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 244--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-3" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-3-1g"><col
|
||||
id="TBL-3-1"><col
|
||||
id="TBL-3-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">res</span>, <span
|
||||
class="cmmi-10">x</span>, <span
|
||||
class="cmmi-10">y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-3-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-2-2"
|
||||
class="td11">psb_gedots </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-3-2"
|
||||
class="td11">psb_gedots </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-3-4-2"
|
||||
class="td11">psb_gedots </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-3-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-3-5-2"
|
||||
class="td11">psb_gedots </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-3-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-3-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 3: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x21-550013 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x21-550013">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">y</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x21-550013">3<!--tex4ht:ref: tab:f90mdot --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">res</span> </dt><dd
|
||||
class="description">is the dot product of vectors <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a number or a rank-one array of the data type indicated in
|
||||
Table <a
|
||||
href="userhtmlsu11.html#x20-540012">2<!--tex4ht:ref: tab:f90dot --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 303--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu16.html" >next</a>] [<a
|
||||
href="userhtmlsu11.html" >prev</a>] [<a
|
||||
href="userhtmlsu11.html#tailuserhtmlsu11.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu12.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu15.html" >up</a>] </p></div>
|
||||
<!--l. 303--><p class="indent" > <a
|
||||
id="tailuserhtmlsu12.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,223 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_normi — Infinity-Norm of Vector</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 303--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu17.html" >next</a>] [<a
|
||||
href="userhtmlsu12.html" >prev</a>] [<a
|
||||
href="userhtmlsu12.html#tailuserhtmlsu12.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu10.html#tailuserhtmlsu13.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu16.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.4 </span> <a
|
||||
id="x22-560004.4"></a>psb_normi — Infinity-Norm of Vector</h4>
|
||||
<!--l. 305--><p class="noindent" >This function computes the infinity-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes infinity norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml7x.png" alt="amax ← maxi |xi|
|
||||
" class="math-display" ></center>
|
||||
<!--l. 309--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes the infinity-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml8x.png" alt="amax ← maxi (|re(xi)|+ |im(xi)|)
|
||||
" class="math-display" ></center>
|
||||
<!--l. 311--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-40">
|
||||
psb_geamax(x, desc_a, info [,global])
|
||||
 <br />psb_normi(x, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 320--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 323--><p class="indent" > <a
|
||||
id="x22-560014"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 324--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-4" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-4-1g"><col
|
||||
id="TBL-4-1"><col
|
||||
id="TBL-4-2"><col
|
||||
id="TBL-4-3"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">amax </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-3"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Function </span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-3"
|
||||
class="td11">psb_geamax</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-3"
|
||||
class="td11">psb_geamax</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-2"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-4-4-3"
|
||||
class="td11">psb_geamax</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-4-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-2"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-5-3"
|
||||
class="td11">psb_geamax</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-4-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-4-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 4: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x22-560014 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x22-560014">4<!--tex4ht:ref: tab:f90amax --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">global</span> </dt><dd
|
||||
class="description">Specifies whether the computation should include the global reduction
|
||||
across all processes.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the infinity norm of vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
specified<br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 383--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
|
||||
|
||||
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x22-56003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to compute
|
||||
multiple norms at the same time; in this case, it is possible to improve the
|
||||
runtime efficiency by using the following scheme: <!--l. 390-->
|
||||
<div class="lstlisting" id="listing-2"><span class="label"><a
|
||||
id="x22-56004r1"></a></span>    vres(1) = psb_geamax(x1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x22-56005r2"></a></span>    vres(2) = psb_geamax(x2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x22-56006r3"></a></span>    vres(3) = psb_geamax(x3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x22-56007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_amx(ictxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 396--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu17.html" >next</a>] [<a
|
||||
href="userhtmlsu12.html" >prev</a>] [<a
|
||||
href="userhtmlsu12.html#tailuserhtmlsu12.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu13.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu16.html" >up</a>] </p></div>
|
||||
<!--l. 406--><p class="indent" > <a
|
||||
id="tailuserhtmlsu13.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,177 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_geamaxs — Generalized Infinity Norm</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu18.html" >next</a>] [<a
|
||||
href="userhtmlsu13.html" >prev</a>] [<a
|
||||
href="userhtmlsu13.html#tailuserhtmlsu13.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu11.html#tailuserhtmlsu14.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu17.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.5 </span> <a
|
||||
id="x23-570004.5"></a>psb_geamaxs — Generalized Infinity Norm</h4>
|
||||
<!--l. 408--><p class="noindent" >This subroutine computes a series of infinity norms on the columns of a dense matrix
|
||||
<span
|
||||
class="cmmi-10">x</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml9x.png" alt="res(i) ← makx|x(k,i)|
|
||||
" class="math-display" ></center>
|
||||
<!--l. 410--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-41">
|
||||
call psb_geamaxs(res, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 414--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 416--><p class="indent" > <a
|
||||
id="x23-570015"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 417--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-5" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-5-1g"><col
|
||||
id="TBL-5-1"><col
|
||||
id="TBL-5-2"><col
|
||||
id="TBL-5-3"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-2"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-3"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine </span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-2"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-3"
|
||||
class="td11">psb_geamaxs</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-2"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-3"
|
||||
class="td11">psb_geamaxs</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-2"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-3"
|
||||
class="td11">psb_geamaxs</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-2"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-3"
|
||||
class="td11">psb_geamaxs</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-5-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 5: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x23-570015 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x23-570015">5<!--tex4ht:ref: tab:f90mamax --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">res</span> </dt><dd
|
||||
class="description">is the infinity norm of the columns of <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a number or a rank-one array of long precision real numbers.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 467--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu18.html" >next</a>] [<a
|
||||
href="userhtmlsu13.html" >prev</a>] [<a
|
||||
href="userhtmlsu13.html#tailuserhtmlsu13.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu14.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu17.html" >up</a>] </p></div>
|
||||
<!--l. 467--><p class="indent" > <a
|
||||
id="tailuserhtmlsu14.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,224 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_norm1 — 1-Norm of Vector</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 467--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu19.html" >next</a>] [<a
|
||||
href="userhtmlsu14.html" >prev</a>] [<a
|
||||
href="userhtmlsu14.html#tailuserhtmlsu14.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu12.html#tailuserhtmlsu15.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu18.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.6 </span> <a
|
||||
id="x24-580004.6"></a>psb_norm1 — 1-Norm of Vector</h4>
|
||||
<!--l. 469--><p class="noindent" >This function computes the 1-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes 1-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml10x.png" alt="asum ← ∥xi∥
|
||||
" class="math-display" ></center>
|
||||
<!--l. 472--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml11x.png" alt="asum ← ∥re(x)∥ + ∥im (x)∥
|
||||
1 1
|
||||
" class="math-display" ></center>
|
||||
<!--l. 474--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-42">
|
||||
psb_geasum(x, desc_a, info [,global])
|
||||
 <br />psb_norm1(x, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 480--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 482--><p class="indent" > <a
|
||||
id="x24-580016"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 483--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-6" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-6-1g"><col
|
||||
id="TBL-6-1"><col
|
||||
id="TBL-6-2"><col
|
||||
id="TBL-6-3"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">asum </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-3"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Function </span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-3"
|
||||
class="td11">psb_geasum</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-2"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-3"
|
||||
class="td11">psb_geasum</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-2"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-3"
|
||||
class="td11">psb_geasum</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-6-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-2"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-5-3"
|
||||
class="td11">psb_geasum</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-6-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-6-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 6: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x24-580016 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x24-580016">6<!--tex4ht:ref: tab:f90asum --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">global</span> </dt><dd
|
||||
class="description">Specifies whether the computation should include the global reduction
|
||||
across all processes.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the 1-norm of vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
specified<br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 536--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
|
||||
|
||||
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x24-58003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to compute
|
||||
multiple norms at the same time; in this case, it is possible to improve the
|
||||
runtime efficiency by using the following scheme: <!--l. 543-->
|
||||
<div class="lstlisting" id="listing-3"><span class="label"><a
|
||||
id="x24-58004r1"></a></span>    vres(1) = psb_geasum(x1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x24-58005r2"></a></span>    vres(2) = psb_geasum(x2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x24-58006r3"></a></span>    vres(3) = psb_geasum(x3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x24-58007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_sum(ictxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 549--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 554--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu19.html" >next</a>] [<a
|
||||
href="userhtmlsu14.html" >prev</a>] [<a
|
||||
href="userhtmlsu14.html#tailuserhtmlsu14.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu15.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu18.html" >up</a>] </p></div>
|
||||
<!--l. 554--><p class="indent" > <a
|
||||
id="tailuserhtmlsu15.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_geasums — Generalized 1-Norm of Vector</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 554--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu20.html" >next</a>] [<a
|
||||
href="userhtmlsu15.html" >prev</a>] [<a
|
||||
href="userhtmlsu15.html#tailuserhtmlsu15.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu13.html#tailuserhtmlsu16.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu19.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.7 </span> <a
|
||||
id="x25-590004.7"></a>psb_geasums — Generalized 1-Norm of Vector</h4>
|
||||
<!--l. 556--><p class="noindent" >This subroutine computes a series of 1-norms on the columns of a dense matrix
|
||||
<span
|
||||
class="cmmi-10">x</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml12x.png" alt="res(i) ← makx|x(k,i)|
|
||||
" class="math-display" ></center>
|
||||
<!--l. 558--><p class="nopar" > This function computes the 1-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes 1-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml13x.png" alt="res(i) ← ∥xi∥
|
||||
" class="math-display" ></center>
|
||||
<!--l. 562--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes 1-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml14x.png" alt="res(i) ← ∥re(x )∥1 +∥im (x )∥1
|
||||
" class="math-display" ></center>
|
||||
<!--l. 564--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-43">
|
||||
call psb_geasums(res, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 569--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 571--><p class="indent" > <a
|
||||
id="x25-590017"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 572--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-7" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-7-1g"><col
|
||||
id="TBL-7-1"><col
|
||||
id="TBL-7-2"><col
|
||||
id="TBL-7-3"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-2"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-3"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-2"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-3"
|
||||
class="td11">psb_geasums</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-2"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-3"
|
||||
class="td11">psb_geasums</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-2"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-3"
|
||||
class="td11">psb_geasums</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-7-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-2"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-5-3"
|
||||
class="td11">psb_geasums</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-7-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-7-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 7: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x25-590017 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x25-590017">7<!--tex4ht:ref: tab:f90asums --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">res</span> </dt><dd
|
||||
class="description">contains the 1-norm of (the columns of) <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Short as: a long precision real number. Specified as: a long precision real
|
||||
number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 627--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu20.html" >next</a>] [<a
|
||||
href="userhtmlsu15.html" >prev</a>] [<a
|
||||
href="userhtmlsu15.html#tailuserhtmlsu15.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu16.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu19.html" >up</a>] </p></div>
|
||||
<!--l. 627--><p class="indent" > <a
|
||||
id="tailuserhtmlsu16.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,227 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_norm2 — 2-Norm of Vector</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 627--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu21.html" >next</a>] [<a
|
||||
href="userhtmlsu16.html" >prev</a>] [<a
|
||||
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu14.html#tailuserhtmlsu17.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.8 </span> <a
|
||||
id="x26-600004.8"></a>psb_norm2 — 2-Norm of Vector</h4>
|
||||
<!--l. 629--><p class="noindent" >This function computes the 2-norm of a vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />If <span
|
||||
class="cmmi-10">x </span>is a real vector it computes 2-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml15x.png" alt=" √ -T--
|
||||
nrm2 ← x x
|
||||
" class="math-display" ></center>
|
||||
<!--l. 632--><p class="nopar" > else if <span
|
||||
class="cmmi-10">x </span>is a complex vector then it computes 2-norm as:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml16x.png" alt=" √----
|
||||
nrm2 ← xHx
|
||||
" class="math-display" ></center>
|
||||
<!--l. 634--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 640--><p class="indent" > <a
|
||||
id="x26-600018"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 641--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-8" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-8-1g"><col
|
||||
id="TBL-8-1"><col
|
||||
id="TBL-8-2"><col
|
||||
id="TBL-8-3"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">nrm</span>2 </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-2"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-3"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Function </span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-2"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-3"
|
||||
class="td11">psb_genrm2</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-2"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-3"
|
||||
class="td11">psb_genrm2</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-2"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-3"
|
||||
class="td11">psb_genrm2</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-2"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-3"
|
||||
class="td11">psb_genrm2</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-8-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 8: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x26-600018 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-44">
|
||||
psb_genrm2(x, desc_a, info [,global])
|
||||
 <br />psb_norm2(x, desc_a, info [,global])
|
||||
</div>
|
||||
<!--l. 659--><p class="nopar" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x26-600018">8<!--tex4ht:ref: tab:f90nrm2 --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">global</span> </dt><dd
|
||||
class="description">Specifies whether the computation should include the global reduction
|
||||
across all processes.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical scalar. Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.true.</span></span></span><br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function Value</span> </dt><dd
|
||||
class="description">is the 2-norm of vector <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span>unless the optional variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">global=.false.</span></span></span> has been
|
||||
specified<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 706--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x26-60003x1">The computation of a global result requires a global communication, which
|
||||
entails a significant overhead. It may be necessary and/or advisable to compute
|
||||
multiple norms at the same time; in this case, it is possible to improve the
|
||||
runtime efficiency by using the following scheme: <!--l. 713-->
|
||||
<div class="lstlisting" id="listing-4"><span class="label"><a
|
||||
id="x26-60004r1"></a></span>    vres(1) = psb_genrm2(x1,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x26-60005r2"></a></span>    vres(2) = psb_genrm2(x2,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x26-60006r3"></a></span>    vres(3) = psb_genrm2(x3,desc_a,info,global=.<span
|
||||
class="cmbx-10">false</span>.) <br /><span class="label"><a
|
||||
id="x26-60007r4"></a></span>    <span
|
||||
class="cmbx-10">call</span> psb_nrm2(ictxt,vres(1:3))
|
||||
|
||||
</div>
|
||||
<!--l. 719--><p class="noindent" >In this way the global communication, which for small sizes is a latency-bound
|
||||
operation, is invoked only once.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 725--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu21.html" >next</a>] [<a
|
||||
href="userhtmlsu16.html" >prev</a>] [<a
|
||||
href="userhtmlsu16.html#tailuserhtmlsu16.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu17.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu20.html" >up</a>] </p></div>
|
||||
<!--l. 725--><p class="indent" > <a
|
||||
id="tailuserhtmlsu17.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,177 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_genrm2s — Generalized 2-Norm of Vector</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 725--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu22.html" >next</a>] [<a
|
||||
href="userhtmlsu17.html" >prev</a>] [<a
|
||||
href="userhtmlsu17.html#tailuserhtmlsu17.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu15.html#tailuserhtmlsu18.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu21.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.9 </span> <a
|
||||
id="x27-610004.9"></a>psb_genrm2s — Generalized 2-Norm of Vector</h4>
|
||||
<!--l. 727--><p class="noindent" >This subroutine computes a series of 2-norms on the columns of a dense matrix
|
||||
<span
|
||||
class="cmmi-10">x</span>:
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml17x.png" alt="res(i) ← ∥x(:,i)∥2
|
||||
" class="math-display" ></center>
|
||||
<!--l. 729--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-45">
|
||||
call psb_genrm2s(res, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 734--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 736--><p class="indent" > <a
|
||||
id="x27-610019"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 737--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-9" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-9-1g"><col
|
||||
id="TBL-9-1"><col
|
||||
id="TBL-9-2"><col
|
||||
id="TBL-9-3"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">res </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-2"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-3"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-2"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-3"
|
||||
class="td11">psb_genrm2s</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-2"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-3"
|
||||
class="td11">psb_genrm2s</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-1"
|
||||
class="td11">Short Precision Real</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-2"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-3"
|
||||
class="td11">psb_genrm2s</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-2"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-3"
|
||||
class="td11">psb_genrm2s</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-9-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-9-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 9: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x27-610019 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x27-610019">9<!--tex4ht:ref: tab:f90nrm2s --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">res</span> </dt><dd
|
||||
class="description">contains the 1-norm of (the columns of) <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 792--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu22.html" >next</a>] [<a
|
||||
href="userhtmlsu17.html" >prev</a>] [<a
|
||||
href="userhtmlsu17.html#tailuserhtmlsu17.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu18.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu21.html" >up</a>] </p></div>
|
||||
<!--l. 792--><p class="indent" > <a
|
||||
id="tailuserhtmlsu18.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_norm1 — 1-Norm of Sparse Matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 792--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse5.html" >next</a>] [<a
|
||||
href="userhtmlsu18.html" >prev</a>] [<a
|
||||
href="userhtmlsu18.html#tailuserhtmlsu18.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu16.html#tailuserhtmlsu19.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu22.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.10 </span> <a
|
||||
id="x28-620004.10"></a>psb_norm1 — 1-Norm of Sparse Matrix</h4>
|
||||
<!--l. 794--><p class="noindent" >This function computes the 1-norm of a matrix <span
|
||||
class="cmmi-10">A</span>:<br
|
||||
class="newline" />
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml18x.png" alt="nrm1 ← ∥A ∥1
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 796--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">A</span> </dt><dd
|
||||
class="description">represents the global matrix <span
|
||||
class="cmmi-10">A</span></dd></dl>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 802--><p class="indent" > <a
|
||||
id="x28-6200110"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 803--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-10" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-10-1g"><col
|
||||
id="TBL-10-1"><col
|
||||
id="TBL-10-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">A </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Function </span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-2"
|
||||
class="td11">psb_spnrm1</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-2"
|
||||
class="td11">psb_spnrm1</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-2"
|
||||
class="td11">psb_spnrm1</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-2"
|
||||
class="td11">psb_spnrm1</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-10-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 10: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x28-6200110 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-46">
|
||||
psb_spnrm1(A, desc_a, info)
|
||||
 <br />psb_norm1(A, desc_a, info)
|
||||
</div>
|
||||
<!--l. 821--><p class="nopar" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the local portion of the global sparse matrix <span
|
||||
class="cmmi-10">A</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the 1-norm of sparse submatrix <span
|
||||
class="cmmi-10">A</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 856--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse5.html" >next</a>] [<a
|
||||
href="userhtmlsu18.html" >prev</a>] [<a
|
||||
href="userhtmlsu18.html#tailuserhtmlsu18.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu19.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu22.html" >up</a>] </p></div>
|
||||
<!--l. 856--><p class="indent" > <a
|
||||
id="tailuserhtmlsu19.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,129 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Library contents</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 236--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse3.html" >next</a>] [<a
|
||||
href="userhtmlsu1.html" >prev</a>] [<a
|
||||
href="userhtmlsu1.html#tailuserhtmlsu1.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu1.html#tailuserhtmlsu2.html">tail</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlsu4.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">2.2 </span> <a
|
||||
id="x8-50002.2"></a>Library contents</h4>
|
||||
<!--l. 238--><p class="noindent" >The PSBLAS library consists of various classes of subroutines:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Computational routines</span> </dt><dd
|
||||
class="description">comprising:
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">Sparse matrix by dense matrix product;
|
||||
</li>
|
||||
<li class="itemize">Sparse triangular systems solution for block diagonal matrices;
|
||||
</li>
|
||||
<li class="itemize">Vector and matrix norms;
|
||||
</li>
|
||||
<li class="itemize">Dense matrix sums;
|
||||
</li>
|
||||
<li class="itemize">Dot products.</li></ul>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Communication routines</span> </dt><dd
|
||||
class="description">handling halo and overlap communications;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Data management and auxiliary routines</span> </dt><dd
|
||||
class="description">including:
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">Parallel environment management
|
||||
</li>
|
||||
<li class="itemize">Communication descriptors allocation;
|
||||
</li>
|
||||
<li class="itemize">Dense and sparse matrix allocation;
|
||||
</li>
|
||||
<li class="itemize">Dense and sparse matrix build and update;
|
||||
</li>
|
||||
<li class="itemize">Sparse matrix and data distribution preprocessing.</li></ul>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Preconditioner routines</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Iterative methods</span> </dt><dd
|
||||
class="description">a subset of Krylov subspace iterative methods</dd></dl>
|
||||
<!--l. 263--><p class="noindent" >The following naming scheme has been adopted for all the symbols internally defined in
|
||||
the PSBLAS software package:
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">all symbols (i.e. subroutine names, data types...) are prefixed by <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_</span></span></span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li class="itemize">all data type names are suffixed by <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">_type</span></span></span>
|
||||
</li>
|
||||
<li class="itemize">all constants are suffixed by <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">_</span></span></span>
|
||||
</li>
|
||||
<li class="itemize">all top-level subroutine names follow the rule <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_xxname</span></span></span> where <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">xx</span></span></span> can be
|
||||
either:
|
||||
<ul class="itemize2">
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ge</span></span></span>: the routine is related to dense data,
|
||||
</li>
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">sp</span></span></span>: the routine is related to sparse data,
|
||||
</li>
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">cd</span></span></span>: the routine is related to communication descriptor (see <a
|
||||
href="userhtmlse3.html#x12-90003">3<!--tex4ht:ref: sec:datastruct --></a>).</li></ul>
|
||||
<!--l. 278--><p class="noindent" >For example the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geins</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdins</span></span></span> perform the same
|
||||
action (see <a
|
||||
href="userhtmlse6.html#x37-710006">6<!--tex4ht:ref: sec:toolsrout --></a>) on dense matrices, sparse matrices and communication
|
||||
descriptors respectively. Interface overloading allows the usage of the same
|
||||
subroutine names for both real and complex data.</li></ul>
|
||||
<!--l. 285--><p class="noindent" >In the description of the subroutines, arguments or argument entries are classified
|
||||
as:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">global</span> </dt><dd
|
||||
class="description">For input arguments, the value must be the same on all processes
|
||||
participating in the subroutine call; for output arguments the value is
|
||||
guaranteed to be the same.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">local</span> </dt><dd
|
||||
class="description">Each process has its own value(s) independently.</dd></dl>
|
||||
<!--l. 293--><p class="noindent" >To finish our general description, we define a version string with the constant
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml2x.png" alt="psb_version_string_
|
||||
" class="math-display" ></center>
|
||||
<!--l. 295--><p class="nopar" > whose current value is <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">3.4.0</span></span></span>
|
||||
|
||||
|
||||
|
||||
<!--l. 298--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse3.html" >next</a>] [<a
|
||||
href="userhtmlsu1.html" >prev</a>] [<a
|
||||
href="userhtmlsu1.html#tailuserhtmlsu1.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu2.html" >front</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlsu4.html" >up</a>] </p></div>
|
||||
<!--l. 298--><p class="indent" > <a
|
||||
id="tailuserhtmlsu2.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,171 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_normi — Infinity Norm of Sparse Matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 856--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu23.html" >next</a>] [<a
|
||||
href="userhtmlsu19.html" >prev</a>] [<a
|
||||
href="userhtmlsu19.html#tailuserhtmlsu19.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu17.html#tailuserhtmlsu20.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlse5.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.11 </span> <a
|
||||
id="x29-630004.11"></a>psb_normi — Infinity Norm of Sparse Matrix</h4>
|
||||
<!--l. 858--><p class="noindent" >This function computes the infinity-norm of a matrix <span
|
||||
class="cmmi-10">A</span>:<br
|
||||
class="newline" />
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml19x.png" alt="nrmi ← ∥A∥∞
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 860--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">A</span> </dt><dd
|
||||
class="description">represents the global matrix <span
|
||||
class="cmmi-10">A</span></dd></dl>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 866--><p class="indent" > <a
|
||||
id="x29-6300111"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 867--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-11" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-11-1g"><col
|
||||
id="TBL-11-1"><col
|
||||
id="TBL-11-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">A </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Function </span></td></tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-2"
|
||||
class="td11">psb_spnrmi</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-2"
|
||||
class="td11">psb_spnrmi</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-2"
|
||||
class="td11">psb_spnrmi</td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-2"
|
||||
class="td11">psb_spnrmi</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-11-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 11: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x29-6300111 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-47">
|
||||
psb_spnrmi(A, desc_a, info)
|
||||
 <br />psb_normi(A, desc_a, info)
|
||||
</div>
|
||||
<!--l. 885--><p class="nopar" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the local portion of the global sparse matrix <span
|
||||
class="cmmi-10">A</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">is the infinity-norm of sparse submatrix <span
|
||||
class="cmmi-10">A</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Specified as: a long precision real number.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 920--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu23.html" >next</a>] [<a
|
||||
href="userhtmlsu19.html" >prev</a>] [<a
|
||||
href="userhtmlsu19.html#tailuserhtmlsu19.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu20.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlse5.html" >up</a>] </p></div>
|
||||
<!--l. 920--><p class="indent" > <a
|
||||
id="tailuserhtmlsu20.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,337 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_spmm — Sparse Matrix by Dense Matrix Product</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 921--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu24.html" >next</a>] [<a
|
||||
href="userhtmlsu20.html" >prev</a>] [<a
|
||||
href="userhtmlsu20.html#tailuserhtmlsu20.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu18.html#tailuserhtmlsu21.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu23.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.12 </span> <a
|
||||
id="x30-640004.12"></a>psb_spmm — Sparse Matrix by Dense Matrix Product</h4>
|
||||
<!--l. 923--><p class="noindent" >This subroutine computes the Sparse Matrix by Dense Matrix Product:
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml20x.png" alt="y ← αAx + βy
|
||||
" class="math-display" ><a
|
||||
id="x30-64001r1"></a></center></td><td class="equation-label">(1)</td></tr></table>
|
||||
<!--l. 928--><p class="nopar" >
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml21x.png" alt="y ← αAT x+ βy
|
||||
" class="math-display" ><a
|
||||
id="x30-64002r2"></a></center></td><td class="equation-label">(2)</td></tr></table>
|
||||
<!--l. 932--><p class="nopar" >
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml22x.png" alt=" H
|
||||
y ← αA x+ βy
|
||||
|
||||
|
||||
|
||||
" class="math-display" ><a
|
||||
id="x30-64003r3"></a></center></td><td class="equation-label">(3)</td></tr></table>
|
||||
<!--l. 936--><p class="nopar" >
|
||||
<!--l. 938--><p class="indent" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
class="description">is the global dense matrix <span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmr-7">:</span><span
|
||||
class="cmmi-7">,</span><span
|
||||
class="cmr-7">:</span></sub>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">y</span> </dt><dd
|
||||
class="description">is the global dense matrix <span
|
||||
class="cmmi-10">y</span><sub><span
|
||||
class="cmr-7">:</span><span
|
||||
class="cmmi-7">,</span><span
|
||||
class="cmr-7">:</span></sub>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">A</span> </dt><dd
|
||||
class="description">is the global sparse matrix <span
|
||||
class="cmmi-10">A</span></dd></dl>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 945--><p class="indent" > <a
|
||||
id="x30-6400412"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 946--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-12" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-12-1g"><col
|
||||
id="TBL-12-1"><col
|
||||
id="TBL-12-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">A</span>, <span
|
||||
class="cmmi-10">x</span>, <span
|
||||
class="cmmi-10">y</span>, <span
|
||||
class="cmmi-10">α</span>, <span
|
||||
class="cmmi-10">β </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-12-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-2-2"
|
||||
class="td11">psb_spmm </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-3-2"
|
||||
class="td11">psb_spmm </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-12-4-2"
|
||||
class="td11">psb_spmm </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-12-5-2"
|
||||
class="td11">psb_spmm </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-12-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 12: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x30-6400412 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-48">
|
||||
call psb_spmm(alpha, a, x, beta, y, desc_a, info)
|
||||
 <br />call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
|
||||
 <br />             & trans, work)
|
||||
</div>
|
||||
<!--l. 965--><p class="nopar" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">alpha</span> </dt><dd
|
||||
class="description">the scalar <span
|
||||
class="cmmi-10">α</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x30-6400412">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the local portion of the sparse matrix <span
|
||||
class="cmmi-10">A</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x30-6400412">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">beta</span> </dt><dd
|
||||
class="description">the scalar <span
|
||||
class="cmmi-10">β</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x30-6400412">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">y</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x30-6400412">12<!--tex4ht:ref: tab:f90spmm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans</span> </dt><dd
|
||||
class="description">indicates what kind of operation to perform.
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans = N</span> </dt><dd
|
||||
class="description">the operation is specified by equation <a
|
||||
href="#x30-64001r1">1<!--tex4ht:ref: eq:f90spmm_no_tra --></a>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans = T</span> </dt><dd
|
||||
class="description">the operation is specified by equation <a
|
||||
href="#x30-64002r2">2<!--tex4ht:ref: eq:f90spmm_tra --></a>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans = C</span> </dt><dd
|
||||
class="description">the operation is specified by equation <a
|
||||
href="#x30-64003r3">3<!--tex4ht:ref: eq:f90spmm_con --></a></dd></dl>
|
||||
<!--l. 1020--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: <span
|
||||
class="cmmi-10">trans </span>= <span
|
||||
class="cmmi-10">N</span><br
|
||||
class="newline" />Specified as: a character variable.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">work</span> </dt><dd
|
||||
class="description">work array.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one array of the same type of <span
|
||||
class="cmmi-10">x </span>and <span
|
||||
class="cmmi-10">y </span>with the TARGET
|
||||
attribute.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of result matrix <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x30-6400412">12<!--tex4ht:ref: tab:f90spmm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1072--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu24.html" >next</a>] [<a
|
||||
href="userhtmlsu20.html" >prev</a>] [<a
|
||||
href="userhtmlsu20.html#tailuserhtmlsu20.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu21.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu23.html" >up</a>] </p></div>
|
||||
<!--l. 1072--><p class="indent" > <a
|
||||
id="tailuserhtmlsu21.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,398 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_spsm — Triangular System Solve</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1072--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu21.html" >prev</a>] [<a
|
||||
href="userhtmlsu21.html#tailuserhtmlsu21.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu19.html#tailuserhtmlsu22.html">tail</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu24.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">4.13 </span> <a
|
||||
id="x31-650004.13"></a>psb_spsm — Triangular System Solve</h4>
|
||||
<!--l. 1074--><p class="noindent" >This subroutine computes the Triangular System Solve:
|
||||
<!--l. 1076--><p class="indent" > <div class="eqnarray">
|
||||
<center class="math-display" >
|
||||
<img
|
||||
src="userhtml23x.png" alt="y ← αT- 1x + βy
|
||||
-1
|
||||
y ← αDT x +βy
|
||||
y ← αT- 1Dx +βy
|
||||
y ← αT- Tx+ βy
|
||||
y ← αDT -Tx + βy
|
||||
- T
|
||||
y ← αT Dx + βy
|
||||
y ← αT- Hx +βy
|
||||
y ← αDT -Hx + βy
|
||||
y ← αT- HDx + βy
|
||||
" class="math-display" ></center>
|
||||
</div>
|
||||
<!--l. 1089--><p class="indent" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
class="description">is the global dense matrix <span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmr-7">:</span><span
|
||||
class="cmmi-7">,</span><span
|
||||
class="cmr-7">:</span></sub>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">y</span> </dt><dd
|
||||
class="description">is the global dense matrix <span
|
||||
class="cmmi-10">y</span><sub><span
|
||||
class="cmr-7">:</span><span
|
||||
class="cmmi-7">,</span><span
|
||||
class="cmr-7">:</span></sub>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">T</span> </dt><dd
|
||||
class="description">is the global sparse block triangular submatrix <span
|
||||
class="cmmi-10">T</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">D</span> </dt><dd
|
||||
class="description">is the scaling diagonal matrix.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-49">
|
||||
call psb_spsm(alpha, t, x, beta, y, desc_a, info)
|
||||
 <br />call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
|
||||
 <br />             & trans, unit, choice, diag, work)
|
||||
</div>
|
||||
<!--l. 1101--><p class="nopar" >
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 1103--><p class="indent" > <a
|
||||
id="x31-6500213"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 1104--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-13" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-13-1g"><col
|
||||
id="TBL-13-1"><col
|
||||
id="TBL-13-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">T</span>, <span
|
||||
class="cmmi-10">x</span>, <span
|
||||
class="cmmi-10">y</span>, <span
|
||||
class="cmmi-10">D</span>, <span
|
||||
class="cmmi-10">α</span>, <span
|
||||
class="cmmi-10">β </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-13-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-2-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-2-2"
|
||||
class="td11">psb_spsm </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-3-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-3-2"
|
||||
class="td11">psb_spsm </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-4-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-13-4-2"
|
||||
class="td11">psb_spsm </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-5-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-13-5-2"
|
||||
class="td11">psb_spsm </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-13-6-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 13: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x31-6500213 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">alpha</span> </dt><dd
|
||||
class="description">the scalar <span
|
||||
class="cmmi-10">α</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x31-6500213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">t</span> </dt><dd
|
||||
class="description">the global portion of the sparse matrix <span
|
||||
class="cmmi-10">T</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object type specified in <span
|
||||
class="cmsy-10">§</span> <a
|
||||
href="userhtmlse3.html#x12-90003">3<!--tex4ht:ref: sec:datastruct --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x31-6500213">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">x </span>must be the same of <span
|
||||
class="cmmi-10">y</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">beta</span> </dt><dd
|
||||
class="description">the scalar <span
|
||||
class="cmmi-10">β</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a number of the data type indicated in Table <a
|
||||
href="#x31-6500213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">y</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x31-6500213">13<!--tex4ht:ref: tab:f90spsm --></a>. The
|
||||
rank of <span
|
||||
class="cmmi-10">y </span>must be the same of <span
|
||||
class="cmmi-10">x</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans</span> </dt><dd
|
||||
class="description">specify with <span
|
||||
class="cmti-10">unitd </span>the operation to perform.
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans = ’N’</span> </dt><dd
|
||||
class="description">the operation is with no transposed matrix
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans = ’T’</span> </dt><dd
|
||||
class="description">the operation is with transposed matrix.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans = ’C’</span> </dt><dd
|
||||
class="description">the operation is with conjugate transposed matrix.</dd></dl>
|
||||
<!--l. 1173--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: <span
|
||||
class="cmmi-10">trans </span>= <span
|
||||
class="cmmi-10">N</span><br
|
||||
class="newline" />Specified as: a character variable.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">unitd</span> </dt><dd
|
||||
class="description">specify with <span
|
||||
class="cmti-10">trans </span>the operation to perform.
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">unitd = ’U’</span> </dt><dd
|
||||
class="description">the operation is with no scaling
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">unitd = ’L’</span> </dt><dd
|
||||
class="description">the operation is with left scaling
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">unitd = ’R’</span> </dt><dd
|
||||
class="description">the operation is with right scaling.</dd></dl>
|
||||
<!--l. 1184--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: <span
|
||||
class="cmmi-10">unitd </span>= <span
|
||||
class="cmmi-10">U</span><br
|
||||
class="newline" />Specified as: a character variable.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">choice</span> </dt><dd
|
||||
class="description">specifies the update of overlap elements to be performed on exit:
|
||||
<dl class="description"><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_none_</span></span></span>
|
||||
</dd><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_sum_</span></span></span>
|
||||
</dd><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_avg_</span></span></span>
|
||||
</dd><dt class="description">
|
||||
</dt><dd
|
||||
class="description"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_square_root_</span></span></span></dd></dl>
|
||||
<!--l. 1197--><p class="noindent" >Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_avg_</span></span></span><br
|
||||
class="newline" />Specified as: an integer variable.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">diag</span> </dt><dd
|
||||
class="description">the diagonal scaling matrix.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: <span
|
||||
class="cmmi-10">diag</span>(1) = 1(<span
|
||||
class="cmmi-10">noscaling</span>)<br
|
||||
class="newline" />Specified as: a rank one array containing numbers of the type indicated in
|
||||
Table <a
|
||||
href="#x31-6500213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">work</span> </dt><dd
|
||||
class="description">a work array. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one array of the same type of <span
|
||||
class="cmmi-10">x </span>with the TARGET
|
||||
attribute.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">y</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: an array of rank one or two containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x31-6500213">13<!--tex4ht:ref: tab:f90spsm --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu21.html" >prev</a>] [<a
|
||||
href="userhtmlsu21.html#tailuserhtmlsu21.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu22.html" >front</a>] [<a
|
||||
href="userhtmlsu12.html#userhtmlsu24.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlsu22.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,832 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_halo — Halo Data Communication</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 11--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse6.html" >next</a>] [<a
|
||||
href="userhtmlsu21.html#tailuserhtmlsu23.html">tail</a>] [<a
|
||||
href="userhtmlsu25.html#userhtmlsu26.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">5.1 </span> <a
|
||||
id="x33-670005.1"></a>psb_halo — Halo Data Communication</h4>
|
||||
<!--l. 14--><p class="noindent" >These subroutines gathers the values of the halo elements:
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml24x.png" alt="x ← x
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 17--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
class="description">is a global dense submatrix.</dd></dl>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 23--><p class="indent" > <a
|
||||
id="x33-6700114"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 24--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-14" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-14-1g"><col
|
||||
id="TBL-14-1"><col
|
||||
id="TBL-14-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">α</span>, <span
|
||||
class="cmmi-10">x </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-14-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-2-1"
|
||||
class="td11">Integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-2-2"
|
||||
class="td11">psb_halo </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-3-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-3-2"
|
||||
class="td11">psb_halo </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-4-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-4-2"
|
||||
class="td11">psb_halo </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-5-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-14-5-2"
|
||||
class="td11">psb_halo </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-6-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-14-6-2"
|
||||
class="td11">psb_halo </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-14-7-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 14: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x33-6700114 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 40-->
|
||||
<div class="lstlisting" id="listing-5"><span class="label"><a
|
||||
id="x33-67002r1"></a></span><span
|
||||
class="cmbx-10">call</span> psb_halo(x, desc_a, info) <br /><span class="label"><a
|
||||
id="x33-67003r2"></a></span><span
|
||||
class="cmbx-10">call</span> psb_halo(x, desc_a, info, work, <span
|
||||
class="cmbx-10">data</span>)
|
||||
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">global dense matrix <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of type specified in Table <a
|
||||
href="#x33-6700114">14<!--tex4ht:ref: tab:f90halo --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">work</span> </dt><dd
|
||||
class="description">the work array. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one array of the same type of <span
|
||||
class="cmmi-10">x</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">data</span> </dt><dd
|
||||
class="description">index list selector.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional </span><br
|
||||
class="newline" />Specified
|
||||
as: an integer. Values:<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_halo_</span></span></span>,<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_mov_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_ext_</span></span></span>,
|
||||
default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_comm_halo_</span></span></span>. Chooses the index list on which to base the data
|
||||
exchange.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">global dense result matrix <span
|
||||
class="cmmi-10">x</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Returned as: a rank one or two array containing numbers of type specified
|
||||
in Table <a
|
||||
href="#x33-6700114">14<!--tex4ht:ref: tab:f90halo --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">the local portion of result submatrix <span
|
||||
class="cmmi-10">y</span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value that contains an error code.</dd></dl>
|
||||
<!--l. 87--><p class="noindent" ><hr class="figure"><div class="figure"
|
||||
><a
|
||||
id="x33-670047"></a>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 88--><p class="noindent" >
|
||||
<!--l. 90--><p class="noindent" ><img
|
||||
src="userhtml25x.png" alt="PIC" class="graphics" width="224" height="198" ><!--tex4ht:graphics
|
||||
name="userhtml25x.png" src="figures/try8x8.eps"
|
||||
--></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 7: </span><span
|
||||
class="content">Sample discretization mesh.</span></div><!--tex4ht:label?: x33-670047 -->
|
||||
<!--l. 96--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 98--><p class="noindent" ><span
|
||||
class="cmbx-12">Usage Example </span>Consider the discretization mesh depicted in fig. <a
|
||||
href="#x33-670047">7<!--tex4ht:ref: fig:try8x8 --></a>, partitioned
|
||||
among two processes as shown by the dashed line; the data distribution is such that
|
||||
each process will own 32 entries in the index space, with a halo made of 8 entries
|
||||
placed at local indices 33 through 40. If process 0 assigns an initial value of 1 to
|
||||
its entries in the <span
|
||||
class="cmmi-10">x </span>vector, and process 1 assigns a value of 2, then after
|
||||
a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_halo</span></span></span> the contents of the local vectors will be the following:
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 108--><p class="indent" > <hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 108--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-15" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-15-1g"><col
|
||||
id="TBL-15-1"><col
|
||||
id="TBL-15-2"><col
|
||||
id="TBL-15-3"><col
|
||||
id="TBL-15-4"><col
|
||||
id="TBL-15-5"><col
|
||||
id="TBL-15-6"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-1-"><td colspan="3" style="white-space:nowrap; text-align:right;" id="TBL-15-1-1"
|
||||
class="td11"> <div class="multicolumn" style="white-space:nowrap; text-align:center;"><span
|
||||
class="cmr-9">Process 0</span></div> </td><td colspan="3" style="white-space:nowrap; text-align:right;" id="TBL-15-1-4"
|
||||
class="td01"> <div class="multicolumn" style="white-space:nowrap; text-align:center;"><span
|
||||
class="cmr-9">Process 1</span></div>
|
||||
</td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-2-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">I</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-2-2"
|
||||
class="td11"><span
|
||||
class="cmr-9">GLOB(I)</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-2-3"
|
||||
class="td10"><span
|
||||
class="cmr-9">X(I)</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-2-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">I</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-2-5"
|
||||
class="td11"><span
|
||||
class="cmr-9">GLOB(I)</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-2-6"
|
||||
class="td11"><span
|
||||
class="cmr-9">X(I)</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-3-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-3-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-3-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-3-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">1</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-3-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">33</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-3-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-4-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-4-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-4-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-4-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">2</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-4-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">34</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-4-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-5-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">3</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-5-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">3</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-5-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-5-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">3</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-5-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">35</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-5-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-6-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">4</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-6-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">4</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-6-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-6-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">4</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-6-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">36</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-6-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-7-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">5</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-7-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">5</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-7-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-7-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">5</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-7-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">37</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-7-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-8-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">6</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-8-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">6</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-8-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-8-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">6</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-8-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">38</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-8-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-9-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-9-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">7</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-9-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">7</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-9-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-9-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">7</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-9-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">39</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-9-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-10-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-10-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">8</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-10-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">8</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-10-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-10-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">8</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-10-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">40</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-10-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-11-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-11-1"
|
||||
class="td11"> <span
|
||||
class="cmr-9">9</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-11-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">9</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-11-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-11-4"
|
||||
class="td01"> <span
|
||||
class="cmr-9">9</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-11-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">41</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-11-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-12-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-12-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">10</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-12-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">10</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-12-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-12-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">10</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-12-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">42</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-12-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-13-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-13-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">11</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-13-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">11</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-13-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-13-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">11</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-13-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">43</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-13-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-14-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-14-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">12</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-14-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">12</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-14-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-14-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">12</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-14-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">44</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-14-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-15-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-15-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">13</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-15-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">13</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-15-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-15-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">13</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-15-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">45</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-15-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-16-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-16-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">14</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-16-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">14</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-16-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-16-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">14</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-16-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">46</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-16-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-17-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-17-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">15</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-17-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">15</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-17-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-17-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">15</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-17-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">47</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-17-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-18-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-18-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">16</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-18-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">16</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-18-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-18-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">16</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-18-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">48</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-18-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-19-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-19-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">17</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-19-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">17</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-19-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-19-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">17</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-19-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">49</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-19-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-20-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-20-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">18</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-20-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">18</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-20-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-20-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">18</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-20-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">50</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-20-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-21-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-21-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">19</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-21-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">19</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-21-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-21-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">19</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-21-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">51</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-21-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-22-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-22-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">20</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-22-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">20</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-22-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-22-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">20</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-22-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">52</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-22-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-23-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-23-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">21</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-23-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">21</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-23-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-23-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">21</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-23-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">53</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-23-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-24-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-24-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">22</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-24-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">22</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-24-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-24-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">22</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-24-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">54</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-24-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-25-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-25-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">23</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-25-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">23</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-25-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-25-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">23</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-25-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">55</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-25-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-26-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-26-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">24</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-26-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">24</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-26-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-26-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">24</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-26-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">56</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-26-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-27-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-27-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">25</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-27-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">25</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-27-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-27-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">25</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-27-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">57</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-27-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-28-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-28-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">26</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-28-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">26</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-28-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-28-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">26</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-28-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">58</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-28-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-29-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-29-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">27</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-29-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">27</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-29-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-29-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">27</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-29-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">59</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-29-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-30-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-30-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">28</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-30-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">28</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-30-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-30-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">28</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-30-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">60</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-30-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-31-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-31-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">29</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-31-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">29</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-31-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-31-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">29</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-31-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">61</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-31-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-32-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-32-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">30</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-32-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">30</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-32-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-32-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">30</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-32-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">62</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-32-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-33-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-33-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">31</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-33-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">31</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-33-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-33-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">31</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-33-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">63</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-33-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-34-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-34-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">32</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-34-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">32</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-34-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">1.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-34-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">32</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-34-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">64</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-34-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">2.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-35-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-35-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">33</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-35-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">33</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-35-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-35-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">33</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-35-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">25</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-35-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-36-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-36-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">34</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-36-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">34</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-36-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-36-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">34</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-36-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">26</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-36-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-37-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-37-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">35</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-37-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">35</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-37-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-37-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">35</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-37-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">27</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-37-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-38-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-38-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">36</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-38-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">36</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-38-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-38-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">36</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-38-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">28</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-38-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-39-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-39-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">37</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-39-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">37</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-39-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-39-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">37</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-39-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">29</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-39-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-40-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-40-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">38</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-40-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">38</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-40-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-40-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">38</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-40-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">30</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-40-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-41-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-41-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">39</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-41-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">39</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-41-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-41-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">39</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-41-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">31</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-41-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-42-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-42-1"
|
||||
class="td11"><span
|
||||
class="cmr-9">40</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-42-2"
|
||||
class="td11"> <span
|
||||
class="cmr-9">40</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-42-3"
|
||||
class="td10"> <span
|
||||
class="cmr-9">2.0</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-42-4"
|
||||
class="td01"><span
|
||||
class="cmr-9">40</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-42-5"
|
||||
class="td11"> <span
|
||||
class="cmr-9">32</span></td><td style="white-space:nowrap; text-align:right;" id="TBL-15-42-6"
|
||||
class="td11"> <span
|
||||
class="cmr-9">1.0</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-43-"><td style="white-space:nowrap; text-align:right;" id="TBL-15-43-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 164--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlse6.html" >next</a>] [<a
|
||||
href="userhtmlsu23.html" >front</a>] [<a
|
||||
href="userhtmlsu25.html#userhtmlsu26.html" >up</a>] </p></div>
|
||||
<!--l. 164--><p class="indent" > <a
|
||||
id="tailuserhtmlsu23.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,225 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_gather — Gather Global Dense Matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 355--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu28.html" >next</a>] [<a
|
||||
href="userhtmlsu24.html" >prev</a>] [<a
|
||||
href="userhtmlsu24.html#tailuserhtmlsu24.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse5.html#tailuserhtmlsu25.html">tail</a>] [<a
|
||||
href="userhtmlsu25.html#userhtmlsu27.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">5.3 </span> <a
|
||||
id="x35-690005.3"></a>psb_gather — Gather Global Dense Matrix</h4>
|
||||
<!--l. 357--><p class="noindent" >These subroutines collect the portions of global dense matrix distributed over all
|
||||
process into one single array stored on one process.
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml28x.png" alt="glob-x ← collect(loc-xi)
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 361--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
class="description">is the global submatrix <span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmr-7">1:</span><span
|
||||
class="cmmi-7">m,</span><span
|
||||
class="cmr-7">1:</span><span
|
||||
class="cmmi-7">n</span></sub>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">loc</span>_<span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmmi-7">i</span></sub> </dt><dd
|
||||
class="description">is the local portion of global dense matrix on process <span
|
||||
class="cmmi-10">i</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">collect</span> </dt><dd
|
||||
class="description">is the collect function.</dd></dl>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 370--><p class="indent" > <a
|
||||
id="x35-6900116"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 371--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-18" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-18-1g"><col
|
||||
id="TBL-18-1"><col
|
||||
id="TBL-18-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmmi-10">,y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-18-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-2-1"
|
||||
class="td11">Integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-18-2-2"
|
||||
class="td11">psb_gather </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-3-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-18-3-2"
|
||||
class="td11">psb_gather </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-4-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-18-4-2"
|
||||
class="td11">psb_gather </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-5-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-18-5-2"
|
||||
class="td11">psb_gather </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-6-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-18-6-2"
|
||||
class="td11">psb_gather </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-18-7-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 16: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x35-6900116 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 387-->
|
||||
<div class="lstlisting" id="listing-7"><span class="label"><a
|
||||
id="x35-69002r1"></a></span><span
|
||||
class="cmbx-10">call</span> psb_gather(glob_x, loc_x, desc_a, info, root) <br /><span class="label"><a
|
||||
id="x35-69003r2"></a></span><span
|
||||
class="cmbx-10">call</span> psb_gather(glob_x, loc_x, desc_a, info, root)
|
||||
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">loc</span><span
|
||||
class="cmbx-10">_x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> indicated in Table <a
|
||||
href="#x35-6900116">16<!--tex4ht:ref: tab:gather --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">root</span> </dt><dd
|
||||
class="description">The process that holds the global copy. If <span
|
||||
class="cmmi-10">root </span>= <span
|
||||
class="cmsy-10">-</span>1 all the processes will
|
||||
have a copy of the global vector.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer variable <span
|
||||
class="cmsy-10">-</span>1 <span
|
||||
class="cmsy-10">≤ </span><span
|
||||
class="cmmi-10">root </span><span
|
||||
class="cmsy-10">≤ </span><span
|
||||
class="cmmi-10">np </span><span
|
||||
class="cmsy-10">- </span>1, default <span
|
||||
class="cmsy-10">-</span>1.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">glob</span><span
|
||||
class="cmbx-10">_x</span> </dt><dd
|
||||
class="description">The array where the local parts must be gathered.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array with the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ALLOCATABLE</span></span></span> attribute.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 456--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu28.html" >next</a>] [<a
|
||||
href="userhtmlsu24.html" >prev</a>] [<a
|
||||
href="userhtmlsu24.html#tailuserhtmlsu24.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu25.html" >front</a>] [<a
|
||||
href="userhtmlsu25.html#userhtmlsu27.html" >up</a>] </p></div>
|
||||
<!--l. 456--><p class="indent" > <a
|
||||
id="tailuserhtmlsu25.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,244 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_scatter — Scatter Global Dense Matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 456--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu25.html" >prev</a>] [<a
|
||||
href="userhtmlsu25.html#tailuserhtmlsu25.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu23.html#tailuserhtmlsu26.html">tail</a>] [<a
|
||||
href="userhtmlsu25.html#userhtmlsu28.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">5.4 </span> <a
|
||||
id="x36-700005.4"></a>psb_scatter — Scatter Global Dense Matrix</h4>
|
||||
<!--l. 458--><p class="noindent" >These subroutines scatters the portions of global dense matrix owned by a process to
|
||||
all the processes in the processes grid.
|
||||
<center class="par-math-display" >
|
||||
<img
|
||||
src="userhtml29x.png" alt="loc-xi ← scatter(glob-x)
|
||||
" class="par-math-display" ></center>
|
||||
<!--l. 461--><p class="nopar" > where:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
class="cmmi-10">x</span> </dt><dd
|
||||
class="description">is the global matrix <span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmr-7">1:</span><span
|
||||
class="cmmi-7">m,</span><span
|
||||
class="cmr-7">1:</span><span
|
||||
class="cmmi-7">n</span></sub>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">loc</span>_<span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmmi-7">i</span></sub> </dt><dd
|
||||
class="description">is the local portion of global dense matrix on process <span
|
||||
class="cmmi-10">i</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmmi-10">scatter</span> </dt><dd
|
||||
class="description">is the scatter function.</dd></dl>
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 470--><p class="indent" > <a
|
||||
id="x36-7000117"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 471--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-19" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-19-1g"><col
|
||||
id="TBL-19-1"><col
|
||||
id="TBL-19-2"></colgroup><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-1-1"
|
||||
class="td11"><span
|
||||
class="cmmi-10">x</span><sub><span
|
||||
class="cmmi-7">i</span></sub><span
|
||||
class="cmmi-10">,y </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-19-1-2"
|
||||
class="td11"><span
|
||||
class="cmbx-10">Subroutine</span></td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-2-1"
|
||||
class="td11">Integer </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-2-2"
|
||||
class="td11">psb_scatter </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-3-1"
|
||||
class="td11">Short Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-3-2"
|
||||
class="td11">psb_scatter </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-4-1"
|
||||
class="td11">Long Precision Real </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-4-2"
|
||||
class="td11">psb_scatter </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-5-1"
|
||||
class="td11">Short Precision Complex</td><td style="white-space:nowrap; text-align:left;" id="TBL-19-5-2"
|
||||
class="td11">psb_scatter </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-6-1"
|
||||
class="td11">Long Precision Complex </td><td style="white-space:nowrap; text-align:left;" id="TBL-19-6-2"
|
||||
class="td11">psb_scatter </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-19-7-1"
|
||||
class="td11"> </td></tr></table></div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 17: </span><span
|
||||
class="content">Data types</span></div><!--tex4ht:label?: x36-7000117 -->
|
||||
|
||||
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 487-->
|
||||
<div class="lstlisting" id="listing-8"><span class="label"><a
|
||||
id="x36-70002r1"></a></span><span
|
||||
class="cmbx-10">call</span> psb_scatter(glob_x, loc_x, desc_a, info, root, mold)
|
||||
|
||||
</div>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">glob</span><span
|
||||
class="cmbx-10">_x</span> </dt><dd
|
||||
class="description">The array that must be scattered into local pieces.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">contains data structures for communications.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">root</span> </dt><dd
|
||||
class="description">The process that holds the global copy. If <span
|
||||
class="cmmi-10">root </span>= <span
|
||||
class="cmsy-10">-</span>1 all the processes have
|
||||
a copy of the global vector.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer variable <span
|
||||
class="cmsy-10">-</span>1 <span
|
||||
class="cmsy-10">≤ </span><span
|
||||
class="cmmi-10">root </span><span
|
||||
class="cmsy-10">≤ </span><span
|
||||
class="cmmi-10">np </span><span
|
||||
class="cmsy-10">- </span>1, default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_root_</span></span></span>,
|
||||
i.e. process 0.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mold</span> </dt><dd
|
||||
class="description">The desired dynamic type for the internal vector storage.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of a class derived from <a
|
||||
id="vbasedata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_base</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>;
|
||||
this is only allowed when loc_x is of type <a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">loc</span><span
|
||||
class="cmbx-10">_x</span> </dt><dd
|
||||
class="description">the local portion of global dense matrix <span
|
||||
class="cmmi-10">glob</span>_<span
|
||||
class="cmmi-10">x</span>. <br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a rank one or two ALLOCATABLE array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a> containing numbers of the type indicated in Table <a
|
||||
href="#x36-7000117">17<!--tex4ht:ref: tab:scatter --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu25.html" >prev</a>] [<a
|
||||
href="userhtmlsu25.html#tailuserhtmlsu25.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu26.html" >front</a>] [<a
|
||||
href="userhtmlsu25.html#userhtmlsu28.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlsu26.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,419 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_cdall — Allocates a communication descriptor</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 8--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu31.html" >next</a>] [<a
|
||||
href="userhtmlsu25.html#tailuserhtmlsu27.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu30.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.1 </span> <a
|
||||
id="x38-720006.1"></a>psb_cdall — Allocates a communication descriptor</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-50">
|
||||
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
|
||||
 <br />call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
|
||||
 <br />call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.false.,lidx=lidx])
|
||||
 <br />call psb_cdall(icontxt, desc_a, info,nl=nl)
|
||||
 <br />call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
|
||||
</div>
|
||||
<!--l. 16--><p class="nopar" >
|
||||
<!--l. 18--><p class="indent" > This subroutine initializes the communication descriptor associated with an index
|
||||
space. One of the optional arguments <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">parts</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">nl</span></span></span> or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">repl</span></span></span> must be specified,
|
||||
thereby choosing the specific initialization strategy.
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">icontxt</span> </dt><dd
|
||||
class="description">the communication context.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">vg</span> </dt><dd
|
||||
class="description">Data allocation: each index <span
|
||||
class="cmmi-10">i </span><span
|
||||
class="cmsy-10">∈{</span>1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">mg</span><span
|
||||
class="cmsy-10">} </span>is allocated to process <span
|
||||
class="cmmi-10">vg</span>(<span
|
||||
class="cmmi-10">i</span>).<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">flag</span> </dt><dd
|
||||
class="description">Specifies whether entries in <span
|
||||
class="cmmi-10">vg </span>are zero- or one-based.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value 0<span
|
||||
class="cmmi-10">,</span>1, default 0.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mg</span> </dt><dd
|
||||
class="description">the (global) number of rows of the problem.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value. It is required if <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">parts</span></span></span> or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">repl</span></span></span> is specified,
|
||||
it is optional if <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span> is specified.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">parts</span> </dt><dd
|
||||
class="description">the subroutine that defines the partitioning scheme.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Specified as: a subroutine.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">vl</span> </dt><dd
|
||||
class="description">Data allocation: the set of global indices <span
|
||||
class="cmmi-10">vl</span>(1 : <span
|
||||
class="cmmi-10">nl</span>) belonging to the calling
|
||||
process. <br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nl</span> </dt><dd
|
||||
class="description">Data allocation: in a generalized block-row distribution the number of indices
|
||||
belonging to the current process. <br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value. May be specified together with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">repl</span> </dt><dd
|
||||
class="description">Data allocation: build a replicated index space (i.e. all processes own all
|
||||
indices).<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: the logical value <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">globalcheck</span> </dt><dd
|
||||
class="description">Data allocation: do global checks on the local index lists <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span><br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical value, default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.false.</span></span></span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">lidx</span> </dt><dd
|
||||
class="description">Data allocation: the set of local indices <span
|
||||
class="cmmi-10">lidx</span>(1 : <span
|
||||
class="cmmi-10">nl</span>) to be assigned to the
|
||||
global indices <span
|
||||
class="cmmi-10">vl</span>. <br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array.</dd></dl>
|
||||
<!--l. 86--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 100--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x38-72002x1">One of the optional arguments <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">parts</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">nl</span></span></span> or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">repl</span></span></span> must be specified,
|
||||
thereby choosing the initialization strategy as follows:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">parts</span> </dt><dd
|
||||
class="description">In this case we have a subroutine specifying the mapping between global
|
||||
indices and process/local index pairs. If this optional argument is
|
||||
specified, then it is mandatory to specify the argument <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">mg</span></span></span> as well. The
|
||||
subroutine must conform to the following interface:
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-51">
|
||||
  interface
|
||||
 <br />     subroutine psb_parts(glob_index,mg,np,pv,nv)
|
||||
 <br />       integer, intent (in)  :: glob_index,np,mg
|
||||
 <br />       integer, intent (out) :: nv, pv(*)
|
||||
 <br />     end subroutine psb_parts
|
||||
 <br />  end interface
|
||||
</div>
|
||||
<!--l. 118--><p class="nopar" > The input arguments are:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">glob</span><span
|
||||
class="cmbx-10">_index</span> </dt><dd
|
||||
class="description">The global index to be mapped;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">np</span> </dt><dd
|
||||
class="description">The number of processes in the mapping;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mg</span> </dt><dd
|
||||
class="description">The total number of global rows in the mapping;</dd></dl>
|
||||
<!--l. 125--><p class="noindent" >The output arguments are:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nv</span> </dt><dd
|
||||
class="description">The number of entries in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">pv</span></span></span>;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">pv</span> </dt><dd
|
||||
class="description">A vector containing the indices of the processes to which the
|
||||
global index should be assigend; each entry must satisfy 0 <span
|
||||
class="cmsy-10">≤</span>
|
||||
<span
|
||||
class="cmmi-10">pv</span>(<span
|
||||
class="cmmi-10">i</span>) <span
|
||||
class="cmmi-10">< np</span>; if <span
|
||||
class="cmmi-10">nv > </span>1 we have an index assigned to multiple
|
||||
processes, i.e. we have an overlap among the subdomains.</dd></dl>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">vg</span> </dt><dd
|
||||
class="description">In this case the association between an index and a process is specified via
|
||||
an integer vector <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg(1:mg)</span></span></span>; each index <span
|
||||
class="cmmi-10">i </span><span
|
||||
class="cmsy-10">∈{</span>1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">mg</span><span
|
||||
class="cmsy-10">} </span>is assigned to process
|
||||
<span
|
||||
class="cmmi-10">vg</span>(<span
|
||||
class="cmmi-10">i</span>). The vector <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span> must be identical on all calling processes; its
|
||||
entries may have the ranges (0<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">np </span><span
|
||||
class="cmsy-10">- </span>1) or (1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">np</span>) according to the
|
||||
value of <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">flag</span></span></span>. The size <span
|
||||
class="cmmi-10">mg </span>may be specified via the optional
|
||||
argument <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">mg</span></span></span>; the default is to use the entire vector <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span>, thus having
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">mg=size(vg)</span></span></span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">vl</span> </dt><dd
|
||||
class="description">In this case we are specifying the list of indices <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl(1:nl)</span></span></span> assigned to the
|
||||
current process; thus, the global problem size <span
|
||||
class="cmmi-10">mg </span>is given by the range of
|
||||
the aggregate of the individual vectors <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span> specified in the calling
|
||||
processes. The size may be specified via the optional argument <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">nl</span></span></span>; the
|
||||
default is to use the entire vector <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span>, thus having <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">nl=size(vl)</span></span></span>. If
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">globalcheck=.true.</span></span></span> the subroutine will check how many times each
|
||||
entry in the global index space (1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">mg</span>) is specified in the input lists <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span>,
|
||||
thus allowing for the presence of overlap in the input, and checking for
|
||||
“orphan” indices. If <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">globalcheck=.false.</span></span></span>, the subroutine will not
|
||||
check for overlap, and may be significantly faster, but the user is
|
||||
implicitly guaranteeing that there are neither orphan nor overlap
|
||||
indices.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">lidx</span> </dt><dd
|
||||
class="description">The optional argument <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">lidx</span></span></span> is available for those cases in which the user
|
||||
has already established a global-to-local mapping; if it is specified, each
|
||||
index in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl(i)</span></span></span> will be mapped to the corresponding local index <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">lidx(i)</span></span></span>.
|
||||
When specifying the argument <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">lidx</span></span></span> the user would also likely employ
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">lidx</span></span></span> in calls to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdins</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">local</span></span></span> in calls to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span> and
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geins</span></span></span>; see also sec. <a
|
||||
href="userhtmlsu3.html#x9-70002.3.1">2.3.1<!--tex4ht:ref: sec:usermaps --></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nl</span> </dt><dd
|
||||
class="description">If this argument is specified alone (i.e. without <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span>) the result is a
|
||||
generalized row-block distribution in which each process <span
|
||||
class="cmmi-10">I </span>gets assigned a
|
||||
consecutive chunk of <span
|
||||
class="cmmi-10">N</span><sub><span
|
||||
class="cmmi-7">I</span></sub> = <span
|
||||
class="cmmi-10">nl </span>global indices.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">repl</span> </dt><dd
|
||||
class="description">This arguments specifies to replicate all indices on all processes. This is a
|
||||
special purpose data allocation that is useful in the construction of some
|
||||
multilevel preconditioners.</dd></dl>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x38-72004x2">On exit from this routine the descriptor is in the build state.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x38-72006x3">Calling the routine with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span> or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">parts</span></span></span> implies that every process will scan the
|
||||
entire index space to figure out the local indices.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x38-72008x4">Overlapped indices are possible with both <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">parts</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span> invocations.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x38-72010x5">When the subroutine is invoked with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span> in conjunction with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">globalcheck=.true.</span></span></span>,
|
||||
it will perform a scan of the index space to search for overlap or orphan
|
||||
indices.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x38-72012x6">When the subroutine is invoked with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span> in conjunction with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">globalcheck=.false.</span></span></span>,
|
||||
no index space scan will take place. Thus it is the responsibility of the user to
|
||||
make sure that the indices specified in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl</span></span></span> have neither orphans nor overlaps; if
|
||||
this assumption fails, results will be unpredictable.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x38-72014x7">Orphan and overlap indices are impossible by construction when the subroutine
|
||||
is invoked with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">nl</span></span></span> (alone), or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vg</span></span></span>.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 198--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu31.html" >next</a>] [<a
|
||||
href="userhtmlsu27.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu30.html" >up</a>] </p></div>
|
||||
<!--l. 198--><p class="indent" > <a
|
||||
id="tailuserhtmlsu27.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,206 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_cdins — Communication descriptor insert routine</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 199--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu32.html" >next</a>] [<a
|
||||
href="userhtmlsu27.html" >prev</a>] [<a
|
||||
href="userhtmlsu27.html#tailuserhtmlsu27.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu26.html#tailuserhtmlsu28.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu31.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.2 </span> <a
|
||||
id="x39-730006.2"></a>psb_cdins — Communication descriptor insert routine</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-52">
|
||||
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
|
||||
 <br />call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
|
||||
</div>
|
||||
<!--l. 204--><p class="nopar" >
|
||||
<!--l. 206--><p class="indent" > This subroutine examines the edges of the graph associated with the
|
||||
discretization mesh (and isomorphic to the sparsity pattern of a linear system
|
||||
coefficient matrix), storing them as necessary into the communication descriptor. In
|
||||
the first form the edges are specified as pairs of indices <span
|
||||
class="cmmi-10">ia</span>(<span
|
||||
class="cmmi-10">i</span>)<span
|
||||
class="cmmi-10">,ja</span>(<span
|
||||
class="cmmi-10">i</span>); the starting index
|
||||
<span
|
||||
class="cmmi-10">ia</span>(<span
|
||||
class="cmmi-10">i</span>) should belong to the current process. In the second form only the remote indices
|
||||
<span
|
||||
class="cmmi-10">ja</span>(<span
|
||||
class="cmmi-10">i</span>) are specified.
|
||||
<!--l. 214--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nz</span> </dt><dd
|
||||
class="description">the number of points being inserted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">ia</span> </dt><dd
|
||||
class="description">the indices of the starting vertex of the edges being inserted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array of length <span
|
||||
class="cmmi-10">nz</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">ja</span> </dt><dd
|
||||
class="description">the indices of the end vertex of the edges being inserted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array of length <span
|
||||
class="cmmi-10">nz</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mask</span> </dt><dd
|
||||
class="description">Mask entries in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ja</span></span></span>, they are inserted only when the corresponding <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">mask</span></span></span>
|
||||
entries are <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span><br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a logical array of length <span
|
||||
class="cmmi-10">nz</span>, default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">lidx</span> </dt><dd
|
||||
class="description">User defined local indices for <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ja</span></span></span>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array of length <span
|
||||
class="cmmi-10">nz</span>.</dd></dl>
|
||||
<!--l. 253--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the updated communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">ila</span> </dt><dd
|
||||
class="description">the local indices of the starting vertex of the edges being inserted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: an integer array of length <span
|
||||
class="cmmi-10">nz</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">jla</span> </dt><dd
|
||||
class="description">the local indices of the end vertex of the edges being inserted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: an integer array of length <span
|
||||
class="cmmi-10">nz</span>.
|
||||
</dd></dl>
|
||||
<!--l. 277--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x39-73002x1">This routine may only be called if the descriptor is in the build state;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x39-73004x2">This routine automatically ignores edges that do not insist on the current
|
||||
process, i.e. edges for which neither the starting nor the end vertex belong
|
||||
to the current process.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x39-73006x3">The second form of this routine will be useful when dealing with
|
||||
user-specified index mappings; see also <a
|
||||
href="userhtmlsu3.html#x9-70002.3.1">2.3.1<!--tex4ht:ref: sec:usermaps --></a>.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 293--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu32.html" >next</a>] [<a
|
||||
href="userhtmlsu27.html" >prev</a>] [<a
|
||||
href="userhtmlsu27.html#tailuserhtmlsu27.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu28.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu31.html" >up</a>] </p></div>
|
||||
<!--l. 293--><p class="indent" > <a
|
||||
id="tailuserhtmlsu28.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_cdasb — Communication descriptor assembly routine</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 294--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu33.html" >next</a>] [<a
|
||||
href="userhtmlsu28.html" >prev</a>] [<a
|
||||
href="userhtmlsu28.html#tailuserhtmlsu28.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse6.html#tailuserhtmlsu29.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu32.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.3 </span> <a
|
||||
id="x40-740006.3"></a>psb_cdasb — Communication descriptor assembly routine</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-53">
|
||||
call psb_cdasb(desc_a, info [, mold])
|
||||
</div>
|
||||
<!--l. 298--><p class="nopar" >
|
||||
<!--l. 300--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mold</span> </dt><dd
|
||||
class="description">The desired dynamic type for the internal index storage.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a object of type derived from (integer)
|
||||
<a
|
||||
id="vbasedata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_base</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 315--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 329--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x40-74002x1">On exit from this routine the descriptor is in the assembled state.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 340--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu33.html" >next</a>] [<a
|
||||
href="userhtmlsu28.html" >prev</a>] [<a
|
||||
href="userhtmlsu28.html#tailuserhtmlsu28.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu29.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu32.html" >up</a>] </p></div>
|
||||
<!--l. 340--><p class="indent" > <a
|
||||
id="tailuserhtmlsu29.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,282 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Application structure</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 298--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu6.html" >next</a>] [<a
|
||||
href="userhtmlsu2.html" >prev</a>] [<a
|
||||
href="userhtmlsu2.html#tailuserhtmlsu2.html" >prev-tail</a>] [<a
|
||||
href="#tailuserhtmlsu3.html">tail</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlse3.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">2.3 </span> <a
|
||||
id="x9-60002.3"></a>Application structure</h4>
|
||||
<!--l. 301--><p class="noindent" >The main underlying principle of the PSBLAS library is that the library objects are
|
||||
created and exist with reference to a discretized space to which there corresponds
|
||||
an index space and a matrix sparsity pattern. As an example, consider a
|
||||
cell-centered finite-volume discretization of the Navier-Stokes equations on a
|
||||
simulation domain; the index space 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n </span>is isomorphic to the set of cell centers,
|
||||
whereas the pattern of the associated linear system matrix is isomorphic to the
|
||||
adjacency graph imposed on the discretization mesh by the discretization
|
||||
stencil.
|
||||
<!--l. 311--><p class="indent" > Thus the first order of business is to establish an index space, and this is done
|
||||
with a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdall</span></span></span> in which we specify the size of the index space <span
|
||||
class="cmmi-10">n </span>and the
|
||||
allocation of the elements of the index space to the various processes making up the
|
||||
MPI (virtual) parallel machine.
|
||||
<!--l. 317--><p class="indent" > The index space is partitioned among processes, and this creates a mapping from
|
||||
the “global” numbering 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n </span>to a numbering “local” to each process; each process <span
|
||||
class="cmmi-10">i</span>
|
||||
will own a certain subset 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n</span><sub>row<sub><span
|
||||
class="cmmi-5">i</span></sub></sub>, each element of which corresponds to a certain
|
||||
element of 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n</span>. The user does not set explicitly this mapping; when the application
|
||||
needs to indicate to which element of the index space a certain item is related,
|
||||
such as the row and column index of a matrix coefficient, it does so in the
|
||||
“global” numbering, and the library will translate into the appropriate “local”
|
||||
numbering.
|
||||
<!--l. 327--><p class="indent" > For a given index space 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n </span>there are many possible associated topologies, i.e.
|
||||
many different discretization stencils; thus the description of the index space is not
|
||||
completed until the user has defined a sparsity pattern, either explicitly through
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdins</span></span></span> or implicitly through <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span>. The descriptor is finalized with a call to
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span> and a sparse matrix with a call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spasb</span></span></span>. After <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span> each
|
||||
process <span
|
||||
class="cmmi-10">i </span>will have defined a set of “halo” (or “ghost”) indices <span
|
||||
class="cmmi-10">n</span><sub>row<sub><span
|
||||
class="cmmi-5">i</span></sub></sub> + 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n</span><sub>col<sub>
|
||||
<span
|
||||
class="cmmi-5">i</span></sub></sub>,
|
||||
denoting elements of the index space that are <span
|
||||
class="cmti-10">not </span>assigned to process <span
|
||||
class="cmmi-10">i</span>; however the
|
||||
variables associated with them are needed to complete computations associated with
|
||||
the sparse matrix <span
|
||||
class="cmmi-10">A</span>, and thus they have to be fetched from (neighbouring)
|
||||
processes. The descriptor of the index space is built exactly for the purpose
|
||||
of properly sequencing the communication steps required to achieve this
|
||||
objective.
|
||||
<!--l. 343--><p class="indent" > A simple application structure will walk through the index space allocation,
|
||||
matrix/vector creation and linear system solution as follows:
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x9-6002x1">Initialize parallel environment with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_init</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6004x2">Initialize index space with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdall</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6006x3">Allocate sparse matrix and dense vectors with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spall</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geall</span></span></span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6008x4">Loop over all local rows, generate matrix and vector entries, and insert
|
||||
them with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geins</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6010x5">Assemble the various entities:
|
||||
<ol class="enumerate2" >
|
||||
<li
|
||||
class="enumerate" id="x9-6012x1"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6014x2"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spasb</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6016x3"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geasb</span></span></span></li></ol>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6018x6">Choose the preconditioner to be used with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">prec%init</span></span></span> and build it with
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">prec%build</span></span></span><span class="footnote-mark"><a
|
||||
href="userhtml10.html#fn3x0"><sup class="textsuperscript">3</sup></a></span><a
|
||||
id="x9-6019f3"></a> .
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6021x7">Call the iterative method of choice, e.g. <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_bicgstab</span></span></span></li></ol>
|
||||
<!--l. 365--><p class="noindent" >This is the structure of the sample program <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">test/pargen/psb_d_pde3d.f90</span></span></span>.
|
||||
<!--l. 368--><p class="indent" > For a simulation in which the same discretization mesh is used over multiple time
|
||||
steps, the following structure may be more appropriate:
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x9-6023x1">Initialize parallel environment with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_init</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6025x2">Initialize index space with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdall</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6027x3">Loop over the topology of the discretization mesh and build the descriptor
|
||||
with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdins</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6029x4">Assemble the descriptor with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6031x5">Allocate the sparse matrices and dense vectors with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spall</span></span></span> and
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geall</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6033x6">Loop over the time steps:
|
||||
<ol class="enumerate2" >
|
||||
<li
|
||||
class="enumerate" id="x9-6035x1">If after first time step, reinitialize the sparse matrix with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_sprn</span></span></span>;
|
||||
also zero out the dense vectors;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6037x2">Loop over the mesh, generate the coefficients and insert/update them
|
||||
with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geins</span></span></span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6039x3">Assemble with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spasb</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geasb</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6041x4">Choose and build preconditioner with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">prec%init</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">prec%build</span></span></span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-6043x5">Call the iterative method of choice, e.g. <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_bicgstab</span></span></span></li></ol>
|
||||
</li></ol>
|
||||
<!--l. 391--><p class="noindent" >The insertion routines will be called as many times as needed; they only need to be
|
||||
called on the data that is actually allocated to the current process, i.e. each process
|
||||
generates its own data.
|
||||
<!--l. 396--><p class="indent" > In principle there is no specific order in the calls to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span>, nor is there a
|
||||
requirement to build a matrix row in its entirety before calling the routine; this
|
||||
allows the application programmer to walk through the discretization mesh element
|
||||
by element, generating the main part of a given matrix row but also contributions to
|
||||
the rows corresponding to neighbouring elements.
|
||||
<!--l. 403--><p class="indent" > From a functional point of view it is even possible to execute one call for each
|
||||
nonzero coefficient; however this would have a substantial computational
|
||||
overhead. It is therefore advisable to pack a certain amount of data into each
|
||||
call to the insertion routine, say touching on a few tens of rows; the best
|
||||
performng value would depend on both the architecture of the computer being
|
||||
used and on the problem structure. At the opposite extreme, it would be
|
||||
possible to generate the entire part of a coefficient matrix residing on a
|
||||
process and pass it in a single call to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span>; this, however, would entail a
|
||||
doubling of memory occupation, and thus would be almost always far from
|
||||
optimal.
|
||||
<!--l. 416--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark">2.3.1 </span> <a
|
||||
id="x9-70002.3.1"></a>User-defined index mappings</h5>
|
||||
<!--l. 418--><p class="noindent" >PSBLAS supports user-defined global to local index mappings, subject to the
|
||||
constraints outlined in sec. <a
|
||||
href="#x9-60002.3">2.3<!--tex4ht:ref: sec:appstruct --></a>:
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x9-7002x1">The set of indices owned locally must be mapped to the set 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n</span><sub>row<sub><span
|
||||
class="cmmi-5">i</span></sub></sub>;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-7004x2">The set of halo points must be mapped to the set <span
|
||||
class="cmmi-10">n</span><sub>row<sub><span
|
||||
class="cmmi-5">i</span></sub></sub> + 1<span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">n</span><sub>col<sub>
|
||||
<span
|
||||
class="cmmi-5">i</span></sub></sub>;</li></ol>
|
||||
<!--l. 426--><p class="noindent" >but otherwise the mapping is arbitrary. The user application is responsible to ensure
|
||||
consistency of this mapping; some errors may be caught by the library, but
|
||||
this is not guaranteed. The application structure to support this usage is as
|
||||
follows:
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x9-7006x1">Initialize index
|
||||
space with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdall(ictx,desc,info,vl=vl,lidx=lidx)</span></span></span> passing the
|
||||
vectors <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">vl(:)</span></span></span> containing the set of global indices owned by the current
|
||||
process and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">lidx(:)</span></span></span> containing the corresponding local indices;
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-7008x2">Add the halo points <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ja(:)</span></span></span> and their associated local indices <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">lidx(:)</span></span></span> with
|
||||
a(some) call(s) to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdins(nz,ja,desc,info,lidx=lidx)</span></span></span>;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-7010x3">Assemble the descriptor with <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span>;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x9-7012x4">Build the sparse matrices and vectors, optionally making use in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span>
|
||||
and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_geins</span></span></span> of the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">local</span></span></span> argument specifying that the indices in <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ia</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ja</span></span></span> and <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">irw</span></span></span>, respectively, are already local indices.</li></ol>
|
||||
|
||||
|
||||
|
||||
<!--l. 448--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu6.html" >next</a>] [<a
|
||||
href="userhtmlsu2.html" >prev</a>] [<a
|
||||
href="userhtmlsu2.html#tailuserhtmlsu2.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu3.html" >front</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlse3.html" >up</a>] </p></div>
|
||||
<!--l. 448--><p class="indent" > <a
|
||||
id="tailuserhtmlsu3.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,100 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_cdcpy — Copies a communication descriptor</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 340--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu34.html" >next</a>] [<a
|
||||
href="userhtmlsu29.html" >prev</a>] [<a
|
||||
href="userhtmlsu29.html#tailuserhtmlsu29.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu27.html#tailuserhtmlsu30.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu33.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.4 </span> <a
|
||||
id="x41-750006.4"></a>psb_cdcpy — Copies a communication descriptor</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-54">
|
||||
call psb_cdcpy(desc_in, desc_out, info)
|
||||
</div>
|
||||
<!--l. 344--><p class="nopar" >
|
||||
<!--l. 346--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_in</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd></dl>
|
||||
<!--l. 357--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_out</span> </dt><dd
|
||||
class="description">the communication descriptor copy.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 375--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu34.html" >next</a>] [<a
|
||||
href="userhtmlsu29.html" >prev</a>] [<a
|
||||
href="userhtmlsu29.html#tailuserhtmlsu29.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu30.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu33.html" >up</a>] </p></div>
|
||||
<!--l. 375--><p class="indent" > <a
|
||||
id="tailuserhtmlsu30.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,83 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_cdfree — Frees a communication descriptor</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 375--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu35.html" >next</a>] [<a
|
||||
href="userhtmlsu30.html" >prev</a>] [<a
|
||||
href="userhtmlsu30.html#tailuserhtmlsu30.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu28.html#tailuserhtmlsu31.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu34.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.5 </span> <a
|
||||
id="x42-760006.5"></a>psb_cdfree — Frees a communication descriptor</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-55">
|
||||
call psb_cdfree(desc_a, info)
|
||||
</div>
|
||||
<!--l. 379--><p class="nopar" >
|
||||
<!--l. 381--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor to be freed.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 391--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 405--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu35.html" >next</a>] [<a
|
||||
href="userhtmlsu30.html" >prev</a>] [<a
|
||||
href="userhtmlsu30.html#tailuserhtmlsu30.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu31.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu34.html" >up</a>] </p></div>
|
||||
<!--l. 405--><p class="indent" > <a
|
||||
id="tailuserhtmlsu31.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,163 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_cdbldext — Build an extended communication descriptor</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 406--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu36.html" >next</a>] [<a
|
||||
href="userhtmlsu31.html" >prev</a>] [<a
|
||||
href="userhtmlsu31.html#tailuserhtmlsu31.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu29.html#tailuserhtmlsu32.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu35.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.6 </span> <a
|
||||
id="x43-770006.6"></a>psb_cdbldext — Build an extended communication descriptor</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-56">
|
||||
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
|
||||
</div>
|
||||
<!--l. 410--><p class="nopar" >
|
||||
<!--l. 412--><p class="indent" > This subroutine builds an extended communication descriptor, based on the input
|
||||
descriptor <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">desc_a</span></span></span> and on the stencil specified through the input sparse matrix
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">a</span></span></span>.
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">A sparse matrix Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data type.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nl</span> </dt><dd
|
||||
class="description">the number of additional layers desired.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value <span
|
||||
class="cmmi-10">nl </span><span
|
||||
class="cmsy-10">≥ </span>0.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">extype</span> </dt><dd
|
||||
class="description">the kind of estension required.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional </span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ovt_xhal_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ovt_asov_</span></span></span>, default:
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ovt_xhal_</span></span></span>
|
||||
</dd></dl>
|
||||
<!--l. 442--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_out</span> </dt><dd
|
||||
class="description">the extended communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 456--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x43-77002x1">Specifying <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ovt_xhal_</span></span></span> for the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">extype</span></span></span> argument the user will obtain a
|
||||
descriptor for a domain partition in which the additional layers are fetched
|
||||
as part of an (extended) halo; however the index-to-process mapping is
|
||||
identical to that of the base descriptor;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x43-77004x2">Specifying <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_ovt_asov_</span></span></span> for the <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">extype</span></span></span> argument the user will obtain
|
||||
a descriptor with an overlapped decomposition: the additional layer is
|
||||
aggregated to the local subdomain (and thus is an overlap), and a new
|
||||
halo extending beyond the last additional layer is formed.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 539--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu36.html" >next</a>] [<a
|
||||
href="userhtmlsu31.html" >prev</a>] [<a
|
||||
href="userhtmlsu31.html#tailuserhtmlsu31.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu32.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu35.html" >up</a>] </p></div>
|
||||
<!--l. 539--><p class="indent" > <a
|
||||
id="tailuserhtmlsu32.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,128 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_spall — Allocates a sparse matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 539--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu37.html" >next</a>] [<a
|
||||
href="userhtmlsu32.html" >prev</a>] [<a
|
||||
href="userhtmlsu32.html#tailuserhtmlsu32.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu30.html#tailuserhtmlsu33.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu36.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.7 </span> <a
|
||||
id="x44-780006.7"></a>psb_spall — Allocates a sparse matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-57">
|
||||
call psb_spall(a, desc_a, info, nnz)
|
||||
</div>
|
||||
<!--l. 543--><p class="nopar" >
|
||||
<!--l. 545--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nnz</span> </dt><dd
|
||||
class="description">An estimate of the number of nonzeroes in the local part of the assembled
|
||||
matrix.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value.</dd></dl>
|
||||
<!--l. 561--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the matrix to be allocated.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span><br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 574--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x44-78002x1">On exit from this routine the sparse matrix is in the build state.
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x44-78004x2">The descriptor may be in either the build or assembled state.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x44-78006x3">Providing a good estimate for the number of nonzeroes <span
|
||||
class="cmmi-10">nnz </span>in the
|
||||
assembled matrix may substantially improve performance in the matrix
|
||||
build phase, as it will reduce or eliminate the need for (potentially
|
||||
multiple) data reallocations.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 590--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu37.html" >next</a>] [<a
|
||||
href="userhtmlsu32.html" >prev</a>] [<a
|
||||
href="userhtmlsu32.html#tailuserhtmlsu32.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu33.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu36.html" >up</a>] </p></div>
|
||||
<!--l. 590--><p class="indent" > <a
|
||||
id="tailuserhtmlsu33.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,311 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_spins — Insert a set of coefficients into a sparse matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 591--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu38.html" >next</a>] [<a
|
||||
href="userhtmlsu33.html" >prev</a>] [<a
|
||||
href="userhtmlsu33.html#tailuserhtmlsu33.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu31.html#tailuserhtmlsu34.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu37.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.8 </span> <a
|
||||
id="x45-790006.8"></a>psb_spins — Insert a set of coefficients into a sparse matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-58">
|
||||
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
|
||||
 <br />call psb_spins(nr, irp, ja, val, irw, a, desc_a, info [,local])
|
||||
</div>
|
||||
<!--l. 596--><p class="nopar" >
|
||||
<!--l. 598--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nz</span> </dt><dd
|
||||
class="description">the number of coefficients to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer scalar.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">nr</span> </dt><dd
|
||||
class="description">the number of rows to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer scalar.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">ia</span> </dt><dd
|
||||
class="description">the row indices of the coefficients to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array of size <span
|
||||
class="cmmi-10">nz</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">irp</span> </dt><dd
|
||||
class="description">the row pointers of the coefficients to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array of size <span
|
||||
class="cmmi-10">nr </span>+ 1.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">ja</span> </dt><dd
|
||||
class="description">the column indices of the coefficients to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array of size <span
|
||||
class="cmmi-10">nz</span>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">val</span> </dt><dd
|
||||
class="description">the coefficients to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an array of size <span
|
||||
class="cmmi-10">nz</span>. Must be of the same type and kind of
|
||||
the coefficients of the sparse matrix <span
|
||||
class="cmmi-10">a</span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">irw</span> </dt><dd
|
||||
class="description">the row index displacement.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer scalar.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">The communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>. <br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a variable of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">local</span> </dt><dd
|
||||
class="description">Whether the entries in the indices vectors <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ia</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">ja</span></span></span> are already in local
|
||||
numbering. <br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Specified as: a logical value; default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.false.</span></span></span>.
|
||||
</dd></dl>
|
||||
<!--l. 658--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the matrix into which coefficients will be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span><br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">The communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>. <br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a variable of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.<br
|
||||
class="newline" />
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 677--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x45-79002x1">On entry to this routine the descriptor may be in either the build or
|
||||
assembled state.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79004x2">On entry to this routine the sparse matrix may be in either the build or
|
||||
update state.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79006x3">If the descriptor is in the build state, then the sparse matrix must also be
|
||||
in the build state; the action of the routine is to (implicitly) call <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdins</span></span></span>
|
||||
to add entries to the sparsity pattern; each sparse matrix entry implicitly
|
||||
defines a graph edge, that is passed to the descriptor routine for the
|
||||
appropriate processing;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79008x4">The input data can be passed in either COO or CSR formats;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79010x5">In COO format the coefficients to be inserted are represented by the
|
||||
ordered triples <span
|
||||
class="cmmi-10">ia</span>(<span
|
||||
class="cmmi-10">i</span>)<span
|
||||
class="cmmi-10">,ja</span>(<span
|
||||
class="cmmi-10">i</span>)<span
|
||||
class="cmmi-10">,val</span>(<span
|
||||
class="cmmi-10">i</span>), for <span
|
||||
class="cmmi-10">i </span>= 1<span
|
||||
class="cmmi-10">,</span><span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">,nz</span>; these triples should
|
||||
belong to the current process, i.e. <span
|
||||
class="cmmi-10">ia</span>(<span
|
||||
class="cmmi-10">i</span>) should be one of the local indices,
|
||||
but are otherwise arbitrary;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79012x6">In CSR format the coefficients to be inserted for each input row <span
|
||||
class="cmmi-10">i </span>= 1<span
|
||||
class="cmmi-10">,nr</span>
|
||||
are represented by the ordered triples (<span
|
||||
class="cmmi-10">i </span>+ <span
|
||||
class="cmmi-10">irw </span><span
|
||||
class="cmsy-10">- </span>1)<span
|
||||
class="cmmi-10">,ja</span>(<span
|
||||
class="cmmi-10">j</span>)<span
|
||||
class="cmmi-10">,val</span>(<span
|
||||
class="cmmi-10">j</span>), for
|
||||
<span
|
||||
class="cmmi-10">j </span>= <span
|
||||
class="cmmi-10">irp</span>(<span
|
||||
class="cmmi-10">i</span>)<span
|
||||
class="cmmi-10">,</span><span
|
||||
class="cmmi-10">…</span><span
|
||||
class="cmmi-10">,irp</span>(<span
|
||||
class="cmmi-10">i </span>+ 1) <span
|
||||
class="cmsy-10">- </span>1; these triples should belong to the current
|
||||
process, i.e. <span
|
||||
class="cmmi-10">i</span>+<span
|
||||
class="cmmi-10">irw</span><span
|
||||
class="cmsy-10">-</span>1 should be one of the local indices, but are otherwise
|
||||
arbitrary;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79014x7">There is no requirement that a given row must be passed in its entirety
|
||||
to a single call to this routine: the buildup of a row may be split into as
|
||||
many calls as desired (even in the CSR format);
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79016x8">Coefficients from different rows may also be mixed up freely in a single
|
||||
call, according to the application needs;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79018x9">Any coefficients from matrix rows not owned by the calling process are
|
||||
silently ignored;
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79020x10">If the descriptor is in the assembled state, then any entries in the sparse
|
||||
matrix that would generate additional communication requirements are
|
||||
ignored;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x45-79022x11">If the matrix is in the update state, any entries in positions that were not
|
||||
present in the original matrix are ignored.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 716--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu38.html" >next</a>] [<a
|
||||
href="userhtmlsu33.html" >prev</a>] [<a
|
||||
href="userhtmlsu33.html#tailuserhtmlsu33.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu34.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu37.html" >up</a>] </p></div>
|
||||
<!--l. 716--><p class="indent" > <a
|
||||
id="tailuserhtmlsu34.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_spasb — Sparse matrix assembly routine</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 716--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu39.html" >next</a>] [<a
|
||||
href="userhtmlsu34.html" >prev</a>] [<a
|
||||
href="userhtmlsu34.html#tailuserhtmlsu34.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu32.html#tailuserhtmlsu35.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu38.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.9 </span> <a
|
||||
id="x46-800006.9"></a>psb_spasb — Sparse matrix assembly routine</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-59">
|
||||
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
|
||||
</div>
|
||||
<!--l. 720--><p class="nopar" >
|
||||
<!--l. 722--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">afmt</span> </dt><dd
|
||||
class="description">the storage format for the sparse matrix.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an array of characters. Defalt: ’CSR’.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">upd</span> </dt><dd
|
||||
class="description">Provide for updates to the matrix coefficients.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: integer, possible values: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_upd_srch_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_upd_perm_</span></span></span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">dupl</span> </dt><dd
|
||||
class="description">How to handle duplicate coefficients.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: integer, possible values: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_dupl_ovwrt_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_dupl_add_</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_dupl_err_</span></span></span>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mold</span> </dt><dd
|
||||
class="description">The desired dynamic type for the internal matrix storage.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of a class derived from <a
|
||||
id="spbasedata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_base</span><span
|
||||
class="cmtt-10">_sparse</span><span
|
||||
class="cmtt-10">_mat</span></a>.</dd></dl>
|
||||
<!--l. 753--><p class="indent" >
|
||||
|
||||
|
||||
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the matrix to be assembled.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span><br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 767--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x46-80002x1">On entry to this routine the descriptor must be in the assembled state,
|
||||
i.e. <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_cdasb</span></span></span> must already have been called.
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x46-80004x2">The sparse matrix may be in either the build or update state;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x46-80006x3">Duplicate entries are detected and handled in both build and update state,
|
||||
with the exception of the error action that is only taken in the build state,
|
||||
i.e. on the first assembly;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x46-80008x4">If the update choice is <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_upd_perm_</span></span></span>, then subsequent calls to <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_spins</span></span></span>
|
||||
to update the matrix must be arranged in such a way as to produce exactly
|
||||
the same sequence of coefficient values as encountered at the first assembly;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x46-80010x5">The output storage format need not be the same on all processes;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x46-80012x6">On exit from this routine the matrix is in the assembled state, and thus
|
||||
is suitable for the computational routines.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 824--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu39.html" >next</a>] [<a
|
||||
href="userhtmlsu34.html" >prev</a>] [<a
|
||||
href="userhtmlsu34.html#tailuserhtmlsu34.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu35.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu38.html" >up</a>] </p></div>
|
||||
<!--l. 824--><p class="indent" > <a
|
||||
id="tailuserhtmlsu35.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_spfree — Frees a sparse matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 824--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu40.html" >next</a>] [<a
|
||||
href="userhtmlsu35.html" >prev</a>] [<a
|
||||
href="userhtmlsu35.html#tailuserhtmlsu35.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu33.html#tailuserhtmlsu36.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu39.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.10 </span> <a
|
||||
id="x47-810006.10"></a>psb_spfree — Frees a sparse matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-60">
|
||||
call psb_spfree(a, desc_a, info)
|
||||
</div>
|
||||
<!--l. 828--><p class="nopar" >
|
||||
<!--l. 830--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the matrix to be freed.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span><br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 845--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 860--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu40.html" >next</a>] [<a
|
||||
href="userhtmlsu35.html" >prev</a>] [<a
|
||||
href="userhtmlsu35.html#tailuserhtmlsu35.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu36.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu39.html" >up</a>] </p></div>
|
||||
<!--l. 860--><p class="indent" > <a
|
||||
id="tailuserhtmlsu36.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_sprn — Reinit sparse matrix structure for psblas routines.</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 861--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu41.html" >next</a>] [<a
|
||||
href="userhtmlsu36.html" >prev</a>] [<a
|
||||
href="userhtmlsu36.html#tailuserhtmlsu36.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu34.html#tailuserhtmlsu37.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu40.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.11 </span> <a
|
||||
id="x48-820006.11"></a>psb_sprn — Reinit sparse matrix structure for psblas routines.</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-61">
|
||||
call psb_sprn(a, decsc_a, info, clear)
|
||||
</div>
|
||||
<!--l. 865--><p class="nopar" >
|
||||
<!--l. 867--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">a</span> </dt><dd
|
||||
class="description">the matrix to be reinitialized.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span><br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu6.html#spdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tspmat</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">clear</span> </dt><dd
|
||||
class="description">Choose whether to zero out matrix coefficients<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Default: true.</dd></dl>
|
||||
<!--l. 887--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 895--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x48-82002x1">On exit from this routine the sparse matrix is in the update state.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 948--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu41.html" >next</a>] [<a
|
||||
href="userhtmlsu36.html" >prev</a>] [<a
|
||||
href="userhtmlsu36.html#tailuserhtmlsu36.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu37.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu40.html" >up</a>] </p></div>
|
||||
<!--l. 948--><p class="indent" > <a
|
||||
id="tailuserhtmlsu37.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,132 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_geall — Allocates a dense matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 948--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu42.html" >next</a>] [<a
|
||||
href="userhtmlsu37.html" >prev</a>] [<a
|
||||
href="userhtmlsu37.html#tailuserhtmlsu37.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu35.html#tailuserhtmlsu38.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu41.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.12 </span> <a
|
||||
id="x49-830006.12"></a>psb_geall — Allocates a dense matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-62">
|
||||
call psb_geall(x, desc_a, info, n, lb)
|
||||
</div>
|
||||
<!--l. 952--><p class="nopar" >
|
||||
<!--l. 954--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">The communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a variable of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">n</span> </dt><dd
|
||||
class="description">The number of columns of the dense matrix to be allocated.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: Integer scalar, default 1. It is not a valid argument if <span
|
||||
class="cmmi-10">x </span>is a
|
||||
rank-1 array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">lb</span> </dt><dd
|
||||
class="description">The lower bound for the column index range of the dense matrix to be
|
||||
allocated.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: Integer scalar, default 1. It is not a valid argument if <span
|
||||
class="cmmi-10">x </span>is a
|
||||
rank-1 array.</dd></dl>
|
||||
<!--l. 976--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">The dense matrix to be allocated.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array with the ALLOCATABLE attribute
|
||||
or an object of type <a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>, of type real, complex or integer.<br
|
||||
class="newline" />
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 995--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu42.html" >next</a>] [<a
|
||||
href="userhtmlsu37.html" >prev</a>] [<a
|
||||
href="userhtmlsu37.html#tailuserhtmlsu37.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu38.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu41.html" >up</a>] </p></div>
|
||||
<!--l. 995--><p class="indent" > <a
|
||||
id="tailuserhtmlsu38.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,178 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_geins — Dense matrix insertion routine</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 995--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu43.html" >next</a>] [<a
|
||||
href="userhtmlsu38.html" >prev</a>] [<a
|
||||
href="userhtmlsu38.html#tailuserhtmlsu38.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu36.html#tailuserhtmlsu39.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu42.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.13 </span> <a
|
||||
id="x50-840006.13"></a>psb_geins — Dense matrix insertion routine</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-63">
|
||||
call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
|
||||
</div>
|
||||
<!--l. 999--><p class="nopar" >
|
||||
<!--l. 1001--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">m</span> </dt><dd
|
||||
class="description">Number of rows in <span
|
||||
class="cmmi-10">val </span>to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer value.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">irw</span> </dt><dd
|
||||
class="description">Indices of the rows to be inserted. Specifically, row <span
|
||||
class="cmmi-10">i </span>of <span
|
||||
class="cmmi-10">val </span>will be
|
||||
inserted into the local row corresponding to the global row index <span
|
||||
class="cmmi-10">irw</span>(<span
|
||||
class="cmmi-10">i</span>).
|
||||
Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">val</span> </dt><dd
|
||||
class="description">the dense submatrix to be inserted.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a rank 1 or 2 array. Specified as: an integer value.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">dupl</span> </dt><dd
|
||||
class="description">How to handle duplicate coefficients.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">global</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: integer, possible values: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_dupl_ovwrt_</span></span></span>, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">psb_dupl_add_</span></span></span>.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">local</span> </dt><dd
|
||||
class="description">Whether the entries in the index vector <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">irw</span></span></span>, are already in local
|
||||
numbering. <br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Specified as: a logical value; default: <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.false.</span></span></span>.
|
||||
</dd></dl>
|
||||
<!--l. 1041--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">the output dense matrix.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array or an object of type
|
||||
<a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>, of type real, complex or integer.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 1056--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x50-84002x1">Dense vectors/matrices do not have an associated state;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x50-84004x2">Duplicate entries are either overwritten or added, there is no provision for
|
||||
raising an error condition.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1067--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu43.html" >next</a>] [<a
|
||||
href="userhtmlsu38.html" >prev</a>] [<a
|
||||
href="userhtmlsu38.html#tailuserhtmlsu38.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu39.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu42.html" >up</a>] </p></div>
|
||||
<!--l. 1067--><p class="indent" > <a
|
||||
id="tailuserhtmlsu39.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,61 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>Programming model</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 448--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu3.html" >prev</a>] [<a
|
||||
href="userhtmlsu3.html#tailuserhtmlsu3.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu2.html#tailuserhtmlsu4.html">tail</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlsu6.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">2.4 </span> <a
|
||||
id="x11-80002.4"></a>Programming model</h4>
|
||||
<!--l. 450--><p class="noindent" >The PSBLAS librarary is based on the Single Program Multiple Data (SPMD)
|
||||
programming model: each process participating in the computation performs the
|
||||
same actions on a chunk of data. Parallelism is thus data-driven.
|
||||
<!--l. 455--><p class="indent" > Because of this structure, many subroutines coordinate their action across the
|
||||
various processes, thus providing an implicit synchronization point, and therefore
|
||||
<span
|
||||
class="cmti-10">must </span>be called simultaneously by all processes participating in the computation. This
|
||||
is certainly true for the data allocation and assembly routines, for all the
|
||||
computational routines and for some of the tools routines.
|
||||
<!--l. 463--><p class="indent" > However there are many cases where no synchronization, and indeed no
|
||||
communication among processes, is implied; for instance, all the routines in sec. <a
|
||||
href="userhtmlse3.html#x12-90003">3<!--tex4ht:ref: sec:datastruct --></a>
|
||||
are only acting on the local data structures, and thus may be called independently.
|
||||
The most important case is that of the coefficient insertion routines: since the
|
||||
number of coefficients in the sparse and dense matrices varies among the processors,
|
||||
and since the user is free to choose an arbitrary order in builiding the matrix entries,
|
||||
these routines cannot imply a synchronization.
|
||||
<!--l. 473--><p class="indent" > Throughout this user’s guide each subroutine will be clearly indicated
|
||||
as:
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Synchronous:</span> </dt><dd
|
||||
class="description">must be called simultaneously by all the processes in the
|
||||
relevant communication context;
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Asynchronous:</span> </dt><dd
|
||||
class="description">may be called in a totally independent manner.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu3.html" >prev</a>] [<a
|
||||
href="userhtmlsu3.html#tailuserhtmlsu3.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu4.html" >front</a>] [<a
|
||||
href="userhtmlse2.html#userhtmlsu6.html" >up</a>] </p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlsu4.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,123 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_geasb — Assembly a dense matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1067--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu44.html" >next</a>] [<a
|
||||
href="userhtmlsu39.html" >prev</a>] [<a
|
||||
href="userhtmlsu39.html#tailuserhtmlsu39.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu37.html#tailuserhtmlsu40.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu43.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.14 </span> <a
|
||||
id="x51-850006.14"></a>psb_geasb — Assembly a dense matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-64">
|
||||
call psb_geasb(x, desc_a, info, mold)
|
||||
</div>
|
||||
<!--l. 1071--><p class="nopar" >
|
||||
<!--l. 1073--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">The communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a variable of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">mold</span> </dt><dd
|
||||
class="description">The desired dynamic type for the internal vector storage.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an object of a class derived from <a
|
||||
id="vbasedata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_base</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>;
|
||||
this is only allowed when <span
|
||||
class="cmmi-10">x </span>is of type <a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 1089--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">The dense matrix to be assembled.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array with the ALLOCATABLE or an
|
||||
object of type <a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>, of type real, complex or integer.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 1106--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu44.html" >next</a>] [<a
|
||||
href="userhtmlsu39.html" >prev</a>] [<a
|
||||
href="userhtmlsu39.html#tailuserhtmlsu39.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu40.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu43.html" >up</a>] </p></div>
|
||||
<!--l. 1106--><p class="indent" > <a
|
||||
id="tailuserhtmlsu40.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,102 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_gefree — Frees a dense matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1106--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu45.html" >next</a>] [<a
|
||||
href="userhtmlsu40.html" >prev</a>] [<a
|
||||
href="userhtmlsu40.html#tailuserhtmlsu40.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu38.html#tailuserhtmlsu41.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu44.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.15 </span> <a
|
||||
id="x52-860006.15"></a>psb_gefree — Frees a dense matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-65">
|
||||
call psb_gefree(x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 1110--><p class="nopar" >
|
||||
<!--l. 1112--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Synchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">The dense matrix to be freed.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one or two array with the ALLOCATABLE or an
|
||||
object of type <a
|
||||
href="userhtmlsu7.html#vdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_T</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span></a>, of type real, complex or integer.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">The communication descriptor.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a variable of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 1130--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1143--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu45.html" >next</a>] [<a
|
||||
href="userhtmlsu40.html" >prev</a>] [<a
|
||||
href="userhtmlsu40.html#tailuserhtmlsu40.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu41.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu44.html" >up</a>] </p></div>
|
||||
<!--l. 1143--><p class="indent" > <a
|
||||
id="tailuserhtmlsu41.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,109 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_gelp — Applies a left permutation to a dense matrix</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1144--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu46.html" >next</a>] [<a
|
||||
href="userhtmlsu41.html" >prev</a>] [<a
|
||||
href="userhtmlsu41.html#tailuserhtmlsu41.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu39.html#tailuserhtmlsu42.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu45.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.16 </span> <a
|
||||
id="x53-870006.16"></a>psb_gelp — Applies a left permutation to a dense matrix</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-66">
|
||||
call psb_gelp(trans, iperm, x, info)
|
||||
</div>
|
||||
<!--l. 1148--><p class="nopar" >
|
||||
<!--l. 1150--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">trans</span> </dt><dd
|
||||
class="description">A character that specifies whether to permute <span
|
||||
class="cmmi-10">A </span>or <span
|
||||
class="cmmi-10">A</span><sup><span
|
||||
class="cmmi-7">T</span></sup>.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a single character with value ’N’ for <span
|
||||
class="cmmi-10">A </span>or ’T’ for <span
|
||||
class="cmmi-10">A</span><sup><span
|
||||
class="cmmi-7">T</span></sup>.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">iperm</span> </dt><dd
|
||||
class="description">An integer array containing permutation information.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: an integer one-dimensional array.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">The dense matrix to be permuted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a one or two dimensional array.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 1170--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1183--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu46.html" >next</a>] [<a
|
||||
href="userhtmlsu41.html" >prev</a>] [<a
|
||||
href="userhtmlsu41.html#tailuserhtmlsu41.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu42.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu45.html" >up</a>] </p></div>
|
||||
<!--l. 1183--><p class="indent" > <a
|
||||
id="tailuserhtmlsu42.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_glob_to_loc — Global to local indices convertion</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1184--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu47.html" >next</a>] [<a
|
||||
href="userhtmlsu42.html" >prev</a>] [<a
|
||||
href="userhtmlsu42.html#tailuserhtmlsu42.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu40.html#tailuserhtmlsu43.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu46.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.17 </span> <a
|
||||
id="x54-880006.17"></a>psb_glob_to_loc — Global to local indices convertion</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-67">
|
||||
call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
|
||||
 <br />call psb_glob_to_loc(x, desc_a, info, iact,owned)
|
||||
</div>
|
||||
<!--l. 1189--><p class="nopar" >
|
||||
<!--l. 1191--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">An integer vector of indices to be converted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in, inout</span>.<br
|
||||
class="newline" />Specified as: a rank one integer array.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">iact</span> </dt><dd
|
||||
class="description">specifies action to be taken in case of range errors. Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a character variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">W</span></span></span>arning or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">A</span></span></span>bort, default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">owned</span> </dt><dd
|
||||
class="description">Specfies valid range of input Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />If true, then only indices strictly owned by the current process are
|
||||
considered valid, if false then halo indices are also accepted. Default: false.</dd></dl>
|
||||
<!--l. 1219--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">If <span
|
||||
class="cmmi-10">y </span>is not present, then <span
|
||||
class="cmmi-10">x </span>is overwritten with the translated integer indices.
|
||||
Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one integer array.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">If <span
|
||||
class="cmmi-10">y </span>is present, then <span
|
||||
class="cmmi-10">y </span>is overwritten with the translated integer indices, and
|
||||
<span
|
||||
class="cmmi-10">x </span>is left unchanged. Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a rank one integer array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 1241--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x54-88002x1">If an input index is out of range, then the corresponding output index is
|
||||
set to a negative number;
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x54-88004x2">The default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore means that the negative output is the only action
|
||||
taken on an out-of-range input.</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1250--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu47.html" >next</a>] [<a
|
||||
href="userhtmlsu42.html" >prev</a>] [<a
|
||||
href="userhtmlsu42.html#tailuserhtmlsu42.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu43.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu46.html" >up</a>] </p></div>
|
||||
<!--l. 1250--><p class="indent" > <a
|
||||
id="tailuserhtmlsu43.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,140 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_loc_to_glob — Local to global indices conversion</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1251--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu48.html" >next</a>] [<a
|
||||
href="userhtmlsu43.html" >prev</a>] [<a
|
||||
href="userhtmlsu43.html#tailuserhtmlsu43.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu41.html#tailuserhtmlsu44.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu47.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.18 </span> <a
|
||||
id="x55-890006.18"></a>psb_loc_to_glob — Local to global indices conversion</h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-68">
|
||||
call psb_loc_to_glob(x, y, desc_a, info, iact)
|
||||
 <br />call psb_loc_to_glob(x, desc_a, info, iact)
|
||||
</div>
|
||||
<!--l. 1256--><p class="nopar" >
|
||||
<!--l. 1258--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">An integer vector of indices to be converted.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in, inout</span>.<br
|
||||
class="newline" />Specified as: a rank one integer array.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">iact</span> </dt><dd
|
||||
class="description">specifies action to be taken in case of range errors. Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a character variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">W</span></span></span>arning or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">A</span></span></span>bort, default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore.</dd></dl>
|
||||
<!--l. 1279--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">If <span
|
||||
class="cmmi-10">y </span>is not present, then <span
|
||||
class="cmmi-10">x </span>is overwritten with the translated integer indices.
|
||||
Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">inout</span>.<br
|
||||
class="newline" />Specified as: a rank one integer array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">If <span
|
||||
class="cmmi-10">y </span>is not present, then <span
|
||||
class="cmmi-10">y </span>is overwritten with the translated integer indices,
|
||||
and <span
|
||||
class="cmmi-10">x </span>is left unchanged. Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a rank one integer array.
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1306--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu48.html" >next</a>] [<a
|
||||
href="userhtmlsu43.html" >prev</a>] [<a
|
||||
href="userhtmlsu43.html#tailuserhtmlsu43.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu44.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu47.html" >up</a>] </p></div>
|
||||
<!--l. 1306--><p class="indent" > <a
|
||||
id="tailuserhtmlsu44.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_is_owned — </title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1306--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu49.html" >next</a>] [<a
|
||||
href="userhtmlsu44.html" >prev</a>] [<a
|
||||
href="userhtmlsu44.html#tailuserhtmlsu44.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu42.html#tailuserhtmlsu45.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu48.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.19 </span> <a
|
||||
id="x56-900006.19"></a>psb_is_owned — </h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-69">
|
||||
call psb_is_owned(x, desc_a)
|
||||
</div>
|
||||
<!--l. 1310--><p class="nopar" >
|
||||
<!--l. 1312--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">Integer index.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a scalar integer.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 1327--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">A logical mask which is true if <span
|
||||
class="cmmi-10">x </span>is owned by the current
|
||||
process Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 1337--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x56-90002x1">This routine returns a <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span> value for an index that is strictly owned by
|
||||
the current process, excluding the halo indices</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1345--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu49.html" >next</a>] [<a
|
||||
href="userhtmlsu44.html" >prev</a>] [<a
|
||||
href="userhtmlsu44.html#tailuserhtmlsu44.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu45.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu48.html" >up</a>] </p></div>
|
||||
<!--l. 1345--><p class="indent" > <a
|
||||
id="tailuserhtmlsu45.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_owned_index — </title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1345--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu50.html" >next</a>] [<a
|
||||
href="userhtmlsu45.html" >prev</a>] [<a
|
||||
href="userhtmlsu45.html#tailuserhtmlsu45.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu43.html#tailuserhtmlsu46.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu49.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.20 </span> <a
|
||||
id="x57-910006.20"></a>psb_owned_index — </h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-70">
|
||||
call psb_owned_index(y, x, desc_a, info)
|
||||
</div>
|
||||
<!--l. 1349--><p class="nopar" >
|
||||
<!--l. 1351--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">Integer indices.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in, inout</span>.<br
|
||||
class="newline" />Specified as: a scalar or a rank one integer array.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">iact</span> </dt><dd
|
||||
class="description">specifies action to be taken in case of range errors. Scope: <span
|
||||
class="cmbx-10">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">optional</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a character variable <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore, <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">W</span></span></span>arning or <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">A</span></span></span>bort, default <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">I</span></span></span>gnore.</dd></dl>
|
||||
<!--l. 1372--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">y</span> </dt><dd
|
||||
class="description">A logical mask which is true for all corresponding entries of <span
|
||||
class="cmmi-10">x </span>that are owned
|
||||
by the current process Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />Specified as: a scalar or rank one logical array.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">info</span> </dt><dd
|
||||
class="description">Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required </span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 1388--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x57-91002x1">This routine returns a <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span> value for those indices that are strictly
|
||||
owned by the current process, excluding the halo indices</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1396--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu50.html" >next</a>] [<a
|
||||
href="userhtmlsu45.html" >prev</a>] [<a
|
||||
href="userhtmlsu45.html#tailuserhtmlsu45.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu46.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu49.html" >up</a>] </p></div>
|
||||
<!--l. 1396--><p class="indent" > <a
|
||||
id="tailuserhtmlsu46.html"></a>
|
||||
</body></html>
|
@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>psb_is_local — </title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
||||
<!-- html,3 -->
|
||||
<meta name="src" content="userhtml.tex">
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 1396--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu51.html" >next</a>] [<a
|
||||
href="userhtmlsu46.html" >prev</a>] [<a
|
||||
href="userhtmlsu46.html#tailuserhtmlsu46.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu44.html#tailuserhtmlsu47.html">tail</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu50.html" >up</a>] </p></div>
|
||||
<h4 class="subsectionHead"><span class="titlemark">6.21 </span> <a
|
||||
id="x58-920006.21"></a>psb_is_local — </h4>
|
||||
|
||||
|
||||
|
||||
<div class="verbatim" id="verbatim-71">
|
||||
call psb_is_local(x, desc_a)
|
||||
</div>
|
||||
<!--l. 1400--><p class="nopar" >
|
||||
<!--l. 1402--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Type:</span> </dt><dd
|
||||
class="description">Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">x</span> </dt><dd
|
||||
class="description">Integer index.<br
|
||||
class="newline" />Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a scalar integer.<br
|
||||
class="newline" />
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">desc</span><span
|
||||
class="cmbx-10">_a</span> </dt><dd
|
||||
class="description">the communication descriptor.<br
|
||||
class="newline" />Scope:<span
|
||||
class="cmbx-10">local</span>.<br
|
||||
class="newline" />Type:<span
|
||||
class="cmbx-10">required</span>.<br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">in</span>.<br
|
||||
class="newline" />Specified as: a structured data of type <a
|
||||
href="userhtmlsu5.html#descdata"><span
|
||||
class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_desc</span><span
|
||||
class="cmtt-10">_type</span></a>.</dd></dl>
|
||||
<!--l. 1417--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">On Return</span> </dt><dd
|
||||
class="description">
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-10">Function value</span> </dt><dd
|
||||
class="description">A logical mask which is true if <span
|
||||
class="cmmi-10">x </span>is local to the current process
|
||||
Scope: <span
|
||||
class="cmbx-10">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="cmbx-10">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="cmbx-10">out</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 1427--><p class="noindent" ><span
|
||||
class="cmbx-12">Notes</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x58-92002x1">This routine returns a <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10">.true.</span></span></span> value for an index that is local to the current
|
||||
process, including the halo indices</li></ol>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1434--><div class="crosslinks"><p class="noindent">[<a
|
||||
href="userhtmlsu51.html" >next</a>] [<a
|
||||
href="userhtmlsu46.html" >prev</a>] [<a
|
||||
href="userhtmlsu46.html#tailuserhtmlsu46.html" >prev-tail</a>] [<a
|
||||
href="userhtmlsu47.html" >front</a>] [<a
|
||||
href="userhtmlsu29.html#userhtmlsu50.html" >up</a>] </p></div>
|
||||
<!--l. 1434--><p class="indent" > <a
|
||||
id="tailuserhtmlsu47.html"></a>
|
||||
</body></html>
|