*** empty log message ***

psblas3-type-indexed
Alfredo Buttari 19 years ago
parent a9123fe03a
commit 4012f47ba0

@ -1,6 +1,6 @@
include Make.inc include Make.inc
library: lib:
( [ -d lib ] || mkdir lib) ( [ -d lib ] || mkdir lib)
(cd src; make lib) (cd src; make lib)
@echo "=====================================" @echo "====================================="
@ -14,3 +14,4 @@ veryclean:
(cd src; make veryclean) (cd src; make veryclean)
(cd lib; /bin/rm -f *.a *$(.mod) *$(.fh)) (cd lib; /bin/rm -f *.a *$(.mod) *$(.fh))
.PHONY: lib

@ -46,8 +46,7 @@ Table~\ref{tab:f90halo}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[alpha] the scalar $\alpha$.\\ \item[alpha] the scalar $\alpha$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional} \\ Type: {\bf optional} \\
@ -121,9 +120,8 @@ Table~\ref{tab:f90ovrl}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}. \item[choice] specify if exchange overlap elements.
item[choice] specify if exchange overlap elements.
\begin{description} \begin{description}
\item[choice = .true.] exchange overlap elements, i.e. apply operator \item[choice = .true.] exchange overlap elements, i.e. apply operator
$P^{T}$; $P^{T}$;
@ -232,7 +230,7 @@ indicated in Table~\ref{tab:gather}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[root] The process that holds the global copy. If $root=-1$ all \item[root] The process that holds the global copy. If $root=-1$ all
the processes will have a copy of the global vector.\\ the processes will have a copy of the global vector.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -322,7 +320,7 @@ Specified as: a rank one or two array.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[root] The process that holds the global copy. If $root=-1$ all \item[root] The process that holds the global copy. If $root=-1$ all
the processes have a copy of the global vector.\\ the processes have a copy of the global vector.\\
Scope: {\bf global} \\ Scope: {\bf global} \\

