diff --git a/docs/html/node10.html b/docs/html/node10.html
index 0b6c9490..83b32fb0 100644
--- a/docs/html/node10.html
+++ b/docs/html/node10.html
@@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
@@ -66,7 +66,7 @@ necessary for implementing the various algorithms of interest to us.
The data structure itself psb_desc_type can be treated as an
opaque object handled via the tools routines of
-Sec. 6 or the query routines detailed below;
+Sec. 6 or the query routines detailed below;
nevertheless we include here a description for the curious
reader.
@@ -117,7 +117,7 @@ All methods but the last are purely local; the last method potentially
requires communication among processes, and thus is a synchronous
method. The choice of a specific dynamic type for the index map is
made at the time the descriptor is initially allocated, according to
-the mode of initialization (see also 6).
+the mode of initialization (see also 6).
The descriptor contents are as follows:
@@ -202,7 +202,7 @@ Specified as: an allocatable integer array of rank two.
The Fortran 2003 declaration for psb_desc_type structures is
as follows:
-
+
Figure 3:
The PSBLAS defined data type that
@@ -249,52 +249,54 @@ state, which can take the following values:
Subsections
-This function returns a wall clock timer. The resolution of the timer
-is dependent on the underlying parallel environment implementation.
+This subroutine returns the MPI rank of the PSBLAS process
Type:
Asynchronous.
-
On Exit
+
On Entry
-
Function value
-
the elapsed time in seconds.
+
icontxt
+
the communication context identifying the virtual
+ parallel machine.
-Returned as: a real(psb_dpk_) variable.
+Scope: global.
+
+Type: required.
+
+Intent: in.
+
+Specified as: an integer variable.
+
+
id
+
Identifier of a process in the PSBLAS virtual parallel machine.
+
+Scope: local.
+
+Type: required.
+
+Intent: in.
+
+Specified as: an integer value.
+
+
+
+
+
+
On Return
+
+
rank
+
The MPI rank associated with the PSBLAS process .
+
+Scope: local.
+
+Type: required.
+
+Intent: out.
+
diff --git a/docs/html/node101.html b/docs/html/node101.html
index 42f1576f..8873ac7b 100644
--- a/docs/html/node101.html
+++ b/docs/html/node101.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-This subroutine acts as an explicit synchronization point for the PSBLAS
-parallel virtual machine.
+This function returns a wall clock timer. The resolution of the timer
+is dependent on the underlying parallel environment implementation.
Type:
-
Synchronous.
+
Asynchronous.
-
On Entry
+
On Exit
-
icontxt
-
the communication context identifying the virtual
- parallel machine.
+
Function value
+
the elapsed time in seconds.
-Scope: global.
-
-Type: required.
-
-Intent: in.
-
-Specified as: an integer variable.
+Returned as: a real(psb_dpk_) variable.
diff --git a/docs/html/node102.html b/docs/html/node102.html
index ceac5fe2..18b9efbd 100644
--- a/docs/html/node102.html
+++ b/docs/html/node102.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_abort -- Abort a computation
-
+psb_barrier -- Sinchronization point parallel environment
+
@@ -20,51 +20,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_bcast Broadcast
- Up:Parallel environment routines
- Previous:psb_barrier Sinchronization
- Next:psb_abort Abort
+ Up:Parallel environment routines
+ Previous:psb_wtime Wall
+ Contents
-This subroutine aborts computation on the parallel virtual machine.
+This subroutine acts as an explicit synchronization point for the PSBLAS
+parallel virtual machine.
Type:
-
Asynchronous.
+
Synchronous.
On Entry
diff --git a/docs/html/node103.html b/docs/html/node103.html
index e4528930..5db11be1 100644
--- a/docs/html/node103.html
+++ b/docs/html/node103.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_bcast -- Broadcast data
-
+psb_abort -- Abort a computation
+
@@ -20,52 +20,51 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_sum Global
- Up:Parallel environment routines
- Previous:psb_abort Abort
- Next:psb_bcast Broadcast
+ Up:Parallel environment routines
+ Previous:psb_barrier Sinchronization
+ Contents
-This subroutine implements a broadcast operation based on the
-underlying communication library.
+This subroutine aborts computation on the parallel virtual machine.
Type:
-
Synchronous.
+
Asynchronous.
On Entry
@@ -82,81 +81,10 @@ Intent: in.
Specified as: an integer variable.
-
dat
-
On the root process, the data to be broadcast.
-
-Scope: global.
-
-Type: required.
-
-Intent: inout.
-
-Specified as: an integer, real or complex variable, which may be a
-scalar, or a rank 1 or 2 array, or a character or logical variable,
-which may be a scalar or rank 1 array. Type, kind, rank and size must agree on all processes.
-
-
root
-
Root process holding data to be broadcast.
-
-Scope: global.
-
-Type: optional.
-
-Intent: in.
-
-Specified as: an integer value
-, default 0
-
-
On Return
-
-
-
dat
-
On processes other than root, the data to be broadcast.
-
-Scope: global.
-
-Type: required.
-
-Intent: inout.
-
-Specified as: an integer, real or complex variable, which may be a
-scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind, rank and size must agree on all processes.
-
-This subroutine implements a sum reduction operation based on the
+This subroutine implements a broadcast operation based on the
underlying communication library.
Type:
@@ -83,7 +83,7 @@ Intent: in.
Specified as: an integer variable.
dat
-
The local contribution to the global sum.
+
On the root process, the data to be broadcast.
Scope: global.
@@ -92,14 +92,11 @@ Type: required.
Intent: inout.
Specified as: an integer, real or complex variable, which may be a
-scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
+scalar, or a rank 1 or 2 array, or a character or logical variable,
+which may be a scalar or rank 1 array. Type, kind, rank and size must agree on all processes.
root
-
Process to hold the final sum, or to make it available
- on all processes.
+
Root process holding data to be broadcast.
Scope: global.
@@ -108,12 +105,12 @@ Type: optional.
Intent: in.
Specified as: an integer value
, default -1.
-This subroutine implements a maximum valuereduction
-operation based on the underlying communication library.
+This subroutine implements a sum reduction operation based on the
+underlying communication library.
Type:
Synchronous.
@@ -83,21 +83,21 @@ Intent: in.
Specified as: an integer variable.
dat
-
The local contribution to the global maximum.
+
The local contribution to the global sum.
-Scope: local.
+Scope: global.
Type: required.
Intent: inout.
-Specified as: an integer or real variable, which may be a
+Specified as: an integer, real or complex variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
-
Process to hold the final maximum, or Process to hold the final sum, or to make it available
on all processes.
@@ -111,10 +111,9 @@ Specified as: an integer value
, default -1.
-
-This subroutine implements a minimum value reduction
+This subroutine implements a maximum valuereduction
operation based on the underlying communication library.
Type:
@@ -83,7 +83,7 @@ Intent: in.
Specified as: an integer variable.
dat
-
The local contribution to the global minimum.
+
The local contribution to the global maximum.
Scope: local.
@@ -91,13 +91,13 @@ Type: required.
Intent: inout.
-Specified as: an integer or real variable, which may be a
+Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
-
Process to hold the final value, or Process to hold the final maximum, or to make it available
on all processes.
@@ -111,8 +111,8 @@ Specified as: an integer value
, default -1.
-This subroutine implements a maximum absolute value reduction
+This subroutine implements a minimum value reduction
operation based on the underlying communication library.
Type:
@@ -83,7 +83,7 @@ Intent: in.
Specified as: an integer variable.
dat
-
The local contribution to the global maximum.
+
The local contribution to the global minimum.
Scope: local.
@@ -91,13 +91,13 @@ Type: required.
Intent: inout.
-Specified as: an integer, real or complex variable, which may be a
+Specified as: an integer or real variable, which may be a
scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
root
Process to hold the final value, or to make it available
on all processes.
@@ -111,8 +111,8 @@ Specified as: an integer value
, default -1.
-This subroutine implements a minimum absolute value reduction
+This subroutine implements a maximum absolute value reduction
operation based on the underlying communication library.
Type:
@@ -83,7 +83,7 @@ Intent: in.
Specified as: an integer variable.
dat
-
The local contribution to the global minimum.
+
The local contribution to the global maximum.
Scope: local.
@@ -96,8 +96,8 @@ scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all pro
root
Process to hold the final value, or to make it available
on all processes.
@@ -111,8 +111,8 @@ Specified as: an integer value
, default -1.
-call psb_snd(icontxt, dat, dst, m)
+call psb_amn(icontxt, dat, root)
-This subroutine sends a packet of data to a destination.
+This subroutine implements a minimum absolute value reduction
+operation based on the underlying communication library.
Type:
-
Synchronous: see usage notes.
+
Synchronous.
On Entry
@@ -82,65 +83,38 @@ Intent: in.
Specified as: an integer variable.
dat
-
The data to be sent.
+
The local contribution to the global minimum.
Scope: local.
Type: required.
-Intent: in.
+Intent: inout.
Specified as: an integer, real or complex variable, which may be a
-scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if is
-not specified, size must agree as well.
+scalar, or a rank 1 or 2 array. Type, kind, rank and size must agree on all processes.
-
dst
-
Destination process.
+
root
+
Process to hold the final value, or to make it available
+ on all processes.
Scope: global.
-Type: required.
+Type: optional.
Intent: in.
Specified as: an integer value
.
+ WIDTH="165" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
+ SRC="img132.png"
+ ALT="$-1<= root <= np-1$">, default -1.
-
m
-
Number of rows.
-
-Scope: global.
-
-Type: Optional.
-
-Intent: in.
-
-Specified as: an integer value
-.
-
-When is a rank 2 array, specifies the number of rows to be sent
-independently of the leading dimension ; must have the
-same value on sending and receiving processes.
-
@@ -148,43 +122,57 @@ same value on sending and receiving processes.
On Return
+
dat
+
On destination process(es), the result of the minimum operation.
+
+Scope: global.
+
+Type: required.
+
+Intent: inout.
+
+Specified as: an integer, real or complex variable, which may be a
+scalar, or a rank 1 or 2 array.
+
+Type, kind, rank and size must agree on all processes.
+
Notes
-
This subroutine implies a synchronization, but only between the
- calling process and the destination process .
+
The dat argument is both input and output, and its
+ value may be changed even on processes different from the final
+ result destination.
+
+
The dat argument may also be a long integer scalar.
-call psb_rcv(icontxt, dat, src, m)
+call psb_snd(icontxt, dat, dst, m)
-This subroutine receives a packet of data to a destination.
+This subroutine sends a packet of data to a destination.
Type:
-
Synchronous: see usage notes.
+
Synchronous: see usage notes.
On Entry
@@ -80,8 +81,24 @@ Intent: in.
Specified as: an integer variable.
-
src
-
Source process.
+
dat
+
The data to be sent.
+
+Scope: local.
+
+Type: required.
+
+Intent: in.
+
+Specified as: an integer, real or complex variable, which may be a
+scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if is
+not specified, size must agree as well.
+
+
dst
+
Destination process.
Scope: global.
@@ -90,12 +107,12 @@ Type: required.
Intent: in.
Specified as: an integer value
.
+ WIDTH="145" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
+ SRC="img134.png"
+ ALT="$0<= dst <= np-1$">.
m
Number of rows.
@@ -110,17 +127,17 @@ Specified as: an integer value
.
When is a rank 2 array, specifies the number of rows to be sent
independently of the leading dimension ; must have the
same value on sending and receiving processes.
@@ -131,22 +148,6 @@ same value on sending and receiving processes.
On Return
-
dat
-
The data to be received.
-
-Scope: local.
-
-Type: required.
-
-Intent: inout.
-
-Specified as: an integer, real or complex variable, which may be a
-scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if is
-not specified, size must agree as well.
-
@@ -154,36 +155,36 @@ not specified, size must agree as well.
This subroutine implies a synchronization, but only between the
- calling process and the source process .
+ calling process and the destination process .
-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 info 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 info 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.
-
-
-Figure 9 shows the layout of a generic psb_foo
-routine with respect to the PSBLAS-2.0 error handling policy. It is
-possible to see how, whenever an error condition is detected, the
-info variable is set to the corresponding error code which is,
-then, pushed on top of the stack by means of the
-psb_errpush. 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
-psb\_error routine which prints the content of the error stack
-and aborts the program execution, according to the choice made by the
-user with psb_set_erraction. The default is to print the error
-and terminate the program, but the user may choose to handle the error
-explicitly.
-
-
-
-
-
-
Figure 9:
-The layout of a generic psb_foo
- routine with respect to PSBLAS-2.0 error handling policy.
-Figure 10 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 psb_cest subroutine
-called by psb_spasb ... by process 0 (i.e. the root process).
-
-
-
-
-
-
Figure 10:
-A sample PSBLAS-2.0 error
- message. Process 0 detected an error condition inside the psb_cest subroutine
-
-
-
-
-
-
-
-
-
-
-
-ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
- stack
-
-
-
-
-
+
+call psb_rcv(icontxt, dat, src, m)
+
+This subroutine receives a packet of data to a destination.
Type:
-
Asynchronous.
+
Synchronous: see usage notes.
-
On Entry
+
On Entry
-
err_c
-
the error code
+
icontxt
+
the communication context identifying the virtual
+ parallel machine.
-Scope: local
+Scope: global.
-Type: required
+Type: required.
Intent: in.
-Specified as: an integer.
+Specified as: an integer variable.
-
r_name
-
the soutine where the error has been caught.
+
src
+
Source process.
-Scope: local
+Scope: global.
-Type: required
+Type: required.
Intent: in.
-Specified as: a string.
-
-
i_err
-
addional info for error code
-
-Scope: local
-
-Type: optional
-
-Specified as: an integer array
-
-
a_err
-
addional info for error code
-
-Scope: local
-
-Type: optional
-
-Specified as: a string.
-
-
-
-
-ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
- execution
-
-
-
+Specified as: an integer value
-
-
-
-
-
Type:
-
Asynchronous.
-
-
On Entry
-
-
-
icontxt
-
the communication context.
+ WIDTH="147" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
+ SRC="img139.png"
+ ALT="$0<= src <= np-1$">.
+
+
m
+
Number of rows.
-Scope: global
+Scope: global.
-Type: optional
+Type: Optional.
Intent: in.
-Specified as: an integer.
+Specified as: an integer value
+.
+
+When is a rank 2 array, specifies the number of rows to be sent
+independently of the leading dimension ; must have the
+same value on sending and receiving processes.
-
-ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
- messages.
-
-
-
-
-
-
-
Type:
-
Asynchronous.
-
-
On Entry
+
On Return
-
v
-
the verbosity level
+
dat
+
The data to be received.
-Scope: global
+Scope: local.
-Type: required
+Type: required.
-Intent: in.
+Intent: inout.
-Specified as: an integer.
+Specified as: an integer, real or complex variable, which may be a
+scalar, or a rank 1 or 2 array, or a character or logical scalar. Type, kind and rank must agree on sender and receiver process; if is
+not specified, size must agree as well.
-ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
- taken upon error condition.
-
-
-
-
-
+Notes
-
-
-
Type:
-
Asynchronous.
-
-
On Entry
-
-
-
err_act
-
the type of action.
-
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: an integer. Possible values: psb_act_ret,
-psb_act_abort.
-
-
+
+
This subroutine implies a synchronization, but only between the
+ calling process and the source process .
+
-We have some utitlities available for input and output of
-sparsematrices; the interfaces to these routines are available in the
-module psb_util_mod.
-
-
-
-
+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 info 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 info 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.
+
+
+Figure 9 shows the layout of a generic psb_foo
+routine with respect to the PSBLAS-2.0 error handling policy. It is
+possible to see how, whenever an error condition is detected, the
+info variable is set to the corresponding error code which is,
+then, pushed on top of the stack by means of the
+psb_errpush. 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
+psb\_error routine which prints the content of the error stack
+and aborts the program execution, according to the choice made by the
+user with psb_set_erraction. The default is to print the error
+and terminate the program, but the user may choose to handle the error
+explicitly.
+
+
+
+
+
+
Figure 9:
+The layout of a generic psb_foo
+ routine with respect to PSBLAS-2.0 error handling policy.
+
+
+
+
+
+
+
+
+
+
+
+Figure 10 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 psb_cest subroutine
+called by psb_spasb ... by process 0 (i.e. the root process).
+
+
+
+
+
+
Figure 10:
+A sample PSBLAS-2.0 error
+ message. Process 0 detected an error condition inside the psb_cest subroutine
+
+
+
+
+
+
+
+
+
+
+
+ifstarsubroutinesubroutinepsb_errpushPushes an error code onto the error
+ stack
+
+
+
+
+
+
+
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
err_c
+
the error code
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: an integer.
+
+
r_name
+
the soutine where the error has been caught.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a string.
+
+
i_err
+
addional info for error code
+
+Scope: local
+
+Type: optional
+
+Specified as: an integer array
+
+
a_err
+
addional info for error code
+
+Scope: local
+
+Type: optional
+
+Specified as: a string.
+
+
+
+
+ifstarsubroutinesubroutinepsb_errorPrints the error stack content and aborts
+ execution
+
+
+
+
+
+
+
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
icontxt
+
the communication context.
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Specified as: an integer.
+
+
+
+
+ifstarsubroutinesubroutinepsb_set_errverbositySets the verbosity of error
+ messages.
+
+
+
+
+
+
+
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
v
+
the verbosity level
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: an integer.
+
+
+
+
+ifstarsubroutinesubroutinepsb_set_erractionSet the type of action to be
+ taken upon error condition.
+
+
+
+
+
+
+
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
err_act
+
the type of action.
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: an integer. Possible values: psb_act_ret,
+psb_act_abort.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next:Utilities
+ Up:userhtml
+ Previous:psb_rcv Receive
+ Contents
+
diff --git a/docs/html/node113.html b/docs/html/node113.html
index 493ba990..5d97b674 100644
--- a/docs/html/node113.html
+++ b/docs/html/node113.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format
-
+Utilities
+
@@ -18,144 +18,77 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
+
-
-
+
-
-
- Next:hb_write Write
- Up:Utilities
- Previous:Utilities
- Next:hb_read Read
+ Up:userhtml
+ Previous:Error handling
+ Contents
The name of the file to be read.
-
-Type:optional.
-
-Specified as: a character variable containing a valid file name, or
--, in which case the default input unit 5 (i.e. standard input
-in Unix jargon) is used. Default: -.
-
-
iunit
-
The Fortran file unit number.
-
-Type:optional.
-
-Specified as: an integer value. Only meaningful if filename is not -.
-
-
+We have some utitlities available for input and output of
+sparsematrices; the interfaces to these routines are available in the
+module psb_util_mod.
-
-
On Return
-
-
-
a
-
the sparse matrix read from file.
-
-Type:required.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
-
b
-
Rigth hand side(s).
-
-Type: Optional
-
-An array of type real or complex, rank 2 and having the ALLOCATABLE
-attribute; will be allocated and filled in if the input file contains
-a right hand side, otherwise will be left in the UNALLOCATED state.
-
-
mtitle
-
Matrix title.
-
-Type: Optional
-
-A charachter variable of length 72 holding a copy of the
-matrix title as specified by the Harwell-Boeing format and contained
-in the input file.
-
-
iret
-
Error code.
-
-Type: required
-
-An integer value; 0 means no error has been detected.
-
+
+
diff --git a/docs/html/node114.html b/docs/html/node114.html
index 69c87ace..9ab08186 100644
--- a/docs/html/node114.html
+++ b/docs/html/node114.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format
-
+hb_read -- Read a sparse matrix from a file in the Harwell-Boeing format
+
@@ -20,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:mm_mat_read Read
- Up:Utilities
- Previous:hb_read Read
- Next:hb_write Write
+ Up:Utilities
+ Previous:Utilities
+ Contents
the sparse matrix to be written.
-
-Type:required.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
-
b
-
Rigth hand side.
-
-Type: Optional
-
-An array of type real or complex, rank 1 and having the ALLOCATABLE
-attribute; will be allocated and filled in if the input file contains
-a right hand side.
-
filename
-
The name of the file to be written to.
+
The name of the file to be read.
Type:optional.
Specified as: a character variable containing a valid file name, or
--, in which case the default output unit 6 (i.e. standard output
+-, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: -.
iunit
@@ -106,30 +90,37 @@ Type:optional.
Specified as: an integer value. Only meaningful if filename is not -.
-
key
-
Matrix key.
+
+
+
+
+
On Return
+
+
+
a
+
the sparse matrix read from file.
+
+Type:required.
+
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
+
b
+
Rigth hand side(s).
Type: Optional
-A charachter variable of length 8 holding the
-matrix key as specified by the Harwell-Boeing format and to be
-written to file.
+An array of type real or complex, rank 2 and having the ALLOCATABLE
+attribute; will be allocated and filled in if the input file contains
+a right hand side, otherwise will be left in the UNALLOCATED state.
mtitle
Matrix title.
Type: Optional
-A charachter variable of length 72 holding the
-matrix title as specified by the Harwell-Boeing format and to be
-written to file.
-
-
-
-
-
-
On Return
-
+A charachter variable of length 72 holding a copy of the
+matrix title as specified by the Harwell-Boeing format and contained
+in the input file.
iret
Error code.
@@ -143,26 +134,26 @@ An integer value; 0 means no error has been detected.
-
-
+
-
-
- Next:mm_mat_read Read
- Up:Utilities
- Previous:hb_read Read
- Next:hb_write Write
+ Up:Utilities
+ Previous:Utilities
+ Contents
diff --git a/docs/html/node115.html b/docs/html/node115.html
index ae926606..d758e086 100644
--- a/docs/html/node115.html
+++ b/docs/html/node115.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format
-
+hb_write -- Write a sparse matrix to a file in the Harwell-Boeing format
+
@@ -20,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:mm_array_read Read
- Up:Utilities
- Previous:hb_write Write
- Next:mm_mat_read Read
+ Up:Utilities
+ Previous:hb_read Read
+ Contents
the sparse matrix to be written.
+
+Type:required.
+
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
+
b
+
Rigth hand side.
+
+Type: Optional
+
+An array of type real or complex, rank 1 and having the ALLOCATABLE
+attribute; will be allocated and filled in if the input file contains
+a right hand side.
+
filename
-
The name of the file to be read.
+
The name of the file to be written to.
Type:optional.
Specified as: a character variable containing a valid file name, or
--, in which case the default input unit 5 (i.e. standard input
+-, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: -.
iunit
@@ -90,6 +106,24 @@ Type:optional.
Specified as: an integer value. Only meaningful if filename is not -.
+
key
+
Matrix key.
+
+Type: Optional
+
+A charachter variable of length 8 holding the
+matrix key as specified by the Harwell-Boeing format and to be
+written to file.
+
+
mtitle
+
Matrix title.
+
+Type: Optional
+
+A charachter variable of length 72 holding the
+matrix title as specified by the Harwell-Boeing format and to be
+written to file.
+
@@ -97,13 +131,6 @@ Specified as: an integer value. Only meaningful if filename is not -On Return
-
a
-
the sparse matrix read from file.
-
-Type:required.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
iret
Error code.
@@ -114,7 +141,30 @@ An integer value; 0 means no error has been detected.
-
+
+
+
+
+
+
+
+
+
+
+
+ Next:mm_mat_read Read
+ Up:Utilities
+ Previous:hb_read Read
+ Contents
+
diff --git a/docs/html/node116.html b/docs/html/node116.html
index 03ea5f4e..455b52b1 100644
--- a/docs/html/node116.html
+++ b/docs/html/node116.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-mm_array_read -- Read a dense array from a file in the MatrixMarket format
-
+mm_mat_read -- Read a sparse matrix from a file in the MatrixMarket format
+
@@ -20,49 +20,49 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:mm_mat_write Write
- Up:Utilities
- Previous:mm_mat_read Read
- Next:mm_array_read Read
+ Up:Utilities
+ Previous:hb_write Write
+ Contents
@@ -97,14 +97,12 @@ Specified as: an integer value. Only meaningful if filename is not -On Return
-
b
-
Rigth hand side(s).
+
a
+
the sparse matrix read from file.
-Type: required
+Type:required.
-An array of type real or complex, rank 1 or 2 and having the ALLOCATABLE
-attribute; will be allocated and filled in if the input file contains
-a right hand side, otherwise will be left in the UNALLOCATED state.
+Specified as: a structured data of type spdatapsb_Tspmat_type.
iret
Error code.
diff --git a/docs/html/node117.html b/docs/html/node117.html
index ceec6ff1..187170c3 100644
--- a/docs/html/node117.html
+++ b/docs/html/node117.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format
-
+mm_array_read -- Read a dense array from a file in the MatrixMarket format
+
@@ -20,51 +20,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:mm_array_write Write
- Up:Utilities
- Previous:mm_array_read Read
- Next:mm_mat_write Write
+ Up:Utilities
+ Previous:mm_mat_read Read
+ Contents
the sparse matrix to be written.
-
-Type:required.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
-
mtitle
-
Matrix title.
-
-Type: required
-
-A charachter variable holding a descriptive title for the matrix to be
- written to file.
-
filename
-
The name of the file to be written to.
+
The name of the file to be read.
Type:optional.
Specified as: a character variable containing a valid file name, or
--, in which case the default output unit 6 (i.e. standard output
+-, in which case the default input unit 5 (i.e. standard input
in Unix jargon) is used. Default: -.
iunit
@@ -110,6 +97,15 @@ Specified as: an integer value. Only meaningful if filename is not -On Return
+
b
+
Rigth hand side(s).
+
+Type: required
+
+An array of type real or complex, rank 1 or 2 and having the ALLOCATABLE
+attribute; will be allocated and filled in if the input file contains
+a right hand side, otherwise will be left in the UNALLOCATED state.
+
iret
Error code.
diff --git a/docs/html/node118.html b/docs/html/node118.html
index 46a55d34..8181c601 100644
--- a/docs/html/node118.html
+++ b/docs/html/node118.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-mm_array_write -- Write a dense array from a file in the MatrixMarket format
-
+mm_mat_write -- Write a sparse matrix to a file in the MatrixMarket format
+
@@ -18,54 +18,53 @@ original version by: Nikos Drakos, CBLU, University of Leeds
+
-
+
-
-
+
-
-
- Next:Preconditioner routines
- Up:Utilities
- Previous:mm_mat_write Write
- Next:mm_array_write Write
+ Up:Utilities
+ Previous:mm_array_read Read
+ Contents
the sparse matrix to be written.
+
+Type:required.
+
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
+
mtitle
+
Matrix title.
Type: required
-An array of type real or complex, rank 1 or 2; will be written..
+A charachter variable holding a descriptive title for the matrix to be
+ written to file.
+
filename
-
The name of the file to be written.
+
The name of the file to be written to.
Type:optional.
Specified as: a character variable containing a valid file name, or
--, in which case the default input unit 5 (i.e. standard input
+-, in which case the default output unit 6 (i.e. standard output
in Unix jargon) is used. Default: -.
iunit
diff --git a/docs/html/node119.html b/docs/html/node119.html
index 14a76910..576e6b51 100644
--- a/docs/html/node119.html
+++ b/docs/html/node119.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-Preconditioner routines
-
+mm_array_write -- Write a dense array from a file in the MatrixMarket format
+
@@ -18,79 +18,100 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
+
+
-
-
+
-
-
- Next:psb_precinit Initialize
- Up:userhtml
- Previous:mm_array_write Write
- Next:Preconditioner routines
+ Up:Utilities
+ Previous:mm_mat_write Write
+ Contents
-The base PSBLAS library contains the implementation of two simple
-preconditioning techniques:
+
+
+
-
-
Diagonal Scaling
-
-
Block Jacobi with ILU(0) factorization
-
-
-The supporting data type and subroutine interfaces are defined in the
-module psb_prec_mod.
+
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
b
+
Rigth hand side(s).
+
+Type: required
+
+An array of type real or complex, rank 1 or 2; will be written..
+
filename
+
The name of the file to be written.
+
+Type:optional.
+
+Specified as: a character variable containing a valid file name, or
+-, in which case the default input unit 5 (i.e. standard input
+in Unix jargon) is used. Default: -.
+
+
iunit
+
The Fortran file unit number.
+
+Type:optional.
+
+Specified as: an integer value. Only meaningful if filename is not -.
+
+The base PSBLAS library contains the implementation of two simple
+preconditioning techniques:
-
-
-
Type:
-
Asynchronous.
-
-
On Entry
-
-
-
ptype
-
the type of preconditioner.
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: a character string, see usage notes.
-
-
On Exit
-
-
-
prec
-
Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a preconditioner data structure precdatapsb_prec_type.
-
-
info
-
Scope: global
-
-Type: required
-
-Intent: out.
-
-Error code: if no error, 0 is returned.
-
-
-Notes
-Legal inputs to this subroutine are interpreted depending on the
- string as follows3:
-
-
NONE
-
No preconditioning, i.e. the preconditioner is just a copy
- operator.
-
-
DIAG
-
Diagonal scaling; each entry of the input vector is
- multiplied by the reciprocal of the sum of the absolute values of
- the coefficients in the corresponding row of matrix ;
-
-
BJAC
-
Precondition by a factorization of the
- block-diagonal of matrix , where block boundaries are determined
- by the data allocation boundaries for each process; requires no
- communication. Only the incomplete factorization is
- currently implemented.
-
-
+
+
Diagonal Scaling
+
+
Block Jacobi with ILU(0) factorization
+
+
+The supporting data type and subroutine interfaces are defined in the
+module psb_prec_mod.
the type of preconditioner.
+Scope: global
Type: required
-Intent: in, target.
+Intent: in.
-Specified as: a sparse matrix data structure spdatapsb_Tspmat_type.
+Specified as: a character string, see usage notes.
+
+
On Exit
+
prec
-
the preconditioner.
-
-Scope: local
+
Scope: local
Type: required
Intent: inout.
-Specified as: an already initialized precondtioner data structure precdatapsb_prec_type
-
-
desc_a
-
the problem communication descriptor.
-Scope: local
-
-Type: required
-
-Intent: in, target.
-
-Specified as: a communication descriptor data structure descdatapsb_desc_type.
+Specified as: a preconditioner data structure precdatapsb_prec_type.
-
amold
-
The desired dynamic type for the internal matrix storage.
-
-Scope: local.
-
-Type: optional.
-
-Intent: in.
-
-Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat.
-
-
vmold
-
The desired dynamic type for the internal vector storage.
-
-Scope: local.
+
info
+
Scope: global
-Type: optional.
+Type: required
-Intent: in.
+Intent: out.
-Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type.
-
-
+Error code: if no error, 0 is returned.
-
-
+Notes
+Legal inputs to this subroutine are interpreted depending on the
+ string as follows3:
-
On Return
-
+
NONE
+
No preconditioning, i.e. the preconditioner is just a copy
+ operator.
-
prec
-
the preconditioner.
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a precondtioner data structure precdatapsb_prec_type
-
-
info
-
Error code.
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value; 0 means no error has been detected.
+
DIAG
+
Diagonal scaling; each entry of the input vector is
+ multiplied by the reciprocal of the sum of the absolute values of
+ the coefficients in the corresponding row of matrix ;
+
+
BJAC
+
Precondition by a factorization of the
+ block-diagonal of matrix , where block boundaries are determined
+ by the data allocation boundaries for each process; requires no
+ communication. Only the incomplete factorization is
+ currently implemented.
diff --git a/docs/html/node122.html b/docs/html/node122.html
index 984a9dc9..0a139a77 100644
--- a/docs/html/node122.html
+++ b/docs/html/node122.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_precaply -- Preconditioner application routine
-
+psb_precbld -- Builds a preconditioner
+
@@ -20,46 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_precdescr Prints
- Up:Preconditioner routines
- Previous:psb_precbld Builds
- Next:psb_precaply Preconditioner
+ Up:Preconditioner routines
+ Previous:psb_precinit Initialize
+ Contents
the system sparse matrix.
Scope: local
Type: required
-Intent: in.
+Intent: in, target.
-Specified as: a preconditioner data structure precdatapsb_prec_type.
+Specified as: a sparse matrix data structure spdatapsb_Tspmat_type.
-
x
-
the source vector.
+
prec
+
the preconditioner.
+
Scope: local
Type: required
Intent: inout.
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
-
+Specified as: an already initialized precondtioner data structure precdatapsb_prec_type
+
desc_a
-
the problem communication descriptor.
+
the problem communication descriptor.
Scope: local
Type: required
-Intent: in.
+Intent: in, target.
-Specified as: a communication data structure descdatapsb_desc_type.
+Specified as: a communication descriptor data structure descdatapsb_desc_type.
-
trans
-
Scope:
+
amold
+
The desired dynamic type for the internal matrix storage.
-Type: optional
+Scope: local.
+
+Type: optional.
Intent: in.
-Specified as: a character.
+Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat.
-
work
-
an optional work space
-Scope: local
+
vmold
+
The desired dynamic type for the internal vector storage.
-Type: optional
+Scope: local.
-Intent: inout.
+Type: optional.
+
+Intent: in.
-Specified as: a double precision array.
+Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type.
+
+
@@ -126,16 +130,17 @@ Specified as: a double precision array.
On Return
-
y
-
the destination vector.
+
prec
+
the preconditioner.
+
Scope: local
Type: required
Intent: inout.
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
-
+Specified as: a precondtioner data structure precdatapsb_prec_type
+
info
Error code.
diff --git a/docs/html/node123.html b/docs/html/node123.html
index cba58e26..bf517f50 100644
--- a/docs/html/node123.html
+++ b/docs/html/node123.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_precdescr -- Prints a description of current preconditioner
-
+psb_precaply -- Preconditioner application routine
+
@@ -20,52 +20,52 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:clone clone
- Up:Preconditioner routines
- Previous:psb_precaply Preconditioner
- Next:psb_precdescr Prints
+ Up:Preconditioner routines
+ Previous:psb_precbld Builds
+ Contents
@@ -80,15 +80,72 @@ Intent: in.
Specified as: a preconditioner data structure precdatapsb_prec_type.
-
iout
-
output unit.
+
x
+
the source vector.
Scope: local
-Type: optiona
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
+
+
desc_a
+
the problem communication descriptor.
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a communication data structure descdatapsb_desc_type.
+
+
trans
+
Scope:
+
+Type: optional
Intent: in.
-Specified as: an integer number.
+Specified as: a character.
+
+
work
+
an optional work space
+Scope: local
+
+Type: optional
+
+Intent: inout.
+
+Specified as: a double precision array.
+
+
+
+
+
+
On Return
+
+
+
y
+
the destination vector.
+Scope: local
+
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
+
+
info
+
Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
diff --git a/docs/html/node124.html b/docs/html/node124.html
index 441e85ce..0be908ea 100644
--- a/docs/html/node124.html
+++ b/docs/html/node124.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-clone -- clone current preconditioner
-
+psb_precdescr -- Prints a description of current preconditioner
+
@@ -18,45 +18,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
+
-
+
-
-
+
-
-
- Next:Iterative Methods
- Up:Preconditioner routines
- Previous:psb_precdescr Prints
- Next:clone clone
+ Up:Preconditioner routines
+ Previous:psb_precaply Preconditioner
+ Contents
-In this chapter we provide routines for preconditioners and iterative
-methods. The interfaces for Krylov subspace methods are available in
-the module psb_krylov_mod.
+
-This subroutine is a driver that provides a general interface for all
-the Krylov-Subspace family methods implemented in PSBLAS version 2.
-
-
-The stopping criterion is the normwise backward error, in the infinity
-norm, i.e. the iteration is stopped when
-
-
-
-
-
-
-
-
-or the 2-norm residual reduction
-
-
-
-
-
-
-
-
-according to the value passed through the istop argument (see
-later). In the above formulae, is the tentative solution and
- the corresponding residual at the -th iteration.
-
-
-
-
-
-
-
-
-
Type:
-
Synchronous.
-
-
On Entry
-
-
-
method
-
a string that defines the iterative method to be
- used. Supported values are:
-
-
CG:
-
the Conjugate Gradient method;
-
-
-
CGS:
-
the Conjugate Gradient Stabilized method;
-
-
-
-
BICG:
-
the Bi-Conjugate Gradient method;
-
-
-
BICGSTAB:
-
the Bi-Conjugate Gradient Stabilized method;
-
-
-
BICGSTABL:
-
the Bi-Conjugate Gradient Stabilized method with restarting;
-
-
-
RGMRES:
-
the Generalized Minimal Residual method with restarting.
-
-
-
-
-
a
-
the local portion of global sparse matrix
-.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
-
prec
-
The data structure containing the preconditioner.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a structured data of type precdatapsb_prec_type.
-
-
b
-
The RHS vector.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
-
-
x
-
The initial guess.
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
-
-
eps
-
The stopping tolerance.
-
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: a real number.
-
-
desc_a
-
contains data structures for communications.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a structured data of type descdatapsb_desc_type.
-
-
itmax
-
The maximum number of iterations to perform.
-
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Default: .
-
-Specified as: an integer variable .
-
-
itrace
-
If print out an informational message about
- convergence every iterations.
-
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-
irst
-
An integer specifying the restart parameter.
-
-Scope: global
-
-Type: optional.
-
-Intent: in.
-
-Values: . This is employed for the BiCGSTABL or RGMRES
-methods, otherwise it is ignored.
-
-
-
-
istop
-
An integer specifying the stopping criterion.
-
-Scope: global
-
-Type: optional.
-
-Intent: in.
-
-Values: 1: use the normwise backward error, 2: use the scaled 2-norm
-of the residual. Default: 2.
-
-
On Return
-
-
-
x
-
The computed solution.
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
-
-
iter
-
The number of iterations performed.
-
-Scope: global
-
-Type: optional
-
-Intent: out.
-
-Returned as: an integer variable.
-
-
err
-
The convergence estimate on exit.
-
-Scope: global
-
-Type: optional
-
-Intent: out.
-
-Returned as: a real number.
-
-
cond
-
An estimate of the condition number of matrix ; only
- available with the method.
+
+
-Scope: global
-
-Type: optional
-
-Intent: out.
-
-Returned as: a real number.
-
-
info
-
Error code.
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value; 0 means no error has been detected.
-
-
-
-
+Iterative Methods
+
+In this chapter we provide routines for preconditioners and iterative
+methods. The interfaces for Krylov subspace methods are available in
+the module psb_krylov_mod.
- D. Barbieri, V. Cardellini, S. Filippone and D. Rouson
-Design Patterns for Scientific Computations on Sparse Matrices,
- HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
+
+
-G. Bella, S. Filippone, A. De Maio and M. Testa,
-A Simulation Model for Forest Fires,
-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.
-
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. 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.
+This subroutine is a driver that provides a general interface for all
+the Krylov-Subspace family methods implemented in PSBLAS version 2.
+
+
+The stopping criterion is the normwise backward error, in the infinity
+norm, i.e. the iteration is stopped when
+
+
+
+
+
+
+
+
+or the 2-norm residual reduction
+
+
+
+
+
+
+
+
+according to the value passed through the istop argument (see
+later). In the above formulae, is the tentative solution and
+ the corresponding residual at the -th iteration.
- 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.
-
- 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.
-
-J. J. Dongarra and R. C. Whaley,
-A User's Guide to the BLACS v. 1.1,
-Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
-Tennessee, March 1995 (updated May 1997).
-
-I. Duff, M. Marrone, G. Radicati and C. Vittoli,
-Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
-a User Level Interface,
-ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997.
-
-I. Duff, M. Heroux and R. Pozo,
-An Overview of the Sparse Basic Linear
-Algebra Subprograms: the New Standard from the BLAS Technical Forum,
-ACM Transactions on Mathematical Software, 28(2), pp. 239-267, 2002.
-
-S. Filippone and M. Colajanni,
-PSBLAS: A Library for Parallel Linear Algebra
-Computation on Sparse Matrices,
-ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000.
-
-S. Filippone and A. Buttari,
-Object-Oriented Techniques for Sparse Matrix Computations in Fortran 2003,
+
-ACM Transactions on Mathematical Software, 38(4), 2012.
-
-S. Filippone, P. D'Ambra, M. Colajanni,
-Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
-Applications Code on Linux Clusters,
-in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
-Parallel Computing - Advances & Current Issues,
-pp. 441-448, Imperial College Press, 2002.
-
-Karypis, G. and Kumar, V.,
-METIS: Unstructured Graph Partitioning and Sparse Matrix
- Ordering System.
-Minneapolis, MN 55455: University of Minnesota, Department of
- Computer Science, 1995.
-Internet Address: http://www.cs.umn.edu/~karypis.
-
-Machiels, L. and Deville, M.
-Fortran 90: An entry to object-oriented programming for the solution
- of partial differential equations.
-ACM Trans. Math. Softw. vol. 23, 32-49.
-
-Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
- Object-Oriented Way. Cambridge University Press (2011)
+
+
BICG:
+
the Bi-Conjugate Gradient method;
+
+
+
BICGSTAB:
+
the Bi-Conjugate Gradient Stabilized method;
+
+
+
BICGSTABL:
+
the Bi-Conjugate Gradient Stabilized method with restarting;
+
+
+
RGMRES:
+
the Generalized Minimal Residual method with restarting.
+
+
+
+
+
a
+
the local portion of global sparse matrix
+.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
+
prec
+
The data structure containing the preconditioner.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a structured data of type precdatapsb_prec_type.
+
+
b
+
The RHS vector.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
+
+
x
+
The initial guess.
+
+Scope: local
+
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
+
+
eps
+
The stopping tolerance.
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: a real number.
+
+
desc_a
+
contains data structures for communications.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a structured data of type descdatapsb_desc_type.
+
+
itmax
+
The maximum number of iterations to perform.
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Default: .
+
+Specified as: an integer variable .
+
+
itrace
+
If print out an informational message about
+ convergence every iterations.
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+
irst
+
An integer specifying the restart parameter.
+
+Scope: global
+
+Type: optional.
+
+Intent: in.
+
+Values: . This is employed for the BiCGSTABL or RGMRES
+methods, otherwise it is ignored.
An integer specifying the stopping criterion.
+
+Scope: global
+
+Type: optional.
+
+Intent: in.
+
+Values: 1: use the normwise backward error, 2: use the scaled 2-norm
+of the residual. Default: 2.
+
+
On Return
-M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
-MPI: The Complete Reference. Volume 1 - The MPI Core, second edition,
-MIT Press, 1998.
+
+
x
+
The computed solution.
+
+Scope: local
+
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one array or an object of type vdatapsb_T_vect_type.
+
+
iter
+
The number of iterations performed.
+
+Scope: global
+
+Type: optional
+
+Intent: out.
+
+Returned as: an integer variable.
+
+
err
+
The convergence estimate on exit.
+
+Scope: global
+
+Type: optional
+
+Intent: out.
+
+Returned as: a real number.
+
+
cond
+
An estimate of the condition number of matrix ; only
+ available with the method.
+
+Scope: global
+
+Type: optional
+
+Intent: out.
+
+Returned as: a real number.
+
+
info
+
Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Next:Bibliography
+ Up:Iterative Methods
+ Previous:Iterative Methods
+ Contents
+
diff --git a/docs/html/node128.html b/docs/html/node128.html
index 494d542b..7cd5f15e 100644
--- a/docs/html/node128.html
+++ b/docs/html/node128.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-About this document ...
-
+Bibliography
+
@@ -18,52 +18,165 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
+
+
-
-
+
+
-
-
- Up: Next: About this document ...
+ Up:userhtml
- Previous:Bibliography
- Previous:psb_krylov Krylov
+ Contents
-
-
+
+ D. Barbieri, V. Cardellini, S. Filippone and D. Rouson
+Design Patterns for Scientific Computations on Sparse Matrices,
+ HPSS 2011, Algorithms and Programming Tools for Next-Generation High-Performance Scientific Software, Bordeaux, Sep. 2011
+
+
+G. Bella, S. Filippone, A. De Maio and M. Testa,
+A Simulation Model for Forest Fires,
+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.
+
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. 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.
-
+ 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.
+
+ 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.
+
+J. J. Dongarra and R. C. Whaley,
+A User's Guide to the BLACS v. 1.1,
+Lapack Working Note 94, Tech. Rep. UT-CS-95-281, University of
+Tennessee, March 1995 (updated May 1997).
+
+I. Duff, M. Marrone, G. Radicati and C. Vittoli,
+Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
+a User Level Interface,
+ACM Transactions on Mathematical Software, 23(3), pp. 379-401, 1997.
+
+I. Duff, M. Heroux and R. Pozo,
+An Overview of the Sparse Basic Linear
+Algebra Subprograms: the New Standard from the BLAS Technical Forum,
+ACM Transactions on Mathematical Software, 28(2), pp. 239-267, 2002.
+
+S. Filippone and M. Colajanni,
+PSBLAS: A Library for Parallel Linear Algebra
+Computation on Sparse Matrices,
+
+ACM Transactions on Mathematical Software, 26(4), pp. 527-550, 2000.
+
+S. Filippone, P. D'Ambra, M. Colajanni,
+Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
+Applications Code on Linux Clusters,
+in G. Joubert, A. Murli, F. Peters, M. Vanneschi, editors,
+Parallel Computing - Advances & Current Issues,
+pp. 441-448, Imperial College Press, 2002.
+
+Karypis, G. and Kumar, V.,
+METIS: Unstructured Graph Partitioning and Sparse Matrix
+ Ordering System.
+Minneapolis, MN 55455: University of Minnesota, Department of
+ Computer Science, 1995.
+Internet Address: http://www.cs.umn.edu/~karypis.
+
+Machiels, L. and Deville, M.
+Fortran 90: An entry to object-oriented programming for the solution
+ of partial differential equations.
+ACM Trans. Math. Softw. vol. 23, 32-49.
+
+M. Snir, S. Otto, S. Huss-Lederman, D. Walker and J. Dongarra,
+MPI: The Complete Reference. Volume 1 - The MPI Core, second edition,
+MIT Press, 1998.
+
+
-The translation was initiated by Salvatore Filippone on 2014-03-27
diff --git a/docs/html/node16.html b/docs/html/node16.html
index 4adeeebb..7c24d80a 100644
--- a/docs/html/node16.html
+++ b/docs/html/node16.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_context -- Get communication context
-
+get_global_indices -- Get vector of global indices
+
@@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next:Clone clone
- Up: Next: get_context Get
+ Up:Descriptor data structure
- Previous: Previous: get_global_cols Get
- Contents
the communication descriptor.
Scope: local.
+
+Type: required.
+
+
owned
+
Choose if you only want owned indices
+ (owned=.true.) or also halo indices (owned=.false.).
+Scope: local.
+
+Type: optional; default: .true..
@@ -81,7 +90,8 @@ Scope: local.
Function value
-
The communication context.
+
The global indices, returned as an allocatable
+ integer array of rank 1.
diff --git a/docs/html/node17.html b/docs/html/node17.html
index 61591708..e7ed959c 100644
--- a/docs/html/node17.html
+++ b/docs/html/node17.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-Clone -- clone current object
-
+get_context -- Get communication context
+
@@ -26,38 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next:psb_cd_get_large_threshold Get
- Up: Next: Clone clone
+ Up:Descriptor data structure
- Previous:get_context Get
- Previous:get_global_indices Get
+ Contents
diff --git a/docs/html/node18.html b/docs/html/node18.html
index 9bb9bf69..2ab05633 100644
--- a/docs/html/node18.html
+++ b/docs/html/node18.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_cd_get_large_threshold -- Get threshold for index mapping switch
-
+Clone -- clone current object
+
@@ -26,39 +26,38 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next:psb_cd_set_large_threshold Set
- Up: Next: psb_cd_get_large_threshold Get
+ Up:Descriptor data structure
- Previous:Clone clone
- Previous:get_context Get
+ Contents
diff --git a/docs/html/node19.html b/docs/html/node19.html
index 69efaa14..783e4418 100644
--- a/docs/html/node19.html
+++ b/docs/html/node19.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_cd_set_large_threshold -- Set threshold for index mapping switch
-
+psb_cd_get_large_threshold -- Get threshold for index mapping switch
+
@@ -26,66 +26,55 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next:Named Constants
- Up: Next: psb_cd_set_large_threshold Set
+ Up:Descriptor data structure
- Previous:psb_cd_get_large_threshold Get
- Previous:Clone clone
+ Contents
the new threshold for communication descriptors.
-
-Scope: global.
-
-Type: required.
-
-Intent: in.
-
-Specified as: an integer value greater than zero.
+
Function value
+
The current value for the size threshold.
+
+
-Note: the threshold value is only queried by the library at the time a
-call to psb_cdall is executed, therefore changing the threshold
-has no effect on communication descriptors that have already been
-initialized. Moreover the threshold must have the same value on all
-processes.
diff --git a/docs/html/node2.html b/docs/html/node2.html
index beae7366..cfc485b0 100644
--- a/docs/html/node2.html
+++ b/docs/html/node2.html
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next: Next: General overview
- Up: Up: userhtml
- Previous: Previous: Contents
- Contents
@@ -71,7 +71,7 @@ passing.
The PSBLAS library version 3 is implemented in
the Fortran 2003 [17] programming language, with reuse and/or
+ HREF="node128.html#metcalf">17] programming language, with reuse and/or
adaptation of existing Fortran 77 and Fortran 95 software, plus a
handful of C routines.
@@ -81,11 +81,11 @@ mostly in the handling of requirements for evolution and adaptation of
the library to new computing architectures and integration of
new algorithms.
For a detailed discussion of our design see [11]; other
+ HREF="node128.html#Sparse03">11]; other
works discussing advanced programming in Fortran 2003
include [1,18]; sufficient support for
+ HREF="node128.html#DesPat:11">1,18]; sufficient support for
Fortran 2003 is now available from many compilers, including the GNU
Fortran compiler from the Free Software Foundation (as of version 4.6).
@@ -94,7 +94,7 @@ Previous approaches have been based on mixing Fortran 95, with its
support for object-based design, with other languages; these have
been advocated by a number of authors,
e.g. [16]. Moreover, the Fortran 95 facilities for dynamic
+ HREF="node128.html#machiels">16]. Moreover, the Fortran 95 facilities for dynamic
memory management and interface overloading greatly enhance the
usability of the PSBLAS
subroutines. In this way, the library can take care of runtime memory
@@ -105,12 +105,12 @@ implementation or compilation time.
The presentation of the
PSBLAS library follows the general structure of the proposal for
serial Sparse BLAS [8,9], which in its turn is based on the
+ HREF="node128.html#sblas97">8,9], which in its turn is based on the
proposal for BLAS on dense matrices [15,5,6].
+ HREF="node128.html#BLAS1">15,5,6].
The applicability of sparse iterative solvers to many different areas
@@ -144,26 +144,26 @@ computational fluid dynamics applications.
Fetch halo elements from neighbouring processes;
-
-
psb_sum_
-
Sum overlapped elements
+
Type:
+
Synchronous.
-
psb_avg_
-
Average overlapped elements
+
On Entry
+
-
psb_comm_halo_
-
Exchange data based on the halo_index
- list;
-
-
psb_comm_ext_
-
Exchange data based on the ext_index
- list;
-
-
psb_comm_ovr_
-
Exchange data based on the ovrlap_index
- list;
-
-
psb_comm_mov_
-
Exchange data based on the ovr_mst_idx
- list;
-
-
+
ith
+
the new threshold for communication descriptors.
+
+Scope: global.
+
+Type: required.
+
+Intent: in.
+
+Specified as: an integer value greater than zero.
+Note: the threshold value is only queried by the library at the time a
+call to psb_cdall is executed, therefore changing the threshold
+has no effect on communication descriptors that have already been
+initialized. Moreover the threshold must have the same value on all
+processes.
diff --git a/docs/html/node21.html b/docs/html/node21.html
index 712d9f0c..7cfeaa36 100644
--- a/docs/html/node21.html
+++ b/docs/html/node21.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-Sparse Matrix class
-
+Named Constants
+
@@ -18,199 +18,81 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
+
+
-
-
+
-
-
- Next:Sparse Matrix Methods
- Up:Data Structures and Classes
- Previous:Named Constants
- Next:Sparse Matrix class
+ Up:Descriptor data structure
+ Previous:psb_cd_set_large_threshold Set
+ Contents
-
-
+
+
-Sparse Matrix class
-
-The spdatapsb_Tspmat_type class
-contains all information about the local portion of the sparse matrix and
-its storage mode. Its design is
-based on the STATE design pattern [13] as detailed
-in [11]; the type declaration is shown in
-figure 4 where T is a placeholder for the
-data type and precision variants
+Named Constants
+
-
S
-
Single precision real;
+
psb_none_
+
Generic no-op;
-
D
-
Double precision real;
+
psb_nohalo_
+
Do not fetch halo elements;
-
C
-
Single precision complex;
+
psb_halo_
+
Fetch halo elements from neighbouring processes;
-
Z
-
Double precision complex.
+
psb_sum_
+
Sum overlapped elements
-
-The actual data is contained in the polymorphic component a%a
-of type spbasedatapsb_T_base_sparse_mat; its
-specific layout can be chosen dynamically among the predefined types,
-or an entirely new storage layout can be implemented and passed to the
-library at runtime via the psb_spasb routine.
-
-
-
-
Figure 4:
- The PSBLAS defined data type that
- contains a sparse matrix.
-
-
-
-
- type :: psb_Tspmat_type
- class(psb_T_base_sparse_mat), allocatable :: a
- end type psb_Tspmat_type
-
-
-
-
-
-
-The following very common formats are precompiled in PSBLAS and thus
-are always available:
-
-
psb_T_coo_sparse_mat
-
Coordinate storage;
+
psb_avg_
+
Average overlapped elements
-
psb_T_csr_sparse_mat
-
Compressed storage by rows;
+
psb_comm_halo_
+
Exchange data based on the halo_index
+ list;
-
psb_T_csc_sparse_mat
-
Compressed storage by columns;
-
-
-The inner sparse matrix has an associated state, which can take the
-following values:
-
-
Build:
-
State entered after the first allocation, and before the
- first assembly; in this state it is possible to add nonzero entries.
+
psb_comm_ext_
+
Exchange data based on the ext_index
+ list;
-
Assembled:
-
State entered after the assembly; computations using
- the sparse matrix, such as matrix-vector products, are only possible
- in this state;
+
psb_comm_ovr_
+
Exchange data based on the ovrlap_index
+ list;
-
Update:
-
State entered after a reinitalization; this is used to
- handle applications in which the same sparsity pattern is used
- multiple times with different coefficients. In this state it is only
- possible to enter coefficients for already existing nonzero entries.
+
psb_comm_mov_
+
Exchange data based on the ovr_mst_idx
+ list;
+
+
-The only storage variant supporting the build state is COO; all other
-variants are obtained by conversion to/from it.
+The spdatapsb_Tspmat_type class
+contains all information about the local portion of the sparse matrix and
+its storage mode. Its design is
+based on the STATE design pattern [13] as detailed
+in [11]; the type declaration is shown in
+figure 4 where T is a placeholder for the
+data type and precision variants
+
+
S
+
Single precision real;
+
+
D
+
Double precision real;
+
+
C
+
Single precision complex;
+
+
Z
+
Double precision complex.
+
+
+The actual data is contained in the polymorphic component a%a
+of type spbasedatapsb_T_base_sparse_mat; its
+specific layout can be chosen dynamically among the predefined types,
+or an entirely new storage layout can be implemented and passed to the
+library at runtime via the psb_spasb routine.
+
+
+
+
Figure 4:
+ The PSBLAS defined data type that
+ contains a sparse matrix.
+
+
+
+
+ type :: psb_Tspmat_type
+ class(psb_T_base_sparse_mat), allocatable :: a
+ end type psb_Tspmat_type
+
+
+
+
+
+
+The following very common formats are precompiled in PSBLAS and thus
+are always available:
+
+
psb_T_coo_sparse_mat
+
Coordinate storage;
+
+
psb_T_csr_sparse_mat
+
Compressed storage by rows;
+
+
psb_T_csc_sparse_mat
+
Compressed storage by columns;
+
+
+The inner sparse matrix has an associated state, which can take the
+following values:
+
+
Build:
+
State entered after the first allocation, and before the
+ first assembly; in this state it is possible to add nonzero entries.
+
+
Assembled:
+
State entered after the assembly; computations using
+ the sparse matrix, such as matrix-vector products, are only possible
+ in this state;
+
+
Update:
+
State entered after a reinitalization; this is used to
+ handle applications in which the same sparsity pattern is used
+ multiple times with different coefficients. In this state it is only
+ possible to enter coefficients for already existing nonzero entries.
+
+
+The only storage variant supporting the build state is COO; all other
+variants are obtained by conversion to/from it.
diff --git a/docs/html/node24.html b/docs/html/node24.html
index f0884f16..46c8a971 100644
--- a/docs/html/node24.html
+++ b/docs/html/node24.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_ncols -- Get number of columns in a sparse matrix
-
+get_nrows -- Get number of rows in a sparse matrix
+
@@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:get_nnzeros Get
- Up:Sparse Matrix class
- Previous:get_nrows Get
- Next:get_ncols Get
+ Up:Sparse Matrix class
+ Previous:Sparse Matrix Methods
+ Contents
diff --git a/docs/html/node25.html b/docs/html/node25.html
index a320bfe5..243aa682 100644
--- a/docs/html/node25.html
+++ b/docs/html/node25.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_nnzeros -- Get number of nonzero elements in a sparse matrix
-
+get_ncols -- Get number of columns in a sparse matrix
+
@@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:get_size Get
- Up:Sparse Matrix class
- Previous:get_ncols Get
- Next:get_nnzeros Get
+ Up:Sparse Matrix class
+ Previous:get_nrows Get
+ Contents
The number of nonzero elements stored in sparse matrix a.
+
The number of columns of sparse matrix a.
-
-Notes
-
-
-
The function value is specific to the storage format of matrix
- a; some storage formats employ padding, thus the returned
- value for the same matrix may be different for different storage choices.
-
-
-
diff --git a/docs/html/node26.html b/docs/html/node26.html
index 6efbba63..989aea10 100644
--- a/docs/html/node26.html
+++ b/docs/html/node26.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_size -- Get maximum number of nonzero elements in a sparse matrix
-
+get_nnzeros -- Get number of nonzero elements in a sparse matrix
+
@@ -20,45 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:sizeof Get
- Up:Sparse Matrix class
- Previous:get_nnzeros Get
- Next:get_size Get
+ Up:Sparse Matrix class
+ Previous:get_ncols Get
+ Contents
The maximum number of nonzero elements that can
- be stored in sparse matrix a using its current memory allocation.
+
The number of nonzero elements stored in sparse matrix a.
+
+Notes
+
+
+
The function value is specific to the storage format of matrix
+ a; some storage formats employ padding, thus the returned
+ value for the same matrix may be different for different storage choices.
+
+
+
diff --git a/docs/html/node27.html b/docs/html/node27.html
index 35466d76..91464dc0 100644
--- a/docs/html/node27.html
+++ b/docs/html/node27.html
@@ -7,10 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-sizeof -- Get memory occupation in bytes
-of a sparse matrix
-
+get_size -- Get maximum number of nonzero elements in a sparse matrix
+
@@ -22,45 +20,45 @@ of a sparse matrix">
-
+
-
-
+
-
-
- Next:get_fmt Short
- Up:Sparse Matrix class
- Previous:get_size Get
- Next:sizeof Get
+ Up:Sparse Matrix class
+ Previous:get_nnzeros Get
+ Contents
The maximum number of nonzero elements that can
+ be stored in sparse matrix a using its current memory allocation.
diff --git a/docs/html/node28.html b/docs/html/node28.html
index 4523690b..2dc631fa 100644
--- a/docs/html/node28.html
+++ b/docs/html/node28.html
@@ -7,8 +7,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_fmt -- Short description of the dynamic type
-
+sizeof -- Get memory occupation in bytes
+of a sparse matrix
+
@@ -20,44 +22,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:is_bld, is_upd, is_asb
- Up:Sparse Matrix class
- Previous:sizeof Get
- Next:get_fmt Short
+ Up:Sparse Matrix class
+ Previous:get_size Get
+ Contents
A short string describing the dynamic type of
- the matrix. Predefined values include NULL, COO,
- CSR and CSC.
+
The memory occupation in bytes.
diff --git a/docs/html/node29.html b/docs/html/node29.html
index 7c935066..e9bbedde 100644
--- a/docs/html/node29.html
+++ b/docs/html/node29.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-is_bld, is_upd, is_asb -- Status check
-
+get_fmt -- Short description of the dynamic type
+
@@ -20,46 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:is_lower, is_upper, is_triangle, is_unit
- Up:Sparse Matrix class
- Previous:get_fmt Short
- Next:is_bld, is_upd, is_asb
+ Up:Sparse Matrix class
+ Previous:sizeof Get
+ Contents
-if (a%is_bld()) then
-if (a%is_upd()) then
-if (a%is_asb()) then
+write(*,*) a%get_fmt()
@@ -83,8 +81,9 @@ Scope: local
Function value
-
A logical value indicating whether the
- matrix is in the Build, Update or Assembled state, respectively.
+
A short string describing the dynamic type of
+ the matrix. Predefined values include NULL, COO,
+ CSR and CSC.
diff --git a/docs/html/node3.html b/docs/html/node3.html
index 779b2553..c43e156d 100644
--- a/docs/html/node3.html
+++ b/docs/html/node3.html
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next: Next: Basic Nomenclature
- Up: Up: userhtml
- Previous: Previous: Introduction
- Contents
@@ -78,10 +78,10 @@ calls to the serial sparse BLAS subroutines.
In a similar way, the inter-process message exchanges are encapsulated
in an applicaiton layer that has been strongly inspired by the Basic
Linear Algebra Communication Subroutines (BLACS) library [7].
+ HREF="node128.html#BLACS">7
].
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. 7.
+further details on our communication layer see Sec. 7.
@@ -134,7 +134,7 @@ equation indices to processes.
In particular it is consistent with the
usage of graph partitioning tools commonly available in the
literature, e.g. METIS [14].
+ HREF="node128.html#METIS">14].
Dense vectors conform to sparse
matrices, that is, the entries of a vector follow the same distribution
of the matrix rows.
@@ -154,43 +154,43 @@ bottleneck would make this option unattractive in most cases.
Subsections
-if (a%is_triangle()) then
-if (a%is_upper()) then
-if (a%is_lower()) then
-if (a%is_unit()) then
+if (a%is_bld()) then
+if (a%is_upd()) then
+if (a%is_asb()) then
@@ -86,9 +84,7 @@ Scope: local
Function value
A logical value indicating whether the
- matrix is triangular; if is_triangle() returns .true.
- check also if it is lower, upper and with a unit (i.e. assumed)
- diagonal.
+ matrix is in the Build, Update or Assembled state, respectively.
diff --git a/docs/html/node31.html b/docs/html/node31.html
index 17af1ce9..680b7c5b 100644
--- a/docs/html/node31.html
+++ b/docs/html/node31.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-cscnv -- Convert to a different storage format
-
+is_lower, is_upper, is_triangle, is_unit -- Format check
+
@@ -20,45 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:csclip Reduce
- Up:Sparse Matrix class
- Previous:is_lower, is_upper, is_triangle, is_unit
- Next:cscnv Convert
+ Up:Sparse Matrix class
+ Previous:is_bld, is_upd, is_asb
+ Contents
the sparse matrix
-A variable of type psb_Tspmat_type.
-
-Scope: local.
+Scope: local
-
type
-
a string requesting a new format.
-
-Type: optional.
-
-
mold
-
a variable of class(psb_T_base_sparse_mat) requesting a new format.
-
-Type: optional.
-
-
dupl
-
an integer value specifing how to handle duplicates (see
- Named Constants below)
-
@@ -97,13 +84,11 @@ Type: optional.
On Return
-
b,a
-
A copy of a with a new storage format.
-
-A variable of type psb_Tspmat_type.
-
-
info
-
Return code.
+
Function value
+
A logical value indicating whether the
+ matrix is triangular; if is_triangle() returns .true.
+ check also if it is lower, upper and with a unit (i.e. assumed)
+ diagonal.
diff --git a/docs/html/node32.html b/docs/html/node32.html
index ab775b02..901f3e4e 100644
--- a/docs/html/node32.html
+++ b/docs/html/node32.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-csclip -- Reduce to a submatrix
-
+cscnv -- Convert to a different storage format
+
@@ -20,50 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:get_diag Get
- Up:Sparse Matrix class
- Previous:cscnv Convert
- Next:csclip Reduce
+ Up:Sparse Matrix class
+ Previous:is_lower, is_upper, is_triangle, is_unit
+ Contents
-Returns the submatrix A(imin:imax,jmin:jmax), optionally
-rescaling row/col indices to the range
-1:imax-imin+1,1:jmax-jmin+1.
Type:
Asynchronous.
@@ -78,22 +76,29 @@ A variable of type psb_Tspmat_type.
Scope: local.
-
imin,imax,jmin,jmax
-
Minimum and maximum row and column indices.
+
type
+
a string requesting a new format.
Type: optional.
-
rscale,cscale
-
Whether to rescale row/column indices.
+
mold
+
a variable of class(psb_T_base_sparse_mat) requesting a new format.
+
Type: optional.
+
dupl
+
an integer value specifing how to handle duplicates (see
+ Named Constants below)
+
+
+
On Return
-
b
-
A copy of a submatrix of a.
+
b,a
+
A copy of a with a new storage format.
A variable of type psb_Tspmat_type.
diff --git a/docs/html/node33.html b/docs/html/node33.html
index c130df9f..8a974231 100644
--- a/docs/html/node33.html
+++ b/docs/html/node33.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_diag -- Get main diagonal
-
+csclip -- Reduce to a submatrix
+
@@ -20,47 +20,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:clip_diag Cut
- Up:Sparse Matrix class
- Previous:csclip Reduce
- Next:get_diag Get
+ Up:Sparse Matrix class
+ Previous:cscnv Convert
+ Contents
-Returns a copy of the main diagonal.
+Returns the submatrix A(imin:imax,jmin:jmax), optionally
+rescaling row/col indices to the range
+1:imax-imin+1,1:jmax-jmin+1.
Type:
Asynchronous.
@@ -75,15 +78,24 @@ A variable of type psb_Tspmat_type.
Scope: local.
+
imin,imax,jmin,jmax
+
Minimum and maximum row and column indices.
+
+Type: optional.
+
+
rscale,cscale
+
Whether to rescale row/column indices.
+Type: optional.
+
On Return
-
d
-
A copy of the main diagonal.
+
b
+
A copy of a submatrix of a.
-A one-dimensional array of the appropriate type.
+A variable of type psb_Tspmat_type.
info
Return code.
diff --git a/docs/html/node34.html b/docs/html/node34.html
index 09411b48..073a4f97 100644
--- a/docs/html/node34.html
+++ b/docs/html/node34.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-clip_diag -- Cut out main diagonal
-
+get_diag -- Get main diagonal
+
@@ -20,47 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:tril Return
- Up:Sparse Matrix class
- Previous:get_diag Get
- Next:clip_diag Cut
+ Up:Sparse Matrix class
+ Previous:csclip Reduce
+ Contents
-Returns the lower triangular part of submatrix
-A(imin:imax,jmin:jmax), optionally rescaling row/col indices to
-the range 1:imax-imin+1,1:jmax-jmin+1.
+Returns a copy of a without the main diagonal.
Type:
Asynchronous.
@@ -78,27 +75,13 @@ A variable of type psb_Tspmat_type.
Scope: local.
-
diag
-
Include diagonals up to this one; diag=1 means the
- first superdiagonal, diag=-1 means the first subdiagonal.
-Default 0.
-
-
imin,imax,jmin,jmax
-
Minimum and maximum row and column indices.
-
-Type: optional.
-
-
rscale,cscale
-
Whether to rescale row/column indices.
-Type: optional.
-
On Return
b
-
A copy of a subtriangle of a.
+
A copy of a without the main diagonal.
A variable of type psb_Tspmat_type.
diff --git a/docs/html/node36.html b/docs/html/node36.html
index d1d44a39..58884288 100644
--- a/docs/html/node36.html
+++ b/docs/html/node36.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-triu -- Return the upper triangle
-
+tril -- Return the lower triangle
+
@@ -20,48 +20,48 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_set_mat_default Set
- Up:Sparse Matrix class
- Previous:tril Return
- Next:triu Return
+ Up:Sparse Matrix class
+ Previous:clip_diag Cut
+ Contents
-Returns the upper triangular part of submatrix
+Returns the lower triangular part of submatrix
A(imin:imax,jmin:jmax), optionally rescaling row/col indices to
the range 1:imax-imin+1,1:jmax-jmin+1.
diff --git a/docs/html/node37.html b/docs/html/node37.html
index 03ea5c7c..035ad5de 100644
--- a/docs/html/node37.html
+++ b/docs/html/node37.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_set_mat_default -- Set default storage format
-
+triu -- Return the upper triangle
+
@@ -20,47 +20,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:clone Clone
- Up:Sparse Matrix class
- Previous:triu Return
- Next:psb_set_mat_default Set
+ Up:Sparse Matrix class
+ Previous:tril Return
+ Contents
+Returns the upper triangular part of submatrix
+A(imin:imax,jmin:jmax), optionally rescaling row/col indices to
+the range 1:imax-imin+1,1:jmax-jmin+1.
a variable of class(psb_T_base_sparse_mat) requesting
- a new default storage format.
+
the sparse matrix.
+
+A variable of type psb_Tspmat_type.
+
+Scope: local.
+
+
diag
+
Include diagonals up to this one; diag=1 means the
+ first superdiagonal, diag=-1 means the first subdiagonal.
+Default 0.
+
+
imin,imax,jmin,jmax
+
Minimum and maximum row and column indices.
+
+Type: optional.
+
+
rscale,cscale
+
Whether to rescale row/column indices.
+Type: optional.
+
+
+
+
On Return
+
+
+
b
+
A copy of a subtriangle of a.
-Type: required.
+A variable of type psb_Tspmat_type.
+
+
info
+
Return code.
diff --git a/docs/html/node38.html b/docs/html/node38.html
index 70cdf4d6..9897d333 100644
--- a/docs/html/node38.html
+++ b/docs/html/node38.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-clone -- Clone current object
-
+psb_set_mat_default -- Set default storage format
+
@@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:Named Constants
- Up:Sparse Matrix class
- Previous:psb_set_mat_default Set
- Next:clone Clone
+ Up:Sparse Matrix class
+ Previous:triu Return
+ Contents
Duplicate coefficients should be overwritten
- (i.e. ignore duplications)
+
Type:
+
Asynchronous.
-
psb_dupl_add_
-
Duplicate coefficients should be added;
+
On Entry
+
-
psb_dupl_err_
-
Duplicate coefficients should trigger an error conditino
-
-
psb_upd_dflt_
-
Default update strategy for matrix coefficients;
+
a
+
the sparse matrix.
+
+Scope: local.
+
+
+
+
+
+
On Return
+
-
psb_upd_srch_
-
Update strategy based on search into the data structure;
+
b
+
A copy of the input object.
-
psb_upd_perm_
-
Update strategy based on additional
- permutation data (see tools routine description).
+
info
+
Return code.
diff --git a/docs/html/node4.html b/docs/html/node4.html
index b524ff62..6510dd1b 100644
--- a/docs/html/node4.html
+++ b/docs/html/node4.html
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next: Next: Library contents
- Up: Up: General overview
- Previous: Previous: General overview
- Contents
@@ -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 [4,3].
+ HREF="node128.html#2007c">4,3].
We denote the sets of internal, boundary and halo points for a given
@@ -197,26 +197,26 @@ points in the literature.
-The vdatapsb_T_vect_type data structure
-encapsulates the dense vectors in a way similar to sparse matrices,
-i.e. including a base type vbasedata psb_T_base_vect_type.
-The user will not, in general, access the vector components directly,
-but rather via the routines of sec. 6. Among other
-simple things, we define here an extraction method that can be used to
-get a full copy of the part of the vector stored on the local
-process.
-
-
-The type declaration is shown in
-figure 5 where T is a placeholder for the
-data type and precision variants
+Named Constants
+
-
I
-
Integer;
+
psb_dupl_ovwrt_
+
Duplicate coefficients should be overwritten
+ (i.e. ignore duplications)
+
+
psb_dupl_add_
+
Duplicate coefficients should be added;
-
S
-
Single precision real;
+
psb_dupl_err_
+
Duplicate coefficients should trigger an error conditino
-
D
-
Double precision real;
+
psb_upd_dflt_
+
Default update strategy for matrix coefficients;
-
C
-
Single precision complex;
+
psb_upd_srch_
+
Update strategy based on search into the data structure;
-
Z
-
Double precision complex.
+
psb_upd_perm_
+
Update strategy based on additional
+ permutation data (see tools routine description).
-The actual data is contained in the polymorphic component v%v;
-the separation between the application and the actual data is
-essential for cases where it is necessary to link to data storage made
-available elsewhere outside the direct control of the
-compiler/application, e.g. data stored in a graphics accelerator's
-private memory.
-
-
-
-
Figure 5:
- The PSBLAS defined data type that
- contains a dense vector.
-
-
-
-
- type psb_T_base_vect_type
- TYPE(KIND_), allocatable :: v(:)
- end type psb_T_base_vect_type
-
- type psb_T_vect_type
- class(psb_T_base_vect_type), allocatable :: v
- end type psb_T_vect_type
-
+The vdatapsb_T_vect_type data structure
+encapsulates the dense vectors in a way similar to sparse matrices,
+i.e. including a base type vbasedata psb_T_base_vect_type.
+The user will not, in general, access the vector components directly,
+but rather via the routines of sec. 6. Among other
+simple things, we define here an extraction method that can be used to
+get a full copy of the part of the vector stored on the local
+process.
+
+
+The type declaration is shown in
+figure 5 where T is a placeholder for the
+data type and precision variants
+
+
I
+
Integer;
+
+
S
+
Single precision real;
+
+
D
+
Double precision real;
+
+
C
+
Single precision complex;
+
+
Z
+
Double precision complex.
+
+
+The actual data is contained in the polymorphic component v%v;
+the separation between the application and the actual data is
+essential for cases where it is necessary to link to data storage made
+available elsewhere outside the direct control of the
+compiler/application, e.g. data stored in a graphics accelerator's
+private memory.
+
+
+
+
Figure 5:
+ The PSBLAS defined data type that
+ contains a dense vector.
+
+
+
+
+ type psb_T_base_vect_type
+ TYPE(KIND_), allocatable :: v(:)
+ end type psb_T_base_vect_type
+
+ type psb_T_vect_type
+ class(psb_T_base_vect_type), allocatable :: v
+ end type psb_T_vect_type
+
diff --git a/docs/html/node43.html b/docs/html/node43.html
index 52b233e9..d3b2b20e 100644
--- a/docs/html/node43.html
+++ b/docs/html/node43.html
@@ -7,10 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-sizeof -- Get memory occupation in bytes
-of a dense vector
-
+get_nrows -- Get number of rows in a dense vector
+
@@ -22,45 +20,44 @@ of a dense vector">
-
+
-
-
+
-
-
- Next:get_vect Get
- Up:Dense Vector Data Structure
- Previous:get_nrows Get
- Next:sizeof Get
+ Up:Dense Vector Data Structure
+ Previous:Vector Methods
+ Contents
diff --git a/docs/html/node44.html b/docs/html/node44.html
index 67834ab4..35405147 100644
--- a/docs/html/node44.html
+++ b/docs/html/node44.html
@@ -7,8 +7,10 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-get_vect -- Get a copy of the vector contents
-
+sizeof -- Get memory occupation in bytes
+of a dense vector
+
@@ -20,44 +22,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:clone Clone
- Up:Dense Vector Data Structure
- Previous:sizeof Get
- Next:get_vect Get
+ Up:Dense Vector Data Structure
+ Previous:get_nrows Get
+ Contents
An allocatable array holding a copy of the dense
- vector contents.
+
The memory occupation in bytes.
diff --git a/docs/html/node45.html b/docs/html/node45.html
index 4a0bc088..a9c83cf2 100644
--- a/docs/html/node45.html
+++ b/docs/html/node45.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-clone -- Clone current object
-
+get_vect -- Get a copy of the vector contents
+
@@ -18,44 +18,46 @@ original version by: Nikos Drakos, CBLU, University of Leeds
+
-
+
-
-
+
-
-
- Next:Preconditioner data structure
- Up:Dense Vector Data Structure
- Previous:get_vect Get
- Next:clone Clone
+ Up:Dense Vector Data Structure
+ Previous:sizeof Get
+ Contents
An allocatable array holding a copy of the dense
+ vector contents.
diff --git a/docs/html/node46.html b/docs/html/node46.html
index d78dbe8c..d1bd01d2 100644
--- a/docs/html/node46.html
+++ b/docs/html/node46.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-Preconditioner data structure
-
+clone -- Clone current object
+
@@ -18,70 +18,73 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
+
+
-
-
+
-
-
- Next:Computational routines
- Up:Data Structures and Classes
- Previous:clone Clone
- Next:Preconditioner data structure
+ Up:Dense Vector Data Structure
+ Previous:get_vect Get
+ Contents
-
-
-
-Preconditioner data structure
-
-Our base library offers support for simple well known preconditioners
-like Diagonal Scaling or Block Jacobi with incomplete
-factorization ILU(0).
+
-A preconditioner is held in the precdata psb_prec_type data structure reported in
-figure 6. The psb_prec_type
-data type may contain a simple preconditioning matrix with the
-associated communication descriptor.The internal preconditioner is allocated appropriately with the
-dynamic type corresponding to the desired preconditioner.
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
x
+
the dense vector.
+
+Scope: local.
+
+
-
-
-
Figure 6:
-The PSBLAS defined data type that contains a preconditioner.
-
-
-
-
- type psb_Tprec_type
- class(psb_T_base_prec_type), allocatable :: prec
- end type psb_Tprec_type
-
-
-
-
-
+
+
+
On Return
+
+
+
y
+
A copy of the input object.
+
+
info
+
Return code.
+
+
diff --git a/docs/html/node47.html b/docs/html/node47.html
index d9da841a..757db90d 100644
--- a/docs/html/node47.html
+++ b/docs/html/node47.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-Computational routines
-
+Preconditioner data structure
+
@@ -18,78 +18,72 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
+
+
-
-
+
-
-
- Next:psb_geaxpby General
- Up:userhtml
- Previous:Preconditioner data structure
- Next:Computational routines
+ Up:Data Structures and Classes
+ Previous:clone Clone
+ Contents
+Our base library offers support for simple well known preconditioners
+like Diagonal Scaling or Block Jacobi with incomplete
+factorization ILU(0).
-
-
-Subsections
+A preconditioner is held in the precdata psb_prec_type data structure reported in
+figure 6. The psb_prec_type
+data type may contain a simple preconditioning matrix with the
+associated communication descriptor.The internal preconditioner is allocated appropriately with the
+dynamic type corresponding to the desired preconditioner.
-
-This subroutine is an interface to the computational kernel for
-dense matrix sum:
-
-
-
-
-
-
-
-
-
-
-
-call psb_geaxpby(alpha, x, beta, y, desc_a, info)
-
-
-
-
-
-
-
Table 1:
-Data types
-
-
-
-
, , ,
-
Subroutine
-
-
Short Precision Real
-
psb_geaxpby
-
-
Long Precision Real
-
psb_geaxpby
-
-
Short Precision Complex
-
psb_geaxpby
-
-
Long Precision Complex
-
psb_geaxpby
-
-
-
-
-
-
-
-
-
-
-
Type:
-
Synchronous.
-
-
On Entry
-
-
-
alpha
-
the scalar .
-
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: a number of the data type indicated in Table 1.
-
-
x
-
the local portion of global dense matrix
-.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-containing numbers of type
-specified in Table 1. The rank of must be the same of .
-
-
beta
-
the scalar .
-
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: a number of the data type indicated in Table 1.
-
-
y
-
the local portion of the global dense matrix
-.
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of the type
-indicated in Table 1. The rank of must be the same of .
-
-
desc_a
-
contains data structures for communications.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: an object of type descdatapsb_desc_type.
-
-
the local portion of result submatrix .
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of the type
-indicated in Table 1.
-
-
info
-
Error code.
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value; 0 means no error has been detected.
-
-This function computes dot product between two vectors and
-.
-
-If and are real vectors
-it computes dot-product as:
+This subroutine is an interface to the computational kernel for
+dense matrix sum:
-
-Else if and are complex vectors then it computes dot-product as:
-
-
-
-
-
-
-
-
+
-psb_gedot(x, y, desc_a, info)
+call psb_geaxpby(alpha, x, beta, y, desc_a, info)
+
+
-
+
-
Table 2:
+
Table 1:
Data types
, ,
-
Function
+ ALT="$y$">, ,
+
Subroutine
Short Precision Real
-
psb_gedot
+
psb_geaxpby
Long Precision Real
-
psb_gedot
+
psb_geaxpby
Short Precision Complex
-
psb_gedot
+
psb_geaxpby
Long Precision Complex
-
psb_gedot
+
psb_geaxpby
@@ -162,10 +130,24 @@ Data types
On Entry
+
alpha
+
the scalar .
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: a number of the data type indicated in Table 1.
+
x
the local portion of global dense matrix
.
@@ -175,18 +157,32 @@ Type: required
Intent: in.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-containing numbers of type specified in
-Table 2. The rank of psb_T_vect_type
+containing numbers of type
+specified in Table 1. The rank of must be the same of .
+
beta
+
the scalar .
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: a number of the data type indicated in Table 1.
+
y
-
the local portion of global dense matrix
+
the local portion of the global dense matrix
local
Type: required
-Intent: in.
+Intent: inout.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-containing numbers of type specified in
-Table 2. The rank of psb_T_vect_type containing numbers of the type
+indicated in Table 1. The rank of must be the same of .
@@ -221,21 +216,27 @@ Specified as: an object of type descdatapsb_desc_type.
+
+
+
+
On Return
-
Function value
-
is the dot product of subvectors and y
+
the local portion of result submatrix .
-Scope: global
+Scope: local
-Specified as: a number of the data type indicated in Table 2.
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type containing numbers of the type
+indicated in Table 1.
info
Error code.
@@ -253,26 +254,26 @@ An integer value; 0 means no error has been detected.
@@ -128,7 +128,7 @@ internally defined in the PSBLAS software package:
For example the psb_geins, psb_spins and
- psb_cdins perform the same action (see 6) on
+ psb_cdins perform the same action (see 6) on
dense matrices, sparse matrices and communication descriptors
respectively.
Interface overloading allows the usage of the same subroutine
@@ -169,26 +169,26 @@ whose current value is 3.0.0
-This subroutine computes a series of dot products among the columns of
-two dense matrices and
+.
+
+If and :
+ ALT="$y$"> are real vectors
+it computes dot-product as:
-If the matrices are complex, then the
-usual convention applies, i.e. the conjugate transpose of is
-used. If and are of rank one, then is a scalar, else it
-is a rank one array.
+ ALT="$y$"> are complex vectors then it computes dot-product as:
+
+
+
+
+
+
+
+
-call psb_gedots(res, x, y, desc_a, info)
+psb_gedot(x, y, desc_a, info)
-
+
-
Table 3:
+
Table 2:
Data types
, , ,
-
Subroutine
+
Function
Short Precision Real
-
psb_gedots
+
psb_gedot
Long Precision Real
-
psb_gedots
+
psb_gedot
Short Precision Complex
-
psb_gedots
+
psb_gedot
Long Precision Complex
-
psb_gedots
+
psb_gedot
@@ -150,9 +165,9 @@ Data types
x
the local portion of global dense matrix
.
+ ALT="$x$">.
Scope: local
@@ -162,8 +177,8 @@ Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 3. The rank of 2. The rank of must be the same of in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 3. The rank of 2. The rank of must be the same of .
@@ -203,13 +218,15 @@ Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
+
+
On Return
-
res
+
Function value
is the dot product of subvectors and psb_desc_type.
Scope: global
-Intent: out.
-
-Specified as: a number or a rank-one array of the data type indicated
-in Table 2.
+Specified as: a number of the data type indicated in Table 2.
info
Error code.
@@ -239,26 +253,26 @@ An integer value; 0 means no error has been detected.
the local portion of global dense matrix
.
-
Scope: local
@@ -172,9 +160,38 @@ Type: required
Intent: in.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 4.
+Table 3. The rank of must be the same of .
+
+
y
+
the local portion of global dense matrix
+.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+containing numbers of type specified in
+Table 3. The rank of must be the same of .
desc_a
contains data structures for communications.
@@ -186,21 +203,25 @@ Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
-
-
On Return
-
Function value
-
is the infinity norm of subvector res
+
is the dot product of subvectors .
+ ALT="$x$"> and .
Scope: global
-Specified as: a long precision real number.
+Intent: out.
+
+Specified as: a number or a rank-one array of the data type indicated
+in Table 2.
info
Error code.
@@ -218,26 +239,26 @@ An integer value; 0 means no error has been detected.
-This subroutine computes a series of infinity norms on the columns of
-a dense matrix :
+ ALT="$x$">.
+
+If is a real vector
+it computes infinity norm as:
+
+
+
+
+
+
+
+
+else if is a complex vector then it computes the infinity-norm as:
the local portion of global dense matrix
.
+
Scope: local
@@ -145,9 +172,9 @@ Type: required
Intent: in.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 5.
+Table 4.
desc_a
contains data structures for communications.
@@ -159,21 +186,21 @@ Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
+
+
On Return
-
res
-
is the infinity norm of the columns of Function value
+
is the infinity norm of subvector .
Scope: global
-Intent: out.
-
-Specified as: a number or a rank-one array of long precision real numbers.
+Specified as: a long precision real number.
info
Error code.
@@ -191,26 +218,26 @@ An integer value; 0 means no error has been detected.
the local portion of global dense matrix
.
-
Scope: local
@@ -173,7 +147,7 @@ Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 6.
+Table 5.
desc_a
contains data structures for communications.
@@ -185,21 +159,21 @@ Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
-
-
On Return
-
Function value
-
is the 1-norm of vector res
+
is the infinity norm of the columns of .
Scope: global
-Specified as: a long precision real number.
+Intent: out.
+
+Specified as: a number or a rank-one array of long precision real numbers.
info
Error code.
@@ -217,26 +191,26 @@ An integer value; 0 means no error has been detected.
the local portion of global dense matrix
.
@@ -192,7 +173,7 @@ Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 7.
+Table 6.
desc_a
contains data structures for communications.
@@ -210,17 +191,14 @@ Specified as: an object of type descdatapsb_desc_type.
On Return
-
res
-
contains the 1-norm of (the columns of) Function value
+
is the 1-norm of vector .
Scope: global
-Intent: out.
-
-Short as: a long precision real number.
Specified as: a long precision real number.
info
@@ -239,26 +217,26 @@ An integer value; 0 means no error has been detected.
the local portion of global dense matrix
.
+ ALT="$x$">.
+
Scope: local
@@ -170,9 +190,9 @@ Type: required
Intent: in.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 8.
+Table 7.
desc_a
contains data structures for communications.
@@ -190,17 +210,18 @@ Specified as: an object of type descdatapsb_desc_type.
On Return
-
Function Value
-
is the 2-norm of subvector res
+
contains the 1-norm of (the columns of) .
Scope: global
-Type: required
+Intent: out.
-Specified as: a long precision real number.
+Short as: a long precision real number.
+Specified as: a long precision real number.
info
Error code.
@@ -218,26 +239,26 @@ An integer value; 0 means no error has been detected.
the local portion of global dense matrix
.
-
+ ALT="$x$">.
Scope: local
@@ -146,9 +170,9 @@ Type: required
Intent: in.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 9.
+Table 8.
desc_a
contains data structures for communications.
@@ -166,17 +190,17 @@ Specified as: an object of type descdatapsb_desc_type.
On Return
-
res
-
contains the 1-norm of (the columns of) Function Value
+
is the 2-norm of subvector .
Scope: global
-Intent: out.
+Type: required
-Specified as: a long precision real number.
+Specified as: a long precision real number.
info
Error code.
@@ -194,26 +218,26 @@ An integer value; 0 means no error has been detected.
the local portion of global dense matrix
.
+ WIDTH="13" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img20.png"
+ ALT="$x$">.
+
Scope: local
-Type: required
+Type: required
Intent: in.
-Specified as: an object of type spdatapsb_Tspmat_type.
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+containing numbers of type specified in
+Table 9.
desc_a
contains data structures for communications.
@@ -163,19 +160,23 @@ Type: required
Intent: in.
Specified as: an object of type descdatapsb_desc_type.
+
+
On Return
-
Function value
-
is the 1-norm of sparse submatrix .
+
res
+
contains the 1-norm of (the columns of) .
Scope: global
-Specified as: a long precision real number.
+Intent: out.
+
+Specified as: a long precision real number.
info
Error code.
@@ -193,26 +194,26 @@ An integer value; 0 means no error has been detected.
-This function computes the infinity-norm of a matrix :
@@ -66,14 +66,14 @@ This function computes the infinity-norm of a matrix
+ WIDTH="97" HEIGHT="28" BORDER="0"
+ SRC="img42.png"
+ ALT="\begin{displaymath}nrm1 \leftarrow \Vert A\Vert _1 \end{displaymath}">
@@ -168,7 +168,7 @@ Specified as: an object of type descdatapsb_desc_type.
Function value
-
is the infinity-norm of sparse submatrix is the 1-norm of sparse submatrix .
@@ -193,26 +193,26 @@ An integer value; 0 means no error has been detected.
the scalar .
-
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: a number of the data type indicated in
-Table 12.
-
a
-
the local portion of the sparse matrix
+
the local portion of the global sparse matrix
in.
Specified as: an object of type spdatapsb_Tspmat_type.
-
x
-
the local portion of global dense matrix
-.
-
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-containing numbers of type specified in
-Table 12. The rank of must be the same of .
-
-
beta
-
the scalar .
-
-Scope: global
-
-Type: required
-
-Intent: in.
-
-Specified as: a number of the data type indicated in Table 12.
-
-
y
-
the local portion of global dense matrix
-.
-
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-containing numbers of type specified in
-Table 12. The rank of must be the same of .
-
desc_a
contains data structures for communications.
@@ -314,74 +164,18 @@ Intent: in.
Specified as: an object of type descdatapsb_desc_type.
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Default:
-
-Specified as: a character variable.
-
-
-
-
work
-
work array.
-
-Scope: local
-
-Type: optional
-
-Intent: inout.
-
-Specified as: a rank one array of the same type of and with
-the TARGET attribute.
-
-
-
On Return
-
y
-
the local portion of result matrix .
-
-Scope: local
-
-Type: required
+
Function value
+
is the infinity-norm of sparse submatrix .
-Intent: inout.
+Scope: global
-Specified as: an array of rank one or two
-containing numbers of type specified in
-Table 12.
+Specified as: a long precision real number.
info
Error code.
@@ -399,26 +193,26 @@ An integer value; 0 means no error has been detected.
-This subroutine computes the Triangular System Solve:
+This subroutine computes the Sparse Matrix by Dense Matrix Product:
-
-
+
+
+
-
-
+
+
+
+(1)
+
+
+
+
+
+
+
+
+
+(2)
+
+
+
+
+
+
+
+
+
+(3)
+
+
where:
is the global dense matrix
-
is the global sparse block triangular submatrix
+
is the global sparse matrix
-
-
-
is the scaling diagonal matrix.
+ SRC="img1.png"
+ ALT="$A$">
-
-
-call psb_spsm(alpha, t, x, beta, y, desc_a, info)
-call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
- & trans, unit, choice, diag, work)
-
-
-
+
-
Table 13:
+
Table 12:
Data types
, , , , , ,
Subroutine
Short Precision Real
-
psb_spsm
+
psb_spmm
Long Precision Real
-
psb_spsm
+
psb_spmm
Short Precision Complex
-
psb_spsm
+
psb_spmm
Long Precision Complex
-
psb_spsm
+
psb_spmm
@@ -178,6 +196,13 @@ Data types
+
+
+call psb_spmm(alpha, a, x, beta, y, desc_a, info)
+call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
+ & trans, work)
+
+
Type:
@@ -199,14 +224,14 @@ Type: required
Intent: in.
Specified as: a number of the data type indicated in
-Table 13.
+Table 12.
-
t
-
the global portion of the sparse matrix
+
a
+
the local portion of the sparse matrix
.
+ SRC="img1.png"
+ ALT="$A$">.
Scope: local
@@ -214,13 +239,12 @@ Type: required
Intent: in.
-Specified as: an object type specified in
-§ 3.
+Specified as: an object of type spdatapsb_Tspmat_type.
x
the local portion of global dense matrix
.
@@ -233,8 +257,8 @@ Intent: in.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 13. The rank of 12. The rank of must be the same of required
Intent: in.
-Specified as: a number of the data type indicated in Table 13.
+Specified as: a number of the data type indicated in Table 12.
y
the local portion of global dense matrix
@@ -271,11 +295,11 @@ Intent: inout.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 13. The rank of 12. The rank of must be the same of .
@@ -291,16 +315,18 @@ Intent: in.
Specified as: an object of type descdatapsb_desc_type.
Scope: global
@@ -315,82 +341,11 @@ Default:
Specified as: a character variable.
-
-
unitd
-
specify with trans the operation to perform.
-
-
unitd = 'U'
-
the operation is with no scaling
-
-
unitd = 'L'
-
the operation is with left scaling
-
-
unitd = 'R'
-
the operation is with right scaling.
-
-
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Default:
-
-Specified as: a character variable.
-
-
choice
-
specifies the update of overlap elements to be performed
- on exit:
-
-
-
psb_none_
-
-
-
psb_sum_
-
-
-
psb_avg_
-
-
-
psb_square_root_
-
-
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Default: psb_avg_
-
-Specified as: an integer variable.
-
-
diag
-
the diagonal scaling matrix.
-
-Scope: local
-
-Type: optional
-
-Intent: in.
-
-Default:
-
-
-Specified as: a rank one array containing numbers of the type
-indicated in Table 13.
+
+
work
-
a work array.
+
work array.
Scope: local
@@ -399,10 +354,13 @@ Type: optional
Intent: inout.
Specified as: a rank one array of the same type of with the
-TARGET attribute.
+ ALT="$x$"> and with
+the TARGET attribute.
@@ -410,12 +368,10 @@ TARGET attribute.
y
-
the local portion of global dense matrix
-the local portion of result matrix .
-
+ ALT="$y$">.
Scope: local
@@ -425,7 +381,7 @@ Intent: inout.
Specified as: an array of rank one or two
containing numbers of type specified in
-Table 13.
+Table 12.
info
Error code.
@@ -443,26 +399,26 @@ An integer value; 0 means no error has been detected.
-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 6.
+
-
-
+This subroutine computes the Triangular System Solve:
+
+
+
+
+
+
+
+
+
+where:
+
+
+
is the global dense matrix
+
+
+
is the global dense matrix
+
+
+
is the global sparse block triangular submatrix
+
+
+
is the scaling diagonal matrix.
+
+
+
+
+
+call psb_spsm(alpha, t, x, beta, y, desc_a, info)
+call psb_spsm(alpha, t, x, beta, y, desc_a, info,&
+ & trans, unit, choice, diag, work)
+
+
+
+
+
+
+
Table 13:
+Data types
+
+
+
+
, , , , ,
+
Subroutine
+
+
Short Precision Real
+
psb_spsm
+
+
Long Precision Real
+
psb_spsm
+
+
Short Precision Complex
+
psb_spsm
+
+
Long Precision Complex
+
psb_spsm
+
+
+
+
+
+
+
+
+
+
+
Type:
+
Synchronous.
+
+
On Entry
+
+
+
alpha
+
the scalar .
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: a number of the data type indicated in
+Table 13.
+
+
t
+
the global portion of the sparse matrix
+.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: an object type specified in
+§ 3.
+
+
x
+
the local portion of global dense matrix
+.
+
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+containing numbers of type specified in
+Table 13. The rank of must be the same of .
+
+
beta
+
the scalar .
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: a number of the data type indicated in Table 13.
+
+
y
+
the local portion of global dense matrix
+.
+
+
+Scope: local
+
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+containing numbers of type specified in
+Table 13. The rank of must be the same of .
+
+
desc_a
+
contains data structures for communications.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: an object of type descdatapsb_desc_type.
+
+
trans
+
specify with unitd the operation to perform.
+
+
trans = 'N'
+
the operation is with no transposed matrix
+
+
trans = 'T'
+
the operation is with transposed matrix.
+
+
trans = 'C'
+
the operation is with conjugate transposed matrix.
+
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Default:
+
+Specified as: a character variable.
+
+
unitd
+
specify with trans the operation to perform.
+
+
unitd = 'U'
+
the operation is with no scaling
+
+
unitd = 'L'
+
the operation is with left scaling
+
+
unitd = 'R'
+
the operation is with right scaling.
+
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Default:
+
+Specified as: a character variable.
+
+
choice
+
specifies the update of overlap elements to be performed
+ on exit:
+
+
+
psb_none_
+
+
+
psb_sum_
+
+
+
psb_avg_
+
+
+
psb_square_root_
+
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Default: psb_avg_
+
+Specified as: an integer variable.
+
+
diag
+
the diagonal scaling matrix.
+
+Scope: local
+
+Type: optional
+
+Intent: in.
+
+Default:
+
+
+Specified as: a rank one array containing numbers of the type
+indicated in Table 13.
+
+
work
+
a work array.
+
+Scope: local
+
+Type: optional
+
+Intent: inout.
+
+Specified as: a rank one array of the same type of with the
+TARGET attribute.
+
+
+
+
On Return
+
+
+
y
+
the local portion of global dense matrix
+.
+
+
+Scope: local
+
+Type: required
+
+Intent: inout.
+
+Specified as: an array of rank one or two
+containing numbers of type specified in
+Table 13.
+
+
info
+
Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
+
+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 6.
-These subroutines gathers the values of the halo
-elements, and (optionally) scale the result:
-
-
-
-
-
-
-
-
-
-
-where:
-
-
-
is a global dense submatrix.
-
-
-
-
-
-
-
-
Table 14:
-Data types
-
-
-
-
,
-
Subroutine
-
-
Integer
-
psb_halo
-
-
Short Precision Real
-
psb_halo
-
-
Long Precision Real
-
psb_halo
-
-
Short Precision Complex
-
psb_halo
-
-
Long Precision Complex
-
psb_halo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Type:
-
Synchronous.
-
-
On Entry
-
-
-
x
-
global dense matrix .
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-containing numbers of type specified in
-Table 14.
-
-
desc_a
-
contains data structures for communications.
-
-Scope: local
-
-Type: required
-
-Intent: in.
-
-Specified as: a structured data of type descdatapsb_desc_type.
-
-
alpha
-
the scalar .
-
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Default:
-
-Specified as: a number of the data type indicated in Table 14.
-
-
work
-
the work array.
-
-Scope: local
-
-Type: optional
-
-Intent: inout.
-
-Specified as: a rank one array of the same type of .
-
-
data
-
index list selector.
-
-Scope: global
-
-Type: optional
-
-Specified as: an integer. Values:psb_comm_halo_,psb_comm_mov_,
-psb_comm_ext_, default: psb_comm_halo_. Chooses the
-index list on which to base the data exchange.
-
-
-
-
On Return
-
-
-
x
-
global dense result matrix .
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Returned as: a rank one or two array
-containing numbers of type specified in
-Table 14.
-
-
info
-
the local portion of result submatrix .
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value that contains an error code.
-
-
-
-
-
-
Figure 7:
-Sample discretization mesh.
-
-
-
-
-
-
-
-
-
-
-
-
-Usage Example
-Consider the discretization mesh depicted in fig. 7,
-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 vector, and process 1 assigns a value of 2, then after a
-call to psb_halo the contents of the local vectors will be the
-following:
-
-
global dense matrix .
@@ -167,7 +158,7 @@ Intent: inout.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
containing numbers of type specified in
-Table 15.
+Table 14.
desc_a
contains data structures for communications.
@@ -180,41 +171,6 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
update
-
Update operator.
-
-
update = psb_none_
-
Do nothing;
-
-
update = psb_add_
-
Sum overlap entries, i.e. apply ;
-
-
update = psb_avg_
-
Average overlap entries, i.e. apply ;
-
-
-Scope: global
-
-Intent: in.
-
-Default:
-
-
-Scope: global
-
-Specified as: a integer variable.
-
work
the work array.
@@ -224,10 +180,21 @@ Type: optional
Intent: inout.
-Specified as: a one dimensional array of the same type of .
+ ALT="$x$">.
+
+
data
+
index list selector.
+
+Scope: global
+
+Type: optional
+
+Specified as: an integer. Values:psb_comm_halo_,psb_comm_mov_,
+psb_comm_ext_, default: psb_comm_halo_. Chooses the
+index list on which to base the data exchange.
@@ -236,7 +203,7 @@ Specified as: a one dimensional array of the same type of
x
global dense result matrix .
@@ -246,12 +213,15 @@ Type: required
Intent: inout.
-Specified as: an array of rank one or two
+Returned as: a rank one or two array
containing numbers of type specified in
-Table 15.
+Table 14.
info
-
Error code.
+
the local portion of result submatrix .
Scope: local
@@ -259,80 +229,46 @@ Type: required
Intent: out.
-An integer value; 0 means no error has been detected.
+An integer value that contains an error code.
-
-Notes
-
-
-
If there is no overlap in the data distribution associated with
- the descriptor, no operations are performed;
-
-
The operator performs the reduction sum of overlap
-elements; it is a ``prolongation'' operator that
-replicates overlap elements, accounting for the physical replication
-of data;
-
-
The operator performs a scaling on the overlap elements by
-the amount of replication; thus, when combined with the reduction
-operator, it implements the average of replicated elements over all of
-their instances.
-
-Example of use
-Consider the discretization mesh depicted in fig. 8,
-partitioned among two processes as shown by the dashed lines, with an
-overlap of 1 extra layer with respect to the partition of
-fig. 7; the data
-distribution is such that each process will own 40 entries in the
-index space, with an overlap of 16 entries placed at local indices 25
-through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries
+
+Usage Example
+Consider the discretization mesh depicted in fig. 7,
+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 vector, and process 1 assigns a value of 2, then after a
-call to psb_ovrl with psb_avg_ and a call to
-psb_halo_ the contents of the local vectors will be the
-following (showing a transition among the two subdomains)
-
-
+call to psb_halo the contents of the local vectors will be the
+following:
-These subroutines collect the portions of global dense matrix
-distributed over all process into one single array stored on one
-process.
+These subroutines applies an overlap operator to the input vector:
global dense matrix .
Scope: local
-Type: required
+Type: required
-Intent: in.
+Intent: inout.
Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
-indicated in Table 16.
+containing numbers of type specified in
+Table 15.
desc_a
contains data structures for communications.
@@ -191,43 +180,75 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
root
-
The process that holds the global copy. If all
- the processes will have a copy of the global vector.
-
+
update
+
Update operator.
+
+
update = psb_none_
+
Do nothing;
+
+
update = psb_add_
+
Sum overlap entries, i.e. apply ;
+
+
update = psb_avg_
+
Average overlap entries, i.e. apply ;
+
+
Scope: global
-Type: optional
-
Intent: in.
-Specified as: an integer variable
, default .
+ WIDTH="166" HEIGHT="30" ALIGN="MIDDLE" BORDER="0"
+ SRC="img66.png"
+ ALT="$update\_type = psb\_avg\_ $">
+
+Scope: global
+
+Specified as: a integer variable.
+
+
work
+
the work array.
+
+Scope: local
+
+Type: optional
+
+Intent: inout.
+
+Specified as: a one dimensional array of the same type of .
+
+
On Return
-
glob_x
-
The array where the local parts must be gathered.
+
x
+
global dense result matrix .
-Scope: global
+Scope: local
-Type: required
+Type: required
-Intent: out.
+Intent: inout.
-Specified as: a rank one or two array with the ALLOCATABLE attribute.
+Specified as: an array of rank one or two
+containing numbers of type specified in
+Table 15.
info
Error code.
@@ -242,29 +263,502 @@ An integer value; 0 means no error has been detected.
+
+Notes
+
+
+
If there is no overlap in the data distribution associated with
+ the descriptor, no operations are performed;
+
+
The operator performs the reduction sum of overlap
+elements; it is a ``prolongation'' operator that
+replicates overlap elements, accounting for the physical replication
+of data;
+
+
The operator performs a scaling on the overlap elements by
+the amount of replication; thus, when combined with the reduction
+operator, it implements the average of replicated elements over all of
+their instances.
+
+
+
+
+
+
+
+
Figure 8:
+Sample discretization mesh.
+
+
+
+
+
+
+
+
+
+
+
+Example of use
+Consider the discretization mesh depicted in fig. 8,
+partitioned among two processes as shown by the dashed lines, with an
+overlap of 1 extra layer with respect to the partition of
+fig. 7; the data
+distribution is such that each process will own 40 entries in the
+index space, with an overlap of 16 entries placed at local indices 25
+through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries
+in the vector, and process 1 assigns a value of 2, then after a
+call to psb_ovrl with psb_avg_ and a call to
+psb_halo_ the contents of the local vectors will be the
+following (showing a transition among the two subdomains)
+
+
-These subroutines scatters the portions of global dense matrix owned
-by a process to all the processes in the processes grid.
+These subroutines collect the portions of global dense matrix
+distributed over all process into one single array stored on one
+process.
The array that must be scattered into local pieces.
+
loc_x
+
the local portion of global dense matrix
+.
-Scope: global
+Scope: local
Type: required
Intent: in.
-Specified as: a rank one or two array.
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type
+indicated in Table 16.
desc_a
contains data structures for communications.
@@ -186,10 +193,10 @@ Specified as: a structured data of type descdatapsb_desc_type.
root
The process that holds the global copy. If all
- the processes have a copy of the global vector.
+ the processes will have a copy of the global vector.
Scope: global
@@ -201,31 +208,26 @@ Specified as: an integer variable
, default .
On Return
-
loc_x
-
the local portion of global dense matrix
-.
+
glob_x
+
The array where the local parts must be gathered.
-Scope: local
+Scope: global
Type: required
Intent: out.
-Specified as: a rank one or two array containing numbers of the type
-indicated in Table 17.
+Specified as: a rank one or two array with the ALLOCATABLE attribute.
info
Error code.
@@ -243,26 +245,26 @@ An integer value; 0 means no error has been detected.
The array that must be scattered into local pieces.
+
+Scope: global
+
+Type: required
+
+Intent: in.
+
+Specified as: a rank one or two array.
+
+
desc_a
+
contains data structures for communications.
+
+Scope: local
+
+Type: required
+
+Intent: in.
+
+Specified as: a structured data of type descdatapsb_desc_type.
+
+
root
+
The process that holds the global copy. If all
+ the processes have a copy of the global vector.
+
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Specified as: an integer variable
+, default .
+
+
On Return
+
+
+
loc_x
+
the local portion of global dense matrix
+.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+Specified as: a rank one or two array containing numbers of the type
+indicated in Table 17.
+
+
info
+
Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
+
-This subroutine initializes the communication descriptor associated
-with an index space. One of the optional arguments
-parts, vg, vl, nl or repl
-must be specified, thereby choosing
-the specific initialization strategy.
-
-
On Entry
-
-
-
Type:
-
Synchronous.
-
-
icontxt
-
the communication context.
-
-Scope:global.
-
-Type:required.
-
-Intent: in.
-
-Specified as: an integer value.
-
-
vg
-
Data allocation: each index
- is allocated
- to process .
-
-Scope:global.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: an integer array.
-
-
flag
-
Specifies whether entries in are zero- or one-based.
-
-Scope:global.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: an integer value , default .
-
-
-
-
mg
-
the (global) number of rows of the problem.
-
-Scope:global.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: an integer value. It is required if parts or
-repl is specified, it is optional if vg is specified.
-
-
parts
-
the subroutine that defines the partitioning scheme.
-
-Scope:global.
-
-Type:required.
-
-Specified as: a subroutine.
-
-
vl
-
Data allocation: the set of global indices
- belonging to the calling process.
-
-Scope:local.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: an integer array.
-
-
nl
-
Data allocation: in a generalized block-row distribution the
- number of indices belonging to the current process.
-
-Scope:local.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: an integer value. May be specified together with
-vl.
-
-
repl
-
Data allocation: build a replicated index space
- (i.e. all processes own all indices).
-
-Scope:global.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: the logical value .true.
-
-
globalcheck
-
Data allocation: do global checks on the local
- index lists vl
-
-Scope:global.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: a logical value, default: .true.
-
-
lidx
-
Data allocation: the set of local indices
- to be assigned to the global indices .
-
-Scope:local.
-
-Type:optional.
-
-Intent: in.
-
-Specified as: an integer array.
-
-
-
-
-
-
On Return
-
-
-
desc_a
-
the communication descriptor.
-
-Scope:local.
-
-Type:required.
-
-Intent: out.
-
-Specified as: a structured data of type descdatapsb_desc_type.
-
-
info
-
Error code.
+
+
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value; 0 means no error has been detected.
-
One of the optional arguments parts, vg,
- vl, nl or repl must be specified, thereby choosing the
- initialization strategy as follows:
-
-
parts
-
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 mg as well.
- The subroutine must conform to the following interface:
-
The total number of global rows in the mapping;
-
-
-
- The output arguments are:
-
-
nv
-
The number of entries in pv;
-
-
-
pv
-
A vector containing the indices of the processes to
- which the global index should be assigend; each entry must satisfy
-
-; if we have an index assigned to multiple
- processes, i.e. we have an overlap among the subdomains.
-
-
-
-
-
vg
-
In this case the association between an index and a process
- is specified via an integer vector vg(1:mg);
- each index
- is assigned to process .
- The vector vg must be identical on all
- calling processes; its entries may have the ranges
- or according to the value of flag.
- The size may be specified via the optional argument mg;
- the default is to use the entire vector vg, thus having
- mg=size(vg).
-
-
vl
-
In this case we are specifying the list of indices
- vl(1:nl) assigned to the current process; thus, the global
- problem size is given by
- the range of the aggregate of the individual vectors vl specified
- in the calling processes. The size may be specified via the optional
- argument nl; the default is to use the entire vector
- vl, thus having nl=size(vl).
- If globalcheck=.true. the subroutine will check how many
- times each entry in the global index space is
- specified in the input lists vl, thus allowing for the
- presence of overlap in the input, and checking for ``orphan''
- indices. If globalcheck=.false., 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.
-
-
lidx
-
The optional argument lidx is available for
- those cases in which the user has already established a
- global-to-local mapping; if it is specified, each index in
- vl(i) will be mapped to the corresponding local index
- lidx(i). When specifying the argument lidx the user
- would also likely employ lidx in calls to psb_cdins
- and local in calls to psb_spins and psb_geins;
- see also sec. 2.3.1.
-
-
nl
-
If this argument is specified alone (i.e. without vl)
- the result is a generalized row-block distribution in which each
- process gets assigned a consecutive chunk of global
- indices.
-
-
repl
-
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.
-
-
-
-
On exit from this routine the descriptor is in the build
- state.
-
-
Calling the routine with vg or parts implies that
- every process will scan the entire index space to figure out the
- local indices.
-
-
Overlapped indices are possible with both parts and
- vl invocations.
-
-
When the subroutine is invoked with vl in
- conjunction with globalcheck=.true., it will perform a scan
- of the index space to search for overlap or orphan indices.
-
-
When the subroutine is invoked with vl in
- conjunction with globalcheck=.false., no index space scan
- will take place. Thus it is the responsibility of the user to make
- sure that the indices specified in vl have neither orphans nor
- overlaps; if this assumption fails, results will be
- unpredictable.
-
-
Orphan and overlap indices are
- impossible by construction when the subroutine is invoked with
- nl (alone), or vg.
-
-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 ; the starting index should
-belong to the current process.
-In the second form only the remote indices are specified.
-
-
+This subroutine initializes the communication descriptor associated
+with an index space. One of the optional arguments
+parts, vg, vl, nl or repl
+must be specified, thereby choosing
+the specific initialization strategy.
-
Type:
-
Asynchronous.
-
-
On Entry
+
On Entry
-
nz
-
the number of points being inserted.
+
Type:
+
Synchronous.
+
+
icontxt
+
the communication context.
-Scope: local.
+Scope:global.
-Type: required.
+Type:required.
Intent: in.
Specified as: an integer value.
-
ia
-
the indices of the starting vertex of the edges being inserted.
+
vg
+
Data allocation: each index
+ is allocated
+ to process .
+
+Scope:global.
+
+Type:optional.
+
+Intent: in.
+
+Specified as: an integer array.
+
+
flag
+
Specifies whether entries in are zero- or one-based.
+
+Scope:global.
+
+Type:optional.
+
+Intent: in.
+
+Specified as: an integer value , default .
+
+
+
+
mg
+
the (global) number of rows of the problem.
-Scope: local.
+Scope:global.
+
+Type:optional.
+
+Intent: in.
+
+Specified as: an integer value. It is required if parts or
+repl is specified, it is optional if vg is specified.
+
+
parts
+
the subroutine that defines the partitioning scheme.
+
+Scope:global.
+
+Type:required.
+
+Specified as: a subroutine.
+
+
vl
+
Data allocation: the set of global indices
+ belonging to the calling process.
+
+Scope:local.
+
+Type:optional.
+
+Intent: in.
+
+Specified as: an integer array.
+
+
nl
+
Data allocation: in a generalized block-row distribution the
+ number of indices belonging to the current process.
+
+Scope:local.
-Type: required.
+Type:optional.
Intent: in.
-Specified as: an integer array of length .
+Specified as: an integer value. May be specified together with
+vl.
-
ja
-
the indices of the end vertex of the edges being inserted.
+
repl
+
Data allocation: build a replicated index space
+ (i.e. all processes own all indices).
-Scope: local.
+Scope:global.
-Type: required.
+Type:optional.
Intent: in.
-Specified as: an integer array of length .
+Specified as: the logical value .true.
-
mask
-
Mask entries in ja, they are inserted only when the
- corresponding mask entries are .true.
+
globalcheck
+
Data allocation: do global checks on the local
+ index lists vl
-Scope: local.
+Scope:global.
-Type: optional.
+Type:optional.
Intent: in.
-Specified as: a logical array of length , default .true..
+Specified as: a logical value, default: .true.
lidx
-
User defined local indices for ja.
+
Data allocation: the set of local indices
+ to be assigned to the global indices .
-Scope: local.
+Scope:local.
-Type: optional.
+Type:optional.
Intent: in.
-Specified as: an integer array of length .
+Specified as: an integer array.
@@ -164,13 +230,13 @@ Specified as: an integer array of length
desc_a
-
the updated communication descriptor.
+
the communication descriptor.
Scope:local.
Type:required.
-Intent: inout.
+Intent: out.
Specified as: a structured data of type descdatapsb_desc_type.
@@ -185,75 +251,200 @@ Intent: out.
An integer value; 0 means no error has been detected.
-
ila
-
the local indices of the starting vertex of the edges being inserted.
-
-Scope: local.
-
-Type: optional.
-
-Intent: out.
-
-Specified as: an integer array of length .
-
-
jla
-
the local indices of the end vertex of the edges being inserted.
-
-Scope: local.
-
-Type: optional.
-
-Intent: out.
-
-Specified as: an integer array of length .
+
-
-
Notes
-
This routine may only be called if the descriptor is in the
- build state;
+
One of the optional arguments parts, vg,
+ vl, nl or repl must be specified, thereby choosing the
+ initialization strategy as follows:
+
+
parts
+
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 mg as well.
+ The subroutine must conform to the following interface:
+
The total number of global rows in the mapping;
+
+
+
+ The output arguments are:
+
+
nv
+
The number of entries in pv;
+
+
+
pv
+
A vector containing the indices of the processes to
+ which the global index should be assigend; each entry must satisfy
+
+; if we have an index assigned to multiple
+ processes, i.e. we have an overlap among the subdomains.
+
+
+
+
+
vg
+
In this case the association between an index and a process
+ is specified via an integer vector vg(1:mg);
+ each index
+ is assigned to process .
+ The vector vg must be identical on all
+ calling processes; its entries may have the ranges
+ or according to the value of flag.
+ The size may be specified via the optional argument mg;
+ the default is to use the entire vector vg, thus having
+ mg=size(vg).
+
+
vl
+
In this case we are specifying the list of indices
+ vl(1:nl) assigned to the current process; thus, the global
+ problem size is given by
+ the range of the aggregate of the individual vectors vl specified
+ in the calling processes. The size may be specified via the optional
+ argument nl; the default is to use the entire vector
+ vl, thus having nl=size(vl).
+ If globalcheck=.true. the subroutine will check how many
+ times each entry in the global index space is
+ specified in the input lists vl, thus allowing for the
+ presence of overlap in the input, and checking for ``orphan''
+ indices. If globalcheck=.false., 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.
+
+
lidx
+
The optional argument lidx is available for
+ those cases in which the user has already established a
+ global-to-local mapping; if it is specified, each index in
+ vl(i) will be mapped to the corresponding local index
+ lidx(i). When specifying the argument lidx the user
+ would also likely employ lidx in calls to psb_cdins
+ and local in calls to psb_spins and psb_geins;
+ see also sec. 2.3.1.
+
+
nl
+
If this argument is specified alone (i.e. without vl)
+ the result is a generalized row-block distribution in which each
+ process gets assigned a consecutive chunk of global
+ indices.
+
+
repl
+
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.
+
+
+
+
On exit from this routine the descriptor is in the build
+ state.
-
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.
+
Calling the routine with vg or parts implies that
+ every process will scan the entire index space to figure out the
+ local indices.
-
The second form of this routine will be useful when dealing with
- user-specified index mappings; see also 2.3.1.
+
Overlapped indices are possible with both parts and
+ vl invocations.
+
+
When the subroutine is invoked with vl in
+ conjunction with globalcheck=.true., it will perform a scan
+ of the index space to search for overlap or orphan indices.
+
+
When the subroutine is invoked with vl in
+ conjunction with globalcheck=.false., no index space scan
+ will take place. Thus it is the responsibility of the user to make
+ sure that the indices specified in vl have neither orphans nor
+ overlaps; if this assumption fails, results will be
+ unpredictable.
+
+
Orphan and overlap indices are
+ impossible by construction when the subroutine is invoked with
+ nl (alone), or vg.
+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 ; the starting index should
+belong to the current process.
+In the second form only the remote indices are specified.
+
Type:
-
Synchronous.
+
Asynchronous.
On Entry
-
desc_a
-
the communication descriptor.
+
nz
+
the number of points being inserted.
-Scope:local.
+Scope: local.
-Type:required.
+Type: required.
-Intent: inout.
+Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type.
+Specified as: an integer value.
+
+
ia
+
the indices of the starting vertex of the edges being inserted.
+
+Scope: local.
+
+Type: required.
+
+Intent: in.
+
+Specified as: an integer array of length .
+
+
ja
+
the indices of the end vertex of the edges being inserted.
+
+Scope: local.
+
+Type: required.
+
+Intent: in.
+
+Specified as: an integer array of length .
+
+
mask
+
Mask entries in ja, they are inserted only when the
+ corresponding mask entries are .true.
+
+Scope: local.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: a logical array of length , default .true..
+
+
lidx
+
User defined local indices for ja.
+
+Scope: local.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: an integer array of length .
@@ -88,7 +164,7 @@ Specified as: a structured data of type descdatapsb_desc_type.
desc_a
-
the communication descriptor.
+
the updated communication descriptor.
Scope:local.
@@ -109,17 +185,77 @@ Intent: out.
An integer value; 0 means no error has been detected.
+
ila
+
the local indices of the starting vertex of the edges being inserted.
+
+Scope: local.
+
+Type: optional.
+
+Intent: out.
+
+Specified as: an integer array of length .
+
+
jla
+
the local indices of the end vertex of the edges being inserted.
+
+Scope: local.
+
+Type: optional.
+
+Intent: out.
+
+Specified as: an integer array of length .
+
+
+
Notes
-
On exit from this routine the descriptor is in the assembled
- state.
+
This routine may only be called if the descriptor is in the
+ build state;
+
+
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.
+
+
The second form of this routine will be useful when dealing with
+ user-specified index mappings; see also 2.3.1.
the communication descriptor.
Scope:local.
Type:required.
-Intent: in.
+Intent: inout.
Specified as: a structured data of type descdatapsb_desc_type.
-
-
@@ -88,14 +87,14 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
desc_out
-
the communication descriptor copy.
+
desc_a
+
the communication descriptor.
Scope:local.
Type:required.
-Intent: out.
+Intent: inout.
Specified as: a structured data of type descdatapsb_desc_type.
@@ -111,6 +110,13 @@ Intent: out.
An integer value; 0 means no error has been detected.
+Notes
+
+
+
On exit from this routine the descriptor is in the assembled
+ state.
+
+
diff --git a/docs/html/node71.html b/docs/html/node71.html
index 49becd57..44aa518a 100644
--- a/docs/html/node71.html
+++ b/docs/html/node71.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_cdfree -- Frees a communication descriptor
-
+psb_cdcpy -- Copies a communication descriptor
+
@@ -20,64 +20,66 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_cdbldext Build
- Up:Data management routines
- Previous:psb_cdcpy Copies
- Next:psb_cdfree Frees
+ Up:Data management routines
+ Previous:psb_cdasb Communication
+ Contents
the communication descriptor.
Scope:local.
Type:required.
-Intent: inout.
+Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
+
@@ -86,6 +88,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
+
desc_out
+
the communication descriptor copy.
+
+Scope:local.
+
+Type:required.
+
+Intent: out.
+
+Specified as: a structured data of type descdatapsb_desc_type.
+
info
Error code.
diff --git a/docs/html/node72.html b/docs/html/node72.html
index 90cdef60..eb76cda2 100644
--- a/docs/html/node72.html
+++ b/docs/html/node72.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_cdbldext -- Build an extended communication descriptor
-
+psb_cdfree -- Frees a communication descriptor
+
@@ -20,51 +20,47 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_spall Allocates
- Up:Data management routines
- Previous:psb_cdfree Frees
- Next:psb_cdbldext Build
+ Up:Data management routines
+ Previous:psb_cdcpy Copies
+ Contents
-This subroutine builds an extended communication descriptor, based on
-the input descriptor desc_a and on the stencil specified
-through the input sparse matrix a.
Type:
Synchronous.
@@ -72,54 +68,16 @@ through the input sparse matrix a.
On Entry
-
a
-
A sparse matrix
-Scope:local.
-
-Type:required.
-
-Intent: in.
-
-Specified as: a structured data type.
-
desc_a
-
the communication descriptor.
+
the communication descriptor to be freed.
Scope:local.
Type:required.
-Intent: in.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
-
nl
-
the number of additional layers desired.
-
-Scope:global.
-
-Type:required.
-
-Intent: in.
-
-Specified as: an integer value .
-
-
extype
-
the kind of estension required.
-
-Scope:global.
-
-Type:optional .
-
-Intent: in.
+Intent: inout.
-Specified as: an integer value
-psb_ovt_xhal_, psb_ovt_asov_, default: psb_ovt_xhal_
-
-
+Specified as: a structured data of type descdatapsb_desc_type.
@@ -128,17 +86,6 @@ Specified as: an integer value
On Return
-
desc_out
-
the extended communication descriptor.
-
-Scope:local.
-
-Type:required.
-
-Intent: inout.
-
-Specified as: a structured data of type descdatapsb_desc_type.
-
info
Error code.
@@ -153,48 +100,7 @@ An integer value; 0 means no error has been detected.
-Notes
-
-
-
Specifying psb_ovt_xhal_ for the extype 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;
-
-
Specifying psb_ovt_asov_ for the extype 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.
-
+This subroutine builds an extended communication descriptor, based on
+the input descriptor desc_a and on the stencil specified
+through the input sparse matrix a.
A sparse matrix
+Scope:local.
+
+Type:required.
+
+Intent: in.
+
+Specified as: a structured data type.
+
desc_a
the communication descriptor.
@@ -77,19 +91,35 @@ Type:required.
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type.
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
+
nl
+
the number of additional layers desired.
+
+Scope:global.
+
+Type:required.
+
+Intent: in.
+
+Specified as: an integer value .
-
nnz
-
An estimate of the number of nonzeroes in the local
- part of the assembled matrix.
+
extype
+
the kind of estension required.
-Scope: global.
+Scope:global.
-Type: optional.
+Type:optional .
Intent: in.
-Specified as: an integer value.
+Specified as: an integer value
+psb_ovt_xhal_, psb_ovt_asov_, default: psb_ovt_xhal_
+
+
@@ -98,16 +128,16 @@ Specified as: an integer value.
On Return
-
a
-
the matrix to be allocated.
+
desc_out
+
the extended communication descriptor.
-Scope:local
+Scope:local.
-Type:required
+Type:required.
-Intent: out.
+Intent: inout.
-Specified as: a structured data of type spdatapsb_Tspmat_type.
+Specified as: a structured data of type descdatapsb_desc_type.
info
Error code.
@@ -121,47 +151,48 @@ Intent: out.
An integer value; 0 means no error has been detected.
+
+
Notes
-
On exit from this routine the sparse matrix is in the build
- state.
-
-
The descriptor may be in either the build or assembled state.
+
Specifying psb_ovt_xhal_ for the extype 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;
-
Providing a good estimate for the number of nonzeroes 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.
+
Specifying psb_ovt_asov_ for the extype 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.
-call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
+call psb_spall(a, desc_a, info, nnz)
Type:
-
Asynchronous.
+
Synchronous.
On Entry
-
nz
-
the number of elements to be inserted.
-
-Scope:local.
-
-Type:required.
-
-Intent: in.
-
-Specified as: an integer scalar.
-
-
ia
-
the row indices of the elements to be inserted.
-
-Scope:local.
-
-Type:required.
-
-Intent: in.
-
-Specified as: an integer array of size .
-
-
ja
-
the column indices of the elements to be inserted.
+
desc_a
+
the communication descriptor.
Scope:local.
@@ -103,51 +77,19 @@ Type:required.
Intent: in.
-Specified as: an integer array of size .
+Specified as: a structured data of type descdatapsb_desc_type.
-
val
-
the elements to be inserted.
+
nnz
+
An estimate of the number of nonzeroes in the local
+ part of the assembled matrix.
-Scope:local.
+Scope: global.
-Type:required.
+Type: optional.
Intent: in.
-Specified as: an array of size . Must be of the same type and kind
-of the coefficients of the sparse matrix .
-
-
desc_a
-
The communication descriptor.
-
-Scope: local.
-
-Type: required.
-
-Intent: inout.
-
-Specified as: a variable of type descdatapsb_desc_type.
-
-
local
-
Whether the entries in the indices vectors ia,
- ja are already in local numbering.
-
-Scope:local.
-
-Type:optional.
-
-Specified as: a logical value; default: .false..
-
-
the matrix into which elements will be inserted.
+
the matrix to be allocated.
Scope:local
Type:required
-Intent: inout.
+Intent: out.
Specified as: a structured data of type spdatapsb_Tspmat_type.
-
desc_a
-
The communication descriptor.
-
-Scope: local.
-
-Type: required.
-
-Intent: inout.
-
-Specified as: a variable of type descdatapsb_desc_type.
-
info
Error code.
@@ -190,84 +121,47 @@ Intent: out.
An integer value; 0 means no error has been detected.
-
-
Notes
-
On entry to this routine the descriptor may be in either the
- build or assembled state.
-
-
On entry to this routine the sparse matrix may be in either the
- build or update state.
-
-
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 psb_cdins 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;
-
-
The coefficients to be inserted are represented by the ordered
- triples
-, for ; these triples
- should belong to the current process, i.e. should be one of
- the local indices, but are otherwise arbitrary;
-
-
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;
-
-
Coefficients from different rows may also be mixed up freely
- in a single call, according to the application needs;
-
-
Any coefficients from matrix rows not owned by the calling
- process are silently ignored;
+
On exit from this routine the sparse matrix is in the build
+ state.
-
If the descriptor is in the assembled state, then any entries in
- the sparse matrix that would generate additional communication
- requirements are ignored;
+
The descriptor may be in either the build or assembled state.
-
If the matrix is in the update state, any entries in positions
- that were not present in the original matrix are ignored.
+
Providing a good estimate for the number of nonzeroes 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.
-call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
+call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
Type:
-
Synchronous.
+
Asynchronous.
On Entry
-
desc_a
-
the communication descriptor.
+
nz
+
the number of elements to be inserted.
Scope:local.
@@ -77,52 +78,76 @@ Type:required.
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type.
+Specified as: an integer scalar.
-
afmt
-
the storage format for the sparse matrix.
+
ia
+
the row indices of the elements to be inserted.
-Scope: local.
+Scope:local.
-Type: optional.
+Type:required.
Intent: in.
-Specified as: an array of characters. Defalt: 'CSR'.
+Specified as: an integer array of size .
-
upd
-
Provide for updates to the matrix coefficients.
+
ja
+
the column indices of the elements to be inserted.
-Scope: global.
+Scope:local.
-Type: optional.
+Type:required.
Intent: in.
-Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_
+Specified as: an integer array of size .
-
dupl
-
How to handle duplicate coefficients.
+
val
+
the elements to be inserted.
-Scope: global.
+Scope:local.
-Type: optional.
+Type:required.
Intent: in.
-Specified as: integer, possible values: psb_dupl_ovwrt_,
-psb_dupl_add_, psb_dupl_err_.
+Specified as: an array of size . Must be of the same type and kind
+of the coefficients of the sparse matrix .
-
mold
-
The desired dynamic type for the internal matrix storage.
+
desc_a
+
The communication descriptor.
-Scope: local.
+Scope: local.
-Type: optional.
+Type: required.
-Intent: in.
+Intent: inout.
+
+Specified as: a variable of type descdatapsb_desc_type.
+
+
local
+
Whether the entries in the indices vectors ia,
+ ja are already in local numbering.
+
+Scope:local.
-Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat.
+Type:optional.
+
+Specified as: a logical value; default: .false..
+
+
@@ -132,7 +157,7 @@ Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_
a
-
the matrix to be assembled.
+
the matrix into which elements will be inserted.
Scope:local
@@ -142,6 +167,17 @@ Intent: inout.
Specified as: a structured data of type spdatapsb_Tspmat_type.
+
desc_a
+
The communication descriptor.
+
+Scope: local.
+
+Type: required.
+
+Intent: inout.
+
+Specified as: a variable of type descdatapsb_desc_type.
+
info
Error code.
@@ -159,51 +195,79 @@ An integer value; 0 means no error has been detected.
Notes
-
On entry to this routine the descriptor must be in the
- assembled state, i.e. psb_cdasb must already have been called.
+
On entry to this routine the descriptor may be in either the
+ build or assembled state.
+
+
On entry to this routine the sparse matrix may be in either the
+ build or update state.
+
+
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 psb_cdins 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;
+
+
The coefficients to be inserted are represented by the ordered
+ triples
+, for ; these triples
+ should belong to the current process, i.e. should be one of
+ the local indices, but are otherwise arbitrary;
-
The sparse matrix may be in either the build or update state;
+
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;
-
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;
+
Coefficients from different rows may also be mixed up freely
+ in a single call, according to the application needs;
-
If the update choice is psb_upd_perm_, then subsequent
- calls to psb_spins 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;
+
Any coefficients from matrix rows not owned by the calling
+ process are silently ignored;
-
The output storage format need not be the same on all
- processes;
+
If the descriptor is in the assembled state, then any entries in
+ the sparse matrix that would generate additional communication
+ requirements are ignored;
-
On exit from this routine the matrix is in the assembled state,
- and thus is suitable for the computational routines.
+
If the matrix is in the update state, any entries in positions
+ that were not present in the original matrix are ignored.
the matrix to be freed.
-
-Scope:local
-
-Type:required
-
-Intent: inout.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
desc_a
the communication descriptor.
@@ -90,6 +79,51 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
afmt
+
the storage format for the sparse matrix.
+
+Scope: local.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: an array of characters. Defalt: 'CSR'.
+
+
upd
+
Provide for updates to the matrix coefficients.
+
+Scope: global.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: integer, possible values: psb_upd_srch_, psb_upd_perm_
+
+
dupl
+
How to handle duplicate coefficients.
+
+Scope: global.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: integer, possible values: psb_dupl_ovwrt_,
+psb_dupl_add_, psb_dupl_err_.
+
+
mold
+
The desired dynamic type for the internal matrix storage.
+
+Scope: local.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: an object of a class derived from spbasedatapsb_T_base_sparse_mat.
+
@@ -97,6 +131,17 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
+
a
+
the matrix to be assembled.
+
+Scope:local
+
+Type:required
+
+Intent: inout.
+
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
info
Error code.
@@ -111,7 +156,56 @@ An integer value; 0 means no error has been detected.
-
+Notes
+
+
+
On entry to this routine the descriptor must be in the
+ assembled state, i.e. psb_cdasb must already have been called.
+
+
The sparse matrix may be in either the build or update state;
+
+
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;
+
+
If the update choice is psb_upd_perm_, then subsequent
+ calls to psb_spins 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;
+
+
The output storage format need not be the same on all
+ processes;
+
+
On exit from this routine the matrix is in the assembled state,
+ and thus is suitable for the computational routines.
+
@@ -68,52 +69,38 @@ call psb_geall(x, desc_a, info, n, lb)
On Entry
-
desc_a
-
The communication descriptor.
+
a
+
the matrix to be reinitialized.
-Scope: local
+Scope:local
-Type: required
+Type:required
-Intent: in.
+Intent: inout.
-Specified as: a variable of type descdatapsb_desc_type.
-
-
n
-
The number of columns of the dense matrix to be allocated.
+Specified as: a structured data of type spdatapsb_Tspmat_type.
+
+
desc_a
+
the communication descriptor.
-Scope: local
+Scope:local.
-Type: optional
+Type:required.
Intent: in.
-Specified as: Integer scalar, default . It is not a valid argument if is a
-rank-1 array.
+Specified as: a structured data of type descdatapsb_desc_type.
-
lb
-
The lower bound for the column index range of the dense matrix to be allocated.
+
clear
+
Choose whether to zero out matrix coefficients
-Scope: local
+Scope:local.
-Type: optional
+Type:optional.
Intent: in.
-Specified as: Integer scalar, default . It is not a valid argument if is a
-rank-1 array.
+Default: true.
@@ -122,18 +109,6 @@ rank-1 array.
On Return
-
x
-
The dense matrix to be allocated.
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-Specified as: a rank one or two array with the ALLOCATABLE attribute
-or an object of type vdatapsb_T_vect_type, of type real, complex or integer.
-
info
Error code.
@@ -146,32 +121,16 @@ Intent: out.
An integer value; 0 means no error has been detected.
+Notes
+
+
+
On exit from this routine the sparse matrix is in the update
+ state.
+
-call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
+call psb_geall(x, desc_a, info, n, lb)
Type:
-
Asynchronous.
+
Synchronous.
On Entry
-
m
-
Number of rows in to be inserted.
-
-Scope:local.
-
-Type:required.
-
-Intent: in.
-
-Specified as: an integer value.
-
-
irw
-
Indices of the rows to be inserted. Specifically, row
- of will be inserted into the local row corresponding to the
- global row index .
-Scope:local.
-
-Type:required.
-
-Intent: in.
-
-Specified as: an integer array.
-
-
val
-
the dense submatrix to be inserted.
+
desc_a
+
The communication descriptor.
-Scope:local.
+Scope: local
-Type:required.
+Type: required
Intent: in.
-Specified as: a rank 1 or 2 array.
-Specified as: an integer value.
-
-
desc_a
-
the communication descriptor.
+Specified as: a variable of type descdatapsb_desc_type.
+
+
n
+
The number of columns of the dense matrix to be allocated.
-Scope:local.
+Scope: local
-Type:required.
+Type: optional
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type.
+Specified as: Integer scalar, default . It is not a valid argument if is a
+rank-1 array.
-
dupl
-
How to handle duplicate coefficients.
+
lb
+
The lower bound for the column index range of the dense matrix to be allocated.
-Scope: global.
+Scope: local
-Type: optional.
+Type: optional
Intent: in.
-Specified as: integer, possible values: psb_dupl_ovwrt_,
-psb_dupl_add_.
-
-
local
-
Whether the entries in the index vector irw,
- are already in local numbering.
-
-Scope:local.
-
-Type:optional.
-
-Specified as: a logical value; default: .false..
-
-
+Specified as: Integer scalar, default . It is not a valid argument if is a
+rank-1 array.
The dense matrix to be allocated.
Scope: local
Type: required
-Intent: inout.
+Intent: out.
-Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of
-type real, complex or integer.
+Specified as: a rank one or two array with the ALLOCATABLE attribute
+or an object of type vdatapsb_T_vect_type, of type real, complex or integer.
info
Error code.
@@ -182,40 +147,29 @@ An integer value; 0 means no error has been detected.
-
-Notes
-
-
-
Dense vectors/matrices do not have an associated state;
-
-
Duplicate entries are either overwritten or added, there is no
- provision for raising an error condition.
-
Number of rows in to be inserted.
+
+Scope:local.
+
+Type:required.
+
+Intent: in.
+
+Specified as: an integer value.
+
+
irw
+
Indices of the rows to be inserted. Specifically, row
+ of will be inserted into the local row corresponding to the
+ global row index .
+Scope:local.
+
+Type:required.
+
+Intent: in.
+
+Specified as: an integer array.
+
+
val
+
the dense submatrix to be inserted.
+
+Scope:local.
+
+Type:required.
+
+Intent: in.
+
+Specified as: a rank 1 or 2 array.
+Specified as: an integer value.
+
desc_a
-
The communication descriptor.
+
the communication descriptor.
-Scope: local
+Scope:local.
-Type: required
+Type:required.
Intent: in.
-Specified as: a variable of type descdatapsb_desc_type.
-
-
mold
-
The desired dynamic type for the internal vector storage.
+Specified as: a structured data of type descdatapsb_desc_type.
+
+
dupl
+
How to handle duplicate coefficients.
-Scope: local.
+Scope: global.
Type: optional.
Intent: in.
-Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is
-only allowed when is of type vdatapsb_T_vect_type.
+Specified as: integer, possible values: psb_dupl_ovwrt_,
+psb_dupl_add_.
+
+
local
+
Whether the entries in the index vector irw,
+ are already in local numbering.
+
+Scope:local.
+
+Type:optional.
+
+Specified as: a logical value; default: .false..
+
+
@@ -102,7 +158,7 @@ only allowed when
x
-
The dense matrix to be assembled.
+
the output dense matrix.
Scope: local
@@ -110,8 +166,8 @@ Type: required
Intent: inout.
-Specified as: a rank one or two array with the ALLOCATABLE or an
-object of type vdatapsb_T_vect_type, of type real, complex or integer.
+Specified as: a rank one or two array or an object of type vdatapsb_T_vect_type, of
+type real, complex or integer.
info
Error code.
@@ -125,7 +181,43 @@ Intent: out.
An integer value; 0 means no error has been detected.
-
+
+
+Notes
+
+
+
Dense vectors/matrices do not have an associated state;
+
+
Duplicate entries are either overwritten or added, there is no
+ provision for raising an error condition.
+
The dense matrix to
- be freed.
-
-Scope: local
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one or two array with the ALLOCATABLE or an
-object of type vdatapsb_T_vect_type, of type real, complex or integer.
-
-
-
desc_a
The communication descriptor.
@@ -94,6 +79,21 @@ Intent: in.
Specified as: a variable of type descdatapsb_desc_type.
+
mold
+
The desired dynamic type for the internal vector storage.
+
+Scope: local.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: an object of a class derived from vbasedatapsb_T_base_vect_type; this is
+only allowed when is of type vdatapsb_T_vect_type.
+
@@ -101,6 +101,18 @@ Specified as: a variable of type descdatapsb_desc_type.
On Return
+
x
+
The dense matrix to be assembled.
+
+Scope: local
+
+Type: required
+
+Intent: inout.
+
+Specified as: a rank one or two array with the ALLOCATABLE or an
+object of type vdatapsb_T_vect_type, of type real, complex or integer.
+
info
Error code.
@@ -113,8 +125,6 @@ Intent: out.
An integer value; 0 means no error has been detected.
-
-
diff --git a/docs/html/node82.html b/docs/html/node82.html
index 03a388f4..f6eece0d 100644
--- a/docs/html/node82.html
+++ b/docs/html/node82.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_gelp -- Applies a left permutation to a dense matrix
-
+psb_gefree -- Frees a dense matrix
+
@@ -20,99 +20,79 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_glob_to_loc Global
- Up:Data management routines
- Previous:psb_gefree Frees
- Next:psb_gelp Applies
+ Up:Data management routines
+ Previous:psb_geasb Assembly
+ Contents
A character that specifies whether to permute or .
+
x
+
The dense matrix to
+ be freed.
Scope: local
Type: required
-Intent: in.
-
-Specified as: a single character with value 'N' for or 'T' for .
-
-
iperm
-
An integer array containing permutation information.
-
-Scope: local
-
-Type: required
+Intent: inout.
-Intent: in.
+Specified as: a rank one or two array with the ALLOCATABLE or an
+object of type vdatapsb_T_vect_type, of type real, complex or integer.
-Specified as: an integer one-dimensional array.
-
-
x
-
The dense matrix to be permuted.
+
+
+
desc_a
+
The communication descriptor.
Scope: local
Type: required
-Intent: inout.
+Intent: in.
-Specified as: a one or two dimensional array.
+Specified as: a variable of type descdatapsb_desc_type.
diff --git a/docs/html/node83.html b/docs/html/node83.html
index 2596db8d..4d89a965 100644
--- a/docs/html/node83.html
+++ b/docs/html/node83.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_glob_to_loc -- Global to local indices convertion
-
+psb_gelp -- Applies a left permutation to a dense matrix
+
@@ -20,46 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_loc_to_glob Local
- Up:Data management routines
- Previous:psb_gelp Applies
- Next:psb_glob_to_loc Global
+ Up:Data management routines
+ Previous:psb_gefree Frees
+ Contents
A character that specifies whether to permute or .
Scope: local
Type: required
-Intent: in, inout.
+Intent: in.
-Specified as: a rank one integer array.
+Specified as: a single character with value 'N' for or 'T' for .
-
desc_a
-
the communication descriptor.
+
iperm
+
An integer array containing permutation information.
-Scope:local.
+Scope: local
-Type:required.
+Type: required
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type.
-
-
iact
-
specifies action to be taken in case of range errors.
-Scope: global
-
-Type: optional
-
-Intent: in.
+Specified as: an integer one-dimensional array.
+
+
x
+
The dense matrix to be permuted.
-Specified as: a character variable Ignore, Warning or
-Abort, default Ignore.
-
-
owned
-
Specfies valid range of input
-Scope: global
+Scope: local
-Type: optional
+Type: required
-Intent: in.
+Intent: inout.
-If true, then only indices strictly owned by the current process are
-considered valid, if false then halo indices are also
-accepted. Default: false.
-
+Specified as: a one or two dimensional array.
+
@@ -122,44 +121,6 @@ accepted. Default: false.
On Return
-
x
-
If is not present,
- then is overwritten with the translated integer indices.
-Scope: global
-
-Type: required
-
-Intent: inout.
-
-Specified as: a rank one integer array.
-
-
y
-
If is present,
- then is overwritten with the translated integer indices, and
- is left unchanged.
-Scope: global
-
-Type: optional
-
-Intent: out.
-
-Specified as: a rank one integer array.
-
info
Error code.
@@ -174,42 +135,7 @@ An integer value; 0 means no error has been detected.
-Notes
-
-
-
If an input index is out of range, then the corresponding output
- index is set to a negative number;
-
-
The default Ignore means that the negative output is the
- only action taken on an out-of-range input.
-
@@ -103,6 +103,18 @@ Intent: in.
Specified as: a character variable Ignore, Warning or
Abort, default Ignore.
+
owned
+
Specfies valid range of input
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+If true, then only indices strictly owned by the current process are
+considered valid, if false then halo indices are also
+accepted. Default: false.
+
@@ -116,7 +128,7 @@ Specified as: a character variable Ignore, Warning or
SRC="img21.png"
ALT="$y$"> is not present,
then is overwritten with the translated integer indices.
Scope: global
@@ -131,12 +143,12 @@ Specified as: a rank one integer array.
If is not present,
+ ALT="$y$"> is present,
then is overwritten with the translated integer indices, and
is left unchanged.
@@ -161,29 +173,41 @@ An integer value; 0 means no error has been detected.
+
+Notes
+
+
+
If an input index is out of range, then the corresponding output
+ index is set to a negative number;
+
+
The default Ignore means that the negative output is the
+ only action taken on an out-of-range input.
+
An integer vector of indices to be converted.
Scope: local
Type: required
-Intent: in.
+Intent: in, inout.
-Specified as: a scalar integer.
+Specified as: a rank one integer array.
desc_a
the communication descriptor.
@@ -90,6 +92,17 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
iact
+
specifies action to be taken in case of range errors.
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Specified as: a character variable Ignore, Warning or
+Abort, default Ignore.
+
@@ -97,32 +110,82 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
Function value
-
A logical mask which is true if
- x
+
If is not present,
+ then is owned by the current process
-Scope: local
+ ALT="$x$"> is overwritten with the translated integer indices.
+Scope: global
Type: required
+Intent: inout.
+
+Specified as: a rank one integer array.
+
+
y
+
If is not present,
+ then is overwritten with the translated integer indices, and
+ is left unchanged.
+Scope: global
+
+Type: optional
+
Intent: out.
-
+
+Specified as: a rank one integer array.
+
+
info
+
Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
+
-Notes
-
-
-
This routine returns a .true. value for an index
- that is strictly owned by the current process, excluding the halo
- indices
-
Integer index.
Scope: local
Type: required
-Intent: in, inout.
+Intent: in.
-Specified as: a scalar or a rank one integer array.
+Specified as: a scalar integer.
desc_a
the communication descriptor.
@@ -90,17 +90,6 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
iact
-
specifies action to be taken in case of range errors.
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Specified as: a character variable Ignore, Warning or
-Abort, default Ignore.
-
@@ -108,39 +97,26 @@ Specified as: a character variable Ignore, Warning or
On Return
-
y
-
A logical mask which is true for all corresponding entries of
+
Function value
+
A logical mask which is true if
that are owned by the current process
+ ALT="$x$"> is owned by the current process
Scope: local
Type: required
Intent: out.
-
-Specified as: a scalar or rank one logical array.
-
-
info
-
Error code.
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value; 0 means no error has been detected.
-
+
Notes
-
This routine returns a .true. value for those indices
- that are strictly owned by the current process, excluding the halo
+
This routine returns a .true. value for an index
+ that is strictly owned by the current process, excluding the halo
indices
diff --git a/docs/html/node87.html b/docs/html/node87.html
index 4bb97132..f25a81d2 100644
--- a/docs/html/node87.html
+++ b/docs/html/node87.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_is_local --
-
+psb_owned_index --
+
@@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_local_index
- Up:Data management routines
- Previous:psb_owned_index
- Next:psb_is_local
+ Up:Data management routines
+ Previous:psb_is_owned
+ Contents
Integer indices.
Scope: local
Type: required
-Intent: in.
+Intent: in, inout.
-Specified as: a scalar integer.
+Specified as: a scalar or a rank one integer array.
desc_a
the communication descriptor.
@@ -90,6 +90,17 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
iact
+
specifies action to be taken in case of range errors.
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Specified as: a character variable Ignore, Warning or
+Abort, default Ignore.
+
@@ -97,26 +108,39 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
Function value
-
A logical mask which is true if
+
y
+
A logical mask which is true for all corresponding entries of
is local to the current process
+ ALT="$x$"> that are owned by the current process
Scope: local
Type: required
Intent: out.
-
+
+Specified as: a scalar or rank one logical array.
+
+
info
+
Error code.
+
+Scope: local
+
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
+
Notes
-
This routine returns a .true. value for an index
- that is local to the current process, including the halo
+
This routine returns a .true. value for those indices
+ that are strictly owned by the current process, excluding the halo
indices
diff --git a/docs/html/node88.html b/docs/html/node88.html
index c92f4aa7..43d6b740 100644
--- a/docs/html/node88.html
+++ b/docs/html/node88.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_local_index --
-
+psb_is_local --
+
@@ -20,44 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_get_boundary Extract
- Up:Data management routines
- Previous:psb_is_local
- Next:psb_local_index
+ Up:Data management routines
+ Previous:psb_owned_index
+ Contents
Integer index.
Scope: local
Type: required
-Intent: in, inout.
+Intent: in.
-Specified as: a scalar or a rank one integer array.
+Specified as: a scalar integer.
desc_a
the communication descriptor.
@@ -90,17 +90,6 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
-
iact
-
specifies action to be taken in case of range errors.
-Scope: global
-
-Type: optional
-
-Intent: in.
-
-Specified as: a character variable Ignore, Warning or
-Abort, default Ignore.
-
@@ -108,40 +97,27 @@ Specified as: a character variable Ignore, Warning or
On Return
-
y
-
A logical mask which is true for all corresponding entries of
+
Function value
+
A logical mask which is true if
that are local to the current process
+ ALT="$x$"> is local to the current process
Scope: local
Type: required
Intent: out.
-
-Specified as: a scalar or rank one logical array.
-
-
info
-
Error code.
-
-Scope: local
-
-Type: required
-
-Intent: out.
-
-An integer value; 0 means no error has been detected.
-
+
Notes
-
This routine returns a .true. value for those indices
- that are local to the current process, including the halo
- indices.
+
This routine returns a .true. value for an index
+ that is local to the current process, including the halo
+ indices
diff --git a/docs/html/node89.html b/docs/html/node89.html
index c4487922..3117df46 100644
--- a/docs/html/node89.html
+++ b/docs/html/node89.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_get_boundary -- Extract list of boundary elements
-
+psb_local_index --
+
@@ -20,45 +20,44 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_get_overlap Extract
- Up:Data management routines
- Previous:psb_local_index
- Next:psb_get_boundary Extract
+ Up:Data management routines
+ Previous:psb_is_local
+ Contents
Integer indices.
+
+Scope: local
+
+Type: required
+
+Intent: in, inout.
+
+Specified as: a scalar or a rank one integer array.
+
+
desc_a
the communication descriptor.
Scope:local.
@@ -80,6 +90,17 @@ Intent: in.
Specified as: a structured data of type descdatapsb_desc_type.
+
iact
+
specifies action to be taken in case of range errors.
+Scope: global
+
+Type: optional
+
+Intent: in.
+
+Specified as: a character variable Ignore, Warning or
+Abort, default Ignore.
+
@@ -87,19 +108,20 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
bndel
-
The list of boundary elements on the calling process, in
- local numbering.
-
+
y
+
A logical mask which is true for all corresponding entries of
+ that are local to the current process
Scope: local
Type: required
Intent: out.
-Specified as: a rank one array with the ALLOCATABLE
-attribute, of type integer.
-
+Specified as: a scalar or rank one logical array.
+
info
Error code.
@@ -117,12 +139,9 @@ An integer value; 0 means no error has been detected.
Notes
-
If there are no boundary elements (i.e., if the local part of
- the connectivity graph is self-contained) the output vector is set
- to the ``not allocated'' state.
-
-
Otherwise the size of bndel will be exactly equal to the
- number of boundary elements.
+
This routine returns a .true. value for those indices
+ that are local to the current process, including the halo
+ indices.
diff --git a/docs/html/node9.html b/docs/html/node9.html
index 7501adb8..9a1d2d12 100644
--- a/docs/html/node9.html
+++ b/docs/html/node9.html
@@ -18,7 +18,7 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
-
-
-
- Next: Next: Descriptor data structure
- Up: Up: userhtml
- Previous: Previous: Programming model
- Contents
@@ -87,8 +87,8 @@ Specified as: a structured data of type descdatapsb_desc_type.
On Return
-
ovrel
-
The list of overlap elements on the calling process, in
+
bndel
+
The list of boundary elements on the calling process, in
local numbering.
Scope: local
@@ -117,11 +117,12 @@ An integer value; 0 means no error has been detected.
Notes
-
If there are no overlap elements the output vector is set
- to the ``not allocated'' state.
+
If there are no boundary elements (i.e., if the local part of
+ the connectivity graph is self-contained) the output vector is set
+ to the ``not allocated'' state.
-
Otherwise the size of ovrel will be exactly equal to the
- number of overlap elements.
+
Otherwise the size of bndel will be exactly equal to the
+ number of boundary elements.
diff --git a/docs/html/node91.html b/docs/html/node91.html
index 033de0af..55496a24 100644
--- a/docs/html/node91.html
+++ b/docs/html/node91.html
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
-psb_sp_getrow -- Extract row(s) from a sparse matrix
-
+psb_get_overlap -- Extract list of overlap elements
+
@@ -20,46 +20,45 @@ original version by: Nikos Drakos, CBLU, University of Leeds
-
+
-
-
+
-
-
- Next:psb_sizeof Memory
- Up:Data management routines
- Previous:psb_get_overlap Extract
- Next:psb_sp_getrow Extract
+ Up:Data management routines
+ Previous:psb_get_boundary Extract
+ Contents
the communication descriptor.
-Scope:local
-
-Type:required
-
-Intent: in.
-
-Specified as: an integer .
-
-
a
-
the matrix from which to get rows.
-
-Scope:local
-
-Type:required
-
-Intent: in.
-
-Specified as: a structured data of type spdatapsb_Tspmat_type.
-
-
append
-
Whether to append or overwrite existing output.
-
-Scope:local
-
-Type:optional
-
-Intent: in.
-
-Specified as: a logical value default: false (overwrite).
-
-
nzin
-
Input size to be appended to.
-
-Scope:local
-
-Type:optional
-
-Intent: in.
-
-Specified as: an integer . When append is true, specifies how many
-entries in the output vectors are already filled.
-
-
lrw
-
The last row to be extracted.
-
-Scope:local
+Scope:local.
-Type:optional
+Type:required.
Intent: in.
-Specified as: an integer , default: .
-
-
+Specified as: a structured data of type descdatapsb_desc_type.
@@ -147,50 +87,19 @@ Specified as: an integer On Return
-
nz
-
the number of elements returned by this call.
+
ovrel
+
The list of overlap elements on the calling process, in
+ local numbering.
-Scope:local.
+Scope: local
-Type:required.
+Type: required
Intent: out.
-Returned as: an integer scalar.
-
-
ia
-
the row indices.
-
-Scope:local.
-
-Type:required.
-
-Intent: inout.
-
-Specified as: an integer array with the ALLOCATABLE attribute.
-
-
ja
-
the column indices of the elements to be inserted.
-
-Scope:local.
-
-Type:required.
-
-Intent: inout.
-
-Specified as: an integer array with the ALLOCATABLE attribute.
-
-
val
-
the elements to be inserted.
-
-Scope:local.
-
-Type:required.
-
-Intent: inout.
-
-Specified as: a real array with the ALLOCATABLE attribute.
-
+Specified as: a rank one array with the ALLOCATABLE
+attribute, of type integer.
+
info
Error code.
@@ -208,51 +117,16 @@ An integer value; 0 means no error has been detected.
Notes
-
The output is always the size of the output generated by
- the current call; thus, if append=.true., the total output
- size will be , with the newly extracted coefficients stored in
- entries nzin+1:nzin+nz of the array arguments;
+
If there are no overlap elements the output vector is set
+ to the ``not allocated'' state.
-
When append=.true. the output arrays are reallocated as
- necessary;
-
-
The row and column indices are returned in the local numbering
- scheme; if the global numbering is desired, the user may employ the
- psb_loc_to_glob routine on the output.
+
Otherwise the size of ovrel will be exactly equal to the
+ number of overlap elements.
The (first) row to be extracted.
+
+Scope:local
+
+Type:required
+
+Intent: in.
+
+Specified as: an integer .
+
a
-
A sparse matrix
-.
+
the matrix from which to get rows.
-Scope: local
+Scope:local
-Type: required
+Type:required
Intent: in.
Specified as: a structured data of type spdatapsb_Tspmat_type.
-
desc_a
-
Communication descriptor.
+
append
+
Whether to append or overwrite existing output.
-Scope: local
+Scope:local
+
+Type:optional
+
+Intent: in.
+
+Specified as: a logical value default: false (overwrite).
+
+
nzin
+
Input size to be appended to.
-Type: required
+Scope:local
+
+Type:optional
Intent: in.
-Specified as: a structured data of type descdatapsb_desc_type.
+Specified as: an integer . When append is true, specifies how many
+entries in the output vectors are already filled.
-
prec
-
Scope: local
+
lrw
+
The last row to be extracted.
+
+Scope:local
-Type: required
+Type:optional
Intent: in.
-Specified as: a preconditioner data structure precdatapsb_prec_type.
+Specified as: an integer , default: .
+
+
+
+
+
+
On Return
-
Function value
-
The memory occupation of the object specified in
- the calling sequence, in bytes.
+
nz
+
the number of elements returned by this call.
+
+Scope:local.
+
+Type:required.
+
+Intent: out.
+
+Returned as: an integer scalar.
+
+
ia
+
the row indices.
+
+Scope:local.
+
+Type:required.
+
+Intent: inout.
+
+Specified as: an integer array with the ALLOCATABLE attribute.
+
+
ja
+
the column indices of the elements to be inserted.
+
+Scope:local.
+
+Type:required.
+
+Intent: inout.
+
+Specified as: an integer array with the ALLOCATABLE attribute.
+
+
val
+
the elements to be inserted.
+
+Scope:local.
+
+Type:required.
+
+Intent: inout.
+
+Specified as: a real array with the ALLOCATABLE attribute.
+
+
info
+
Error code.
Scope: local
-Returned as: an integer(psb_long_int_k_) number.
+Type: required
+
+Intent: out.
+
+An integer value; 0 means no error has been detected.
-
+Notes
+
+
+
The output is always the size of the output generated by
+ the current call; thus, if append=.true., the total output
+ size will be , with the newly extracted coefficients stored in
+ entries nzin+1:nzin+nz of the array arguments;
+
+
When append=.true. the output arrays are reallocated as
+ necessary;
+
+
The row and column indices are returned in the local numbering
+ scheme; if the global numbering is desired, the user may employ the
+ psb_loc_to_glob routine on the output.
+
-These serial routines sort a sequence into ascending or
-descending order. The argument meaning is identical for the three
-calls; the only difference is the algorithm used to accomplish the
-task (see Usage Notes below).
Type:
Asynchronous.
-
On Entry
+
On Entry
-
x
-
The sequence to be sorted.
+
a
+
A sparse matrix
+.
-Type:required.
+Scope: local
-Specified as: an integer, real or complex array of rank 1.
-
-
ix
-
A vector of indices.
+Type: required
-Type:optional.
+Intent: in.
-Specified as: an integer array of (at least) the same size as .
+Specified as: a structured data of type spdatapsb_Tspmat_type.
-
dir
-
The desired ordering.
+
desc_a
+
Communication descriptor.
-Type:optional.
+Scope: local
-Specified as: an integer value:
+Type: required
+
+Intent: in.
+
+Specified as: a structured data of type descdatapsb_desc_type.
-
flag
-
Whether to keep the original values in .
+
prec
+
Scope: local
-Type:optional.
+Type: required
-Specified as: an integer value psb_sort_ovw_idx_ or
-psb_sort_keep_idx_; default psb_sort_ovw_idx_.
-
-
+Intent: in.
+
+Specified as: a preconditioner data structure precdatapsb_prec_type.
-
-
-
-
On Return
-
x
-
The sequence of values, in the chosen ordering.
+
Function value
+
The memory occupation of the object specified in
+ the calling sequence, in bytes.
-Type:required.
+Scope: local
-Specified as: an integer, real or complex array of rank 1.
-
-
ix
-
A vector of indices.
-
-Type: Optional
-
-An integer array of rank 1, whose entries are moved to the same
-position as the corresponding entries in .
+Returned as: an integer(psb_long_int_k_) number.
-
-
-Notes
-
-
-
For integer or real data the sorting can be performed in the up/down direction, on the
- natural or absolute values;
-
-
For complex data the sorting can be done in a lexicographic
- order (i.e.: sort on the real part with ties broken according to
- the imaginary part) or on the absolute values;
-
-
The routines return the items in the chosen ordering; the
- output difference is the handling of ties (i.e. items with an
- equal value) in the original input. With the merge-sort algorithm
- ties are preserved in the same relative order as they had in the
- original sequence, while this is not guaranteed for quicksort or
- heapsort;
-
-
If
- then the entries in
- where is the size of are initialized to
-; thus, upon return from the subroutine, for each
- index we have in the position that the item
- occupied in the original data sequence;
-
-
If
- the routine will assume that
- the entries in have already been initialized by the user;
-
-
The three sorting algorithms have a similar expected
- running time; in the average case quicksort will be the
- fastest and merge-sort the slowest. However note that:
-
-
-
The worst case running time for quicksort is ; the algorithm
- implemented here follows the well-known median-of-three heuristics,
- but the worst case may still apply;
-
-
The worst case running time for merge-sort and heap-sort is
- as the average case;
-
-
The merge-sort algorithm is implemented to take advantage of
- subsequences that may be already in the desired ordering prior to
- the subroutine call; this situation is relatively common when
- dealing with groups of indices of sparse matrix entries, thus
- merge-sort is the preferred choice when a sorting is needed
- by other routines in the library.
-
+These serial routines sort a sequence into ascending or
+descending order. The argument meaning is identical for the three
+calls; the only difference is the algorithm used to accomplish the
+task (see Usage Notes below).
+
+
Type:
+
Asynchronous.
+
+
On Entry
+
+
+
x
+
The sequence to be sorted.
+
+Type:required.
+
+Specified as: an integer, real or complex array of rank 1.
+
+
ix
+
A vector of indices.
+
+Type:optional.
+
+Specified as: an integer array of (at least) the same size as .
+
+
dir
+
The desired ordering.
+
+Type:optional.
+
+Specified as: an integer value:
Whether to keep the original values in .
+
+Type:optional.
+
+Specified as: an integer value psb_sort_ovw_idx_ or
+psb_sort_keep_idx_; default psb_sort_ovw_idx_.
+
+
+
+
+
+
+
+
On Return
+
+
+
x
+
The sequence of values, in the chosen ordering.
+
+Type:required.
-Parallel environment routines
-
+Specified as: an integer, real or complex array of rank 1.
+
+
ix
+
A vector of indices.
+
+Type: Optional
+
+An integer array of rank 1, whose entries are moved to the same
+position as the corresponding entries in .
+
For integer or real data the sorting can be performed in the up/down direction, on the
+ natural or absolute values;
+
+
For complex data the sorting can be done in a lexicographic
+ order (i.e.: sort on the real part with ties broken according to
+ the imaginary part) or on the absolute values;
+
+
The routines return the items in the chosen ordering; the
+ output difference is the handling of ties (i.e. items with an
+ equal value) in the original input. With the merge-sort algorithm
+ ties are preserved in the same relative order as they had in the
+ original sequence, while this is not guaranteed for quicksort or
+ heapsort;
+
+
If
+ then the entries in
+ where is the size of are initialized to
+; thus, upon return from the subroutine, for each
+ index we have in the position that the item
+ occupied in the original data sequence;
+
+
If
+ the routine will assume that
+ the entries in have already been initialized by the user;
+
+
The three sorting algorithms have a similar expected
+ running time; in the average case quicksort will be the
+ fastest and merge-sort the slowest. However note that:
+
+
+
The worst case running time for quicksort is ; the algorithm
+ implemented here follows the well-known median-of-three heuristics,
+ but the worst case may still apply;
+
+
The worst case running time for merge-sort and heap-sort is
+ as the average case;
+
+
The merge-sort algorithm is implemented to take advantage of
+ subsequences that may be already in the desired ordering prior to
+ the subroutine call; this situation is relatively common when
+ dealing with groups of indices of sparse matrix entries, thus
+ merge-sort is the preferred choice when a sorting is needed
+ by other routines in the library.
+
-This subroutine initializes the PSBLAS parallel environment, defining
-a virtual parallel machine.
-
-
Type:
-
Synchronous.
-
-
On Entry
-
-
-
np
-
Number of processes in the PSBLAS virtual parallel machine.
-
-Scope: global.
-
-Type: optional.
-
-Intent: in.
-
-Specified as: an integer value. Default: use all available processes.
-
-
basectxt
-
the initial communication context. The new context
- will be defined from the processes participating in the initial one.
-
-Scope: global.
-
-Type: optional.
-
-Intent: in.
-
-Specified as: an integer value. Default: use MPI_COMM_WORLD.
-
-
ids
-
Identities of the processes to use for the new context; the
- argument is ignored when np is not specified. This allows the
- processes in the new environment to be in an order different from the
- original one.
-
-Scope: global.
-
-Type: optional.
-
-Intent: in.
-
-Specified as: an integer array. Default: use the indices .
-
-
-
-
-
-
On Return
-
-
-
icontxt
-
the communication context identifying the virtual
- parallel machine. Note that this is always a duplicate of
- basectxt, so that library communications are completely
- separated from other communication operations.
+
-This subroutine returns information about the PSBLAS parallel environment, defining
+This subroutine initializes the PSBLAS parallel environment, defining
a virtual parallel machine.
Type:
-
Asynchronous.
+
Synchronous.
On Entry
-
icontxt
-
the communication context identifying the virtual
- parallel machine.
+
np
+
Number of processes in the PSBLAS virtual parallel machine.
Scope: global.
-Type: required.
+Type: optional.
Intent: in.
-Specified as: an integer variable.
+Specified as: an integer value. Default: use all available processes.
+
+
basectxt
+
the initial communication context. The new context
+ will be defined from the processes participating in the initial one.
+
+Scope: global.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: an integer value. Default: use MPI_COMM_WORLD.
+
+
ids
+
Identities of the processes to use for the new context; the
+ argument is ignored when np is not specified. This allows the
+ processes in the new environment to be in an order different from the
+ original one.
+
+Scope: global.
+
+Type: optional.
+
+Intent: in.
+
+Specified as: an integer array. Default: use the indices .
@@ -90,24 +118,11 @@ Specified as: an integer variable.
On Return
-
iam
-
Identifier of current process in the PSBLAS virtual parallel machine.
-
-Scope: local.
-
-Type: required.
-
-Intent: out.
-
-Specified as: an integer value.
-
-
np
-
Number of processes in the PSBLAS virtual parallel machine.
+
icontxt
+
the communication context identifying the virtual
+ parallel machine. Note that this is always a duplicate of
+ basectxt, so that library communications are completely
+ separated from other communication operations.
Scope: global.
@@ -115,56 +130,48 @@ Type: required.
Intent: out.
-Specified as: an integer variable.
+Specified as: an integer variable.
+
Notes
-
For processes in the virtual parallel machine the identifier
- will satisfy
-;
+
A call to this routine must precede any other PSBLAS call.
-
If the user has requested on psb_init a number of
- processes less than the total available in the parallel execution
- environment, the remaining processes will have on return ;
- the only call involving icontxt that any such process may
- execute is to psb_exit.
+
It is an error to specify a value for greater than the
+ number of processes available in the underlying base parallel
+ environment.
-This subroutine exits from the PSBLAS parallel virtual machine.
+This subroutine returns information about the PSBLAS parallel environment, defining
+a virtual parallel machine.
Type:
-
Synchronous.
+
Asynchronous.
On Entry
@@ -83,67 +83,88 @@ Intent: in.
Specified as: an integer variable.
-
close
-
Whether to close all data structures related to the
- virtual parallel machine, besides those associated with icontxt.
+
+
+
+
+
On Return
+
+
+
iam
+
Identifier of current process in the PSBLAS virtual parallel machine.
+
+Scope: local.
+
+Type: required.
+
+Intent: out.
+
+Specified as: an integer value.
+
+
np
+
Number of processes in the PSBLAS virtual parallel machine.
Scope: global.
-Type: optional.
+Type: required.
-Intent: in.
+Intent: out.
-Specified as: a logical variable, default value: true.
-
+Specified as: an integer variable.
Notes
-
This routine may be called even if a previous call to
- psb_info has returned with ; indeed, it it is the only
- routine that may be called with argument icontxt in this
- situation.
-
-
A call to this routine with close=.true. implies a call
- to MPI_Finalize, after which no parallel routine may be called.
+
For processes in the virtual parallel machine the identifier
+ will satisfy
+;
-
If the user whishes to use multiple communication contexts in the
- same program, or to enter and exit multiple times into the parallel
- environment, this routine may be called to
- selectively close the contexts with close=.false., while on
- the last call it should be called with close=.true. to
- shutdown in a clean way the entire parallel environment.
+
If the user has requested on psb_init a number of
+ processes less than the total available in the parallel execution
+ environment, the remaining processes will have on return ;
+ the only call involving icontxt that any such process may
+ execute is to psb_exit.
-This subroutine returns the MPI communicator associated with a PSBLAS context
+This subroutine exits from the PSBLAS parallel virtual machine.
Type:
-
Asynchronous.
+
Synchronous.
On Entry
@@ -81,26 +83,69 @@ Intent: in.
Specified as: an integer variable.
-
-
-
-
-
On Return
-
-
-
icomm
-
The MPI communicator associated with the PSBLAS virtual parallel machine.
+
close
+
Whether to close all data structures related to the
+ virtual parallel machine, besides those associated with icontxt.
Scope: global.
-Type: required.
+Type: optional.
+
+Intent: in.
-Intent: out.
-
+Specified as: a logical variable, default value: true.
+
-
+Notes
+
+
+
This routine may be called even if a previous call to
+ psb_info has returned with ; indeed, it it is the only
+ routine that may be called with argument icontxt in this
+ situation.
+
+
A call to this routine with close=.true. implies a call
+ to MPI_Finalize, after which no parallel routine may be called.
+
+
If the user whishes to use multiple communication contexts in the
+ same program, or to enter and exit multiple times into the parallel
+ environment, this routine may be called to
+ selectively close the contexts with close=.false., while on
+ the last call it should be called with close=.true. to
+ shutdown in a clean way the entire parallel environment.
+
-This subroutine returns the MPI rank of the PSBLAS process
+This subroutine returns the MPI communicator associated with a PSBLAS context
Type:
Asynchronous.
@@ -84,22 +81,6 @@ Intent: in.
Specified as: an integer variable.
-
id
-
Identifier of a process in the PSBLAS virtual parallel machine.
-
-Scope: local.
-
-Type: required.
-
-Intent: in.
-
-Specified as: an integer value.
-
@@ -107,13 +88,10 @@ Specified as: an integer value.
@@ -106,293 +106,295 @@ March 31st, 2014.