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.
psblas3-type-indexed
Salvatore Filippone 15 years ago
parent a02214eb6a
commit eea1d44360

@ -527,7 +527,7 @@ subroutine psb_cdall(ictxt, desc, info,mg,ng,parts,vg,vl,flag,nl,repl, globalche
end subroutine psb_cdrep end subroutine psb_cdrep
end interface end interface
character(len=20) :: name 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(:) integer, allocatable :: itmpsz(:)
@ -580,10 +580,20 @@ subroutine psb_cdall(ictxt, desc, info,mg,ng,parts,vg,vl,flag,nl,repl, globalche
else else
flag_=0 flag_=0
endif 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 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 else if (present(nl)) then
allocate(itmpsz(0:np-1),stat=info) 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,'("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) 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_) 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_) case(psb_err_arg_m_required_)
write (error_unit,'("Argument M is required when argument PARTS is specified")') write (error_unit,'("Argument M is required when argument PARTS is specified")')
case(psb_err_spmat_invalid_state_) case(psb_err_spmat_invalid_state_)

@ -63,7 +63,7 @@ Mathematics Department, Macquarie University, Sydney.
The command line arguments were: <BR> The command line arguments were: <BR>
<STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT> <STRONG>latex2html</STRONG> <TT>-local_icons -noaddress -dir ../../html userhtml.tex</TT>
<P> <P>
The translation was initiated by on 2010-05-13 The translation was initiated by on 2010-05-26
<BR><HR> <BR><HR>
</BODY> </BODY>

@ -59,14 +59,14 @@ psb_cdall -- Allocates a communication descriptor</A>
<PRE> <PRE>
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts) 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,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,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.) call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
</PRE> </PRE>
<P> <P>
This subroutine initializes the communication descriptor associated 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> <code>parts</code>, <code>vg</code>, <code>vl</code>, <code>nl</code> or <code>repl</code>
must be specified, thereby choosing must be specified, thereby choosing
the specific initialization strategy. the specific initialization strategy.
@ -141,7 +141,7 @@ Type:<B>optional</B>.
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. It is required if <code>parts</code> or 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> </DD>
<DT><STRONG>parts</STRONG></DT> <DT><STRONG>parts</STRONG></DT>
<DD>the subroutine that defines the partitioning scheme. <DD>the subroutine that defines the partitioning scheme.
@ -174,7 +174,8 @@ Type:<B>optional</B>.
<BR> <BR>
Intent: <B>in</B>. Intent: <B>in</B>.
<BR> <BR>
Specified as: an integer value. Specified as: an integer value. May be specified together with
<code>vl</code>.
</DD> </DD>
<DT><STRONG>repl</STRONG></DT> <DT><STRONG>repl</STRONG></DT>
<DD>Data allocation: build a replicated index space (i.e. all <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> <FONT SIZE="+1"><B>Notes</B></FONT>
<OL> <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 <code>vl</code>, <code>nl</code> or <code>repl</code> must be specified, thereby choosing the
initialization strategy as follows: initialization strategy as follows:
<DL> <DL>
@ -310,7 +311,9 @@ An integer value; 0 means no error has been detected.
or <IMG or <IMG
WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" WIDTH="65" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img94.png" 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> </DD>
<DT><STRONG>vl</STRONG></DT> <DT><STRONG>vl</STRONG></DT>
<DD>In this case we are specifying the list of indices assigned <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 If <code>globalcheck=.false.</code>, the subroutine will not check for
overlap, and may be substantially faster, but overlap, and may be substantially faster, but
the user is implicitly guaranteeing that there are neither orphan 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> </DD>
<DT><STRONG>nl</STRONG></DT> <DT><STRONG>nl</STRONG></DT>
<DD>In this case we are implying a generalized row-block <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>
<LI>Orphan and overlap indices are <LI>Orphan and overlap indices are
impossible by construction when the subroutine is invoked with 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> </LI>
</OL> </OL>

File diff suppressed because it is too large Load Diff

@ -11,13 +11,13 @@
\begin{verbatim} \begin{verbatim}
call psb_cdall(icontxt, desc_a, info,mg=mg,parts=parts) 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,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,nl=nl)
call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.) call psb_cdall(icontxt, desc_a, info,mg=mg,repl=.true.)
\end{verbatim} \end{verbatim}
This subroutine initializes the communication descriptor associated 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| \verb|parts|, \verb|vg|, \verb|vl|, \verb|nl| or \verb|repl|
must be specified, thereby choosing must be specified, thereby choosing
the specific initialization strategy. the specific initialization strategy.
@ -46,7 +46,7 @@ Scope:{\bf global}.\\
Type:{\bf optional}.\\ Type:{\bf optional}.\\
Intent: {\bf in}.\\ Intent: {\bf in}.\\
Specified as: an integer value. It is required if \verb|parts| or 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.\\ \item[parts] the subroutine that defines the partitioning scheme.\\
Scope:{\bf global}.\\ Scope:{\bf global}.\\
Type:{\bf required}.\\ Type:{\bf required}.\\
@ -62,7 +62,8 @@ Specified as: an integer array.
Scope:{\bf local}.\\ Scope:{\bf local}.\\
Type:{\bf optional}.\\ Type:{\bf optional}.\\
Intent: {\bf in}.\\ 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 \item[repl] Data allocation: build a replicated index space (i.e. all
processes own all indices).\\ processes own all indices).\\
Scope:{\bf global}.\\ Scope:{\bf global}.\\
@ -93,7 +94,7 @@ An integer value; 0 means no error has been detected.
{\par\noindent\large\bfseries Notes} {\par\noindent\large\bfseries Notes}
\begin{enumerate} \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 \verb|vl|, \verb|nl| or \verb|repl| must be specified, thereby choosing the
initialization strategy as follows: initialization strategy as follows:
\begin{description} \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 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 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)$ 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 \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 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 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 If \verb|globalcheck=.false.|, the subroutine will not check for
overlap, and may be substantially faster, but overlap, and may be substantially faster, but
the user is implicitly guaranteeing that there are neither orphan 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 \item[nl] In this case we are implying a generalized row-block
distribution in which each process $I$ gets assigned a consecutive distribution in which each process $I$ gets assigned a consecutive
chunk of $N_I=nl$ global indices. chunk of $N_I=nl$ global indices.
@ -171,7 +175,7 @@ An integer value; 0 means no error has been detected.
unpredictable. unpredictable.
\item Orphan and overlap indices are \item Orphan and overlap indices are
impossible by construction when the subroutine is invoked with impossible by construction when the subroutine is invoked with
\verb|nl| or \verb|vg|. \verb|nl| (alone), or \verb|vg|.
\end{enumerate} \end{enumerate}

Loading…
Cancel
Save