@ -11,7 +11,8 @@ the modules \verb|psb_spmat_type|, \verb|psb_descriptor_type| and \verb|psb_prec
\subsection{Sparse Matrix data structure} \subsection{Sparse Matrix data structure}
\label{sec:spmat} \label{sec:spmat}
Contains all information about local portion of the sparse matrix and The \hypertarget{spdata}{{\tt psb\_spmat\_type}} data structure
contains all information about local portion of the sparse matrix and
its storage mode. Many of this fields are set in fully-transparent its storage mode. Many of this fields are set in fully-transparent
mode by PSBLAS-TOOLS routines when inserting a new sparse matrix, user mode by PSBLAS-TOOLS routines when inserting a new sparse matrix, user
must set only fields which describe matrix storage mode (see must set only fields which describe matrix storage mode (see
@ -95,7 +96,8 @@ column index are stored into \verb|apsk(j)|, \verb|ia1(j)| and
\subsection{Descriptor data structure} \subsection{Descriptor data structure}
\label{sec:desc} \label{sec:desc}
All the general matrix informations and elements to be All the general matrix informations and elements to be
exchanged among processes are stored within a data structure of the type $psb_desc_type$. exchanged among processes are stored within a data structure of the
type \hypertarget{descdata}{{\tt psb\_desc\_type}}.
Every structure of this type is associated to a sparse matrix, it Every structure of this type is associated to a sparse matrix, it
contains data about general matrix informations and elements to be contains data about general matrix informations and elements to be
exchanged among processes. \\ exchanged among processes. \\
@ -180,7 +182,7 @@ as follows:
\subsection{Preconditioner data structure} \subsection{Preconditioner data structure}
\label{sec:prec} \label{sec:prec}
\hypertarget{precdata}{ciao finocchio} \hypertarget{precdata}{}

@ -31,11 +31,11 @@ according to the value passed through the istop argument (see later).
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \spdata.
\item[prec] The data structure containing the preconditioner.\\ \item[prec] The data structure containing the preconditioner.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \precdata.
\item[b] The RHS vector. \\ \item[b] The RHS vector. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
@ -51,7 +51,7 @@ Specified as: a real number.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[itmax] The maximum number of iterations to perform.\\ \item[itmax] The maximum number of iterations to perform.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}\\ Type: {\bf optional}\\
@ -107,11 +107,11 @@ according to the value passed through the istop argument (see later).
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \spdata.
\item[prec] The data structure containing the preconditioner.\\ \item[prec] The data structure containing the preconditioner.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \precdata.
\item[b] The RHS vector. \\ \item[b] The RHS vector. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
@ -127,7 +127,7 @@ Specified as: a real number.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[itmax] The maximum number of iterations to perform.\\ \item[itmax] The maximum number of iterations to perform.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}\\ Type: {\bf optional}\\
@ -183,11 +183,11 @@ according to the value passed through the istop argument (see later).
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \spdata.
\item[prec] The data structure containing the preconditioner.\\ \item[prec] The data structure containing the preconditioner.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \precdata.
\item[b] The RHS vector. \\ \item[b] The RHS vector. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
@ -203,7 +203,7 @@ Specified as: a real number.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[itmax] The maximum number of iterations to perform.\\ \item[itmax] The maximum number of iterations to perform.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}\\ Type: {\bf optional}\\
@ -260,11 +260,11 @@ according to the value passed through the istop argument (see later).
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \spdata.
\item[prec] The data structure containing the preconditioner.\\ \item[prec] The data structure containing the preconditioner.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \precdata.
\item[b] The RHS vector. \\ \item[b] The RHS vector. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
@ -280,7 +280,7 @@ Specified as: a real number.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[itmax] The maximum number of iterations to perform.\\ \item[itmax] The maximum number of iterations to perform.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}\\ Type: {\bf optional}\\
@ -337,11 +337,11 @@ according to the value passed through the istop argument (see later).
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \spdata.
\item[prec] The data structure containing the preconditioner.\\ \item[prec] The data structure containing the preconditioner.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \precdata.
\item[b] The RHS vector. \\ \item[b] The RHS vector. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
@ -357,7 +357,7 @@ Specified as: a real number.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[itmax] The maximum number of iterations to perform.\\ \item[itmax] The maximum number of iterations to perform.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}\\ Type: {\bf optional}\\
@ -417,11 +417,11 @@ according to the value passed through the istop argument (see later).
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \spdata.
\item[prec] The data structure containing the preconditioner.\\ \item[prec] The data structure containing the preconditioner.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \precdata.
\item[b] The RHS vector. \\ \item[b] The RHS vector. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
@ -437,7 +437,7 @@ Specified as: a real number.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[itmax] The maximum number of iterations to perform.\\ \item[itmax] The maximum number of iterations to perform.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}\\ Type: {\bf optional}\\

