mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-06 22:55:08 +00:00
psblas3:
base/modules/psb_base_tools_mod.f90 base/modules/psb_error_mod.F90 docs/html/node106.html docs/html/node43.html docs/psblas-3.0.pdf docs/src/toolsrout.tex New CDALL.
This commit is contained in:
@@ -527,7 +527,7 @@ subroutine psb_cdall(ictxt, desc, info,mg,ng,parts,vg,vl,flag,nl,repl, globalche
|
||||
end subroutine psb_cdrep
|
||||
end interface
|
||||
character(len=20) :: name
|
||||
integer :: err_act, n_, flag_, i, me, np, nlp
|
||||
integer :: err_act, n_, flag_, i, me, np, nlp, nnv
|
||||
integer, allocatable :: itmpsz(:)
|
||||
|
||||
|
||||
@@ -580,10 +580,20 @@ subroutine psb_cdall(ictxt, desc, info,mg,ng,parts,vg,vl,flag,nl,repl, globalche
|
||||
else
|
||||
flag_=0
|
||||
endif
|
||||
call psb_cdalv(vg, ictxt, desc, info, flag=flag_)
|
||||
if (present(mg)) then
|
||||
nnv = min(mg,size(vg))
|
||||
else
|
||||
nnv = size(vg)
|
||||
end if
|
||||
call psb_cdalv(vg(1:nnv), ictxt, desc, info, flag=flag_)
|
||||
|
||||
else if (present(vl)) then
|
||||
call psb_cd_inloc(vl,ictxt,desc,info, globalcheck=globalcheck)
|
||||
if (present(nl)) then
|
||||
nnv = min(nl,size(vl))
|
||||
else
|
||||
nnv = size(vl)
|
||||
end if
|
||||
call psb_cd_inloc(vl(1:nnv),ictxt,desc,info, globalcheck=globalcheck)
|
||||
|
||||
else if (present(nl)) then
|
||||
allocate(itmpsz(0:np-1),stat=info)
|
||||
|
||||
@@ -388,7 +388,7 @@ contains
|
||||
write (error_unit,'("partition function passed as input argument n. ",i0," returns wrong processes identifier")')i_e_d(1)
|
||||
write (error_unit,'("on global point ",i0,". Current value returned is : ",i0)')i_e_d(3),i_e_d(2)
|
||||
case(psb_err_no_optional_arg_)
|
||||
write (error_unit,'("Exactly one of the optional arguments ",a," must be present")')a_e_d
|
||||
write (error_unit,'("One of the optional arguments ",a," must be present")')a_e_d
|
||||
case(psb_err_arg_m_required_)
|
||||
write (error_unit,'("Argument M is required when argument PARTS is specified")')
|
||||
case(psb_err_spmat_invalid_state_)
|
||||
|
||||
@@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney.
|
||||
The command line arguments were: <BR>
|
||||
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
|
||||
<P>
|
||||
The translation was initiated by on 2010-05-13
|
||||
The translation was initiated by on 2010-05-26
|
||||
<BR><HR>
|
||||
|
||||
</BODY>
|
||||
|
||||
+12
-8
@@ -59,14 +59,14 @@ psb_cdall -- Allocates a communication descriptor</A>
|
||||
<PRE>
|
||||
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
|
||||
call psb_cdall(icontxt, desc_a, info,vg=vg,flag=flag)
|
||||
call psb_cdall(icontxt, desc_a, info,vl=vl,globalcheck=.true.)
|
||||
call psb_cdall(icontxt, desc_a, info,vl=vl,nl=nl,globalcheck=.true.)
|
||||
call psb_cdall(icontxt, desc_a, info,nl=nl)
|
||||
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
This subroutine initializes the communication descriptor associated
|
||||
with an index space. Exactly one of the optional arguments
|
||||
with an index space. One of the optional arguments
|
||||
<code>parts</code>, <code>vg</code>, <code>vl</code>, <code>nl</code> or <code>repl</code>
|
||||
must be specified, thereby choosing
|
||||
the specific initialization strategy.
|
||||
@@ -141,7 +141,7 @@ Type:<B>optional</B>.
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value. It is required if <code>parts</code> or
|
||||
<code>repl</code> is specified.
|
||||
<code>repl</code> is specified, it is optional if <code>vg</code> is specified.
|
||||
</DD>
|
||||
<DT><STRONG>parts</STRONG></DT>
|
||||
<DD>the subroutine that defines the partitioning scheme.
|
||||
@@ -174,7 +174,8 @@ Type:<B>optional</B>.
|
||||
<BR>
|
||||
Intent: <B>in</B>.
|
||||
<BR>
|
||||
Specified as: an integer value.
|
||||
Specified as: an integer value. May be specified together with
|
||||
<code>vl</code>.
|
||||
</DD>
|
||||
<DT><STRONG>repl</STRONG></DT>
|
||||
<DD>Data allocation: build a replicated index space (i.e. all
|
||||
@@ -235,7 +236,7 @@ An integer value; 0 means no error has been detected.
|
||||
<FONT SIZE="+1"><B>Notes</B></FONT>
|
||||
|
||||
<OL>
|
||||
<LI>Exactly one of the optional arguments <code>parts</code>, <code>vg</code>,
|
||||
<LI>One of the optional arguments <code>parts</code>, <code>vg</code>,
|
||||
<code>vl</code>, <code>nl</code> or <code>repl</code> must be specified, thereby choosing the
|
||||
initialization strategy as follows:
|
||||
<DL>
|
||||
@@ -310,7 +311,9 @@ An integer value; 0 means no error has been detected.
|
||||
or <IMG
|
||||
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
|
||||
SRC="img94.png"
|
||||
ALT="$(1\dots np)$"> according to the value of <code>flag</code>.
|
||||
ALT="$(1\dots np)$"> according to the value of <code>flag</code>. Optionally,
|
||||
the user may specify <code>mg</code>, in
|
||||
which case the portion <code>vg(1:mg)</code> is used.
|
||||
</DD>
|
||||
<DT><STRONG>vl</STRONG></DT>
|
||||
<DD>In this case we are specifying the list of indices assigned
|
||||
@@ -330,7 +333,8 @@ An integer value; 0 means no error has been detected.
|
||||
If <code>globalcheck=.false.</code>, the subroutine will not check for
|
||||
overlap, and may be substantially faster, but
|
||||
the user is implicitly guaranteeing that there are neither orphan
|
||||
nor overlap indices.
|
||||
nor overlap indices. Optionally, the user may specify <code>nl</code>, in
|
||||
which case the portion <code>vl(1:nl)</code> is used.
|
||||
</DD>
|
||||
<DT><STRONG>nl</STRONG></DT>
|
||||
<DD>In this case we are implying a generalized row-block
|
||||
@@ -379,7 +383,7 @@ An integer value; 0 means no error has been detected.
|
||||
</LI>
|
||||
<LI>Orphan and overlap indices are
|
||||
impossible by construction when the subroutine is invoked with
|
||||
<code>nl</code> or <code>vg</code>.
|
||||
<code>nl</code> (alone), or <code>vg</code>.
|
||||
</LI>
|
||||
</OL>
|
||||
|
||||
|
||||
+4914
-4914
File diff suppressed because it is too large
Load Diff
+12
-8
@@ -11,13 +11,13 @@
|
||||
\begin{verbatim}
|
||||
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts)
|
||||
call psb_cdall(icontxt, desc_a, info,vg=vg,flag=flag)
|
||||
call psb_cdall(icontxt, desc_a, info,vl=vl,globalcheck=.true.)
|
||||
call psb_cdall(icontxt, desc_a, info,vl=vl,nl=nl,globalcheck=.true.)
|
||||
call psb_cdall(icontxt, desc_a, info,nl=nl)
|
||||
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
|
||||
\end{verbatim}
|
||||
|
||||
This subroutine initializes the communication descriptor associated
|
||||
with an index space. Exactly one of the optional arguments
|
||||
with an index space. One of the optional arguments
|
||||
\verb|parts|, \verb|vg|, \verb|vl|, \verb|nl| or \verb|repl|
|
||||
must be specified, thereby choosing
|
||||
the specific initialization strategy.
|
||||
@@ -46,7 +46,7 @@ Scope:{\bf global}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value. It is required if \verb|parts| or
|
||||
\verb|repl| is specified.
|
||||
\verb|repl| is specified, it is optional if \verb|vg| is specified.
|
||||
\item[parts] the subroutine that defines the partitioning scheme.\\
|
||||
Scope:{\bf global}.\\
|
||||
Type:{\bf required}.\\
|
||||
@@ -62,7 +62,8 @@ Specified as: an integer array.
|
||||
Scope:{\bf local}.\\
|
||||
Type:{\bf optional}.\\
|
||||
Intent: {\bf in}.\\
|
||||
Specified as: an integer value.
|
||||
Specified as: an integer value. May be specified together with
|
||||
\verb|vl|.
|
||||
\item[repl] Data allocation: build a replicated index space (i.e. all
|
||||
processes own all indices).\\
|
||||
Scope:{\bf global}.\\
|
||||
@@ -93,7 +94,7 @@ An integer value; 0 means no error has been detected.
|
||||
|
||||
{\par\noindent\large\bfseries Notes}
|
||||
\begin{enumerate}
|
||||
\item Exactly one of the optional arguments \verb|parts|, \verb|vg|,
|
||||
\item One of the optional arguments \verb|parts|, \verb|vg|,
|
||||
\verb|vl|, \verb|nl| or \verb|repl| must be specified, thereby choosing the
|
||||
initialization strategy as follows:
|
||||
\begin{description}
|
||||
@@ -129,7 +130,9 @@ An integer value; 0 means no error has been detected.
|
||||
equal to the size of \verb|vg|, and each index $i$ is assigned to
|
||||
the process $vg(i)$. The vector \verb|vg| must be identical on all
|
||||
calling processes; its entries may have the ranges $(0\dots np-1)$
|
||||
or $(1\dots np)$ according to the value of \verb|flag|.
|
||||
or $(1\dots np)$ according to the value of \verb|flag|. Optionally,
|
||||
the user may specify \verb|mg|, in
|
||||
which case the portion \verb|vg(1:mg)| is used.
|
||||
\item[vl] In this case we are specifying the list of indices assigned
|
||||
to the current process; thus, the global problem size $mg$ is given by
|
||||
the range of the aggregate of the individual vectors \verb|vl| specified
|
||||
@@ -141,7 +144,8 @@ An integer value; 0 means no error has been detected.
|
||||
If \verb|globalcheck=.false.|, the subroutine will not check for
|
||||
overlap, and may be substantially faster, but
|
||||
the user is implicitly guaranteeing that there are neither orphan
|
||||
nor overlap indices.
|
||||
nor overlap indices. Optionally, the user may specify \verb|nl|, in
|
||||
which case the portion \verb|vl(1:nl)| is used.
|
||||
\item[nl] In this case we are implying a generalized row-block
|
||||
distribution in which each process $I$ gets assigned a consecutive
|
||||
chunk of $N_I=nl$ global indices.
|
||||
@@ -171,7 +175,7 @@ An integer value; 0 means no error has been detected.
|
||||
unpredictable.
|
||||
\item Orphan and overlap indices are
|
||||
impossible by construction when the subroutine is invoked with
|
||||
\verb|nl| or \verb|vg|.
|
||||
\verb|nl| (alone), or \verb|vg|.
|
||||
\end{enumerate}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user