mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-20 12:52:14 +00:00
psblas3:
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:
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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}}%
|
||||
|
||||
Reference in New Issue
Block a user