docs/html/footnode.html
 docs/html/img1.png
 docs/html/img10.png
 docs/html/img100.png
 docs/html/img101.png
 docs/html/img102.png
 docs/html/img103.png
 docs/html/img104.png
 docs/html/img105.png
 docs/html/img106.png
 docs/html/img107.png
 docs/html/img108.png
 docs/html/img109.png
 docs/html/img11.png
 docs/html/img110.png
 docs/html/img111.png
 docs/html/img112.png
 docs/html/img113.png
 docs/html/img114.png
 docs/html/img115.png
 docs/html/img116.png
 docs/html/img117.png
 docs/html/img118.png
 docs/html/img119.png
 docs/html/img12.png
 docs/html/img120.png
 docs/html/img121.png
 docs/html/img122.png
 docs/html/img123.png
 docs/html/img124.png
 docs/html/img125.png
 docs/html/img126.png
 docs/html/img127.png
 docs/html/img128.png
 docs/html/img129.png
 docs/html/img13.png
 docs/html/img130.png
 docs/html/img131.png
 docs/html/img132.png
 docs/html/img133.png
 docs/html/img134.png
 docs/html/img135.png
 docs/html/img136.png
 docs/html/img137.png
 docs/html/img138.png
 docs/html/img139.png
 docs/html/img14.png
 docs/html/img140.png
 docs/html/img141.png
 docs/html/img142.png
 docs/html/img143.png
 docs/html/img144.png
 docs/html/img145.png
 docs/html/img146.png
 docs/html/img147.png
 docs/html/img148.png
 docs/html/img149.png
 docs/html/img17.png
 docs/html/img18.png
 docs/html/img19.png
 docs/html/img2.png
 docs/html/img21.png
 docs/html/img22.png
 docs/html/img23.png
 docs/html/img24.png
 docs/html/img25.png
 docs/html/img27.png
 docs/html/img28.png
 docs/html/img29.png
 docs/html/img3.png
 docs/html/img30.png
 docs/html/img31.png
 docs/html/img32.png
 docs/html/img33.png
 docs/html/img34.png
 docs/html/img35.png
 docs/html/img36.png
 docs/html/img38.png
 docs/html/img39.png
 docs/html/img4.png
 docs/html/img40.png
 docs/html/img42.png
 docs/html/img44.png
 docs/html/img46.png
 docs/html/img47.png
 docs/html/img48.png
 docs/html/img5.png
 docs/html/img50.png
 docs/html/img51.png
 docs/html/img52.png
 docs/html/img54.png
 docs/html/img55.png
 docs/html/img56.png
 docs/html/img57.png
 docs/html/img58.png
 docs/html/img59.png
 docs/html/img6.png
 docs/html/img60.png
 docs/html/img61.png
 docs/html/img62.png
 docs/html/img63.png
 docs/html/img64.png
 docs/html/img65.png
 docs/html/img66.png
 docs/html/img67.png
 docs/html/img68.png
 docs/html/img69.png
 docs/html/img7.png
 docs/html/img70.png
 docs/html/img71.png
 docs/html/img72.png
 docs/html/img73.png
 docs/html/img74.png
 docs/html/img75.png
 docs/html/img76.png
 docs/html/img77.png
 docs/html/img78.png
 docs/html/img79.png
 docs/html/img8.png
 docs/html/img80.png
 docs/html/img81.png
 docs/html/img82.png
 docs/html/img83.png
 docs/html/img84.png
 docs/html/img85.png
 docs/html/img86.png
 docs/html/img87.png
 docs/html/img88.png
 docs/html/img89.png
 docs/html/img9.png
 docs/html/img90.png
 docs/html/img91.png
 docs/html/img92.png
 docs/html/img93.png
 docs/html/img94.png
 docs/html/img95.png
 docs/html/img96.png
 docs/html/img97.png
 docs/html/img98.png
 docs/html/img99.png
 docs/html/index.html
 docs/html/node1.html
 docs/html/node10.html
 docs/html/node100.html
 docs/html/node101.html
 docs/html/node102.html
 docs/html/node103.html
 docs/html/node104.html
 docs/html/node105.html
 docs/html/node106.html
 docs/html/node107.html
 docs/html/node108.html
 docs/html/node109.html
 docs/html/node11.html
 docs/html/node110.html
 docs/html/node111.html
 docs/html/node112.html
 docs/html/node113.html
 docs/html/node114.html
 docs/html/node12.html
 docs/html/node13.html
 docs/html/node14.html
 docs/html/node15.html
 docs/html/node16.html
 docs/html/node17.html
 docs/html/node18.html
 docs/html/node19.html
 docs/html/node2.html
 docs/html/node20.html
 docs/html/node21.html
 docs/html/node22.html
 docs/html/node23.html
 docs/html/node24.html
 docs/html/node25.html
 docs/html/node26.html
 docs/html/node27.html
 docs/html/node28.html
 docs/html/node29.html
 docs/html/node3.html
 docs/html/node30.html
 docs/html/node31.html
 docs/html/node32.html
 docs/html/node33.html
 docs/html/node34.html
 docs/html/node35.html
 docs/html/node36.html
 docs/html/node37.html
 docs/html/node38.html
 docs/html/node39.html
 docs/html/node4.html
 docs/html/node40.html
 docs/html/node41.html
 docs/html/node42.html
 docs/html/node43.html
 docs/html/node44.html
 docs/html/node45.html
 docs/html/node46.html
 docs/html/node47.html
 docs/html/node48.html
 docs/html/node49.html
 docs/html/node5.html
 docs/html/node50.html
 docs/html/node51.html
 docs/html/node52.html
 docs/html/node53.html
 docs/html/node54.html
 docs/html/node55.html
 docs/html/node56.html
 docs/html/node57.html
 docs/html/node58.html
 docs/html/node59.html
 docs/html/node6.html
 docs/html/node60.html
 docs/html/node61.html
 docs/html/node62.html
 docs/html/node63.html
 docs/html/node64.html
 docs/html/node65.html
 docs/html/node66.html
 docs/html/node67.html
 docs/html/node68.html
 docs/html/node69.html
 docs/html/node7.html
 docs/html/node70.html
 docs/html/node71.html
 docs/html/node72.html
 docs/html/node73.html
 docs/html/node74.html
 docs/html/node75.html
 docs/html/node76.html
 docs/html/node77.html
 docs/html/node78.html
 docs/html/node79.html
 docs/html/node8.html
 docs/html/node80.html
 docs/html/node81.html
 docs/html/node82.html
 docs/html/node83.html
 docs/html/node84.html
 docs/html/node85.html
 docs/html/node86.html
 docs/html/node87.html
 docs/html/node88.html
 docs/html/node89.html
 docs/html/node9.html
 docs/html/node90.html
 docs/html/node91.html
 docs/html/node92.html
 docs/html/node93.html
 docs/html/node94.html
 docs/html/node95.html
 docs/html/node96.html
 docs/html/node97.html
 docs/html/node98.html
 docs/html/node99.html
 docs/html/userhtml.html
 docs/psblas-3.2.pdf
 docs/src/commrout.tex
 docs/src/datastruct.tex
 docs/src/intro.tex
 docs/src/methods.tex
 docs/src/penv.tex
 docs/src/precs.tex
 docs/src/psbrout.tex
 docs/src/toolsrout.tex
 docs/src/userguide.tex