@ -62,7 +62,7 @@ indicated in Table~\ref{tab:f90axpby}. The rank of $y$ must be the same of $x$.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in \S~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[n] number of columns in dense submatrices $x$ and $y$.\\ \item[n] number of columns in dense submatrices $x$ and $y$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
Type: {\bf optional}; can only be present if $x$ and $y$ are of rank 2.\\ Type: {\bf optional}; can only be present if $x$ and $y$ are of rank 2.\\
@ -156,8 +156,7 @@ Table~\ref{tab:f90dot}. The rank of $y$ must be the same of $x$.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[jx] the column index of global dense matrix $x$, \item[jx] the column index of global dense matrix $x$,
identifying the column of subvector $x$.\\ identifying the column of subvector $x$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -230,7 +229,7 @@ Table~\ref{tab:f90mdot}. The rank of $y$ must be the same of $x$.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Sec.~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[\bf On Return] \item[\bf On Return]
\item[res] is the dot product of subvectors $x$ and $y$.\\ \item[res] is the dot product of subvectors $x$ and $y$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -295,8 +294,7 @@ Table~\ref{tab:f90amax}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[jx] the column index of global dense matrix $x$, \item[jx] the column index of global dense matrix $x$,
identifying the column of subvector $x$.\\ identifying the column of subvector $x$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -353,7 +351,7 @@ Table~\ref{tab:f90mamax}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Sec.~\ref{sec:datastruct}. Specified as: a structured data of type \descdata.
\item[\bf On Return] \item[\bf On Return]
\item[res] is the infinity norm of the columns of $x$.\\ \item[res] is the infinity norm of the columns of $x$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -416,8 +414,7 @@ Table~\ref{tab:f90asum}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[jx] the column index of global dense matrix $x$, \item[jx] the column index of global dense matrix $x$,
identifying the column of subvector $x$.\\ identifying the column of subvector $x$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -486,8 +483,7 @@ Table~\ref{tab:f90nrm2}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[jx] the column index of global dense matrix $x$, \item[jx] the column index of global dense matrix $x$,
identifying the column of subvector $x$.\\ identifying the column of subvector $x$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -546,13 +542,11 @@ Long Precision Complex & psb\_nrmi \\
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \spdata.
\S~\ref{sec:datastruct}.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[\bf On Return] \item[\bf On Return]
\item[Function value] is the infinity-norm of sparse submatrix $A$.\\ \item[Function value] is the infinity-norm of sparse submatrix $A$.\\
Scope: {\bf global} \\ Scope: {\bf global} \\
@ -626,8 +620,7 @@ Table~\ref{tab:f90spmm}.
$A$. \\ $A$. \\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \spdata.
\S~\ref{sec:datastruct}.
\item[x] the local portion of global dense matrix \item[x] the local portion of global dense matrix
$x$. This subroutine computes the location of the first element of $x$. This subroutine computes the location of the first element of
local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\ local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\
@ -651,8 +644,7 @@ Table~\ref{tab:f90spmm}. The rank of $y$ must be the same of $x$.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[trans] indicate what kind of operation to perform. \item[trans] indicate what kind of operation to perform.
\begin{description} \begin{description}
\item[trans = N] the operation is specified by equation \ref{eq:f90spmm_no_tra} \item[trans = N] the operation is specified by equation \ref{eq:f90spmm_no_tra}
@ -791,8 +783,7 @@ Table~\ref{tab:f90spsm}. The rank of $y$ must be the same of $x$.
\item[desc\_a] contains data structures for communications.\\ \item[desc\_a] contains data structures for communications.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a structured data type specified in Specified as: a structured data of type \descdata.
\S~\ref{sec:datastruct}.
\item[trans] specify with {\em unitd} the operation to perform. \item[trans] specify with {\em unitd} the operation to perform.
\begin{description} \begin{description}
\item[trans = 'N'] the operation is with no transposed matrix \item[trans = 'N'] the operation is with no transposed matrix

