Figure 6:
The PSBLAS defined data type that contains a preconditioner.
diff --git a/docs/html/node2.html b/docs/html/node2.html
index 98007878..15cf7b33 100644
--- a/docs/html/node2.html
+++ b/docs/html/node2.html
@@ -69,14 +69,29 @@ addresses a distributed memory execution model operating with message
passing.
-The PSBLAS library is internally implemented in
- the Fortran 95 [14] programming language, with reuse and/or
+The PSBLAS library version 3 is internally implemented in
+ the Fortran 2003 [16] programming language, with reuse and/or
adaptation of some existing Fortran 77 software, and a handful of C
routines.
-A similar approach has been advocated by a number of authors,
+
+
+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 [11]; other
+works tackling advanced programming in Fortran 2003 include [1,17]
+
+
+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. [13]. Moreover, the Fortran 95 facilities for dynamic
+ HREF="node108.html#machiels">15]. 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
@@ -91,12 +106,12 @@ Fortran compiler from the Free Software Foundation (as of version 4.2).
The presentation of the
PSBLAS library follows the general structure of the proposal for
serial Sparse BLAS [7,8], which in its turn is based on the
+ HREF="node108.html#sblas97">8,9], which in its turn is based on the
proposal for BLAS on dense matrices [12,4,5].
+ HREF="node108.html#BLAS1">14,5,6].
The applicability of sparse iterative solvers to many different areas
diff --git a/docs/html/node28.html b/docs/html/node28.html
index 484db53b..c4211b2c 100644
--- a/docs/html/node28.html
+++ b/docs/html/node28.html
@@ -81,7 +81,7 @@ call psb_geaxpby(alpha, x, beta, y, desc_a, info)
-
+
Table 1:
Data types
diff --git a/docs/html/node29.html b/docs/html/node29.html
index 342d3400..668bf2ff 100644
--- a/docs/html/node29.html
+++ b/docs/html/node29.html
@@ -116,7 +116,7 @@ dot \leftarrow x^H y
psb_gedot(x, y, desc_a, info)
-
+
Table 2:
Data types
diff --git a/docs/html/node3.html b/docs/html/node3.html
index c2215b8c..5a58dc55 100644
--- a/docs/html/node3.html
+++ b/docs/html/node3.html
@@ -77,7 +77,7 @@ 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 implemented through the Basic
Linear Algebra Communication Subroutines (BLACS) library [6]
+ HREF="node108.html#BLACS">7]
that guarantees a portable and efficient communication layer. The
Message Passing Interface code is encapsulated within the BLACS
layer. However, in some cases, MPI routines are directly used either
@@ -90,7 +90,7 @@ user does not need to delve into their details (see Sec.
+
Figure 1:
PSBLAS library components hierarchy.
@@ -141,7 +141,7 @@ 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 [11].
+ HREF="node108.html#METIS">13].
Dense vectors conform to sparse
matrices, that is, the entries of a vector follow the same distribution
of the matrix rows.
@@ -152,7 +152,7 @@ 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
explicitly1, even though the resulting
+ HREF="footnode.html#foot167">1, even though the resulting
bottleneck would make this option unattractive in most cases.
diff --git a/docs/html/node30.html b/docs/html/node30.html
index 3354e4ea..979cd3bd 100644
--- a/docs/html/node30.html
+++ b/docs/html/node30.html
@@ -101,7 +101,7 @@ is a rank one array.
call psb_gedots(res, x, y, desc_a, info)
-
+
Table 3:
Data types
diff --git a/docs/html/node31.html b/docs/html/node31.html
index 980769ae..6ac743e5 100644
--- a/docs/html/node31.html
+++ b/docs/html/node31.html
@@ -109,7 +109,7 @@ psb_geamax(x, desc_a, info)
-
+
Table 4:
Data types
diff --git a/docs/html/node32.html b/docs/html/node32.html
index 5a69d19c..93d76a3b 100644
--- a/docs/html/node32.html
+++ b/docs/html/node32.html
@@ -84,7 +84,7 @@ call psb_geamaxs(res, x, desc_a, info)
-
+
Table 5:
Data types
diff --git a/docs/html/node33.html b/docs/html/node33.html
index 2cedc7df..acc2859a 100644
--- a/docs/html/node33.html
+++ b/docs/html/node33.html
@@ -108,7 +108,7 @@ psb_geasum(x, desc_a, info)
-
+
Table 6:
Data types
diff --git a/docs/html/node34.html b/docs/html/node34.html
index 2bca0e96..3ac45e78 100644
--- a/docs/html/node34.html
+++ b/docs/html/node34.html
@@ -128,7 +128,7 @@ call psb_geasums(res, x, desc_a, info)
-
+
Table 7:
Data types
diff --git a/docs/html/node35.html b/docs/html/node35.html
index 86a7b72a..a13f9c78 100644
--- a/docs/html/node35.html
+++ b/docs/html/node35.html
@@ -103,7 +103,7 @@ nrm2 \leftarrow \sqrt{x^H x}
-
+
Table 8:
Data types
diff --git a/docs/html/node36.html b/docs/html/node36.html
index e034a8bd..8f060a67 100644
--- a/docs/html/node36.html
+++ b/docs/html/node36.html
@@ -84,7 +84,7 @@ call psb_genrm2s(res, x, desc_a, info)
-
+
Table 9:
Data types
diff --git a/docs/html/node37.html b/docs/html/node37.html
index 326b45d2..170572dd 100644
--- a/docs/html/node37.html
+++ b/docs/html/node37.html
@@ -92,7 +92,7 @@ where:
-
+
Table 10:
Data types
diff --git a/docs/html/node38.html b/docs/html/node38.html
index 74307619..e5499645 100644
--- a/docs/html/node38.html
+++ b/docs/html/node38.html
@@ -157,7 +157,7 @@ where:
-
+
Table 11:
Data types
diff --git a/docs/html/node39.html b/docs/html/node39.html
index 9d591ba6..a2259d8d 100644
--- a/docs/html/node39.html
+++ b/docs/html/node39.html
@@ -137,7 +137,7 @@ call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
-
+
Table 12:
Data types
diff --git a/docs/html/node4.html b/docs/html/node4.html
index 9d4cf0f8..24148455 100644
--- a/docs/html/node4.html
+++ b/docs/html/node4.html
@@ -112,7 +112,7 @@ 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 domain2; therefore
+ HREF="footnode.html#foot176">2; therefore
the cardinality of the boundary points set denotes the amount of data
sent to other domains.
@@ -126,8 +126,8 @@ Overlap points do not usually exist in the basic data
distributions; however they are a feature of Domain Decomposition
Schwarz preconditioners which are the subject of related research
work [3,2].
+ HREF="node108.html#2007c">4,3].
We denote the sets of internal, boundary and halo points for a given
@@ -166,7 +166,7 @@ local rows) is