mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-16 02:49:03 +00:00
Fixed documentation of INTENT of arguments.
This commit is contained in:
@@ -130,104 +130,104 @@ module psb_comm_mod
|
||||
|
||||
|
||||
interface psb_dscatter
|
||||
subroutine psb_dscatterm(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_dscatterm(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
real(kind(1.d0)), intent(out) :: locx(:,:)
|
||||
real(kind(1.d0)), intent(in) :: globx(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_dscatterm
|
||||
subroutine psb_dscatterv(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_dscatterv(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
real(kind(1.d0)), intent(out) :: locx(:)
|
||||
real(kind(1.d0)), intent(in) :: globx(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_dscatterv
|
||||
subroutine psb_zscatterm(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_zscatterm(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
complex(kind(1.d0)), intent(out) :: locx(:,:)
|
||||
complex(kind(1.d0)), intent(in) :: globx(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_zscatterm
|
||||
subroutine psb_zscatterv(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_zscatterv(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
complex(kind(1.d0)), intent(out) :: locx(:)
|
||||
complex(kind(1.d0)), intent(in) :: globx(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_zscatterv
|
||||
subroutine psb_iscatterm(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_iscatterm(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
integer, intent(out) :: locx(:,:)
|
||||
integer, intent(in) :: globx(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_iscatterm
|
||||
subroutine psb_iscatterv(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_iscatterv(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
integer, intent(out) :: locx(:)
|
||||
integer, intent(in) :: globx(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_iscatterv
|
||||
end interface
|
||||
|
||||
interface psb_gather
|
||||
subroutine psb_igatherm(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_igatherm(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
integer, intent(in) :: locx(:,:)
|
||||
integer, intent(out) :: globx(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_igatherm
|
||||
subroutine psb_igatherv(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_igatherv(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
integer, intent(in) :: locx(:)
|
||||
integer, intent(out) :: globx(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_igatherv
|
||||
subroutine psb_dgatherm(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_dgatherm(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
real(kind(1.d0)), intent(in) :: locx(:,:)
|
||||
real(kind(1.d0)), intent(out) :: globx(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_dgatherm
|
||||
subroutine psb_dgatherv(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_dgatherv(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
real(kind(1.d0)), intent(in) :: locx(:)
|
||||
real(kind(1.d0)), intent(out) :: globx(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_dgatherv
|
||||
subroutine psb_zgatherm(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_zgatherm(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
complex(kind(1.d0)), intent(in) :: locx(:,:)
|
||||
complex(kind(1.d0)), intent(out) :: globx(:,:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_zgatherm
|
||||
subroutine psb_zgatherv(globx, locx, desc_a, info, iroot)
|
||||
subroutine psb_zgatherv(globx, locx, desc_a, info, root)
|
||||
use psb_descriptor_type
|
||||
complex(kind(1.d0)), intent(in) :: locx(:)
|
||||
complex(kind(1.d0)), intent(out) :: globx(:)
|
||||
type(psb_desc_type), intent(in) :: desc_a
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: iroot
|
||||
integer, intent(in), optional :: root
|
||||
end subroutine psb_zgatherv
|
||||
end interface
|
||||
|
||||
|
||||
@@ -590,7 +590,7 @@ Module psb_tools_mod
|
||||
subroutine psb_get_ovrlap(ovrel,desc,info)
|
||||
use psb_descriptor_type
|
||||
implicit none
|
||||
integer, allocatable :: ovrel(:)
|
||||
integer, allocatable, intent(out) :: ovrel(:)
|
||||
type(psb_desc_type), intent(in) :: desc
|
||||
integer, intent(out) :: info
|
||||
end subroutine psb_get_ovrlap
|
||||
@@ -604,7 +604,7 @@ contains
|
||||
use psb_descriptor_type
|
||||
use psi_mod
|
||||
implicit none
|
||||
integer, allocatable :: bndel(:)
|
||||
integer, allocatable, intent(out) :: bndel(:)
|
||||
type(psb_desc_type), intent(in) :: desc
|
||||
integer, intent(out) :: info
|
||||
|
||||
|
||||
@@ -449,12 +449,12 @@ contains
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl,maxsz
|
||||
integer, intent(in) :: ia(*),ja(*)
|
||||
integer, intent(in) :: ia(:),ja(:)
|
||||
integer, intent(inout) :: nza
|
||||
real(kind(1.d0)), intent(in) :: val(*)
|
||||
real(kind(1.d0)), intent(inout) :: aspk(*)
|
||||
real(kind(1.d0)), intent(in) :: val(:)
|
||||
real(kind(1.d0)), intent(inout) :: aspk(:)
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: ng,gtl(*)
|
||||
integer, intent(in), optional :: ng,gtl(:)
|
||||
integer :: i,ir,ic
|
||||
|
||||
if (present(gtl)) then
|
||||
@@ -522,12 +522,12 @@ contains
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: nz, imin,imax,jmin,jmax,maxsz
|
||||
integer, intent(in) :: ia(*),ja(*)
|
||||
integer, intent(inout) :: nza,ia1(*),ia2(*)
|
||||
real(kind(1.d0)), intent(in) :: val(*)
|
||||
real(kind(1.d0)), intent(inout) :: aspk(*)
|
||||
integer, intent(in) :: ia(:),ja(:)
|
||||
integer, intent(inout) :: nza,ia1(:),ia2(:)
|
||||
real(kind(1.d0)), intent(in) :: val(:)
|
||||
real(kind(1.d0)), intent(inout) :: aspk(:)
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: ng,gtl(*)
|
||||
integer, intent(in), optional :: ng,gtl(:)
|
||||
integer :: i,ir,ic
|
||||
|
||||
info = 0
|
||||
|
||||
@@ -449,12 +449,12 @@ contains
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: nz, imin,imax,jmin,jmax,nzl,maxsz
|
||||
integer, intent(in) :: ia(*),ja(*)
|
||||
integer, intent(in) :: ia(:),ja(:)
|
||||
integer, intent(inout) :: nza
|
||||
complex(kind(1.d0)), intent(in) :: val(*)
|
||||
complex(kind(1.d0)), intent(inout) :: aspk(*)
|
||||
complex(kind(1.d0)), intent(in) :: val(:)
|
||||
complex(kind(1.d0)), intent(inout) :: aspk(:)
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: ng,gtl(*)
|
||||
integer, intent(in), optional :: ng,gtl(:)
|
||||
integer :: i,ir,ic
|
||||
|
||||
if (present(gtl)) then
|
||||
@@ -522,12 +522,12 @@ contains
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: nz, imin,imax,jmin,jmax,maxsz
|
||||
integer, intent(in) :: ia(*),ja(*)
|
||||
integer, intent(inout) :: nza,ia1(*),ia2(*)
|
||||
complex(kind(1.d0)), intent(in) :: val(*)
|
||||
complex(kind(1.d0)), intent(inout) :: aspk(*)
|
||||
integer, intent(in) :: ia(:),ja(:)
|
||||
integer, intent(inout) :: nza,ia1(:),ia2(:)
|
||||
complex(kind(1.d0)), intent(in) :: val(:)
|
||||
complex(kind(1.d0)), intent(inout) :: aspk(:)
|
||||
integer, intent(out) :: info
|
||||
integer, intent(in), optional :: ng,gtl(*)
|
||||
integer, intent(in), optional :: ng,gtl(:)
|
||||
integer :: i,ir,ic
|
||||
|
||||
info = 0
|
||||
|
||||
@@ -3,7 +3,7 @@ subroutine psb_get_ovrlap(ovrel,desc,info)
|
||||
use psb_realloc_mod
|
||||
use psb_error_mod
|
||||
implicit none
|
||||
integer, allocatable :: ovrel(:)
|
||||
integer, allocatable, intent(out) :: ovrel(:)
|
||||
type(psb_desc_type), intent(in) :: desc
|
||||
integer, intent(out) :: info
|
||||
|
||||
|
||||
+79
-61
@@ -41,21 +41,25 @@ Long Precision Complex & psb\_halo \\
|
||||
\item[x] global dense matrix $x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array with the TARGET attribute
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90halo}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[alpha] the scalar $\alpha$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional} \\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $alpha = 1 $\\
|
||||
Specified as: a number of the data type indicated in Table~\ref{tab:f90halo}.
|
||||
\item[work] the work array. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one array of the same type of $x$ with the
|
||||
POINTER attribute.
|
||||
\item[data] index list selector.\\
|
||||
@@ -70,12 +74,14 @@ index list on which to base the data exchange.
|
||||
\item[x] global dense result matrix $x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Returned as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90halo}.
|
||||
\item[info] the local portion of result submatrix $y$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value that contains an error code.
|
||||
\end{description}
|
||||
\begin{figure}[h] \begin{center}
|
||||
@@ -183,12 +189,14 @@ Long Precision Complex & psb\_ovrl \\
|
||||
\item[x] global dense matrix $x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90ovrl}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[update] Update operator. \\
|
||||
\begin{description}
|
||||
@@ -198,24 +206,28 @@ Specified as: a structured data of type \descdata.
|
||||
%% \item[update = psb\_square\_root\_] square root update $\sqrt{P_a}$;
|
||||
\end{description}
|
||||
Scope: {\bf global} \\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $update\_type = psb\_avg\_ $\\
|
||||
Scope: {\bf global} \\
|
||||
Specified as: a integer variable.
|
||||
\item[work] the work array. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a one dimensional array of the same type of $x$.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[x] global dense result matrix $x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90ovrl}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -333,7 +345,7 @@ process.
|
||||
\[ glob\_x \leftarrow collect(loc\_x_i) \]
|
||||
where:
|
||||
\begin{description}
|
||||
\item[$glob\_x$] is the global submatrix $glob\_x_{iy:iy+m-1,jy:jy+n-1}$
|
||||
\item[$glob\_x$] is the global submatrix $glob\_x_{1:m,1:n}$
|
||||
\item[$loc\_x_i$] is the local portion of global dense matrix on
|
||||
process $i$.
|
||||
\item[$collect$] is the collect function.
|
||||
@@ -353,10 +365,8 @@ Long Precision Complex & psb\_gather \\
|
||||
\caption{Data types\label{tab:gather}}
|
||||
\end{table}
|
||||
|
||||
\syntax{call psb\_gather}{glob\_x, loc\_x, desc\_a, info,
|
||||
root, iglobx, jglobx, ilocx, jlocx, k}
|
||||
\syntax{call psb\_gather}{glob\_x, loc\_x, desc\_a, info,
|
||||
root, iglobx, ilocx}
|
||||
\syntax{call psb\_gather}{glob\_x, loc\_x, desc\_a, info, root}
|
||||
\syntax{call psb\_gather}{glob\_x, loc\_x, desc\_a, info, root}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
@@ -364,49 +374,54 @@ Long Precision Complex & psb\_gather \\
|
||||
$glob\_x$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
indicated in Table~\ref{tab:gather}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[root] The process that holds the global copy. If $root=-1$ all
|
||||
the processes will have a copy of the global vector.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable $-1\le ix\le np-1$, default $-1$.
|
||||
\item[iglobx] Row index to define a submatrix in glob\_x into which
|
||||
gather the local pieces.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable $1\le ix\le matrix\_data(psb\_m\_)$.
|
||||
\item[jglobx] Column index to define a submatrix in glob\_x into which
|
||||
gather the local pieces.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
\item[ilocx] Row index to define a submatrix in loc\_x that has to
|
||||
be gathered into glob\_x.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
\item[jlocx] Columns index to define a submatrix in loc\_x that has
|
||||
to be gathered into glob\_x.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
\item[k] The number of columns to gather.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable $-1\le root\le np-1$, default $-1$.
|
||||
%% \item[iglobx] Row index to define a submatrix in glob\_x into which
|
||||
%% gather the local pieces.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable $1\le ix\le matrix\_data(psb\_m\_)$.
|
||||
%% \item[jglobx] Column index to define a submatrix in glob\_x into which
|
||||
%% gather the local pieces.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
%% \item[ilocx] Row index to define a submatrix in loc\_x that has to
|
||||
%% be gathered into glob\_x.\\
|
||||
%% Scope: {\bf local} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
%% \item[jlocx] Columns index to define a submatrix in loc\_x that has
|
||||
%% to be gathered into glob\_x.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
%% \item[k] The number of columns to gather.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
\item[\bf On Return]
|
||||
\item[glob\_x] The array where the local parts must be gathered.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one or two array.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -421,10 +436,10 @@ An integer value; 0 means no error has been detected.
|
||||
These subroutines scatters the portions of global dense matrix owned
|
||||
by a process to all the processes in the processes grid.
|
||||
|
||||
\[ loc\_x_i \leftarrow scatter(glob\_x_i) \]
|
||||
\[ loc\_x_i \leftarrow scatter(glob\_x) \]
|
||||
where:
|
||||
\begin{description}
|
||||
\item[$glob\_x$] is the global submatrix $glob\_x_{iy:iy+m-1,jy:jy+n-1}$
|
||||
\item[$glob\_x$] is the global matrix $glob\_x_{1:m,1:n}$
|
||||
\item[$loc\_x_i$] is the local portion of global dense matrix on
|
||||
process $i$.
|
||||
\item[$scatter$] is the scatter function.
|
||||
@@ -444,60 +459,63 @@ Long Precision Complex & psb\_scatter \\
|
||||
\caption{Data types\label{tab:scatter}}
|
||||
\end{table}
|
||||
|
||||
\syntax{call psb\_scatter}{glob\_x, loc\_x, desc\_a, info,
|
||||
root, iglobx, jglobx, ilocx, jlocx, k}
|
||||
\syntax{call psb\_scatter}{glob\_x, loc\_x, desc\_a, info,
|
||||
root, iglobx, ilocx}
|
||||
\syntax{call psb\_scatter}{glob\_x, loc\_x, desc\_a, info, root}
|
||||
\syntax{call psb\_scatter}{glob\_x, loc\_x, desc\_a, info, root}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[glob\_x] The array that must be scattered into local pieces.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[root] The process that holds the global copy. If $root=-1$ all
|
||||
the processes have a copy of the global vector.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable $-1\le ix\le np-1$, default $-1$.
|
||||
\item[iglobx] Row index to define a submatrix in glob\_x that has to
|
||||
be scattered into local pieces.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable $1\le ix\le matrix\_data(psb\_m\_)$.
|
||||
\item[jglobx] Column index to define a submatrix in glob\_x that has to
|
||||
be scattered into local pieces.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
\item[ilocx] Row index to define a submatrix in loc\_x into which
|
||||
scatter the local piece of glob\_x.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
\item[jlocx] Columns index to define a submatrix in loc\_x into which
|
||||
scatter the local piece of glob\_x.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
\item[k] The number of columns to scatter.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Specified as: an integer variable.
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable $-1\le root\le np-1$, default $-1$.
|
||||
%% \item[iglobx] Row index to define a submatrix in glob\_x that has to
|
||||
%% be scattered into local pieces.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable $1\le ix\le matrix\_data(psb\_m\_)$.
|
||||
%% \item[jglobx] Column index to define a submatrix in glob\_x that has to
|
||||
%% be scattered into local pieces.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
%% \item[ilocx] Row index to define a submatrix in loc\_x into which
|
||||
%% scatter the local piece of glob\_x.\\
|
||||
%% Scope: {\bf local} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
%% \item[jlocx] Columns index to define a submatrix in loc\_x into which
|
||||
%% scatter the local piece of glob\_x.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
%% \item[k] The number of columns to scatter.\\
|
||||
%% Scope: {\bf global} \\
|
||||
%% Type: {\bf optional}\\
|
||||
%% Specified as: an integer variable.
|
||||
\item[\bf On Return]
|
||||
\item[loc\_x] the local portion of global dense matrix
|
||||
$glob\_x$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
indicated in Table~\ref{tab:scatter}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
|
||||
+24
-16
@@ -362,8 +362,9 @@ research.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -383,8 +384,9 @@ Specified as: a structured data of type \descdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -405,8 +407,9 @@ Specified as: a structured data of type \descdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -422,8 +425,9 @@ Specified as: a structured data of type \descdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -439,8 +443,9 @@ Specified as: a structured data of type \descdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -458,8 +463,9 @@ Specified as: a structured data of type \descdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[a] the sparse matrix\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Scope: {\bf local}\\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\end{description}
|
||||
|
||||
@@ -476,8 +482,9 @@ Specified as: a structured data of type \spdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[a] the sparse matrix\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Scope: {\bf local}\\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\end{description}
|
||||
|
||||
@@ -494,8 +501,9 @@ Specified as: a structured data of type \spdata.
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[a] the sparse matrix\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Scope: {\bf local}\\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\end{description}
|
||||
|
||||
|
||||
@@ -125,10 +125,12 @@ Aborting...
|
||||
\item[err\_c] the error code\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer.
|
||||
\item[r\_name] the soutine where the error has been caught.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a string.\\
|
||||
\item[i\_err] addional info for error code\\
|
||||
Scope: {\bf local} \\
|
||||
@@ -149,6 +151,7 @@ Specified as: a string.\\
|
||||
\item[icontxt] the communication context.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer.
|
||||
\end{description}
|
||||
|
||||
@@ -163,6 +166,7 @@ Specified as: an integer.
|
||||
\item[v] the verbosity level\\
|
||||
Scope: {\bf global}\\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer.
|
||||
\end{description}
|
||||
|
||||
@@ -176,6 +180,7 @@ Specified as: an integer.
|
||||
\item[err\_act] the type of action.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer.
|
||||
\end{description}
|
||||
|
||||
@@ -190,10 +195,12 @@ Specified as: an integer.
|
||||
\item[icontxt] the communication context.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer.
|
||||
\item[err] the error code to be communicated\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer.\\
|
||||
\end{description}
|
||||
|
||||
|
||||
@@ -45,63 +45,77 @@ $r_i=b-Ax_i$ the corresponding residual at the $i$-th iteration.
|
||||
$A$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[prec] The data structure containing the preconditioner.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \precdata.
|
||||
\item[b] The RHS vector. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one array.
|
||||
\item[x] The initial guess. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one array.
|
||||
\item[eps] The stopping tolerance. \\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a real number.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[itmax] The maximum number of iterations to perform.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $itmax = 1000$.\\
|
||||
Specified as: an integer variable $itmax \ge 1$.
|
||||
\item[itrace] If $>0$ print out an informational message about
|
||||
convergence every $itrace$ iterations.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
\item[irst] An integer specifying the restart parameter.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Values: $irst>0$. This is employed for the BiCGSTABL or RGMRES
|
||||
methods, otherwise it is ignored.
|
||||
|
||||
\item[istop] An integer specifying the stopping criterion.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Values: 1: use the normwise backward error, 2: use the scaled 2-norm
|
||||
of the residual. Default: 1.
|
||||
\item[\bf On Return]
|
||||
\item[x] The computed solution. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one array.
|
||||
\item[iter] The number of iterations performed.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf out}.\\
|
||||
Returned as: an integer variable.
|
||||
\item[err] The convergence estimate on exit.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf out}.\\
|
||||
Returned as: a real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
|
||||
+138
-92
@@ -11,8 +11,9 @@ a virtual parallel machine.
|
||||
\begin{description}
|
||||
\item[\bf On Entry ]
|
||||
\item[np] Number of processes in the PSBLAS virtual parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value. \
|
||||
Default: use all available processes provided by the underlying
|
||||
parallel environment.
|
||||
@@ -22,8 +23,9 @@ parallel environment.
|
||||
\item[\bf On Return]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: an integer variable.
|
||||
\end{description}
|
||||
|
||||
@@ -47,20 +49,23 @@ a virtual parallel machine.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[iam] Identifier of current process in the PSBLAS virtual parallel machine.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: an integer value. $-1 \le iam \le np-1$\
|
||||
\item[np] Number of processes in the PSBLAS virtual parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: an integer variable. \
|
||||
\end{description}
|
||||
|
||||
@@ -87,13 +92,15 @@ This subroutine exits from the PSBLAS parallel virtual machine.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[close] Whether to close all data structures related to the
|
||||
virtual parallel machine, besides those associated with icontxt.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a logical variable, default value: true.
|
||||
\end{description}
|
||||
|
||||
@@ -120,16 +127,18 @@ This subroutine returns the MPI communicator associated with a PSBLAS context
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[icomm] The MPI communicator associated with the PSBLAS virtual parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
\end{description}
|
||||
|
||||
|
||||
@@ -142,20 +151,23 @@ This subroutine returns the MPI rank of the PSBLAS process $id$
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[id] Identifier of a process in the PSBLAS virtual parallel machine.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value. $0 \le id \le np-1$\
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[rank] The MPI rank associated with the PSBLAS process $id$.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
\end{description}
|
||||
|
||||
|
||||
@@ -185,8 +197,9 @@ participating processes.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\end{description}
|
||||
|
||||
@@ -200,8 +213,9 @@ This subroutine aborts computation on the parallel virtual machine.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\end{description}
|
||||
|
||||
@@ -219,18 +233,21 @@ underlying communication library.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] On the root process, the data to be broadcast.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array, or a character or logical scalar. \
|
||||
Type, rank and size must agree on all processes.
|
||||
\item[root] Root process holding data to be broadcast.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $0<= root <= np-1$, default 0 \
|
||||
\end{description}
|
||||
|
||||
@@ -238,8 +255,9 @@ Specified as: an integer value $0<= root <= np-1$, default 0 \
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] On processes other than root, the data to be broadcast.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array, or a character or logical scalar. \
|
||||
Type, rank and size must agree on all processes.
|
||||
@@ -256,19 +274,22 @@ underlying communication library.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] The local contribution to the global sum.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
\item[root] Process to hold the final sum, or $-1$ to make it available
|
||||
on all processes.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $-1<= root <= np-1$, default -1. \
|
||||
\end{description}
|
||||
|
||||
@@ -276,8 +297,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. \
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] On destination process(es), the result of the sum operation.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \\
|
||||
Type, rank and size must agree on all processes.
|
||||
@@ -302,19 +324,22 @@ operation based on the underlying communication library.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] The local contribution to the global maximum.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer or real variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
\item[root] Process to hold the final maximum, or $-1$ to make it available
|
||||
on all processes.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\end{description}
|
||||
|
||||
@@ -322,8 +347,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] On destination process(es), the result of the maximum operation.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer or real variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
@@ -347,19 +373,22 @@ operation based on the underlying communication library.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] The local contribution to the global minimum.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer or real variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
\item[root] Process to hold the final value, or $-1$ to make it available
|
||||
on all processes.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\end{description}
|
||||
|
||||
@@ -367,8 +396,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] On destination process(es), the result of the minimum operation.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer or real variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \\
|
||||
Type, rank and size must agree on all processes.
|
||||
@@ -392,19 +422,22 @@ operation based on the underlying communication library.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] The local contribution to the global maximum.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
\item[root] Process to hold the final value, or $-1$ to make it available
|
||||
on all processes.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\end{description}
|
||||
|
||||
@@ -412,8 +445,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] On destination process(es), the result of the maximum operation.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
@@ -437,19 +471,22 @@ operation based on the underlying communication library.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] The local contribution to the global minimum.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \
|
||||
Type, rank and size must agree on all processes.
|
||||
\item[root] Process to hold the final value, or $-1$ to make it available
|
||||
on all processes.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\end{description}
|
||||
|
||||
@@ -457,8 +494,9 @@ Specified as: an integer value $-1<= root <= np-1$, default -1. \\
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] On destination process(es), the result of the minimum operation.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array. \\
|
||||
Type, rank and size must agree on all processes.
|
||||
@@ -482,23 +520,27 @@ This subroutine sends a packet of data to a destination.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[dat] The data to be sent.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array, or a character or logical scalar. \
|
||||
Type and rank must agree on sender and receiver process; if $m$ is
|
||||
not specified, size must agree as well.
|
||||
\item[dst] Destination process.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $0<= dst <= np-1$. \\
|
||||
\item[m] Number of rows.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf Optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf Optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $0<= m <= size(dat,1)$. \\
|
||||
When $dat$ is a rank 2 array, specifies the number of rows to be sent
|
||||
independently of the leading dimension $size(dat,1)$; must have the
|
||||
@@ -519,16 +561,19 @@ This subroutine receives a packet of data to a destination.
|
||||
\item[\bf On Entry ]
|
||||
\item[icontxt] the communication context identifying the virtual
|
||||
parallel machine.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer variable.
|
||||
\item[src] Source process.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $0<= src <= np-1$. \\
|
||||
\item[m] Number of rows.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf Optional}.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf Optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $0<= m <= size(dat,1)$. \\
|
||||
When $dat$ is a rank 2 array, specifies the number of rows to be sent
|
||||
independently of the leading dimension $size(dat,1)$; must have the
|
||||
@@ -539,8 +584,9 @@ same value on sending and receiving processes.
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[dat] The data to be received.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer, real or complex variable, which may be a
|
||||
scalar, or a rank 1 or 2 array, or a character or logical scalar. \
|
||||
Type and rank must agree on sender and receiver process; if $m$ is
|
||||
|
||||
+26
-5
@@ -30,13 +30,10 @@ module \verb|psb_prec_mod|.
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[prec]
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Specified as: a preconditioner data structure \precdata.
|
||||
\item[ptype] the type of preconditioner.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a character string, see usage notes.
|
||||
%% \item[iv] integer parameters for the precondtioner.
|
||||
%% Scope: {\bf global} \\
|
||||
@@ -48,9 +45,15 @@ Specified as: a character string, see usage notes.
|
||||
%% Specified as: a long precision real number.
|
||||
\item[\bf On Exit]
|
||||
|
||||
\item[prec]
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a preconditioner data structure \precdata.
|
||||
\item[info]
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Error code: if no error, 0 is returned.
|
||||
\end{description}
|
||||
\subsection*{Usage Notes}
|
||||
@@ -153,14 +156,22 @@ $ptype$ string as follows\footnote{The string is case-insensitive}:
|
||||
\item[a] the system sparse matrix.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}, target.\\
|
||||
Specified as: a sparse matrix data structure \spdata.
|
||||
\item[prec] the preconditioner.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an already initialized precondtioner data structure \precdata\\
|
||||
\item[desc\_a] the problem communication descriptor.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}, target.\\
|
||||
Specified as: a communication descriptor data structure \descdata.
|
||||
\item[upd]
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a character.
|
||||
\end{description}
|
||||
|
||||
@@ -169,10 +180,12 @@ Specified as: a character.
|
||||
\item[prec] the preconditioner.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a precondtioner data structure \precdata\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -188,22 +201,27 @@ An integer value; 0 means no error has been detected.
|
||||
\item[prec] the preconditioner.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a preconditioner data structure \precdata.
|
||||
\item[x] the source vector.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf require}\\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a double precision array.
|
||||
\item[desc\_a] the problem communication descriptor.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a communication data structure \descdata.
|
||||
\item[trans]
|
||||
Scope: {\bf } \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a character.
|
||||
\item[work] an optional work space
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a double precision array.
|
||||
\end{description}
|
||||
|
||||
@@ -212,10 +230,12 @@ Specified as: a double precision array.
|
||||
\item[y] the destination vector.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a double precision array.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -230,6 +250,7 @@ An integer value; 0 means no error has been detected.
|
||||
\item[prec] the preconditioner.
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a preconditioner data structure \precdata.
|
||||
\end{description}
|
||||
|
||||
|
||||
@@ -39,27 +39,32 @@ Long Precision Complex & psb\_geaxpby \\
|
||||
\item[alpha] the scalar $\alpha$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a number of the data type indicated in Table~\ref{tab:f90axpby}.
|
||||
\item[x] the local portion of global dense matrix
|
||||
$x$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type
|
||||
specified in Table~\ref{tab:f90axpby}. The rank of $x$ must be the same of $y$.
|
||||
\item[beta] the scalar $\beta$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a number of the data type indicated in Table~\ref{tab:f90axpby}.
|
||||
\item[y] the local portion of the global dense matrix
|
||||
$y$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
indicated in Table~\ref{tab:f90axpby}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
%% \item[n] number of columns in dense submatrices $x$ and $y$.\\
|
||||
%% Scope: {\bf global} \\
|
||||
@@ -86,11 +91,13 @@ Specified as: a structured data of type \descdata.
|
||||
\item[y] the local portion of result submatrix $y$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array containing numbers of the type
|
||||
indicated in Table~\ref{tab:f90axpby}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -140,6 +147,7 @@ $x$.\\
|
||||
%% local subarray used, based on $jx$ and the field $matrix\_data$ of $desc\_a$ . \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90dot}. The rank of $x$ must be the same of $y$.
|
||||
@@ -149,12 +157,14 @@ $y$. \\
|
||||
%% local subarray used, based on $iy, jy$ and the field $matrix\_data$ of $desc\_a$ . \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90dot}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
%% \item[jx] the column index of global dense matrix $x$,
|
||||
%% identifying the column of subvector $x$.\\
|
||||
@@ -175,6 +185,7 @@ Specified as: a number of the data type indicated in Table~\ref{tab:f90dot}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
@@ -214,6 +225,7 @@ Long Precision Complex & psb\_gedots \\
|
||||
$x$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90mdot}. The rank of $x$ must be the same of $y$.
|
||||
@@ -221,21 +233,25 @@ Table~\ref{tab:f90mdot}. The rank of $x$ must be the same of $y$.
|
||||
$y$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90mdot}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[\bf On Return]
|
||||
\item[res] is the dot product of subvectors $x$ and $y$.\\
|
||||
Scope: {\bf global} \\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a number or a rank-one array of the data type indicated
|
||||
in Table~\ref{tab:f90dot}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -286,12 +302,14 @@ $x$. %% This function computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90amax}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
%% \item[jx] the column index of global dense matrix $x$,
|
||||
%% identifying the column of subvector $x$.\\
|
||||
@@ -307,6 +325,7 @@ Specified as: a long precision real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
@@ -342,20 +361,24 @@ Long Precision Real &Long Precision Complex & psb\_geamaxs\\
|
||||
$x$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90mamax}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[\bf On Return]
|
||||
\item[res] is the infinity norm of the columns of $x$.\\
|
||||
Scope: {\bf global} \\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a number or a rank-one array of long precision real numbers.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -400,12 +423,14 @@ $x$. %% This function computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90asum}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
|
||||
\item[\bf On Return]
|
||||
@@ -415,6 +440,7 @@ Specified as: a long precision real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -456,21 +482,25 @@ $x$. %% This function computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90asums}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[res] contains the 1-norm of (the columns of) $x$.\\
|
||||
Scope: {\bf global} \\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a long precision real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -519,12 +549,14 @@ $x$.%% This function computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90nrm2}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
%% \item[jx] the column index of global dense matrix $x$,
|
||||
%% identifying the column of subvector $x$.\\
|
||||
@@ -541,6 +573,7 @@ Specified as: a long precision real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -584,21 +617,25 @@ $x$. %% This function computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90nrm2s}.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
|
||||
\item[\bf On Return]
|
||||
\item[res] contains the 1-norm of (the columns of) $x$.\\
|
||||
Scope: {\bf global} \\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a long precision real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -643,10 +680,12 @@ Long Precision Complex & psb\_spnrmi \\
|
||||
$A$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[\bf On Return]
|
||||
\item[Function value] is the infinity-norm of sparse submatrix $A$.\\
|
||||
@@ -655,6 +694,7 @@ Specified as: a long precision real number.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -714,12 +754,14 @@ trans, work}
|
||||
\item[alpha] the scalar $\alpha$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a number of the data type indicated in
|
||||
Table~\ref{tab:f90spmm}.
|
||||
\item[a] the local portion of the sparse matrix
|
||||
$A$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[x] the local portion of global dense matrix
|
||||
$x$. %% This subroutine computes the location of the first element of
|
||||
@@ -727,12 +769,14 @@ $x$. %% This subroutine computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spmm}. The rank of $x$ must be the same of $y$.
|
||||
\item[beta] the scalar $\beta$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a number of the data type indicated in Table~\ref{tab:f90spmm}.
|
||||
\item[y] the local portion of global dense matrix
|
||||
$y$. %% This subroutine computes the location of the first element of
|
||||
@@ -740,12 +784,14 @@ $y$. %% This subroutine computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spmm}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[trans] indicate what kind of operation to perform.
|
||||
\begin{description}
|
||||
@@ -757,6 +803,7 @@ Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $trans = N$\\
|
||||
Specified as: a character variable.
|
||||
%% \item[k] number of columns in dense submatrices $x$ and $y$. \\
|
||||
@@ -780,6 +827,7 @@ Specified as: a character variable.
|
||||
\item[work] work array.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one array of the same type of $x$ and $y$ with
|
||||
the TARGET attribute.
|
||||
|
||||
@@ -787,12 +835,14 @@ the TARGET attribute.
|
||||
\item[y] the local portion of result submatrix $y$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spmm}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -854,12 +904,14 @@ Long Precision Complex & psb\_spsm \\
|
||||
\item[alpha] the scalar $\alpha$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a number of the data type indicated in
|
||||
Table~\ref{tab:f90spsm}.
|
||||
\item[t] the global portion of the sparse matrix
|
||||
$T$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data type specified in
|
||||
\S~\ref{sec:datastruct}.
|
||||
\item[x] the local portion of global dense matrix
|
||||
@@ -868,12 +920,14 @@ $x$. %% This subroutine computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spsm}. The rank of $x$ must be the same of $y$.
|
||||
\item[beta] the scalar $\beta$.\\
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a number of the data type indicated in Table~\ref{tab:f90spsm}.
|
||||
\item[y] the local portion of global dense matrix
|
||||
$y$. %% This subroutine computes the location of the first element of
|
||||
@@ -881,12 +935,14 @@ $y$. %% This subroutine computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spsm}. The rank of $y$ must be the same of $x$.
|
||||
\item[desc\_a] contains data structures for communications.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[trans] specify with {\em unitd} the operation to perform.
|
||||
\begin{description}
|
||||
@@ -896,6 +952,7 @@ Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $trans = N$\\
|
||||
Specified as: a character variable.
|
||||
\item[unitd] specify with {\em trans} the operation to perform.
|
||||
@@ -906,6 +963,7 @@ Specified as: a character variable.
|
||||
\end{description}
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $unitd = U$\\
|
||||
Specified as: a character variable.
|
||||
\item[choice] specifies the update of overlap elements to be performed
|
||||
@@ -918,17 +976,20 @@ Specified as: a character variable.
|
||||
\end{description}
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: \verb|psb_avg_|\\
|
||||
Specified as: an integer variable.
|
||||
\item[diag] the diagonal scaling matrix.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: $diag(1) = 1 (no scaling)$\\
|
||||
Specified as: a rank one array containing numbers of the type
|
||||
indicated in Table~\ref{tab:f90spsm}.
|
||||
\item[work] a work array. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one array of the same type of $x$ with the
|
||||
TARGET attribute.
|
||||
|
||||
@@ -939,12 +1000,14 @@ $y$. %% This subroutine computes the location of the first element of
|
||||
\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an array of rank one or two
|
||||
containing numbers of type specified in
|
||||
Table~\ref{tab:f90spsm}.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
|
||||
+112
-2
@@ -22,20 +22,24 @@ the specific initialization strategy:
|
||||
\item[icontxt] the communication context.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value.
|
||||
\item[vg] Data allocation: each index $i\in \{1\dots mg\}$ is allocated
|
||||
to process $vg(i)$.
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array.
|
||||
\item[flag] Specifies whether entries in $vg$ are zero- or one-based.
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $0,1$, default $0$.
|
||||
|
||||
\item[mg] the (global) number of rows of the problem.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value. It is required if \verb|parts| is
|
||||
specified.
|
||||
\item[parts] the subroutine that defines the partitioning scheme.\\
|
||||
@@ -46,11 +50,13 @@ Specified as: a subroutine.
|
||||
calling process.
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array.
|
||||
\item[nl] Data allocation: in a generalized block-row distribution the
|
||||
number of indices belonging to the current process.
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value.
|
||||
\end{description}
|
||||
|
||||
@@ -59,10 +65,12 @@ Specified as: an integer value.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -135,14 +143,17 @@ communication descriptor.
|
||||
\item[nz] the number of points being inserted.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value.
|
||||
\item[ia] the indices of the starting vertex of the edges being inserted.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array of length $nz$.
|
||||
\item[ja] the indices of the end vertex of the edges being inserted.\\
|
||||
Scope: {\bf local}.\\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array of length $nz$.
|
||||
%% \item[is] the row offset.\\
|
||||
%% Scope:{\bf local}.\\
|
||||
@@ -159,10 +170,12 @@ Specified as: an integer array of length $nz$.
|
||||
\item[desc\_a] the updated communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
\section*{Notes}
|
||||
@@ -188,14 +201,21 @@ nor the end vertex belong to the current process.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Return]
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
%\item[arg]
|
||||
\end{description}
|
||||
@@ -212,13 +232,14 @@ An integer value; 0 means no error has been detected.
|
||||
%
|
||||
\subroutine{psb\_cdcpy}{Copies a communication descriptor}
|
||||
|
||||
\syntax{call psb\_cdcpy}{desc\_out, desc\_a, info}
|
||||
\syntax{call psb\_cdcpy}{desc\_in, desc\_out, info}
|
||||
|
||||
\begin{description}
|
||||
\item[\bf On Entry]
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
\item[desc\_in] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
|
||||
\end{description}
|
||||
@@ -228,10 +249,12 @@ Specified as: a structured data of type \descdata.
|
||||
\item[desc\_out] the communication descriptor copy.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -248,6 +271,7 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc\_a] the communication descriptor to be freed.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -256,6 +280,7 @@ Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -276,18 +301,22 @@ through the input sparse matrix \verb|a|.
|
||||
\item[a] A sparse matrix
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data type.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[nl] the number of additional layers desired.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value $nl\ge 0$.
|
||||
\item[extype] the kind of estension required.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf optional }.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value
|
||||
\verb|psb_ovt_xhal_|, \verb|psb_ovt_asov_|, default: \verb|psb_ovt_xhal_|
|
||||
|
||||
@@ -298,10 +327,12 @@ Specified as: an integer value
|
||||
\item[desc\_out] the extended communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -394,11 +425,13 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[nnz] An estimate of the number of nonzeroes in the local
|
||||
part of the assembled matrix.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value.
|
||||
\end{description}
|
||||
|
||||
@@ -407,10 +440,12 @@ Specified as: an integer value.
|
||||
\item[a] the matrix to be allocated.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
\section*{Notes}
|
||||
@@ -438,22 +473,27 @@ An integer value; 0 means no error has been detected.
|
||||
\item[nz] the number of elements to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer scalar.
|
||||
\item[ia] the row indices of the elements to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array of size $nz$.
|
||||
\item[ja] the column indices of the elements to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array of size $nz$.
|
||||
\item[val] the elements to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of size $nz$.
|
||||
\item[desc\_a] The communication descriptor.\\
|
||||
Scope: {\bf local}. \\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a variable of type \descdata.\\
|
||||
%% \item[is] the starting row on matrix $a$.\\
|
||||
%% Scope:{\bf local}.\\
|
||||
@@ -470,14 +510,17 @@ Specified as: a variable of type \descdata.\\
|
||||
\item[a] the matrix into which elements will be inserted.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[desc\_a] The communication descriptor.\\
|
||||
Scope: {\bf local}. \\
|
||||
Type: {\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a variable of type \descdata.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -512,18 +555,22 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[afmt] the storage format for the sparse matrix.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an array of characters. Defalt: 'CSR'.
|
||||
\item[upd] Provide for updates to the matrix coefficients.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: integer, possible values: \verb|psb_upd_srch_|, \verb|psb_upd_perm_|
|
||||
\item[dupl] How to handle duplicate coefficients.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: integer, possible values: \verb|psb_dupl_ovwrt_|,
|
||||
\verb|psb_dupl_add_|, \verb|psb_dupl_err_|.
|
||||
\end{description}
|
||||
@@ -533,10 +580,12 @@ Specified as: integer, possible values: \verb|psb_dupl_ovwrt_|,
|
||||
\item[a] the matrix to be assembled.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -603,10 +652,12 @@ An integer value; 0 means no error has been detected.
|
||||
\item[a] the matrix to be freed.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -615,6 +666,7 @@ Specified as: a structured data of type \descdata.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -633,14 +685,17 @@ An integer value; 0 means no error has been detected.
|
||||
\item[a] the matrix to be reinitialized.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[clear] Choose whether to zero out matrix coefficients\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Default: true.
|
||||
\end{description}
|
||||
|
||||
@@ -649,6 +704,7 @@ Default: true.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
\section*{Notes}
|
||||
@@ -718,10 +774,12 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc\_a] The communication descriptor.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a variable of type \descdata.\\
|
||||
\item[n] The number of columns of the dense matrix to be allocated.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: Integer scalar, default $1$. It is ignored if $x$ is a
|
||||
rank-1 array.
|
||||
\end{description}
|
||||
@@ -731,11 +789,13 @@ rank-1 array.
|
||||
\item[x] The dense matrix to be allocated.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one or two array with the ALLOCATABLE
|
||||
attribute, of type real, complex or integer.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -752,25 +812,30 @@ An integer value; 0 means no error has been detected.
|
||||
\item[m] Number of rows in $val$ to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value.
|
||||
\item[irw] Indices of the rows to be inserted. Specifically, row $i$
|
||||
of $val$ will be inserted into the local row corresponding to the
|
||||
global row index $irw(i)$.
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer array.
|
||||
\item[val] the dense submatrix to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a rank 1 or 2 array.
|
||||
Specified as: an integer value.
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[dupl] How to handle duplicate coefficients.\\
|
||||
Scope: {\bf global}.\\
|
||||
Type: {\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: integer, possible values: \verb|psb_dupl_ovwrt_|,
|
||||
\verb|psb_dupl_add_|.
|
||||
\end{description}
|
||||
@@ -780,11 +845,13 @@ Specified as: integer, possible values: \verb|psb_dupl_ovwrt_|,
|
||||
\item[x] the output dense matrix.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array with the ALLOCATABLE
|
||||
attribute, of type real, complex or integer.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -808,6 +875,7 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc\_a] The communication descriptor.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a variable of type \descdata.\\
|
||||
\end{description}
|
||||
|
||||
@@ -816,11 +884,13 @@ Specified as: a variable of type \descdata.\\
|
||||
\item[x] The dense matrix to be assembled.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array with the ALLOCATABLE
|
||||
attribute, of type real, complex or integer.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
%
|
||||
@@ -836,12 +906,14 @@ An integer value; 0 means no error has been detected.
|
||||
be freed.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one or two array with the ALLOCATABLE
|
||||
attribute, of type real, complex or integer.\\
|
||||
|
||||
\item[desc\_a] The communication descriptor.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a variable of type \descdata.\\
|
||||
\end{description}
|
||||
|
||||
@@ -850,6 +922,7 @@ Specified as: a variable of type \descdata.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -866,18 +939,22 @@ An integer value; 0 means no error has been detected.
|
||||
\item[trans] A character that specifies whether to permute $A$ or $A^T$.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a single character with value 'N' for $A$ or 'T' for $A^T$.\\
|
||||
\item[iperm] An integer array containing permutation information.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer one-dimensional array.\\
|
||||
\item[x] The dense matrix to be permuted.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a one or two dimensional array.\\
|
||||
\item[desc\_a] The communication descriptor.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a variable of type \descdata.\\
|
||||
\end{description}
|
||||
|
||||
@@ -886,6 +963,7 @@ Specified as: a variable of type \descdata.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -903,19 +981,23 @@ An integer value; 0 means no error has been detected.
|
||||
\item[x] An integer vector of indices to be converted.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in, inout}.\\
|
||||
Specified as: a rank one integer array.\\
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[iact] specifies action to be taken in case of range errors.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a character variable \verb|I|gnore, \verb|W|arning or
|
||||
\verb|A|bort, default \verb|I|gnore.
|
||||
\item[owned] Specfies valid range of input
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
If true, then only indices strictly owned by the current process are
|
||||
considered valid, if false then halo indices are also
|
||||
accepted. Default: false.
|
||||
@@ -927,16 +1009,19 @@ accepted. Default: false.
|
||||
then $x$ is overwritten with the translated integer indices.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one integer array.
|
||||
\item[y] If $y$ is present,
|
||||
then $y$ is overwritten with the translated integer indices, and $x$
|
||||
is left unchanged.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one integer array.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -962,14 +1047,17 @@ An integer value; 0 means no error has been detected.
|
||||
\item[x] An integer vector of indices to be converted.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in, inout}.\\
|
||||
Specified as: a rank one integer array.\\
|
||||
\item[desc\_a] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[iact] specifies action to be taken in case of range errors.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a character variable \verb|I|gnore, \verb|W|arning or
|
||||
\verb|A|bort, default \verb|I|gnore.
|
||||
\end{description}
|
||||
@@ -980,16 +1068,19 @@ Specified as: a character variable \verb|I|gnore, \verb|W|arning or
|
||||
then $x$ is overwritten with the translated integer indices.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a rank one integer array.
|
||||
\item[y] If $y$ is not present,
|
||||
then $y$ is overwritten with the translated integer indices, and $x$
|
||||
is left unchanged.
|
||||
Scope: {\bf global} \\
|
||||
Type: {\bf optional}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one integer array.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -1008,6 +1099,7 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -1017,11 +1109,13 @@ Specified as: a structured data of type \descdata.
|
||||
local numbering.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one array with the ALLOCATABLE
|
||||
attribute, of type integer.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -1043,6 +1137,7 @@ An integer value; 0 means no error has been detected.
|
||||
\item[desc] the communication descriptor.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\end{description}
|
||||
|
||||
@@ -1052,11 +1147,13 @@ Specified as: a structured data of type \descdata.
|
||||
local numbering.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf out}.\\
|
||||
Specified as: a rank one array with the ALLOCATABLE
|
||||
attribute, of type integer.\\
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -1080,23 +1177,28 @@ An integer value; 0 means no error has been detected.
|
||||
\item[row] The (first) row to be extracted.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer $>0$.
|
||||
\item[a] the matrix from which to get rows.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[append] Whether to append or overwrite existing output.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a logical value default: false (overwrite).
|
||||
\item[nzin] Input size to be appended to.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer $>0$. When append is true, specifies how many
|
||||
entries in the output vectors are already filled.
|
||||
\item[lrw] The last row to be extracted.\\
|
||||
Scope:{\bf local}\\
|
||||
Type:{\bf optional}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer $>0$, default: $row$.
|
||||
|
||||
%% \item[is] the starting row on matrix $a$.\\
|
||||
@@ -1114,22 +1216,27 @@ Specified as: an integer $>0$, default: $row$.
|
||||
\item[nz] the number of elements returned by this call.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf out}.\\
|
||||
Returned as: an integer scalar.
|
||||
\item[ia] the row indices.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer array with the \verb|ALLOCATABLE| attribute.
|
||||
\item[ja] the column indices of the elements to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: an integer array with the \verb|ALLOCATABLE| attribute.
|
||||
\item[val] the elements to be inserted.\\
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf required}.\\
|
||||
Intent: {\bf inout}.\\
|
||||
Specified as: a real array with the \verb|ALLOCATABLE| attribute.
|
||||
\item[info] Error code.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required} \\
|
||||
Intent: {\bf out}.\\
|
||||
An integer value; 0 means no error has been detected.
|
||||
\end{description}
|
||||
|
||||
@@ -1165,14 +1272,17 @@ This function computes the memory occupation of a PSBLAS object.
|
||||
$A$. \\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \spdata.
|
||||
\item[desc\_a] Communication descriptor.\\
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a structured data of type \descdata.
|
||||
\item[prec]
|
||||
Scope: {\bf local} \\
|
||||
Type: {\bf required}\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: a preconditioner data structure \precdata.
|
||||
\item[\bf On Return]
|
||||
\item[Function value] The memory occupation of the object specified in
|
||||
|
||||
+11709
-11701
File diff suppressed because one or more lines are too long
+12
-37
@@ -47,7 +47,7 @@ contains
|
||||
integer, intent(out) :: iret
|
||||
integer, optional, intent(in) :: iunit
|
||||
character(len=*), optional, intent(in) :: filename
|
||||
real(kind(1.d0)), optional, pointer :: b(:)
|
||||
real(kind(1.d0)), optional, allocatable :: b(:)
|
||||
character(len=72), optional, intent(out) :: mtitle
|
||||
|
||||
character :: rhstype,type*3,key*8
|
||||
@@ -106,13 +106,8 @@ contains
|
||||
if (valcrd.gt.0) read (infile,fmt=valfmt) (a%aspk(i),i=1,nnzero)
|
||||
|
||||
if (present(b) .and. (rhscrd.gt.0)) then
|
||||
if (associated(b)) then
|
||||
if (size(b) < nrow) deallocate(b)
|
||||
endif
|
||||
if (.not.associated(b)) then
|
||||
allocate(b(nrow),stat=info)
|
||||
endif
|
||||
read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
call psb_ensure_size(nrow,b,info)
|
||||
if (info == 0) read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
endif
|
||||
|
||||
else if (tolower(type(2:2)) == 's') then
|
||||
@@ -125,13 +120,8 @@ contains
|
||||
if (valcrd.gt.0) read (infile,fmt=valfmt) (a%aspk(i),i=1,nnzero)
|
||||
|
||||
if (present(b) .and. (rhscrd.gt.0)) then
|
||||
if (associated(b)) then
|
||||
if (size(b) < nrow) deallocate(b)
|
||||
endif
|
||||
if (.not.associated(b)) then
|
||||
allocate(b(nrow),stat=info)
|
||||
endif
|
||||
read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
call psb_ensure_size(nrow,b,info)
|
||||
if (info == 0) read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
endif
|
||||
|
||||
call psb_ipcsr2coo(a,ircode)
|
||||
@@ -306,7 +296,7 @@ contains
|
||||
integer, intent(out) :: iret
|
||||
integer, optional, intent(in) :: iunit
|
||||
character(len=*), optional, intent(in) :: filename
|
||||
real(kind(1.d0)), optional, pointer :: b(:)
|
||||
real(kind(1.d0)), optional, allocatable :: b(:)
|
||||
character(len=72), optional, intent(out) :: mtitle
|
||||
|
||||
character :: rhstype,type*3,key*8
|
||||
@@ -365,13 +355,8 @@ contains
|
||||
if (valcrd.gt.0) read (infile,fmt=valfmt) (a%aspk(i),i=1,nnzero)
|
||||
|
||||
if (present(b) .and. (rhscrd.gt.0)) then
|
||||
if (associated(b)) then
|
||||
if (size(b) < nrow) deallocate(b)
|
||||
endif
|
||||
if (.not.associated(b)) then
|
||||
allocate(b(nrow),stat=info)
|
||||
endif
|
||||
read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
call psb_ensure_size(nrow,b,info)
|
||||
if (info == 0) read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
endif
|
||||
|
||||
else if (tolower(type(2:2)) == 's') then
|
||||
@@ -394,13 +379,8 @@ contains
|
||||
if (valcrd.gt.0) read (infile,fmt=valfmt) (a%aspk(i),i=1,nnzero)
|
||||
|
||||
if (present(b) .and. (rhscrd.gt.0)) then
|
||||
if (associated(b)) then
|
||||
if (size(b) < nrow) deallocate(b)
|
||||
endif
|
||||
if (.not.associated(b)) then
|
||||
allocate(b(nrow),stat=info)
|
||||
endif
|
||||
read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
call psb_ensure_size(nrow,b,info)
|
||||
if (info == 0) read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
endif
|
||||
|
||||
|
||||
@@ -455,13 +435,8 @@ contains
|
||||
if (valcrd.gt.0) read (infile,fmt=valfmt) (a%aspk(i),i=1,nnzero)
|
||||
|
||||
if (present(b) .and. (rhscrd.gt.0)) then
|
||||
if (associated(b)) then
|
||||
if (size(b) < nrow) deallocate(b)
|
||||
endif
|
||||
if (.not.associated(b)) then
|
||||
allocate(b(nrow),stat=info)
|
||||
endif
|
||||
read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
call psb_ensure_size(nrow,b,info)
|
||||
if (info == 0) read (infile,fmt=rhsfmt) (b(i),i=1,nrow)
|
||||
endif
|
||||
|
||||
call psb_ipcsr2coo(a,ircode)
|
||||
|
||||
Reference in New Issue
Block a user