@ -5,32 +5,37 @@
\subroutine{psb\_alloc}{Allocates a dense matrix} \subroutine{psb\_alloc}{Allocates a dense matrix}
\syntax{call psb\_alloc}{m, n, x, desc\_a, info, js} \syntax{call psb\_alloc}{m, n, x, desc\_a, info, js}
\syntax*{call psb\_alloc}{m, n, x, desc\_a, info}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[m] The number of rows of the dense matrix to be allocated.\\ \item[m] The number of rows of the dense matrix to be allocated.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: Integer scalar.
\item[n] The number of columns of the dense matrix to be allocated.\\ \item[n] The number of columns of the dense matrix to be allocated.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: Integer scalar.
\item[desc\_a] The communication descriptor.\\ \item[desc\_a] The communication descriptor.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a variable of type \descdata.\\
\item[js] The starting column.\\ \item[js] The starting column.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf optional}\\ Type: {\bf optional}\\
Specified as: Integer scalar.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[x] The dense matrix to be allocated. \item[x] The dense matrix to be allocated.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a one or two dimensional array.\\
\item[info] Error code. \item[info] Error code.
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: Integer scalar.
\end{description} \end{description}
% %
@ -45,16 +50,19 @@ Type: {\bf required}\\
\item[desc\_a] The communication descriptor.\\ \item[desc\_a] The communication descriptor.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: a variable of type \descdata.\\
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[x] The dense matrix to be assembled. \item[x] The dense matrix to be assembled.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
\item[info] Error code. Specified as: a one or two dimensional array.\\
\item[info] Error code.\\
Scope: {\bf local} \\ Scope: {\bf local} \\
Type: {\bf required}\\ Type: {\bf required}\\
Specified as: Integer scalar.\\
\end{description} \end{description}
@ -67,12 +75,30 @@ Type: {\bf required}\\
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[trans] A character that specifies whether to permute $A$ or $A^T$.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$.\\
\item[iperm] An integer array containing permutation information.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer one-dimensional array.\\
\item[a] The sparse matrix to be permuted.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a \spdata variable.\\
\item[desc\_a] The communication descriptor of type \descdata.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a variable of type \descdata.\\
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: Integer scalar.\\
\end{description} \end{description}
@ -81,16 +107,25 @@ Type: {\bf required}\\
% %
\subroutine{psb\_descprt}{Prints a descriptor} \subroutine{psb\_descprt}{Prints a descriptor}
\syntax{call psb\_descprt}{iout, desc\_p, glob, short} \syntax{call psb\_descprt}{iout, desc\_a, glob, short}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[iout] An integer that defines the output unit.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: Integer scalar.\\
\item[desc\_a] The communication descriptor of type \descdata that
must be printed.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a variable of type \descdata.\\
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[glob] ??????
\item[short] ??????
\end{description} \end{description}
@ -103,12 +138,23 @@ Type: {\bf required}\\
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[x] The dense matrix to
be freed.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a one or two dimensional array.
\item[desc\_a] The communication descriptor.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a variable of type \descdata.\\
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: Integer scalar.\\
\end{description} \end{description}
@ -121,31 +167,80 @@ Type: {\bf required}\\
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[trans] A character that specifies whether to permute $A$ or $A^T$.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$.\\
\item[iperm] An integer array containing permutation information.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer one-dimensional array.\\
\item[x] The dense matrix to be permuted.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a one or two dimensional array.\\
\item[desc\_a] The communication descriptor.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a variable of type \descdata.\\
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: Integer scalar.\\
\end{description} \end{description}
% %
%% psb_ins %% %% psb_spins %%
% %
\subroutine{psb\_ins}{Insert a submatrix into a dense matrix} \subroutine{psb\_spins}{Insert a cloud of elements into a sparse matrix}
\syntax{call psb\_ins}{m, n, x, ix, jx, blck, desc\_a, info, iblck, jblck} \syntax{call psb\_spins}{nz, ia, ja, val, a, desc\_a, info, is, js}
\syntax*{call psb\_ins}{m, x, ix, jx, blck, desc\_a, info, iblck}
\syntax*{call psb\_ins}{m, x, ix, jx, blck, desc\_a, info, iblck, insflag}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[nz] the number of elements to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer scalar.
\item[ia] the row indices of the elements to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer array of size $nz$.
\item[ja] the column indices of the elements to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer array of size $nz$.
\item[val] the elements to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an array of size $nz$.
\item[desc\_a] The communication descriptor.\\
Scope: {\bf local}. \\
Type: {\bf required}.\\
Specified as: a variable of type \descdata.\\
\item[is] the starting row on matrix $a$.\\
Scope:{\bf local}.\\
Type:{\bf optional}.\\
Specified as: an integer vaule.
\item[js] the starting column on matrix $a$.\\
Scope:{\bf local}.\\
Type:{\bf optional}\\
Specified as: an integer value
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[a] the matrix into which elements will be inserted.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[info] Error code.\\
Scope: {\bf local} \\
Type: {\bf required}\\
\end{description} \end{description}
@ -154,17 +249,39 @@ Type: {\bf required}\\
% %
\subroutine{psb\_dscall}{Allocates a communication descriptor} \subroutine{psb\_dscall}{Allocates a communication descriptor}
\syntax{call psb\_dscall}{m, n, parts, icontxt, desc\_a, info, flag} \syntax{call psb\_dscall}{m, n, parts, icontxt, desc\_a, info}
\syntax*{call psb\_dscall}{m, v, icontxt, desc\_a, info, flag} \syntax*{call psb\_dscall}{m, v, icontxt, desc\_a, info, flag}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[m] the number of rows of the problem.\\
Scope:{\bf global}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[n] the number of columns of the problem.\\
Scope:{\bf global}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[parts] the subroutine that defines the partitioning scheme.\\
Scope:{\bf global}.\\
Type:{\bf required}.\\
Specified as: a subroutine as described in ???
\item[icontxt] the communication context.\\
Scope:{\bf global}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.\\
\end{description} \end{description}
@ -177,11 +294,18 @@ Type: {\bf required}\\
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\item[arg] \item[arg]
\end{description} \end{description}
@ -192,17 +316,27 @@ Type: {\bf required}\\
% %
\subroutine{psb\_dsccpy}{Copies a communication descriptor} \subroutine{psb\_dsccpy}{Copies a communication descriptor}
\syntax{call }{} \syntax{call psb\_dsccpy}{desc\_out, desc\_a, info}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[desc\_out] the communication descriptor copy.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.\\
\end{description} \end{description}
@ -211,37 +345,66 @@ Type: {\bf required}\\
% %
\subroutine{psb\_dscfree}{Frees a communication descriptor} \subroutine{psb\_dscfree}{Frees a communication descriptor}
\syntax{call }{} \syntax{call psb\_dscfree}{desc\_a, info}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[desc\_a] the communication descriptor to be freed.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
% %
%% psb_dscins %% %% psb_dscins %%
% %
\subroutine{psb\_dscins}{Comunnication descriptor insert routine} \subroutine{psb\_dscins}{Comunnication descriptor insert routine}
\syntax{call }{} \syntax{call psb\_dscins}{nz, ia, ja, desc\_a, info, is, js}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[nz] the number of points being inserted.\\
Scope: {\bf local}.\\
Type: {\bf required}.\\
Specified as: an integer value.
\item[ia] the row indices of the points being inserted.\\
Scope: {\bf local}.\\
Type: {\bf required}.\\
Specified as: an integer array of length $nz$.
\item[ja] the column indices of the points being inserted.\\
Scope: {\bf local}.\\
Type: {\bf required}.\\
Specified as: an integer array of length $nz$.
\item[is] the row offset.\\
Scope:{\bf local}.\\
Type:{\bf optional}.\\
Specified as: an integer value.
\item[js] the column offset.\\
Scope: {\bf local}.\\
Type: {\bf optional}.\\
Specified as: an integer value.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[desc\_a] the communication descriptor to be freed.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -251,17 +414,30 @@ Type: {\bf required}\\
% %
\subroutine{psb\_dscren}{Applies a renumeration to a communication descriptor} \subroutine{psb\_dscren}{Applies a renumeration to a communication descriptor}
\syntax{call }{} \syntax{call psb\_dscren}{trans, iperm, desc\_a, info}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[trans] A character that specifies whether to permute $A$ or $A^T$.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$.\\
\item[iperm] An integer array containing permutation information.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer one-dimensional array.\\
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -271,17 +447,30 @@ Type: {\bf required}\\
% %
\subroutine{psb\_spalloc}{Allocates a sparse matrix} \subroutine{psb\_spalloc}{Allocates a sparse matrix}
\syntax{call }{} \syntax{call psb\_spalloc}{a, desc\_a, info, nnz}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[nnz] the number of nonzeroes in the matrix.\\
Scope: {\bf global}.\\
Type: {\bf optional}.\\
Specified as: an integer value.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[a] the matrix to be allocated.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -291,17 +480,38 @@ Type: {\bf required}\\
% %
\subroutine{psb\_spasb}{Sparse matrix assembly routine} \subroutine{psb\_spasb}{Sparse matrix assembly routine}
\syntax{call }{} \syntax{call psb\_spasb}{a, desc\_a, info, afmt, up, dup}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[afmt] the storage format for the sparse matrix.\\
Scope: {\bf global}.\\
Type: {\bf optional}.\\
Specified as: an array of characters. If not specified 'CSR' will be assumed.
\item[up] ???.\\
Scope: {\bf global}.\\
Type: {\bf optional}.\\
Specified as: .
\item[dup] ???.\\
Scope: {\bf global}.\\
Type: {\bf optional}.\\
Specified as:
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[a] the matrix to be assembled.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -311,17 +521,30 @@ Type: {\bf required}\\
% %
\subroutine{psb\_spcnv}{Converts a sparse matrix storage format} \subroutine{psb\_spcnv}{Converts a sparse matrix storage format}
\syntax{call }{} \syntax{call psb\_spcnv}{a, b, desc\_a, info}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[a] the matrix to be converted.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[b] the converted matrix.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -331,37 +554,83 @@ Type: {\bf required}\\
% %
\subroutine{psb\_spfree}{Frees a sparse matrix} \subroutine{psb\_spfree}{Frees a sparse matrix}
\syntax{call }{} \syntax{call psb\_spfree}{a, desc\_a, info}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[a] the matrix to be freed.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
% %
%% psb_spins %% %% psb_ins %%
% %
\subroutine{psb\_spins}{Sparse matrix insertion routine} \subroutine{psb\_ins}{Sparse matrix insertion routine}
\syntax{call }{} \syntax{call psb\_ins}{m, n, x, ix, jx, blck, desc\_a, info, iblck, jblck}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[m] rows number of submatrix belonging to blck to be inserted..\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[n] columns number of submatrix belonging to blck to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[ix] x global-row corresponding to position at which blck submatrix must be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[jx] x global-col corresponding to position at which blck submatrix must be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[blck] the dense submatrix to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a one or two dimensional array.
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[iblck] first row of submatrix belonging to blck to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\item[jblck] first column of submatrix belonging to blck to be inserted.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: an integer value.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[x] the output dense matrix.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a one or two dimensional array.\\
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -369,39 +638,43 @@ Type: {\bf required}\\
% %
%% psb_sprn %% %% psb_sprn %%
% %
\subroutine{psb\_sprn}{???} \subroutine{psb\_sprn}{Reinit sparse matrix structure for psblas routines.}
\syntax{call }{} \syntax{call psb\_sprn}{a, decsc\_a, info}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[a] the matrix to be reinitialized.\\
Scope:{\bf local}\\
Type:{\bf required}\\
Specified as: a structured data of type \spdata.
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
% %
%% psb_spupdate %% %% psb_spupdate %%
% %
\subroutine{psb\_spupdate}{???} \subroutine{psb\_spupdate}{Updates a sparse matrix.}
\syntax{call }{} \syntax{call psb\_spupdate}{a, ia, ja, blck, desc\_a, info, ix, jx, updflag}
\syntax*{call }{}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg]
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg]
\end{description} \end{description}
@ -411,17 +684,42 @@ Type: {\bf required}\\
% %
\subroutine{psb\_glob\_to\_loc}{Global to local indices convertion} \subroutine{psb\_glob\_to\_loc}{Global to local indices convertion}
\syntax{call }{} \syntax{call psb\_glob\_to\_loc}{x, y, desc\_a, info, iact}
\syntax*{call }{} \syntax*{call psb\_glob\_to\_loc}{x, desc\_a, info, iact}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[x] An integer vector of indices to be converted.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a rank one integer array.\\
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[iact] specifies action to be taken in case of range errors.
Scope: {\bf global} \\
Type: {\bf optional}\\
Specified as: a character variable \verb|E|, \verb|W| or \verb|A|.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[x] If $y$ is not present,
then $x$ is overwritten with the translated integer indices.
Scope: {\bf global} \\
Type: {\bf required}\\
Specified as: a rank one integer array.
\item[y] If $y$ is not present,
then $y$ is overwritten with the translated integer indices, and $x$
is left unchanged.
Scope: {\bf global} \\
Type: {\bf optional}\\
Specified as: a rank one integer array.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
@ -431,20 +729,44 @@ Type: {\bf required}\\
% %
\subroutine{psb\_loc\_to\_glob}{Local to global indices conversion} \subroutine{psb\_loc\_to\_glob}{Local to global indices conversion}
\syntax{call }{} \syntax{call psb\_loc\_to\_glob}{x, y, desc\_a, info, iact}
\syntax*{call }{} \syntax*{call psb\_loc\_to\_glob}{x, desc\_a, info, iact}
\begin{description} \begin{description}
\item[\bf On Entry] \item[\bf On Entry]
\item[arg] \item[x] An integer vector of indices to be converted.\\
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: a rank one integer array.\\
\item[desc\_a] the communication descriptor.\\
Scope:{\bf local}.\\
Type:{\bf required}.\\
Specified as: a structured data of type \descdata.
\item[iact] specifies action to be taken in case of range errors.
Scope: {\bf global} \\
Type: {\bf optional}\\
Specified as: a character variable \verb|E|, \verb|W| or \verb|A|.
\end{description} \end{description}
\begin{description} \begin{description}
\item[\bf On Return] \item[\bf On Return]
\item[arg] \item[x] If $y$ is not present,
then $x$ is overwritten with the translated integer indices.
Scope: {\bf global} \\
Type: {\bf required}\\
Specified as: a rank one integer array.
\item[y] If $y$ is not present,
then $y$ is overwritten with the translated integer indices, and $x$
is left unchanged.
Scope: {\bf global} \\
Type: {\bf optional}\\
Specified as: a rank one integer array.
\item[info] Error code.
Scope: {\bf local} \\
Type: {\bf required}\\
Specified as: an integer variable.
\end{description} \end{description}
%%% Local Variables: %%% Local Variables:
%%% mode: latex %%% mode: latex
%%% TeX-master: "userguide" %%% TeX-master: "userguide"