Reworked (again!) the docs to make sure the html version works. 
Should move to some other tool for LaTeX-HTML conversion.
This commit is contained in:
Salvatore Filippone
2014-03-21 08:58:20 +00:00
parent d805c2bee6
commit e8acd58814
266 changed files with 16353 additions and 15920 deletions
+9 -4
View File
@@ -8,7 +8,9 @@ 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~\ref{sec:toolsrout}.
\clearpage\subroutine{psb\_halo}{Halo Data Communication}
\clearpage\subsection*{psb\_halo --- Halo Data Communication}
\addcontentsline{toc}{subsection}{psb\_halo}
These subroutines gathers the values of the halo
elements, and (optionally) scale the result:
@@ -166,7 +168,8 @@ following:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_ovrl}{Overlap Update}
\clearpage\subsection*{psb\_ovrl --- Overlap Update}
\addcontentsline{toc}{subsection}{psb\_ovrl}
These subroutines applies an overlap operator to the input vector:
@@ -357,7 +360,8 @@ following (showing a transition among the two subdomains)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_gather}{Gather Global Dense Matrix}
\clearpage\subsection*{psb\_gather --- Gather Global Dense Matrix}
\addcontentsline{toc}{subsection}{psb\_gather}
These subroutines collect the portions of global dense matrix
distributed over all process into one single array stored on one
@@ -458,7 +462,8 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_scatter}{Scatter Global Dense Matrix}
\clearpage\subsection*{psb\_scatter --- Scatter Global Dense Matrix}
\addcontentsline{toc}{subsection}{psb\_scatter}
These subroutines scatters the portions of global dense matrix owned
by a process to all the processes in the processes grid.
+91 -74
View File
@@ -143,7 +143,7 @@ as follows:
% \begin{Sbox}
\begin{center}
\begin{minipage}[tl]{0.9\textwidth}
\begin{lstlisting}
\begin{verbatim}
type psb_desc_type
class(psb_indx_map), allocatable :: indxmap
integer, allocatable :: halo_index(:)
@@ -153,7 +153,7 @@ type psb_desc_type
integer, allocatable :: ovr_mst_idx(:)
integer, allocatable :: bnd_elem(:)
end type psb_desc_type
\end{lstlisting}
\end{verbatim}
\end{minipage}
\end{center}
% \end{Sbox}
@@ -178,11 +178,12 @@ state, which can take the following values:
\subsubsection{Descriptor Methods}
\subsubsubroutine{get\_local\_rows}{Get number of local rows}
\subsubsection*{get\_local\_rows --- Get number of local rows}
\addcontentsline{toc}{paragraph}{get\_local\_rows}
\begin{lstlisting}
\begin{verbatim}
nr = desc%get_local_rows()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -203,15 +204,16 @@ Scope: {\bf local}.\\
\end{description}
\subsubsubroutine{get\_local\_cols}{Get number of local cols}
\subsubsection*{get\_local\_cols --- Get number of local cols}
\addcontentsline{toc}{paragraph}{get\_local\_cols}
\begin{lstlisting}
\begin{verbatim}
nc = desc%get_local_cols()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[\bf On Entry]
\item[Type:] Asynchronous.
\item[\bf On Entry]
\item[desc] the communication descriptor.\\
Scope: {\bf local}.\\
% Type: {\bf required}.\\
@@ -229,15 +231,16 @@ Scope: {\bf local}.\\
\end{description}
\subsubsubroutine{get\_global\_rows}{Get number of global rows}
\subsubsection*{get\_global\_rows --- Get number of global rows}
\addcontentsline{toc}{paragraph}{get\_global\_rows}
\begin{lstlisting}
\begin{verbatim}
nr = desc%get_global_rows()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[\bf On Entry]
\item[Type:] Asynchronous.
\item[\bf On Entry]
\item[desc] the communication descriptor.\\
Scope: {\bf local}.\\
% Type: {\bf required}.\\
@@ -251,11 +254,12 @@ Scope: {\bf local}.\\
global index space.
\end{description}
\subsubsubroutine{get\_global\_cols}{Get number of global cols}
\subsubsection*{get\_global\_cols --- Get number of global cols}
\addcontentsline{toc}{paragraph}{get\_global\_cols}
\begin{lstlisting}
\begin{verbatim}
nr = desc%get_global_cols()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -274,11 +278,12 @@ Scope: {\bf local}.\\
\end{description}
\subsubsubroutine{get\_context}{Get communication context}
\subsubsection*{get\_context --- Get communication context}
\addcontentsline{toc}{paragraph}{get\_context}
\begin{lstlisting}
\begin{verbatim}
ictxt = desc%get_context()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -295,11 +300,12 @@ Scope: {\bf local}.\\
\item[Function value] The communication context.
\end{description}
\subsubsubroutine{Clone}{clone current object}
\subsubsection*{Clone --- clone current object}
\addcontentsline{toc}{paragraph}{Clone}
\begin{lstlisting}
\begin{verbatim}
call desc%clone(descout,info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -318,12 +324,13 @@ Scope: {\bf local}.\\
\end{description}
\subsubsubroutine{psb\_cd\_get\_large\_threshold}{Get threshold for
\subsubsection*{psb\_cd\_get\_large\_threshold --- Get threshold for
index mapping switch}
\addcontentsline{toc}{paragraph}{psb\_cd\_get\_large\_threshold}
\begin{lstlisting}
\begin{verbatim}
ith = psb_cd_get_large_threshold()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -334,12 +341,13 @@ ith = psb_cd_get_large_threshold()
\subsubsubroutine{psb\_cd\_set\_large\_threshold}{Set threshold for
\subsubsection*{psb\_cd\_set\_large\_threshold --- Set threshold for
index mapping switch}
\addcontentsline{toc}{paragraph}{psb\_cd\_set\_large\_threshold}
\begin{lstlisting}
\begin{verbatim}
call psb_cd_set_large_threshold(ith)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -414,15 +422,11 @@ library at runtime via the \verb|psb_spasb| routine.
% \begin{Sbox}
\begin{center}
\begin{minipage}[tl]{0.85\textwidth}
\begin{lstlisting}
\begin{verbatim}
type :: psb_Tspmat_type
class(psb_T_base_sparse_mat), allocatable :: a
end type psb_Tspmat_type
\end{lstlisting}
\end{verbatim}
\end{minipage}
\end{center}
% \end{Sbox}
@@ -459,11 +463,12 @@ variants are obtained by conversion to/from it.
\subsubsection{Sparse Matrix Methods}
\subsubsubroutine{get\_nrows}{Get number of rows in a sparse matrix}
\subsubsection*{get\_nrows --- Get number of rows in a sparse matrix}
\addcontentsline{toc}{paragraph}{get\_nrows}
\begin{lstlisting}
\begin{verbatim}
nr = a%get_nrows()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -481,11 +486,13 @@ Scope: {\bf local}\\
\end{description}
\subsubsubroutine{get\_ncols}{Get number of columns in a sparse matrix}
\subsubsection*{get\_ncols --- Get number of columns in a sparse
matrix}
\addcontentsline{toc}{paragraph}{get\_ncols}
\begin{lstlisting}
\begin{verbatim}
nc = a%get_ncols()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -503,12 +510,13 @@ Scope: {\bf local}\\
\end{description}
\subsubsubroutine{get\_nnzeros}{Get number of nonzero elements
\subsubsection*{get\_nnzeros --- Get number of nonzero elements
in a sparse matrix}
\addcontentsline{toc}{paragraph}{get\_nnzeros}
\begin{lstlisting}
\begin{verbatim}
nz = a%get_nnzeros()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -532,12 +540,13 @@ Scope: {\bf local}\\
value for the same matrix may be different for different storage choices.
\end{enumerate}
\subsubsubroutine{get\_size }{Get maximum number of nonzero elements
\subsubsection*{get\_size --- Get maximum number of nonzero elements
in a sparse matrix}
\addcontentsline{toc}{paragraph}{get\_size }
\begin{lstlisting}
\begin{verbatim}
maxnz = a%get_size()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -555,12 +564,13 @@ Scope: {\bf local}\\
be stored in sparse matrix \verb|a| using its current memory allocation.
\end{description}
\subsubsubroutine{sizeof }{Get memory occupation in bytes
\subsubsection*{sizeof --- Get memory occupation in bytes
of a sparse matrix}
\addcontentsline{toc}{paragraph}{sizeof }
\begin{lstlisting}
\begin{verbatim}
memory_size = a%sizeof()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -578,11 +588,12 @@ Scope: {\bf local}\\
\end{description}
\subsubsubroutine{get\_fmt }{Short description of the dynamic type}
\subsubsection*{get\_fmt --- Short description of the dynamic type}
\addcontentsline{toc}{paragraph}{get\_fmt }
\begin{lstlisting}
\begin{verbatim}
write(*,*) a%get_fmt()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -601,13 +612,14 @@ Scope: {\bf local}\\
\verb|CSR| and \verb|CSC|.
\end{description}
\subsubsubroutine{is\_bld, is\_upd, is\_asb }{Status check}
\subsubsection*{is\_bld, is\_upd, is\_asb --- Status check}
\addcontentsline{toc}{paragraph}{is\_bld, is\_upd, is\_asb }
\begin{lstlisting}
\begin{verbatim}
if (a%is_bld()) then
if (a%is_upd()) then
if (a%is_asb()) then
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -626,11 +638,12 @@ Scope: {\bf local}\\
\end{description}
\subsubsubroutine{clone}{Clone current object}
\subsubsection*{clone --- Clone current object}
\addcontentsline{toc}{paragraph}{clone}
\begin{lstlisting}
\begin{verbatim}
call a%clone(b,info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -699,7 +712,7 @@ private memory.
% \begin{Sbox}
\begin{center}
\begin{minipage}[tl]{0.85\textwidth}
\begin{lstlisting}
\begin{verbatim}
type psb_T_base_vect_type
TYPE(KIND_), allocatable :: v(:)
end type psb_T_base_vect_type
@@ -708,7 +721,7 @@ private memory.
class(psb_T_base_vect_type), allocatable :: v
end type psb_T_vect_type
\end{lstlisting}
\end{verbatim}
\end{minipage}
\end{center}
% \end{Sbox}
@@ -722,11 +735,12 @@ private memory.
\end{figure}
\subsubsection{Vector Methods}
\subsubsubroutine{get\_nrows}{Get number of rows in a dense vector}
\subsubsection*{get\_nrows --- Get number of rows in a dense vector}
\addcontentsline{toc}{paragraph}{get\_nrows}
\begin{lstlisting}
\begin{verbatim}
nr = v%get_nrows()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -744,12 +758,13 @@ Scope: {\bf local}\\
\end{description}
\subsubsubroutine{sizeof }{Get memory occupation in bytes
\subsubsection*{sizeof --- Get memory occupation in bytes
of a dense vector}
\addcontentsline{toc}{paragraph}{sizeof }
\begin{lstlisting}
\begin{verbatim}
memory_size = v%sizeof()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -767,11 +782,12 @@ Scope: {\bf local}\\
\end{description}
\subsubsubroutine{get\_vect }{Get a copy of the vector contents}
\subsubsection*{get\_vect --- Get a copy of the vector contents}
\addcontentsline{toc}{paragraph}{get\_vect }
\begin{lstlisting}
\begin{verbatim}
extv = v%get_vect()
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -789,10 +805,11 @@ Scope: {\bf local}\\
vector contents.
\end{description}
\subsubsubroutine{clone}{Clone current object}
\begin{lstlisting}
\subsubsection*{clone --- Clone current object}
\addcontentsline{toc}{paragraph}{clone}
\begin{verbatim}
call x%clone(y,info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -840,13 +857,13 @@ dynamic type corresponding to the desired preconditioner.
% \begin{Sbox}
\begin{center}
\begin{minipage}[tl]{0.9\textwidth}
\begin{lstlisting}
\begin{verbatim}
type psb_Tprec_type
class(psb_T_base_prec_type), allocatable :: prec
end type psb_Tprec_type
\end{lstlisting}
\end{verbatim}
\end{minipage}
\end{center}
% \end{Sbox}
+1 -1
View File
@@ -460,7 +460,7 @@ the tools routines.
However there are many cases where no synchronization, and indeed no
communication among processes, is implied; for instance, all the routines in
sec.~\ref{sec:dataquery} are only acting on the local data structures,
sec.~\ref{sec:datastruct} are only acting on the local data structures,
and thus may be called independently. The most important case is that
of the coefficient insertion routines: since the number of
coefficients in the sparse and dense matrices varies among the
+2 -1
View File
@@ -11,8 +11,9 @@ the module \verb|psb_krylov_mod|.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_krylov \label{krylov}}{Krylov Methods Driver
\clearpage\subsection*{psb\_krylov \label{krylov} --- Krylov Methods Driver
Routine}
\addcontentsline{toc}{subsection}{psb\_krylov}
This subroutine is a driver that provides a general interface for all
the Krylov-Subspace family methods implemented in PSBLAS version 2.
+66 -48
View File
@@ -2,11 +2,13 @@
\section{Parallel environment routines}
\label{sec:parenv}
\clearpage\subroutine{psb\_init}{Initializes PSBLAS parallel environment}
\clearpage\subsection*{psb\_init --- Initializes PSBLAS parallel
environment}
\addcontentsline{toc}{subsection}{psb\_init}
\begin{lstlisting}
\begin{verbatim}
call psb_init(icontxt, np, basectxt, ids)
\end{lstlisting}
\end{verbatim}
This subroutine initializes the PSBLAS parallel environment, defining
a virtual parallel machine.
@@ -59,12 +61,13 @@ Specified as: an integer variable.
\end{enumerate}
\clearpage\subroutine{psb\_info}{Return information about PSBLAS parallel
\clearpage\subsection*{psb\_info --- Return information about PSBLAS parallel
environment}
\addcontentsline{toc}{subsection}{psb\_info}
\begin{lstlisting}
\begin{verbatim}
call psb_info(icontxt, iam, np)
\end{lstlisting}
\end{verbatim}
This subroutine returns information about the PSBLAS parallel environment, defining
a virtual parallel machine.
@@ -106,12 +109,14 @@ Specified as: an integer variable. \
\end{enumerate}
\clearpage\subroutine{psb\_exit}{Exit from PSBLAS parallel environment}
\clearpage\subsection*{psb\_exit --- Exit from PSBLAS parallel
environment}
\addcontentsline{toc}{subsection}{psb\_exit}
\begin{lstlisting}
\begin{verbatim}
call psb_exit(icontxt)
call psb_exit(icontxt,close)
\end{lstlisting}
\end{verbatim}
This subroutine exits from the PSBLAS parallel virtual machine.
\begin{description}
@@ -148,11 +153,12 @@ Specified as: a logical variable, default value: true.
\end{enumerate}
\clearpage\subroutine{psb\_get\_mpicomm}{Get the MPI communicator}
\clearpage\subsection*{psb\_get\_mpicomm --- Get the MPI communicator}
\addcontentsline{toc}{subsection}{psb\_get\_mpicomm}
\begin{lstlisting}
\begin{verbatim}
call psb_get_mpicomm(icontxt, icomm)
\end{lstlisting}
\end{verbatim}
This subroutine returns the MPI communicator associated with a PSBLAS context
\begin{description}
@@ -175,11 +181,12 @@ Intent: {\bf out}.\\
\end{description}
\clearpage\subroutine{psb\_get\_rank}{Get the MPI rank}
\clearpage\subsection*{psb\_get\_rank --- Get the MPI rank}
\addcontentsline{toc}{subsection}{psb\_get\_rank}
\begin{lstlisting}
\begin{verbatim}
call psb_get_rank(rank, icontxt, id)
\end{lstlisting}
\end{verbatim}
This subroutine returns the MPI rank of the PSBLAS process $id$
\begin{description}
@@ -209,11 +216,12 @@ Intent: {\bf out}.\\
\clearpage\subroutine{psb\_wtime}{Wall clock timing}
\clearpage\subsection*{psb\_wtime --- Wall clock timing}
\addcontentsline{toc}{subsection}{psb\_wtime}
\begin{lstlisting}
\begin{verbatim}
time = psb_wtime()
\end{lstlisting}
\end{verbatim}
This function returns a wall clock timer. The resolution of the timer
is dependent on the underlying parallel environment implementation.
@@ -225,12 +233,13 @@ Returned as: a \verb|real(psb_dpk_)| variable.
\end{description}
\clearpage\subroutine{psb\_barrier}{Sinchronization point parallel
\clearpage\subsection*{psb\_barrier --- Sinchronization point parallel
environment}
\addcontentsline{toc}{subsection}{psb\_barrier}
\begin{lstlisting}
\begin{verbatim}
call psb_barrier(icontxt)
\end{lstlisting}
\end{verbatim}
This subroutine acts as an explicit synchronization point for the PSBLAS
parallel virtual machine.
@@ -246,11 +255,12 @@ Specified as: an integer variable.
\end{description}
\clearpage\subroutine{psb\_abort}{Abort a computation}
\clearpage\subsection*{psb\_abort --- Abort a computation}
\addcontentsline{toc}{subsection}{psb\_abort}
\begin{lstlisting}
\begin{verbatim}
call psb_abort(icontxt)
\end{lstlisting}
\end{verbatim}
This subroutine aborts computation on the parallel virtual machine.
\begin{description}
@@ -268,11 +278,12 @@ Specified as: an integer variable.
\clearpage\subroutine{psb\_bcast}{Broadcast data}
\clearpage\subsection*{psb\_bcast --- Broadcast data}
\addcontentsline{toc}{subsection}{psb\_bcast}
\begin{lstlisting}
\begin{verbatim}
call psb_bcast(icontxt, dat, root)
\end{lstlisting}
\end{verbatim}
This subroutine implements a broadcast operation based on the
underlying communication library.
@@ -313,11 +324,12 @@ Type, kind, rank and size must agree on all processes.
\end{description}
\clearpage\subroutine{psb\_sum}{Global sum}
\clearpage\subsection*{psb\_sum --- Global sum}
\addcontentsline{toc}{subsection}{psb\_sum}
\begin{lstlisting}
\begin{verbatim}
call psb_sum(icontxt, dat, root)
\end{lstlisting}
\end{verbatim}
This subroutine implements a sum reduction operation based on the
underlying communication library.
@@ -367,11 +379,12 @@ Type, kind, rank and size must agree on all processes.
\clearpage\subroutine{psb\_max}{Global maximum}
\clearpage\subsection*{psb\_max --- Global maximum}
\addcontentsline{toc}{subsection}{psb\_max}
\begin{lstlisting}
\begin{verbatim}
call psb_max(icontxt, dat, root)
\end{lstlisting}
\end{verbatim}
This subroutine implements a maximum valuereduction
operation based on the underlying communication library.
@@ -420,11 +433,12 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subroutine{psb\_min}{Global minimum}
\clearpage\subsection*{psb\_min --- Global minimum}
\addcontentsline{toc}{subsection}{psb\_min}
\begin{lstlisting}
\begin{verbatim}
call psb_min(icontxt, dat, root)
\end{lstlisting}
\end{verbatim}
This subroutine implements a minimum value reduction
operation based on the underlying communication library.
@@ -473,11 +487,12 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subroutine{psb\_amx}{Global maximum absolute value}
\clearpage\subsection*{psb\_amx --- Global maximum absolute value}
\addcontentsline{toc}{subsection}{psb\_amx}
\begin{lstlisting}
\begin{verbatim}
call psb_amx(icontxt, dat, root)
\end{lstlisting}
\end{verbatim}
This subroutine implements a maximum absolute value reduction
operation based on the underlying communication library.
@@ -526,11 +541,12 @@ Type, kind, rank and size must agree on all processes.
\item The \verb|dat| argument may also be a long integer scalar.
\end{enumerate}
\clearpage\subroutine{psb\_amn}{Global minimum absolute value}
\clearpage\subsection*{psb\_amn --- Global minimum absolute value}
\addcontentsline{toc}{subsection}{psb\_amn}
\begin{lstlisting}
\begin{verbatim}
call psb_amn(icontxt, dat, root)
\end{lstlisting}
\end{verbatim}
This subroutine implements a minimum absolute value reduction
operation based on the underlying communication library.
@@ -580,11 +596,12 @@ Type, kind, rank and size must agree on all processes.
\end{enumerate}
\clearpage\subroutine{psb\_snd}{Send data}
\clearpage\subsection*{psb\_snd --- Send data}
\addcontentsline{toc}{subsection}{psb\_snd}
\begin{lstlisting}
\begin{verbatim}
call psb_snd(icontxt, dat, dst, m)
\end{lstlisting}
\end{verbatim}
This subroutine sends a packet of data to a destination.
\begin{description}
@@ -631,11 +648,12 @@ same value on sending and receiving processes.
\end{enumerate}
\clearpage\subroutine{psb\_rcv}{Receive data}
\clearpage\subsection*{psb\_rcv --- Receive data}
\addcontentsline{toc}{subsection}{psb\_rcv}
\begin{lstlisting}
\begin{verbatim}
call psb_rcv(icontxt, dat, src, m)
\end{lstlisting}
\end{verbatim}
This subroutine receives a packet of data to a destination.
\begin{description}
+21 -15
View File
@@ -23,11 +23,12 @@ module \verb|psb_prec_mod|.
\clearpage\subroutine{psb\_precinit}{Initialize a preconditioner}
\clearpage\subsection*{psb\_precinit --- Initialize a preconditioner}
\addcontentsline{toc}{subsection}{psb\_precinit}
\begin{lstlisting}
\begin{verbatim}
call psb_precinit(prec, ptype, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -79,11 +80,12 @@ $ptype$ string as follows\footnote{The string is case-insensitive}:
\end{description}
\clearpage\subroutine{psb\_precbld}{Builds a preconditioner}
\clearpage\subsection*{psb\_precbld --- Builds a preconditioner}
\addcontentsline{toc}{subsection}{psb\_precbld}
\begin{lstlisting}
\begin{verbatim}
call psb_precbld(a, desc_a, prec, info,amold,vmold)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -137,12 +139,14 @@ An integer value; 0 means no error has been detected.
\clearpage\subroutine{psb\_precaply}{Preconditioner application routine}
\clearpage\subsection*{psb\_precaply --- Preconditioner application
routine}
\addcontentsline{toc}{subsection}{psb\_precaply}
\begin{lstlisting}
\begin{verbatim}
call psb_precaply(prec,x,y,desc_a,info,trans,work)
call psb_precaply(prec,x,desc_a,info,trans)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -190,13 +194,14 @@ An integer value; 0 means no error has been detected.
\clearpage\subroutine{psb\_precdescr}{Prints a description of current
\clearpage\subsection*{psb\_precdescr --- Prints a description of current
preconditioner}
\addcontentsline{toc}{subsection}{psb\_precdescr}
\begin{lstlisting}
\begin{verbatim}
call psb_precdescr(prec)
call psb_precdescr(prec, iout)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -215,11 +220,12 @@ Specified as: an integer number.
\clearpage\subroutine{clone}{clone current
\clearpage\subsection*{clone --- clone current
preconditioner}
\begin{lstlisting}
\addcontentsline{toc}{subsection}{clone}
\begin{verbatim}
call prec%clone(precout,info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
+53 -39
View File
@@ -5,7 +5,8 @@
% DENSE MATRIX SUM
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_geaxpby}{General Dense Matrix Sum}
\clearpage\subsection*{psb\_geaxpby --- General Dense Matrix Sum}
\addcontentsline{toc}{subsection}{psb\_geaxpby}
This subroutine is an interface to the computational kernel for
dense matrix sum:
@@ -16,9 +17,9 @@ dense matrix sum:
%% \item[$y$] represents the global dense submatrix $y_{:, :}$
%% \end{description}
\begin{lstlisting}
\begin{verbatim}
call psb_geaxpby(alpha, x, beta, y, desc_a, info)
\end{lstlisting}
\end{verbatim}
%% \syntax*{call psb\_geaxpby}{alpha, x, beta, y, desc\_a, info, n, jx, jy}
%( calculating y <- alpha*x+beta*y )
@@ -113,7 +114,8 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_gedot}{Dot Product}
\clearpage\subsection*{psb\_gedot --- Dot Product}
\addcontentsline{toc}{subsection}{psb\_gedot}
This function computes dot product between two vectors $x$ and
$y$.\\
@@ -128,9 +130,9 @@ Else if $x$ and $y$ are complex vectors then it computes dot-product as:
%% \item[$y$] represents the global subvector $y_{:,jy}$
%% \end{description}
\begin{lstlisting}
\begin{verbatim}
psb_gedot(x, y, desc_a, info)
\end{lstlisting}
\end{verbatim}
%% \syntax*{psb\_gedot}{x, y, desc\_a, info, jx, jy}
\begin{table}[h]
\begin{center}
@@ -204,7 +206,8 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_gedots}{Generalized Dot Product}
\clearpage\subsection*{psb\_gedots --- Generalized Dot Product}
\addcontentsline{toc}{subsection}{psb\_gedots}
This subroutine computes a series of dot products among the columns of
two dense matrices $x$ and $y$:
@@ -214,9 +217,9 @@ usual convention applies, i.e. the conjugate transpose of $x$ is
used. If $x$ and $y$ are of rank one, then $res$ is a scalar, else it
is a rank one array.
\begin{lstlisting}
\begin{verbatim}
call psb_gedots(res, x, y, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{table}[h]
\begin{center}
\begin{tabular}{ll}
@@ -277,7 +280,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_geamax}{Infinity-Norm of Vector}
\clearpage\subsection*{psb\_geamax --- Infinity-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_geamax}
This function computes
the infinity-norm of a vector $x$.\\
@@ -291,9 +295,9 @@ else if $x$ is a complex vector then it computes the infinity-norm as:
%% \item[$x$] represents the global subvector $x_{:,jx}$
%% \end{description}
\begin{lstlisting}
\begin{verbatim}
psb_geamax(x, desc_a, info)
\end{lstlisting}
\end{verbatim}
%% \syntax*{psb\_geamax}{x, desc\_a, info, jx}
\begin{table}[h]
@@ -354,15 +358,16 @@ An integer value; 0 means no error has been detected.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_geamaxs}{Generalized Infinity Norm}
\clearpage\subsection*{psb\_geamaxs --- Generalized Infinity Norm}
\addcontentsline{toc}{subsection}{psb\_geamaxs}
This subroutine computes a series of infinity norms on the columns of
a dense matrix $x$:
\[ res(i) \leftarrow \max_k |x(k,i)| \]
\begin{lstlisting}
\begin{verbatim}
call psb_geamaxs(res, x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{table}[h]
\begin{center}
@@ -415,7 +420,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_geasum}{1-Norm of Vector}
\clearpage\subsection*{psb\_geasum --- 1-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_geasum}
This function computes the 1-norm of a vector $x$.\\
If $x$ is a real vector
@@ -425,9 +431,9 @@ else if $x$ is a complex vector then it computes 1-norm as:
\[ asum \leftarrow \|re(x)\|_1 + \|im(x)\|_1\]
\begin{lstlisting}
\begin{verbatim}
psb_geasum(x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{table}[h]
\begin{center}
@@ -476,7 +482,8 @@ An integer value; 0 means no error has been detected.
\end{description}
\clearpage\subroutine{psb\_geasums}{Generalized 1-Norm of Vector}
\clearpage\subsection*{psb\_geasums --- Generalized 1-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_geasums}
This subroutine computes a series of 1-norms on the columns of
a dense matrix $x$:
@@ -489,9 +496,9 @@ else if $x$ is a complex vector then it computes 1-norm as:
\[ res(i) \leftarrow \|re(x)\|_1 + \|im(x)\|_1\]
\begin{lstlisting}
\begin{verbatim}
call psb_geasums(res, x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{table}[h]
\begin{center}
@@ -549,7 +556,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_genrm2}{2-Norm of Vector}
\clearpage\subsection*{psb\_genrm2 --- 2-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_genrm2}
This function computes the 2-norm of a vector $x$.\\
If $x$ is a real vector
@@ -578,9 +586,9 @@ Long Precision Real&Long Precision Complex & psb\_genrm2 \\
\caption{Data types\label{tab:f90nrm2}}
\end{table}
\begin{lstlisting}
\begin{verbatim}
psb_genrm2(x, desc_a, info)
\end{lstlisting}
\end{verbatim}
%% \syntax*{psb\_genrm2}{x, desc\_a, info, jx}
\begin{description}
@@ -622,16 +630,17 @@ An integer value; 0 means no error has been detected.
\clearpage\subroutine{psb\_genrm2s}{Generalized 2-Norm of Vector}
\clearpage\subsection*{psb\_genrm2s --- Generalized 2-Norm of Vector}
\addcontentsline{toc}{subsection}{psb\_genrm2s}
This subroutine computes a series of 2-norms on the columns of
a dense matrix $x$:
\[ res(i) \leftarrow \|x(:,i)\|_2 \]
\begin{lstlisting}
\begin{verbatim}
call psb_genrm2s(res, x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{table}[h]
\begin{center}
@@ -689,7 +698,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_spnrm1}{1-Norm of Sparse Matrix}
\clearpage\subsection*{psb\_spnrm1 --- 1-Norm of Sparse Matrix}
\addcontentsline{toc}{subsection}{psb\_spnrm1}
This function computes the 1-norm of a matrix $A$:\\
@@ -715,9 +725,9 @@ Long Precision Complex & psb\_spnrm1 \\
\caption{Data types\label{tab:f90nrm1}}
\end{table}
\begin{lstlisting}
\begin{verbatim}
psb_spnrm1(A, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -752,7 +762,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_spnrmi}{Infinity Norm of Sparse Matrix}
\clearpage\subsection*{psb\_spnrmi --- Infinity Norm of Sparse Matrix}
\addcontentsline{toc}{subsection}{psb\_spnrmi}
This function computes the infinity-norm of a matrix $A$:\\
@@ -778,9 +789,9 @@ Long Precision Complex & psb\_spnrmi \\
\caption{Data types\label{tab:f90nrmi}}
\end{table}
\begin{lstlisting}
\begin{verbatim}
psb_spnrmi(A, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -815,7 +826,9 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_spmm}{Sparse Matrix by Dense Matrix Product}
\clearpage\subsection*{psb\_spmm --- Sparse Matrix by Dense Matrix
Product}
\addcontentsline{toc}{subsection}{psb\_spmm}
This subroutine computes the Sparse Matrix by Dense Matrix Product:
@@ -855,11 +868,11 @@ Long Precision Complex & psb\_spmm \\
\caption{Data types\label{tab:f90spmm}}
\end{table}
\begin{lstlisting}
\begin{verbatim}
call psb_spmm(alpha, a, x, beta, y, desc_a, info)
call psb_spmm(alpha, a, x, beta, y,desc_a, info, &
& trans, work)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -966,7 +979,8 @@ An integer value; 0 means no error has been detected.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\clearpage\subroutine{psb\_spsm}{Triangular System Solve}
\clearpage\subsection*{psb\_spsm --- Triangular System Solve}
\addcontentsline{toc}{subsection}{psb\_spsm}
This subroutine computes the Triangular System Solve:
@@ -991,11 +1005,11 @@ where:
\item[$D$] is the scaling diagonal matrix.
\end{description}
\begin{lstlisting}
\begin{verbatim}
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)
\end{lstlisting}
\end{verbatim}
\begin{table}[h]
\begin{center}
+125 -88
View File
@@ -5,15 +5,16 @@
%
%% psb_cdall %%
%
\subroutine{psb\_cdall}{Allocates a communication descriptor}
\subsection*{psb\_cdall --- Allocates a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdall}
\begin{lstlisting}
\begin{verbatim}
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
call psb_cdall(icontxt, desc_a, info,vg=vg,[mg=mg,flag=flag])
call psb_cdall(icontxt, desc_a, info,vl=vl,[nl=nl,globalcheck=.true.,lidx=lidx])
call psb_cdall(icontxt, desc_a, info,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
\end{lstlisting}
\end{verbatim}
This subroutine initializes the communication descriptor associated
with an index space. One of the optional arguments
@@ -108,14 +109,14 @@ An integer value; 0 means no error has been detected.
optional argument is specified, then it is mandatory to
specify the argument \verb|mg| as well.
The subroutine must conform to the following interface:
\begin{lstlisting}
\begin{verbatim}
interface
subroutine psb_parts(glob_index,mg,np,pv,nv)
integer, intent (in) :: glob_index,np,mg
integer, intent (out) :: nv, pv(*)
end subroutine psb_parts
end interface
\end{lstlisting}
\end{verbatim}
The input arguments are:
\begin{description}
\item[glob\_index] The global index to be mapped;
@@ -195,12 +196,14 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdins %%
%
\clearpage\subroutine{psb\_cdins}{Communication descriptor insert routine}
\clearpage\subsection*{psb\_cdins --- Communication descriptor insert
routine}
\addcontentsline{toc}{subsection}{psb\_cdins}
\begin{lstlisting}
\begin{verbatim}
call psb_cdins(nz, ia, ja, desc_a, info [,ila,jla])
call psb_cdins(nz,ja,desc,info[,jla,mask,lidx])
\end{lstlisting}
\end{verbatim}
This subroutine examines the edges of the graph associated with the
discretization mesh (and isomorphic to the sparsity pattern of a
@@ -289,11 +292,13 @@ nor the end vertex belong to the current process.
%
%% psb_cdasb %%
%
\clearpage\subroutine{psb\_cdasb}{Communication descriptor assembly routine}
\clearpage\subsection*{psb\_cdasb --- Communication descriptor assembly
routine}
\addcontentsline{toc}{subsection}{psb\_cdasb}
\begin{lstlisting}
\begin{verbatim}
call psb_cdasb(desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -330,11 +335,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdcpy %%
%
\clearpage\subroutine{psb\_cdcpy}{Copies a communication descriptor}
\clearpage\subsection*{psb\_cdcpy --- Copies a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdcpy}
\begin{lstlisting}
\begin{verbatim}
call psb_cdcpy(desc_in, desc_out, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -365,11 +371,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdfree %%
%
\clearpage\subroutine{psb\_cdfree}{Frees a communication descriptor}
\clearpage\subsection*{psb\_cdfree --- Frees a communication descriptor}
\addcontentsline{toc}{subsection}{psb\_cdfree}
\begin{lstlisting}
\begin{verbatim}
call psb_cdfree(desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -395,12 +402,13 @@ An integer value; 0 means no error has been detected.
%
%% psb_cdcpy %%
%
\clearpage\subroutine{psb\_cdbldext}{Build an extended communication
\clearpage\subsection*{psb\_cdbldext --- Build an extended communication
descriptor}
\addcontentsline{toc}{subsection}{psb\_cdbldext}
\begin{lstlisting}
\begin{verbatim}
call psb_cdbldext(a,desc_a,nl,desc_out, info, extype)
\end{lstlisting}
\end{verbatim}
This subroutine builds an extended communication descriptor, based on
the input descriptor \verb|desc_a| and on the stencil specified
@@ -464,8 +472,9 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_cdren %%
%% %
%% \subroutine{psb\_cdren}{Applies a renumeration to a
%% \subsection*{psb\_cdren --- Applies a renumeration to a
%% communication descriptor}
%% \addcontentsline{toc}{subsection}{psb\_cdren}
%% \syntax{call psb\_cdren}{trans, iperm, desc\_a, info}
@@ -500,7 +509,8 @@ An integer value; 0 means no error has been detected.
%
%% psb_descprt %%
%
%% \subroutine{psb\_cdprt}{Prints a descriptor}
%% \subsection*{psb\_cdprt --- Prints a descriptor}
%%\addcontentsline{toc}{subsection}{psb\_cdprt}
%% \syntax{call psb\_cdprt}{iout, desc\_a, glob, short}
@@ -529,11 +539,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_spalloc %%
%
\clearpage\subroutine{psb\_spall}{Allocates a sparse matrix}
\clearpage\subsection*{psb\_spall --- Allocates a sparse matrix}
\addcontentsline{toc}{subsection}{psb\_spall}
\begin{lstlisting}
\begin{verbatim}
call psb_spall(a, desc_a, info, nnz)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -580,12 +591,13 @@ An integer value; 0 means no error has been detected.
%
%% psb_spins %%
%
\clearpage\subroutine{psb\_spins}{Insert a cloud of elements into a sparse
\clearpage\subsection*{psb\_spins --- Insert a cloud of elements into a sparse
matrix}
\addcontentsline{toc}{subsection}{psb\_spins}
\begin{lstlisting}
\begin{verbatim}
call psb_spins(nz, ia, ja, val, a, desc_a, info [,local])
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -685,11 +697,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_spasb %%
%
\clearpage\subroutine{psb\_spasb}{Sparse matrix assembly routine}
\clearpage\subsection*{psb\_spasb --- Sparse matrix assembly routine}
\addcontentsline{toc}{subsection}{psb\_spasb}
\begin{lstlisting}
\begin{verbatim}
call psb_spasb(a, desc_a, info, afmt, upd, dupl, mold)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -759,8 +772,9 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_spcnv %%
%% %
%% \subroutine{psb\_spcnv}{Converts a sparse matrix storage
%% \subsection*{psb\_spcnv --- Converts a sparse matrix storage
%% format}
%%\addcontentsline{toc}{subsection}{psb\_spcnv}
%% \syntax{call psb\_spcnv}{a, b, desc\_a, info}
@@ -793,11 +807,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_spfree %%
%
\clearpage\subroutine{psb\_spfree}{Frees a sparse matrix}
\clearpage\subsection*{psb\_spfree --- Frees a sparse matrix}
\addcontentsline{toc}{subsection}{psb\_spfree}
\begin{lstlisting}
\begin{verbatim}
call psb_spfree(a, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -829,12 +844,13 @@ An integer value; 0 means no error has been detected.
%
%% psb_sprn %%
%
\clearpage\subroutine{psb\_sprn}{Reinit sparse matrix structure for psblas
\clearpage\subsection*{psb\_sprn --- Reinit sparse matrix structure for psblas
routines.}
\addcontentsline{toc}{subsection}{psb\_sprn}
\begin{lstlisting}
\begin{verbatim}
call psb_sprn(a, decsc_a, info, clear)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -872,7 +888,8 @@ An integer value; 0 means no error has been detected.
%
%% psb_spupdate %%
%
%% \subroutine{psb\_spupdate}{Updates a sparse matrix.}
%% \subsection*{psb\_spupdate --- Updates a sparse matrix.}
%%\addcontentsline{toc}{subsection}{psb\_spupdate}
%% \syntax{call psb\_spupdate}{a, ia, ja, blck, desc\_a, info, ix, jx, updflag}
@@ -886,8 +903,9 @@ An integer value; 0 means no error has been detected.
%% %
%% %% psb_csrp %%
%% %
%% \subroutine{psb\_csrp}{Applies a right permutation to a sparse
%% \subsection*{psb\_csrp --- Applies a right permutation to a sparse
%% matrix}
%%\addcontentsline{toc}{subsection}{psb\_csrp}
%% \syntax{call psb\_csrp}{trans, iperm, a, info}
@@ -917,11 +935,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_alloc %%
%
\clearpage\subroutine{psb\_geall}{Allocates a dense matrix}
\clearpage\subsection*{psb\_geall --- Allocates a dense matrix}
\addcontentsline{toc}{subsection}{psb\_geall}
\begin{lstlisting}
\begin{verbatim}
call psb_geall(x, desc_a, info, n, lb)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -964,11 +983,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_ins %%
%
\clearpage\subroutine{psb\_geins}{Dense matrix insertion routine}
\clearpage\subsection*{psb\_geins --- Dense matrix insertion routine}
\addcontentsline{toc}{subsection}{psb\_geins}
\begin{lstlisting}
\begin{verbatim}
call psb_geins(m, irw, val, x, desc_a, info [,dupl,local])
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1036,11 +1056,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_asb %%
%
\clearpage\subroutine{psb\_geasb}{Assembly a dense matrix}
\clearpage\subsection*{psb\_geasb --- Assembly a dense matrix}
\addcontentsline{toc}{subsection}{psb\_geasb}
\begin{lstlisting}
\begin{verbatim}
call psb_geasb(x, desc_a, info, mold)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -1075,11 +1096,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_free %%
%
\clearpage\subroutine{psb\_gefree}{Frees a dense matrix}
\clearpage\subsection*{psb\_gefree --- Frees a dense matrix}
\addcontentsline{toc}{subsection}{psb\_gefree}
\begin{lstlisting}
\begin{verbatim}
call psb_gefree(x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Synchronous.
@@ -1112,12 +1134,13 @@ An integer value; 0 means no error has been detected.
%
%% psb_gelp %%
%
\clearpage\subroutine{psb\_gelp}{Applies a left permutation to a dense
\clearpage\subsection*{psb\_gelp --- Applies a left permutation to a dense
matrix}
\addcontentsline{toc}{subsection}{psb\_gelp}
\begin{lstlisting}
\begin{verbatim}
call psb_gelp(trans, iperm, x, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1152,13 +1175,14 @@ An integer value; 0 means no error has been detected.
%
%% psb_glob_to_loc %%
%
\clearpage\subroutine{psb\_glob\_to\_loc}{Global to local indices
\clearpage\subsection*{psb\_glob\_to\_loc --- Global to local indices
convertion}
\addcontentsline{toc}{subsection}{psb\_glob\_to\_loc}
\begin{lstlisting}
\begin{verbatim}
call psb_glob_to_loc(x, y, desc_a, info, iact,owned)
call psb_glob_to_loc(x, desc_a, info, iact,owned)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1219,13 +1243,14 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subroutine{psb\_loc\_to\_glob}{Local to global indices
\clearpage\subsection*{psb\_loc\_to\_glob --- Local to global indices
conversion}
\addcontentsline{toc}{subsection}{psb\_loc\_to\_glob}
\begin{lstlisting}
\begin{verbatim}
call psb_loc_to_glob(x, y, desc_a, info, iact)
call psb_loc_to_glob(x, desc_a, info, iact)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1275,11 +1300,12 @@ An integer value; 0 means no error has been detected.
%
%% psb_loc_to_glob %%
%
\clearpage\subroutine{psb\_is\_owned }{}
\clearpage\subsection*{psb\_is\_owned --- }
\addcontentsline{toc}{subsection}{psb\_is\_owned }
\begin{lstlisting}
\begin{verbatim}
call psb_is_owned(x, desc_a)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1314,11 +1340,12 @@ Intent: {\bf out}.\\
\end{enumerate}
\clearpage\subroutine{psb\_owned\_index }{}
\clearpage\subsection*{psb\_owned\_index --- }
\addcontentsline{toc}{subsection}{psb\_owned\_index }
\begin{lstlisting}
\begin{verbatim}
call psb_owned_index(y, x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1365,11 +1392,12 @@ An integer value; 0 means no error has been detected.
\end{enumerate}
\clearpage\subroutine{psb\_is\_local }{}
\clearpage\subsection*{psb\_is\_local --- }
\addcontentsline{toc}{subsection}{psb\_is\_local }
\begin{lstlisting}
\begin{verbatim}
call psb_is_local(x, desc_a)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1403,11 +1431,12 @@ Intent: {\bf out}.\\
indices
\end{enumerate}
\clearpage\subroutine{psb\_local\_index }{}
\clearpage\subsection*{psb\_local\_index --- }
\addcontentsline{toc}{subsection}{psb\_local\_index }
\begin{lstlisting}
\begin{verbatim}
call psb_local_index(y, x, desc_a, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1458,11 +1487,13 @@ An integer value; 0 means no error has been detected.
%
%% psb_ins %%
%
\clearpage\subroutine{psb\_get\_boundary}{Extract list of boundary elements}
\clearpage\subsection*{psb\_get\_boundary --- Extract list of boundary
elements}
\addcontentsline{toc}{subsection}{psb\_get\_boundary}
\begin{lstlisting}
\begin{verbatim}
call psb_get_boundary(bndel, desc, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1499,11 +1530,13 @@ An integer value; 0 means no error has been detected.
number of boundary elements.
\end{enumerate}
\clearpage\subroutine{psb\_get\_overlap}{Extract list of overlap elements}
\clearpage\subsection*{psb\_get\_overlap --- Extract list of overlap
elements}
\addcontentsline{toc}{subsection}{psb\_get\_overlap}
\begin{lstlisting}
\begin{verbatim}
call psb_get_overlap(ovrel, desc, info)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1541,12 +1574,14 @@ An integer value; 0 means no error has been detected.
\clearpage\subroutine{psb\_sp\_getrow}{Extract row(s) from a sparse matrix}
\clearpage\subsection*{psb\_sp\_getrow --- Extract row(s) from a sparse
matrix}
\addcontentsline{toc}{subsection}{psb\_sp\_getrow}
\begin{lstlisting}
\begin{verbatim}
call psb_sp_getrow(row, a, nz, ia, ja, val, info, &
& append, nzin, lrw)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1633,16 +1668,17 @@ An integer value; 0 means no error has been detected.
\clearpage\subroutine{psb\_sizeof}{Memory occupation}
\clearpage\subsection*{psb\_sizeof --- Memory occupation}
\addcontentsline{toc}{subsection}{psb\_sizeof}
This function computes the memory occupation of a PSBLAS object.
\begin{lstlisting}
\begin{verbatim}
isz = psb_sizeof(a)
isz = psb_sizeof(desc_a)
isz = psb_sizeof(prec)
\end{lstlisting}
\end{verbatim}
\begin{description}
\item[Type:] Asynchronous.
@@ -1671,7 +1707,8 @@ Returned as: an \verb|integer(psb_long_int_k_)| number.
\end{description}
\clearpage\subroutine{Sorting utilities}{}
\clearpage\subsection*{Sorting utilities --- }
\addcontentsline{toc}{subsection}{Sorting utilities}
{\par\noindent\large\bfseries psb\_msort --- Sorting by the Merge-sort
algorithm}
@@ -1680,11 +1717,11 @@ Returned as: an \verb|integer(psb_long_int_k_)| number.
algorithm}
{\par\noindent\large\bfseries psb\_hsort --- Sorting by the Heapsort algorithm}
\begin{lstlisting}
\begin{verbatim}
call psb_msort(x,ix,dir,flag)
call psb_qsort(x,ix,dir,flag)
call psb_hsort(x,ix,dir,flag)
\end{lstlisting}
\end{verbatim}
These serial routines sort a sequence $X$ into ascending or
descending order. The argument meaning is identical for the three
+2
View File
@@ -49,11 +49,13 @@
\subsubsection*{\flushleft #1---#2 \endflushleft}%
\addcontentsline{toc}{subsubsection}{#1}%
\markright{#1}}%
\newcommand{\subsubsubroutine}[2]{%
\stepcounter{subroutine}%
\subsubsection*{\flushleft #1---#2 \endflushleft}%
\addcontentsline{toc}{paragraph}{#1}%
\markright{#1}}%
\newcommand{\examplename}{Example}
\newcommand{\syntaxname}{Syntax}
\def\syntax{\@ifstar{\@ssyntax}{\@syntax}}%