@ -63,7 +63,9 @@
\newcommand{\example}{\stepcounter{example}% \newcommand{\example}{\stepcounter{example}%
\section*{\examplename~\theexample}} \section*{\examplename~\theexample}}
\newcommand{\precdata}{\hyperlink{precdata}{\tt psb\_prec\_data}} \newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_prec\_data}}}
\newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_data}}}
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_spmat\_data}}}
\begin{document} \begin{document}
\include{title} \include{title}

@ -186,23 +186,6 @@ Subroutine psb_dcg(a,prec,b,x,eps,desc_a,info,&
it = it + 1 it = it + 1
itx = itx + 1 itx = itx + 1
!!$
!!$ solve mz = r
!!$ Note: the overlapped preconditioner (if overlap is non empty)
!!$ is non-symmetric: M^{-1} = \Lambda P^T K^{-1} P
!!$ For CG we use instead
!!$ M^{-1} = \sqrt{\Lambda} P^T K^{-1} P \sqrt{\Lambda}
!!$ Keep track of the old symmetrized stuf, might come in useful.
!!$ CALL F90_PSAXPBY(ONE,R,ZERO,Z,DECOMP_DATA)
!!$ CALL F90_PSOVRL(Z,DECOMP_DATA,&
!!$ & UPDATE_TYPE=SQUARE_ROOT_,CHOICE=NOEXCHANGE)
!!$ CALL F90_PSSPSM(ONE,L,Z,ZERO,W,DECOMP_DATA,&
!!$ & TRANS='N',UNIT=DIAGL,CHOICE=NONE_,WORK=AUX)
!!$ CALL F90_PSSPSM(ONE,U,W,ZERO,Z,DECOMP_DATA,&
!!$ & TRANS='N',UNIT=DIAGU,CHOICE=NONE_,DIAG=VDIAG,WORK=AUX)
!!$ CALL F90_PSOVRL(Z,DECOMP_DATA,&
!!$ & UPDATE_TYPE=SQUARE_ROOT_)
!!$ CALL F90_PSHALO(Z,DECOMP_DATA)
Call psb_prcaply(prec,r,z,desc_a,info,work=aux) Call psb_prcaply(prec,r,z,desc_a,info,work=aux)
rho_old = rho rho_old = rho
rho = psb_dot(r,z,desc_a,info) rho = psb_dot(r,z,desc_a,info)

@ -5,7 +5,7 @@
! !
! Parameters: ! Parameters:
! x - integer, dimension(:). Array containing the indices to be translated. ! x - integer, dimension(:). Array containing the indices to be translated.
! y - integer, dimension(:). Array containing the indices to be translated. ! y - integer, dimension(:). Array containing the translated indices.
! desc_a - type(<psb_desc_type>). The communication descriptor. ! desc_a - type(<psb_desc_type>). The communication descriptor.
! info - integer. Eventually returns an error code. ! info - integer. Eventually returns an error code.
! iact - integer(optional). A character defining the behaviour of this subroutine when is found an index not belonging to the calling process ! iact - integer(optional). A character defining the behaviour of this subroutine when is found an index not belonging to the calling process

@ -81,7 +81,7 @@ program df_sample
amroot = (myprow==0).and.(mypcol==0) amroot = (myprow==0).and.(mypcol==0)
name='df_sample' name='df_sample'
if(psb_get_errstatus().ne.0) return if(psb_get_errstatus().ne.0) goto 9999
info=0 info=0
call psb_set_errverbosity(2) call psb_set_errverbosity(2)
call psb_set_erraction(0) call psb_set_erraction(0)

Loading…
Cancel
Save