diff --git a/docs/pdf/datastruct.tex b/docs/pdf/datastruct.tex index fdf8ac7d..df216fec 100644 --- a/docs/pdf/datastruct.tex +++ b/docs/pdf/datastruct.tex @@ -30,13 +30,14 @@ sparse matrix, however the definition of the descriptor is the following. \begin{description} \item[{\bf matrix\_data}] includes general information about matrix and -BLACS grid. More precisely: +process grid. More precisely: \begin{description} \item[matrix\_data[psb\_dec\_type\_\hbox{]}] Identifies the decomposition type (global); the actual values are internally defined, so they should never be accessed directly. -\item[matrix\_data[psb\_ctxt\_\hbox{]}] Communication context as returned by the -BLACS (global). +\item[matrix\_data[psb\_ctxt\_\hbox{]}] Communication context + associated with the processes comprised in the virtual parallel + machine (global). \item[matrix\_data[psb\_m\_\hbox{]}] Total number of equations (global). \item[matrix\_data[psb\_n\_\hbox{]}] Total number of variables (global). \item[matrix\_data[psb\_n\_row\_\hbox{]}] Number of grid variables owned by the diff --git a/docs/pdf/intro.tex b/docs/pdf/intro.tex index 220ae773..38c3a95c 100644 --- a/docs/pdf/intro.tex +++ b/docs/pdf/intro.tex @@ -75,10 +75,10 @@ Message Passing Interface code is encapsulated within the BLACS layer. However, in some cases, MPI routines are directly used either to improve efficiency or to implement communication patterns for which the BLACS package doesn't provide any method. -We assume that the user program has initialized a BLACS process grid -with one column and as many rows as there are processes; the PSBLAS -initialization routines will take the communication context for this -grid and store internally for further use. +%% We assume that the user program has initialized a BLACS process grid +%% with one column and as many rows as there are processes; the PSBLAS +%% initialization routines will take the communication context for this +%% grid and store internally for further use. \begin{figure}[h] \begin{center} \includegraphics[scale=0.45]{figures/psblas} @@ -101,6 +101,7 @@ systems solution for block diagonal matrices; communications; \item[Data management and auxiliary routines] including: \begin{itemize} +\item Parallel environment management \item Communication descriptors allocation; \item Dense and sparse matrix allocation; \item Dense and sparse matrix build and update; @@ -188,7 +189,7 @@ A simple application structure will walk through the index space allocation, matrix/vector creation and linear system solution as follows: \begin{enumerate} -\item Initialize parallel environment with \verb|blacs_gridinit| +\item Initialize parallel environment with \verb|psb_init| \item Initialize index space with \verb|psb_cdall| \item Allocate sparse matrix and dense vectors with \verb|psb_spall| and \verb|psb_geall| @@ -210,7 +211,7 @@ This is the structure of the sample program For a simulation in which the same discretization mesh is used over multiple time steps, the following structure may be more appropriate: \begin{enumerate} -\item Initialize parallel environment with \verb|blacs_gridinit| +\item Initialize parallel environment with \verb|psb_init| \item Initialize index space with \verb|psb_cdall| \item Loop over the topology of the discretization mesh and build the descriptor with \verb|psb_cdins| diff --git a/docs/pdf/toolsrout.tex b/docs/pdf/toolsrout.tex index 8f736a69..a1d5a20f 100644 --- a/docs/pdf/toolsrout.tex +++ b/docs/pdf/toolsrout.tex @@ -1,6 +1,122 @@ -\section{Data management and initialization routines} +\section{Data management and environment handling routines} \label{sec:toolsrout} +\subroutine{psb\_init}{Initializes PSBLAS parallel environment} + +\syntax{call psb\_init}{ictxt, np} + +This subroutine initializes the PSBLAS parallel environment, defining +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}.\\ +Specified as: an integer value. \ +Default: use all available processes provided by the underlying +parallel environment. +\end{description} + +\begin{description} +\item[\bf On Return] +\item[icontxt] the communication context identifying the virtual + parallel machine.\\ +Scope:{\bf global}.\\ +Type:{\bf required}.\\ +Specified as: an integer variable. +\end{description} + + +\section*{Notes} +\begin{enumerate} +\item A call to this routine must precede any other PSBLAS call. +\item It is an error to specify a value for $np$ greater than the + number of processes available in the underlying parallel execution + environment. +\end{enumerate} + + +\subroutine{psb\_info}{Return information about PSBLAS parallel environment} + +\syntax{call psb\_info}{ictxt, iam, np} + +This subroutine returns informantion about the PSBLAS parallel environment, defining +a virtual parallel machine. +\begin{description} +\item[\bf On Entry ] +\item[icontxt] the communication context identifying the virtual + parallel machine.\\ +Scope:{\bf global}.\\ +Type:{\bf required}.\\ +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}.\\ +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}.\\ +Specified as: an integer variable. \ +\end{description} + + +\section*{Notes} +\begin{enumerate} +\item For processes in the virtual parallel machine the identifier + will satisfy $0 \le iam \le np-1$; +\item If the user has requested on \verb|psb_init| a number of + processes less than the total available in the parallel execution + environment, the remaining processes will have on return $iam=-1$; + any such process may only place a call to \verb|psb_exit|, and is + required to do so. +\end{enumerate} + + +\subroutine{psb\_exit}{Exit from PSBLAS parallel environment} + +\syntax{call psb\_exit}{ictxt} + +This subroutine exits from the PSBLAS parallel virtual machine. +\begin{description} +\item[\bf On Entry ] +\item[icontxt] the communication context identifying the virtual + parallel machine.\\ +Scope:{\bf global}.\\ +Type:{\bf required}.\\ +Specified as: an integer variable. +\end{description} + +\section*{Notes} +\begin{enumerate} +\item This routine may be called even if a previous call to + \verb|psb_info| has returned with $iam=-1$; indeed, it it is the ONLY + routine that may be called in this situation, and it is required to + do so. +\end{enumerate} + + + +\subroutine{psb\_barrier}{Sinchronization point parallel environment} + +\syntax{call psb\_barrier}{ictxt} + +This subroutine acts as a synchronization point for the PSBLAS +parallel virtual machine. As such, it must be called by all +participating processes. +\begin{description} +\item[\bf On Entry ] +\item[icontxt] the communication context identifying the virtual + parallel machine.\\ +Scope:{\bf global}.\\ +Type:{\bf required}.\\ +Specified as: an integer variable. +\end{description} + + % %% psb_cdall %% diff --git a/docs/userguide.pdf b/docs/userguide.pdf index 34c8d47d..640222c0 100644 --- a/docs/userguide.pdf +++ b/docs/userguide.pdf @@ -171,222 +171,246 @@ endobj << /S /GoTo /D (section.6) >> endobj 120 0 obj -(6 Data management and initialization routines) +(6 Data management and environment handling routines) endobj 121 0 obj << /S /GoTo /D (section*.33) >> endobj 124 0 obj -(psb\137cdall) +(psb\137init) endobj 125 0 obj << /S /GoTo /D (section*.36) >> endobj 128 0 obj -(psb\137cdins) +(psb\137info) endobj 129 0 obj << /S /GoTo /D (section*.39) >> endobj 132 0 obj -(psb\137cdasb) +(psb\137exit) endobj 133 0 obj << /S /GoTo /D (section*.42) >> endobj 136 0 obj -(psb\137cdcpy) +(psb\137barrier) endobj 137 0 obj << /S /GoTo /D (section*.44) >> endobj 140 0 obj -(psb\137cdfree) +(psb\137cdall) endobj 141 0 obj -<< /S /GoTo /D (section*.46) >> +<< /S /GoTo /D (section*.47) >> endobj 144 0 obj -(psb\137spall) +(psb\137cdins) endobj 145 0 obj -<< /S /GoTo /D (section*.49) >> +<< /S /GoTo /D (section*.50) >> endobj 148 0 obj -(psb\137spins) +(psb\137cdasb) endobj 149 0 obj -<< /S /GoTo /D (section*.52) >> +<< /S /GoTo /D (section*.53) >> endobj 152 0 obj -(psb\137spasb) +(psb\137cdcpy) endobj 153 0 obj << /S /GoTo /D (section*.55) >> endobj 156 0 obj -(psb\137spfree) +(psb\137cdfree) endobj 157 0 obj << /S /GoTo /D (section*.57) >> endobj 160 0 obj -(psb\137sprn) +(psb\137spall) endobj 161 0 obj << /S /GoTo /D (section*.60) >> endobj 164 0 obj -(psb\137geall) +(psb\137spins) endobj 165 0 obj -<< /S /GoTo /D (section*.62) >> +<< /S /GoTo /D (section*.63) >> endobj 168 0 obj -(psb\137geins) +(psb\137spasb) endobj 169 0 obj -<< /S /GoTo /D (section*.65) >> +<< /S /GoTo /D (section*.66) >> endobj 172 0 obj -(psb\137geasb) +(psb\137spfree) endobj 173 0 obj -<< /S /GoTo /D (section*.67) >> +<< /S /GoTo /D (section*.68) >> endobj 176 0 obj -(psb\137gefree) +(psb\137sprn) endobj 177 0 obj -<< /S /GoTo /D (section*.69) >> +<< /S /GoTo /D (section*.71) >> endobj 180 0 obj -(psb\137gelp) +(psb\137geall) endobj 181 0 obj -<< /S /GoTo /D (section*.71) >> +<< /S /GoTo /D (section*.73) >> endobj 184 0 obj -(psb\137glob\137to\137loc) +(psb\137geins) endobj 185 0 obj -<< /S /GoTo /D (section*.73) >> +<< /S /GoTo /D (section*.76) >> endobj 188 0 obj -(psb\137loc\137to\137glob) +(psb\137geasb) endobj 189 0 obj -<< /S /GoTo /D (section.7) >> +<< /S /GoTo /D (section*.78) >> endobj 192 0 obj -(7 Iterative Methods) +(psb\137gefree) endobj 193 0 obj -<< /S /GoTo /D (section*.75) >> +<< /S /GoTo /D (section*.80) >> endobj 196 0 obj -(psb\137cg ) +(psb\137gelp) endobj 197 0 obj -<< /S /GoTo /D (section*.77) >> +<< /S /GoTo /D (section*.82) >> endobj 200 0 obj -(psb\137cgs ) +(psb\137glob\137to\137loc) endobj 201 0 obj -<< /S /GoTo /D (section*.79) >> +<< /S /GoTo /D (section*.84) >> endobj 204 0 obj -(psb\137bicg ) +(psb\137loc\137to\137glob) endobj 205 0 obj -<< /S /GoTo /D (section*.81) >> +<< /S /GoTo /D (section.7) >> endobj 208 0 obj -(psb\137bicgstab ) +(7 Iterative Methods) endobj 209 0 obj -<< /S /GoTo /D (section*.83) >> +<< /S /GoTo /D (section*.86) >> endobj 212 0 obj -(psb\137bicgstabl ) +(psb\137cg ) endobj 213 0 obj -<< /S /GoTo /D (section*.85) >> +<< /S /GoTo /D (section*.88) >> endobj 216 0 obj -(psb\137gmres ) +(psb\137cgs ) endobj 217 0 obj -<< /S /GoTo /D (section.8) >> +<< /S /GoTo /D (section*.90) >> endobj 220 0 obj -(8 Preconditioner routines) +(psb\137bicg ) endobj 221 0 obj -<< /S /GoTo /D (section*.87) >> +<< /S /GoTo /D (section*.92) >> endobj 224 0 obj -(psb\137precset) +(psb\137bicgstab ) endobj 225 0 obj -<< /S /GoTo /D (section*.90) >> +<< /S /GoTo /D (section*.94) >> endobj 228 0 obj -(psb\137precbld) +(psb\137bicgstabl ) endobj 229 0 obj -<< /S /GoTo /D (section*.92) >> +<< /S /GoTo /D (section*.96) >> endobj 232 0 obj -(psb\137precaply) +(psb\137gmres ) endobj 233 0 obj -<< /S /GoTo /D (section*.95) >> +<< /S /GoTo /D (section.8) >> endobj 236 0 obj -(psb\137prec\137descr) +(8 Preconditioner routines) endobj 237 0 obj -<< /S /GoTo /D (section.9) >> +<< /S /GoTo /D (section*.98) >> endobj 240 0 obj -(9 Error handling) +(psb\137precset) endobj 241 0 obj -<< /S /GoTo /D (section*.97) >> +<< /S /GoTo /D (section*.101) >> endobj 244 0 obj -(psb\137errpush) +(psb\137precbld) endobj 245 0 obj -<< /S /GoTo /D (section*.99) >> +<< /S /GoTo /D (section*.103) >> endobj 248 0 obj -(psb\137error) +(psb\137precaply) endobj 249 0 obj -<< /S /GoTo /D (section*.101) >> +<< /S /GoTo /D (section*.106) >> endobj 252 0 obj -(psb\137set\137errverbosity) +(psb\137prec\137descr) endobj 253 0 obj -<< /S /GoTo /D (section*.103) >> +<< /S /GoTo /D (section.9) >> endobj 256 0 obj -(psb\137set\137erraction) +(9 Error handling) endobj 257 0 obj -<< /S /GoTo /D (section*.105) >> +<< /S /GoTo /D (section*.108) >> endobj 260 0 obj -(psb\137errcomm) +(psb\137errpush) endobj 261 0 obj -<< /S /GoTo /D [262 0 R /Fit ] >> +<< /S /GoTo /D (section*.110) >> +endobj +264 0 obj +(psb\137error) +endobj +265 0 obj +<< /S /GoTo /D (section*.112) >> +endobj +268 0 obj +(psb\137set\137errverbosity) +endobj +269 0 obj +<< /S /GoTo /D (section*.114) >> +endobj +272 0 obj +(psb\137set\137erraction) +endobj +273 0 obj +<< /S /GoTo /D (section*.116) >> +endobj +276 0 obj +(psb\137errcomm) +endobj +277 0 obj +<< /S /GoTo /D [278 0 R /Fit ] >> endobj -264 0 obj << +280 0 obj << /Length 954 >> stream @@ -419,7 +443,7 @@ ET 0 g 0 G 1 0 0 1 -350.899 -402.693 cm BT -/F29 9.963 Tf 355.88 402.693 Td[(b)32(y)-383(Sal)-1(v)64(ator)1(e)-384(F)1(i)-1(li)-1(p)1(p)-32(one)]TJ 12.89 -18.597 Td[(and)-383(Al)-1(fredo)-383(Buttari)]TJ/F8 9.963 Tf -115.34 -25.238 Td[(\134T)83(or)-333(V)84(e)-1(rgat)1(a")-334(Un)1(iv)28(ersit)28(y)-333(of)-333(Rom)-1(e.)-444(Ma)28(y)-333(25,)-333(2006)]TJ +/F29 9.963 Tf 355.88 402.693 Td[(b)32(y)-383(Sal)-1(v)64(ator)1(e)-384(F)1(i)-1(li)-1(p)1(p)-32(one)]TJ 12.89 -18.597 Td[(and)-383(Al)-1(fredo)-383(Buttari)]TJ/F8 9.963 Tf -115.34 -25.238 Td[(\134T)83(or)-333(V)84(e)-1(rgat)1(a")-334(Un)1(iv)28(ersit)28(y)-333(of)-333(Rom)-1(e.)-444(Ma)28(y)-333(26,)-333(2006)]TJ ET 1 0 0 1 99.895 90.438 cm 0 g 0 G @@ -427,28 +451,28 @@ ET 0 g 0 G endstream endobj -262 0 obj << +278 0 obj << /Type /Page -/Contents 264 0 R -/Resources 263 0 R +/Contents 280 0 R +/Resources 279 0 R /MediaBox [0 0 595.276 841.89] -/Parent 279 0 R +/Parent 295 0 R >> endobj -265 0 obj << -/D [262 0 R /XYZ 99.895 740.998 null] +281 0 obj << +/D [278 0 R /XYZ 99.895 740.998 null] >> endobj -266 0 obj << -/D [262 0 R /XYZ 99.895 716.092 null] +282 0 obj << +/D [278 0 R /XYZ 99.895 716.092 null] >> endobj 6 0 obj << -/D [262 0 R /XYZ 99.895 716.092 null] +/D [278 0 R /XYZ 99.895 716.092 null] >> endobj -263 0 obj << -/Font << /F18 269 0 R /F20 272 0 R /F29 275 0 R /F8 278 0 R >> +279 0 obj << +/Font << /F18 285 0 R /F20 288 0 R /F29 291 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -282 0 obj << -/Length 28593 +298 0 obj << +/Length 28628 >> stream 1 0 0 1 99.895 740.998 cm @@ -1145,11 +1169,11 @@ ET 0 0 1 rg 0 0 1 RG 1 0 0 1 -99.895 -303.468 cm BT -/F29 9.963 Tf 99.895 303.468 Td[(6)-925(Data)-383(m)-1(anagemen)32(t)-383(and)-383(i)-1(niti)-1(ali)-1(zation)-384(r)1(outi)-1(nes)]TJ +/F29 9.963 Tf 99.895 303.468 Td[(6)-925(Data)-383(m)-1(anagemen)32(t)-383(and)-383(e)-1(n)33(vi)-1(r)1(onm)-1(en)32(t)-383(handling)-384(r)1(outi)-1(nes)]TJ ET -1 0 0 1 339.407 303.468 cm +1 0 0 1 386.293 303.468 cm 0 g 0 G -1 0 0 1 -339.407 -303.468 cm +1 0 0 1 -386.293 -303.468 cm BT /F29 9.963 Tf 432.149 303.468 Td[(39)]TJ ET @@ -1170,11 +1194,11 @@ S Q 1 0 0 1 -130.436 -291.259 cm BT -/F8 9.963 Tf 133.425 291.259 Td[(cdall)]TJ +/F8 9.963 Tf 133.425 291.259 Td[(in)1(it)]TJ ET -1 0 0 1 153.904 291.259 cm +1 0 0 1 148.369 291.259 cm 0 g 0 G -1 0 0 1 -153.904 -291.259 cm +1 0 0 1 -148.369 -291.259 cm BT /F8 9.963 Tf 156.626 291.259 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET @@ -1203,19 +1227,19 @@ S Q 1 0 0 1 -130.436 -279.049 cm BT -/F8 9.963 Tf 133.425 279.049 Td[(cdin)1(s)]TJ +/F8 9.963 Tf 133.425 279.049 Td[(in)1(fo)]TJ ET -1 0 0 1 155.62 279.049 cm +1 0 0 1 149.753 279.049 cm 0 g 0 G -1 0 0 1 -155.62 -279.049 cm +1 0 0 1 -149.753 -279.049 cm BT -/F8 9.963 Tf 164.375 279.049 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 156.626 279.049 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET 1 0 0 1 433.644 279.049 cm 0 g 0 G 1 0 0 1 -433.644 -279.049 cm BT -/F8 9.963 Tf 433.644 279.049 Td[(42)]TJ +/F8 9.963 Tf 433.644 279.049 Td[(41)]TJ ET 1 0 0 1 443.606 279.049 cm 0 g 0 G @@ -1236,19 +1260,19 @@ S Q 1 0 0 1 -130.436 -266.84 cm BT -/F8 9.963 Tf 133.425 266.84 Td[(cdasb)]TJ +/F8 9.963 Tf 133.425 266.84 Td[(exit)]TJ ET -1 0 0 1 157.834 266.84 cm +1 0 0 1 149.753 266.84 cm 0 g 0 G -1 0 0 1 -157.834 -266.84 cm +1 0 0 1 -149.753 -266.84 cm BT -/F8 9.963 Tf 164.375 266.84 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 156.626 266.84 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET 1 0 0 1 433.644 266.84 cm 0 g 0 G 1 0 0 1 -433.644 -266.84 cm BT -/F8 9.963 Tf 433.644 266.84 Td[(43)]TJ +/F8 9.963 Tf 433.644 266.84 Td[(42)]TJ ET 1 0 0 1 443.606 266.84 cm 0 g 0 G @@ -1269,19 +1293,19 @@ S Q 1 0 0 1 -130.436 -254.63 cm BT -/F8 9.963 Tf 133.425 254.63 Td[(cdcp)28(y)]TJ +/F8 9.963 Tf 133.425 254.63 Td[(bar)1(rier)]TJ ET -1 0 0 1 158.332 254.63 cm +1 0 0 1 162.843 254.63 cm 0 g 0 G -1 0 0 1 -158.332 -254.63 cm +1 0 0 1 -162.843 -254.63 cm BT -/F8 9.963 Tf 164.375 254.63 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 172.123 254.63 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ ET 1 0 0 1 433.644 254.63 cm 0 g 0 G 1 0 0 1 -433.644 -254.63 cm BT -/F8 9.963 Tf 433.644 254.63 Td[(44)]TJ +/F8 9.963 Tf 433.644 254.63 Td[(43)]TJ ET 1 0 0 1 443.606 254.63 cm 0 g 0 G @@ -1302,19 +1326,19 @@ S Q 1 0 0 1 -130.436 -242.421 cm BT -/F8 9.963 Tf 133.425 242.421 Td[(cdfr)1(e)-1(e)]TJ +/F8 9.963 Tf 133.425 242.421 Td[(cdall)]TJ ET -1 0 0 1 159.19 242.421 cm +1 0 0 1 153.904 242.421 cm 0 g 0 G -1 0 0 1 -159.19 -242.421 cm +1 0 0 1 -153.904 -242.421 cm BT -/F8 9.963 Tf 164.375 242.421 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 156.626 242.421 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET 1 0 0 1 433.644 242.421 cm 0 g 0 G 1 0 0 1 -433.644 -242.421 cm BT -/F8 9.963 Tf 433.644 242.421 Td[(45)]TJ +/F8 9.963 Tf 433.644 242.421 Td[(44)]TJ ET 1 0 0 1 443.606 242.421 cm 0 g 0 G @@ -1335,13 +1359,13 @@ S Q 1 0 0 1 -130.436 -230.211 cm BT -/F8 9.963 Tf 133.425 230.211 Td[(spall)]TJ +/F8 9.963 Tf 133.425 230.211 Td[(cdin)1(s)]TJ ET -1 0 0 1 153.406 230.211 cm +1 0 0 1 155.62 230.211 cm 0 g 0 G -1 0 0 1 -153.406 -230.211 cm +1 0 0 1 -155.62 -230.211 cm BT -/F8 9.963 Tf 156.626 230.211 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ +/F8 9.963 Tf 164.375 230.211 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET 1 0 0 1 433.644 230.211 cm 0 g 0 G @@ -1368,11 +1392,11 @@ S Q 1 0 0 1 -130.436 -218.002 cm BT -/F8 9.963 Tf 133.425 218.002 Td[(spin)1(s)]TJ +/F8 9.963 Tf 133.425 218.002 Td[(cdasb)]TJ ET -1 0 0 1 155.122 218.002 cm +1 0 0 1 157.834 218.002 cm 0 g 0 G -1 0 0 1 -155.122 -218.002 cm +1 0 0 1 -157.834 -218.002 cm BT /F8 9.963 Tf 164.375 218.002 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET @@ -1401,11 +1425,11 @@ S Q 1 0 0 1 -130.436 -205.792 cm BT -/F8 9.963 Tf 133.425 205.792 Td[(spasb)]TJ +/F8 9.963 Tf 133.425 205.792 Td[(cdcp)28(y)]TJ ET -1 0 0 1 157.336 205.792 cm +1 0 0 1 158.332 205.792 cm 0 g 0 G -1 0 0 1 -157.336 -205.792 cm +1 0 0 1 -158.332 -205.792 cm BT /F8 9.963 Tf 164.375 205.792 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET @@ -1413,7 +1437,7 @@ ET 0 g 0 G 1 0 0 1 -433.644 -205.792 cm BT -/F8 9.963 Tf 433.644 205.792 Td[(49)]TJ +/F8 9.963 Tf 433.644 205.792 Td[(48)]TJ ET 1 0 0 1 443.606 205.792 cm 0 g 0 G @@ -1434,11 +1458,11 @@ S Q 1 0 0 1 -130.436 -193.583 cm BT -/F8 9.963 Tf 133.425 193.583 Td[(spfr)1(e)-1(e)]TJ +/F8 9.963 Tf 133.425 193.583 Td[(cdfr)1(e)-1(e)]TJ ET -1 0 0 1 158.692 193.583 cm +1 0 0 1 159.19 193.583 cm 0 g 0 G -1 0 0 1 -158.692 -193.583 cm +1 0 0 1 -159.19 -193.583 cm BT /F8 9.963 Tf 164.375 193.583 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET @@ -1446,7 +1470,7 @@ ET 0 g 0 G 1 0 0 1 -433.644 -193.583 cm BT -/F8 9.963 Tf 433.644 193.583 Td[(51)]TJ +/F8 9.963 Tf 433.644 193.583 Td[(49)]TJ ET 1 0 0 1 443.606 193.583 cm 0 g 0 G @@ -1467,11 +1491,11 @@ S Q 1 0 0 1 -130.436 -181.373 cm BT -/F8 9.963 Tf 133.425 181.373 Td[(sprn)]TJ +/F8 9.963 Tf 133.425 181.373 Td[(spall)]TJ ET -1 0 0 1 152.327 181.373 cm +1 0 0 1 153.406 181.373 cm 0 g 0 G -1 0 0 1 -152.327 -181.373 cm +1 0 0 1 -153.406 -181.373 cm BT /F8 9.963 Tf 156.626 181.373 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET @@ -1479,7 +1503,7 @@ ET 0 g 0 G 1 0 0 1 -433.644 -181.373 cm BT -/F8 9.963 Tf 433.644 181.373 Td[(52)]TJ +/F8 9.963 Tf 433.644 181.373 Td[(50)]TJ ET 1 0 0 1 443.606 181.373 cm 0 g 0 G @@ -1500,19 +1524,19 @@ S Q 1 0 0 1 -130.436 -169.163 cm BT -/F8 9.963 Tf 133.425 169.163 Td[(geall)]TJ +/F8 9.963 Tf 133.425 169.163 Td[(spin)1(s)]TJ ET -1 0 0 1 153.351 169.163 cm +1 0 0 1 155.122 169.163 cm 0 g 0 G -1 0 0 1 -153.351 -169.163 cm +1 0 0 1 -155.122 -169.163 cm BT -/F8 9.963 Tf 156.626 169.163 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ +/F8 9.963 Tf 164.375 169.163 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET 1 0 0 1 433.644 169.163 cm 0 g 0 G 1 0 0 1 -433.644 -169.163 cm BT -/F8 9.963 Tf 433.644 169.163 Td[(53)]TJ +/F8 9.963 Tf 433.644 169.163 Td[(51)]TJ ET 1 0 0 1 443.606 169.163 cm 0 g 0 G @@ -1533,11 +1557,11 @@ S Q 1 0 0 1 -130.436 -156.954 cm BT -/F8 9.963 Tf 133.425 156.954 Td[(geins)]TJ +/F8 9.963 Tf 133.425 156.954 Td[(spasb)]TJ ET -1 0 0 1 155.066 156.954 cm +1 0 0 1 157.336 156.954 cm 0 g 0 G -1 0 0 1 -155.066 -156.954 cm +1 0 0 1 -157.336 -156.954 cm BT /F8 9.963 Tf 164.375 156.954 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET @@ -1545,7 +1569,7 @@ ET 0 g 0 G 1 0 0 1 -433.644 -156.954 cm BT -/F8 9.963 Tf 433.644 156.954 Td[(54)]TJ +/F8 9.963 Tf 433.644 156.954 Td[(53)]TJ ET 1 0 0 1 443.606 156.954 cm 0 g 0 G @@ -1566,11 +1590,11 @@ S Q 1 0 0 1 -130.436 -144.744 cm BT -/F8 9.963 Tf 133.425 144.744 Td[(geas)-1(b)]TJ +/F8 9.963 Tf 133.425 144.744 Td[(spfr)1(e)-1(e)]TJ ET -1 0 0 1 157.28 144.744 cm +1 0 0 1 158.692 144.744 cm 0 g 0 G -1 0 0 1 -157.28 -144.744 cm +1 0 0 1 -158.692 -144.744 cm BT /F8 9.963 Tf 164.375 144.744 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET @@ -1578,7 +1602,7 @@ ET 0 g 0 G 1 0 0 1 -433.644 -144.744 cm BT -/F8 9.963 Tf 433.644 144.744 Td[(56)]TJ +/F8 9.963 Tf 433.644 144.744 Td[(55)]TJ ET 1 0 0 1 443.606 144.744 cm 0 g 0 G @@ -1599,19 +1623,19 @@ S Q 1 0 0 1 -130.436 -132.535 cm BT -/F8 9.963 Tf 133.425 132.535 Td[(gefree)]TJ +/F8 9.963 Tf 133.425 132.535 Td[(sprn)]TJ ET -1 0 0 1 158.636 132.535 cm +1 0 0 1 152.327 132.535 cm 0 g 0 G -1 0 0 1 -158.636 -132.535 cm +1 0 0 1 -152.327 -132.535 cm BT -/F8 9.963 Tf 164.375 132.535 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 156.626 132.535 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET 1 0 0 1 433.644 132.535 cm 0 g 0 G 1 0 0 1 -433.644 -132.535 cm BT -/F8 9.963 Tf 433.644 132.535 Td[(57)]TJ +/F8 9.963 Tf 433.644 132.535 Td[(56)]TJ ET 1 0 0 1 443.606 132.535 cm 0 g 0 G @@ -1632,11 +1656,11 @@ S Q 1 0 0 1 -130.436 -120.325 cm BT -/F8 9.963 Tf 133.425 120.325 Td[(gelp)]TJ +/F8 9.963 Tf 133.425 120.325 Td[(geall)]TJ ET -1 0 0 1 151.137 120.325 cm +1 0 0 1 153.351 120.325 cm 0 g 0 G -1 0 0 1 -151.137 -120.325 cm +1 0 0 1 -153.351 -120.325 cm BT /F8 9.963 Tf 156.626 120.325 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET @@ -1644,7 +1668,7 @@ ET 0 g 0 G 1 0 0 1 -433.644 -120.325 cm BT -/F8 9.963 Tf 433.644 120.325 Td[(58)]TJ +/F8 9.963 Tf 433.644 120.325 Td[(57)]TJ ET 1 0 0 1 443.606 120.325 cm 0 g 0 G @@ -1658,327 +1682,327 @@ ET 0 g 0 G endstream endobj -281 0 obj << +297 0 obj << /Type /Page -/Contents 282 0 R -/Resources 280 0 R +/Contents 298 0 R +/Resources 296 0 R /MediaBox [0 0 595.276 841.89] -/Parent 279 0 R -/Annots [ 285 0 R 286 0 R 287 0 R 288 0 R 289 0 R 290 0 R 291 0 R 292 0 R 293 0 R 294 0 R 295 0 R 296 0 R 297 0 R 298 0 R 299 0 R 300 0 R 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R ] +/Parent 295 0 R +/Annots [ 301 0 R 302 0 R 303 0 R 304 0 R 305 0 R 306 0 R 307 0 R 308 0 R 309 0 R 310 0 R 311 0 R 312 0 R 313 0 R 314 0 R 315 0 R 316 0 R 317 0 R 318 0 R 319 0 R 320 0 R 321 0 R 322 0 R 323 0 R 324 0 R 325 0 R 326 0 R 327 0 R 328 0 R 329 0 R 330 0 R 331 0 R 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R ] >> endobj -285 0 obj << +301 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 682.791 179.001 691.702] /Subtype /Link /A << /S /GoTo /D (section.1) >> >> endobj -286 0 obj << +302 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 660.449 202.863 669.36] /Subtype /Link /A << /S /GoTo /D (section.2) >> >> endobj -287 0 obj << +303 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 646.302 232.122 657.151] /Subtype /Link /A << /S /GoTo /D (subsection.2.1) >> >> endobj -288 0 obj << +304 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 634.093 227.777 644.941] /Subtype /Link /A << /S /GoTo /D (subsection.2.2) >> >> endobj -289 0 obj << +305 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 613.688 196.34 622.516] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -290 0 obj << +306 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 599.541 249.529 610.39] /Subtype /Link /A << /S /GoTo /D (subsection.3.1) >> >> endobj -291 0 obj << +307 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 589.269 248.228 598.18] /Subtype /Link /A << /S /GoTo /D (subsubsection.3.1.1) >> >> endobj -292 0 obj << +308 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 575.122 265.718 585.971] /Subtype /Link /A << /S /GoTo /D (subsection.3.2) >> >> endobj -293 0 obj << +309 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 564.85 248.228 573.761] /Subtype /Link /A << /S /GoTo /D (subsubsection.3.2.1) >> >> endobj -294 0 obj << +310 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 552.641 268.015 561.552] /Subtype /Link /A << /S /GoTo /D (subsection.3.3) >> >> endobj -295 0 obj << +311 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [136.757 540.431 248.228 549.342] /Subtype /Link /A << /S /GoTo /D (subsubsection.3.3.1) >> >> endobj -296 0 obj << +312 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 516.152 235.028 527] /Subtype /Link /A << /S /GoTo /D (section.4) >> >> endobj -297 0 obj << +313 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 503.942 170.121 514.791] /Subtype /Link /A << /S /GoTo /D (section*.2) >> >> endobj -298 0 obj << +314 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 491.733 158.221 502.581] /Subtype /Link /A << /S /GoTo /D (section*.4) >> >> endobj -299 0 obj << +315 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 479.523 158.221 490.372] /Subtype /Link /A << /S /GoTo /D (section*.6) >> >> endobj -300 0 obj << +316 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 467.314 167.354 478.162] /Subtype /Link /A << /S /GoTo /D (section*.8) >> >> endobj -301 0 obj << +317 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 455.104 167.354 465.953] /Subtype /Link /A << /S /GoTo /D (section*.10) >> >> endobj -302 0 obj << +318 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 442.895 166.579 453.743] /Subtype /Link /A << /S /GoTo /D (section*.12) >> >> endobj -303 0 obj << +319 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 430.685 166.551 441.533] /Subtype /Link /A << /S /GoTo /D (section*.14) >> >> endobj -304 0 obj << +320 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 418.476 164.393 429.324] /Subtype /Link /A << /S /GoTo /D (section*.16) >> >> endobj -305 0 obj << +321 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 406.266 160.49 417.114] /Subtype /Link /A << /S /GoTo /D (section*.18) >> >> endobj -306 0 obj << +322 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 394.057 156.118 404.905] /Subtype /Link /A << /S /GoTo /D (section*.20) >> >> endobj -307 0 obj << +323 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [98.899 373.652 239.325 382.563] /Subtype /Link /A << /S /GoTo /D (section.5) >> >> endobj -308 0 obj << +324 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 359.505 152.686 370.354] /Subtype /Link /A << /S /GoTo /D (section*.22) >> >> endobj -309 0 obj << +325 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 347.296 151.054 358.144] /Subtype /Link /A << /S /GoTo /D (section*.24) >> >> endobj -310 0 obj << +326 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 335.086 162.123 345.934] /Subtype /Link /A << /S /GoTo /D (section*.27) >> >> endobj -311 0 obj << +327 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [113.843 322.877 163.839 333.725] /Subtype /Link /A << /S /GoTo /D (section*.30) >> >> endobj -312 0 obj << +328 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [98.899 300.535 340.403 311.383] +/Rect [98.899 300.535 387.29 311.383] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -313 0 obj << +329 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 288.325 154.9 299.174] +/Rect [113.843 288.325 149.366 299.174] /Subtype /Link /A << /S /GoTo /D (section*.33) >> >> endobj -314 0 obj << +330 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 276.116 156.616 286.964] +/Rect [113.843 276.116 150.749 286.964] /Subtype /Link /A << /S /GoTo /D (section*.36) >> >> endobj -315 0 obj << +331 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 263.906 158.83 274.755] +/Rect [113.843 263.906 150.749 274.755] /Subtype /Link /A << /S /GoTo /D (section*.39) >> >> endobj -316 0 obj << +332 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 251.697 159.328 262.545] +/Rect [113.843 251.697 163.839 262.545] /Subtype /Link /A << /S /GoTo /D (section*.42) >> >> endobj -317 0 obj << +333 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 239.487 160.186 250.335] +/Rect [113.843 239.487 154.9 250.335] /Subtype /Link /A << /S /GoTo /D (section*.44) >> >> endobj -318 0 obj << +334 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 227.278 154.402 238.126] +/Rect [113.843 227.278 156.616 238.126] /Subtype /Link -/A << /S /GoTo /D (section*.46) >> +/A << /S /GoTo /D (section*.47) >> >> endobj -319 0 obj << +335 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 215.068 156.118 225.916] +/Rect [113.843 215.068 158.83 225.916] /Subtype /Link -/A << /S /GoTo /D (section*.49) >> +/A << /S /GoTo /D (section*.50) >> >> endobj -320 0 obj << +336 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 202.859 158.332 213.707] +/Rect [113.843 202.859 159.328 213.707] /Subtype /Link -/A << /S /GoTo /D (section*.52) >> +/A << /S /GoTo /D (section*.53) >> >> endobj -321 0 obj << +337 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 190.649 159.688 201.497] +/Rect [113.843 190.649 160.186 201.497] /Subtype /Link /A << /S /GoTo /D (section*.55) >> >> endobj -322 0 obj << +338 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 178.44 153.323 189.288] +/Rect [113.843 178.44 154.402 189.288] /Subtype /Link /A << /S /GoTo /D (section*.57) >> >> endobj -323 0 obj << +339 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 166.23 154.347 177.078] +/Rect [113.843 166.23 156.118 177.078] /Subtype /Link /A << /S /GoTo /D (section*.60) >> >> endobj -324 0 obj << +340 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 154.02 156.063 164.869] +/Rect [113.843 154.02 158.332 164.869] /Subtype /Link -/A << /S /GoTo /D (section*.62) >> +/A << /S /GoTo /D (section*.63) >> >> endobj -325 0 obj << +341 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 141.811 158.277 152.659] +/Rect [113.843 141.811 159.688 152.659] /Subtype /Link -/A << /S /GoTo /D (section*.65) >> +/A << /S /GoTo /D (section*.66) >> >> endobj -326 0 obj << +342 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 129.601 159.633 140.45] +/Rect [113.843 129.601 153.323 140.45] /Subtype /Link -/A << /S /GoTo /D (section*.67) >> +/A << /S /GoTo /D (section*.68) >> >> endobj -327 0 obj << +343 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [113.843 117.392 152.133 128.24] +/Rect [113.843 117.392 154.347 128.24] /Subtype /Link -/A << /S /GoTo /D (section*.69) >> +/A << /S /GoTo /D (section*.71) >> >> endobj -283 0 obj << -/D [281 0 R /XYZ 99.895 740.998 null] +299 0 obj << +/D [297 0 R /XYZ 99.895 740.998 null] >> endobj -284 0 obj << -/D [281 0 R /XYZ 99.895 696.081 null] +300 0 obj << +/D [297 0 R /XYZ 99.895 696.081 null] >> endobj -280 0 obj << -/Font << /F18 269 0 R /F29 275 0 R /F8 278 0 R >> +296 0 obj << +/Font << /F18 285 0 R /F29 291 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -330 0 obj << -/Length 14900 +346 0 obj << +/Length 17948 >> stream 1 0 0 1 150.705 740.998 cm @@ -2002,45 +2026,19 @@ S Q 1 0 0 1 -181.246 -706.129 cm BT -/F8 9.963 Tf 184.235 706.129 Td[(glob)]TJ -ET -1 0 0 1 203.097 706.129 cm -q -[]0 d -0 J -0.398 w -0 0.199 m -2.989 0.199 l -S -Q -1 0 0 1 -203.097 -706.129 cm -BT -/F8 9.963 Tf 206.086 706.129 Td[(to)]TJ -ET -1 0 0 1 215.54 706.129 cm -q -[]0 d -0 J -0.398 w -0 0.199 m -2.989 0.199 l -S -Q -1 0 0 1 -215.54 -706.129 cm -BT -/F8 9.963 Tf 218.528 706.129 Td[(lo)-28(c)]TJ +/F8 9.963 Tf 184.235 706.129 Td[(geins)]TJ ET -1 0 0 1 230.982 706.129 cm +1 0 0 1 205.876 706.129 cm 0 g 0 G -1 0 0 1 -230.982 -706.129 cm +1 0 0 1 -205.876 -706.129 cm BT -/F8 9.963 Tf 238.43 706.129 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)]TJ +/F8 9.963 Tf 215.184 706.129 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET 1 0 0 1 484.453 706.129 cm 0 g 0 G 1 0 0 1 -484.453 -706.129 cm BT -/F8 9.963 Tf 484.453 706.129 Td[(59)]TJ +/F8 9.963 Tf 484.453 706.129 Td[(58)]TJ ET 1 0 0 1 494.416 706.129 cm 0 g 0 G @@ -2061,39 +2059,13 @@ S Q 1 0 0 1 -181.246 -694.174 cm BT -/F8 9.963 Tf 184.235 694.174 Td[(lo)-28(c)]TJ -ET -1 0 0 1 197.286 694.174 cm -q -[]0 d -0 J -0.398 w -0 0.199 m -2.989 0.199 l -S -Q -1 0 0 1 -197.286 -694.174 cm -BT -/F8 9.963 Tf 200.275 694.174 Td[(to)]TJ -ET -1 0 0 1 209.728 694.174 cm -q -[]0 d -0 J -0.398 w -0 0.199 m -2.989 0.199 l -S -Q -1 0 0 1 -209.728 -694.174 cm -BT -/F8 9.963 Tf 212.717 694.174 Td[(glob)]TJ +/F8 9.963 Tf 184.235 694.174 Td[(geas)-1(b)]TJ ET -1 0 0 1 230.982 694.174 cm +1 0 0 1 208.09 694.174 cm 0 g 0 G -1 0 0 1 -230.982 -694.174 cm +1 0 0 1 -208.09 -694.174 cm BT -/F8 9.963 Tf 238.43 694.174 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)]TJ +/F8 9.963 Tf 215.184 694.174 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET 1 0 0 1 484.453 694.174 cm 0 g 0 G @@ -2103,25 +2075,13 @@ BT ET 1 0 0 1 494.416 694.174 cm 0 g 0 G -1 0 0 1 -343.711 -21.918 cm -0 0 1 rg 0 0 1 RG -1 0 0 1 -150.705 -672.256 cm -BT -/F29 9.963 Tf 150.705 672.256 Td[(7)-925(Iterati)-1(v)32(e)-383(Metho)-32(d)1(s)]TJ -ET -1 0 0 1 256.303 672.256 cm -0 g 0 G -1 0 0 1 -256.303 -672.256 cm -BT -/F29 9.963 Tf 482.959 672.256 Td[(61)]TJ -ET -1 0 0 1 165.649 660.301 cm +1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -660.301 cm +1 0 0 1 -165.649 -682.219 cm BT -/F8 9.963 Tf 165.649 660.301 Td[(psb)]TJ +/F8 9.963 Tf 165.649 682.219 Td[(psb)]TJ ET -1 0 0 1 181.246 660.301 cm +1 0 0 1 181.246 682.219 cm q []0 d 0 J @@ -2130,31 +2090,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -660.301 cm +1 0 0 1 -181.246 -682.219 cm BT -/F8 9.963 Tf 184.235 660.301 Td[(cg)]TJ +/F8 9.963 Tf 184.235 682.219 Td[(gefree)]TJ ET -1 0 0 1 196.965 660.301 cm +1 0 0 1 209.446 682.219 cm 0 g 0 G -1 0 0 1 -196.965 -660.301 cm +1 0 0 1 -209.446 -682.219 cm BT -/F8 9.963 Tf 199.687 660.301 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 215.184 682.219 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET -1 0 0 1 484.453 660.301 cm +1 0 0 1 484.453 682.219 cm 0 g 0 G -1 0 0 1 -484.453 -660.301 cm +1 0 0 1 -484.453 -682.219 cm BT -/F8 9.963 Tf 484.453 660.301 Td[(62)]TJ +/F8 9.963 Tf 484.453 682.219 Td[(61)]TJ ET -1 0 0 1 494.416 660.301 cm +1 0 0 1 494.416 682.219 cm 0 g 0 G -1 0 0 1 -328.767 -11.955 cm +1 0 0 1 -328.767 -11.956 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -648.346 cm +1 0 0 1 -165.649 -670.263 cm BT -/F8 9.963 Tf 165.649 648.346 Td[(psb)]TJ +/F8 9.963 Tf 165.649 670.263 Td[(psb)]TJ ET -1 0 0 1 181.246 648.346 cm +1 0 0 1 181.246 670.263 cm q []0 d 0 J @@ -2163,31 +2123,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -648.346 cm +1 0 0 1 -181.246 -670.263 cm BT -/F8 9.963 Tf 184.235 648.346 Td[(cgs)]TJ +/F8 9.963 Tf 184.235 670.263 Td[(gelp)]TJ ET -1 0 0 1 200.894 648.346 cm +1 0 0 1 201.946 670.263 cm 0 g 0 G -1 0 0 1 -200.894 -648.346 cm +1 0 0 1 -201.946 -670.263 cm BT -/F8 9.963 Tf 207.436 648.346 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ +/F8 9.963 Tf 207.436 670.263 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET -1 0 0 1 484.453 648.346 cm +1 0 0 1 484.453 670.263 cm 0 g 0 G -1 0 0 1 -484.453 -648.346 cm +1 0 0 1 -484.453 -670.263 cm BT -/F8 9.963 Tf 484.453 648.346 Td[(64)]TJ +/F8 9.963 Tf 484.453 670.263 Td[(62)]TJ ET -1 0 0 1 494.416 648.346 cm +1 0 0 1 494.416 670.263 cm 0 g 0 G -1 0 0 1 -328.767 -11.956 cm +1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -636.39 cm +1 0 0 1 -165.649 -658.308 cm BT -/F8 9.963 Tf 165.649 636.39 Td[(psb)]TJ +/F8 9.963 Tf 165.649 658.308 Td[(psb)]TJ ET -1 0 0 1 181.246 636.39 cm +1 0 0 1 181.246 658.308 cm q []0 d 0 J @@ -2196,31 +2156,83 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -636.39 cm +1 0 0 1 -181.246 -658.308 cm BT -/F8 9.963 Tf 184.235 636.39 Td[(bi)1(c)-1(g)]TJ +/F8 9.963 Tf 184.235 658.308 Td[(glob)]TJ ET -1 0 0 1 205.267 636.39 cm -0 g 0 G -1 0 0 1 -205.267 -636.39 cm +1 0 0 1 203.097 658.308 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -203.097 -658.308 cm +BT +/F8 9.963 Tf 206.086 658.308 Td[(to)]TJ +ET +1 0 0 1 215.54 658.308 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -215.54 -658.308 cm +BT +/F8 9.963 Tf 218.528 658.308 Td[(lo)-28(c)]TJ +ET +1 0 0 1 230.982 658.308 cm +0 g 0 G +1 0 0 1 -230.982 -658.308 cm BT -/F8 9.963 Tf 215.184 636.39 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 238.43 658.308 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)]TJ ET -1 0 0 1 484.453 636.39 cm +1 0 0 1 484.453 658.308 cm 0 g 0 G -1 0 0 1 -484.453 -636.39 cm +1 0 0 1 -484.453 -658.308 cm BT -/F8 9.963 Tf 484.453 636.39 Td[(66)]TJ +/F8 9.963 Tf 484.453 658.308 Td[(63)]TJ ET -1 0 0 1 494.416 636.39 cm +1 0 0 1 494.416 658.308 cm 0 g 0 G 1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -624.435 cm +1 0 0 1 -165.649 -646.353 cm +BT +/F8 9.963 Tf 165.649 646.353 Td[(psb)]TJ +ET +1 0 0 1 181.246 646.353 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -181.246 -646.353 cm +BT +/F8 9.963 Tf 184.235 646.353 Td[(lo)-28(c)]TJ +ET +1 0 0 1 197.286 646.353 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -197.286 -646.353 cm BT -/F8 9.963 Tf 165.649 624.435 Td[(psb)]TJ +/F8 9.963 Tf 200.275 646.353 Td[(to)]TJ ET -1 0 0 1 181.246 624.435 cm +1 0 0 1 209.728 646.353 cm q []0 d 0 J @@ -2229,25 +2241,37 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -624.435 cm +1 0 0 1 -209.728 -646.353 cm BT -/F8 9.963 Tf 184.235 624.435 Td[(bi)1(c)-1(gstab)]TJ +/F8 9.963 Tf 212.717 646.353 Td[(glob)]TJ ET -1 0 0 1 223.587 624.435 cm +1 0 0 1 230.982 646.353 cm 0 g 0 G -1 0 0 1 -223.587 -624.435 cm +1 0 0 1 -230.982 -646.353 cm BT -/F8 9.963 Tf 230.682 624.435 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 238.43 646.353 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)]TJ ET -1 0 0 1 484.453 624.435 cm +1 0 0 1 484.453 646.353 cm 0 g 0 G -1 0 0 1 -484.453 -624.435 cm +1 0 0 1 -484.453 -646.353 cm BT -/F8 9.963 Tf 484.453 624.435 Td[(68)]TJ +/F8 9.963 Tf 484.453 646.353 Td[(64)]TJ ET -1 0 0 1 494.416 624.435 cm +1 0 0 1 494.416 646.353 cm 0 g 0 G -1 0 0 1 -328.767 -11.955 cm +1 0 0 1 -343.711 -21.918 cm +0 0 1 rg 0 0 1 RG +1 0 0 1 -150.705 -624.435 cm +BT +/F29 9.963 Tf 150.705 624.435 Td[(7)-925(Iterati)-1(v)32(e)-383(Metho)-32(d)1(s)]TJ +ET +1 0 0 1 256.303 624.435 cm +0 g 0 G +1 0 0 1 -256.303 -624.435 cm +BT +/F29 9.963 Tf 482.959 624.435 Td[(65)]TJ +ET +1 0 0 1 165.649 612.48 cm 0 0 1 rg 0 0 1 RG 1 0 0 1 -165.649 -612.48 cm BT @@ -2264,19 +2288,19 @@ S Q 1 0 0 1 -181.246 -612.48 cm BT -/F8 9.963 Tf 184.235 612.48 Td[(bi)1(c)-1(gstabl)]TJ +/F8 9.963 Tf 184.235 612.48 Td[(cg)]TJ ET -1 0 0 1 226.355 612.48 cm +1 0 0 1 196.965 612.48 cm 0 g 0 G -1 0 0 1 -226.355 -612.48 cm +1 0 0 1 -196.965 -612.48 cm BT -/F8 9.963 Tf 230.682 612.48 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 199.687 612.48 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ ET 1 0 0 1 484.453 612.48 cm 0 g 0 G 1 0 0 1 -484.453 -612.48 cm BT -/F8 9.963 Tf 484.453 612.48 Td[(70)]TJ +/F8 9.963 Tf 484.453 612.48 Td[(66)]TJ ET 1 0 0 1 494.416 612.48 cm 0 g 0 G @@ -2297,41 +2321,173 @@ S Q 1 0 0 1 -181.246 -600.525 cm BT -/F8 9.963 Tf 184.235 600.525 Td[(gmres)]TJ +/F8 9.963 Tf 184.235 600.525 Td[(cgs)]TJ ET -1 0 0 1 213.099 600.525 cm +1 0 0 1 200.894 600.525 cm 0 g 0 G -1 0 0 1 -213.099 -600.525 cm +1 0 0 1 -200.894 -600.525 cm BT -/F8 9.963 Tf 222.933 600.525 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 207.436 600.525 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)]TJ ET 1 0 0 1 484.453 600.525 cm 0 g 0 G 1 0 0 1 -484.453 -600.525 cm BT -/F8 9.963 Tf 484.453 600.525 Td[(72)]TJ +/F8 9.963 Tf 484.453 600.525 Td[(68)]TJ ET 1 0 0 1 494.416 600.525 cm 0 g 0 G +1 0 0 1 -328.767 -11.955 cm +0 0 1 rg 0 0 1 RG +1 0 0 1 -165.649 -588.57 cm +BT +/F8 9.963 Tf 165.649 588.57 Td[(psb)]TJ +ET +1 0 0 1 181.246 588.57 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -181.246 -588.57 cm +BT +/F8 9.963 Tf 184.235 588.57 Td[(bi)1(c)-1(g)]TJ +ET +1 0 0 1 205.267 588.57 cm +0 g 0 G +1 0 0 1 -205.267 -588.57 cm +BT +/F8 9.963 Tf 215.184 588.57 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +ET +1 0 0 1 484.453 588.57 cm +0 g 0 G +1 0 0 1 -484.453 -588.57 cm +BT +/F8 9.963 Tf 484.453 588.57 Td[(70)]TJ +ET +1 0 0 1 494.416 588.57 cm +0 g 0 G +1 0 0 1 -328.767 -11.955 cm +0 0 1 rg 0 0 1 RG +1 0 0 1 -165.649 -576.615 cm +BT +/F8 9.963 Tf 165.649 576.615 Td[(psb)]TJ +ET +1 0 0 1 181.246 576.615 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -181.246 -576.615 cm +BT +/F8 9.963 Tf 184.235 576.615 Td[(bi)1(c)-1(gstab)]TJ +ET +1 0 0 1 223.587 576.615 cm +0 g 0 G +1 0 0 1 -223.587 -576.615 cm +BT +/F8 9.963 Tf 230.682 576.615 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +ET +1 0 0 1 484.453 576.615 cm +0 g 0 G +1 0 0 1 -484.453 -576.615 cm +BT +/F8 9.963 Tf 484.453 576.615 Td[(72)]TJ +ET +1 0 0 1 494.416 576.615 cm +0 g 0 G +1 0 0 1 -328.767 -11.956 cm +0 0 1 rg 0 0 1 RG +1 0 0 1 -165.649 -564.659 cm +BT +/F8 9.963 Tf 165.649 564.659 Td[(psb)]TJ +ET +1 0 0 1 181.246 564.659 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -181.246 -564.659 cm +BT +/F8 9.963 Tf 184.235 564.659 Td[(bi)1(c)-1(gstabl)]TJ +ET +1 0 0 1 226.355 564.659 cm +0 g 0 G +1 0 0 1 -226.355 -564.659 cm +BT +/F8 9.963 Tf 230.682 564.659 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +ET +1 0 0 1 484.453 564.659 cm +0 g 0 G +1 0 0 1 -484.453 -564.659 cm +BT +/F8 9.963 Tf 484.453 564.659 Td[(74)]TJ +ET +1 0 0 1 494.416 564.659 cm +0 g 0 G +1 0 0 1 -328.767 -11.955 cm +0 0 1 rg 0 0 1 RG +1 0 0 1 -165.649 -552.704 cm +BT +/F8 9.963 Tf 165.649 552.704 Td[(psb)]TJ +ET +1 0 0 1 181.246 552.704 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -181.246 -552.704 cm +BT +/F8 9.963 Tf 184.235 552.704 Td[(gmres)]TJ +ET +1 0 0 1 213.099 552.704 cm +0 g 0 G +1 0 0 1 -213.099 -552.704 cm +BT +/F8 9.963 Tf 222.933 552.704 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +ET +1 0 0 1 484.453 552.704 cm +0 g 0 G +1 0 0 1 -484.453 -552.704 cm +BT +/F8 9.963 Tf 484.453 552.704 Td[(76)]TJ +ET +1 0 0 1 494.416 552.704 cm +0 g 0 G 1 0 0 1 -343.711 -21.918 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -150.705 -578.607 cm +1 0 0 1 -150.705 -530.786 cm BT -/F29 9.963 Tf 150.705 578.607 Td[(8)-925(Precond)1(i)-1(ti)-1(on)1(er)-383(routines)]TJ +/F29 9.963 Tf 150.705 530.786 Td[(8)-925(Precond)1(i)-1(ti)-1(on)1(er)-383(routines)]TJ ET -1 0 0 1 284.288 578.607 cm +1 0 0 1 284.288 530.786 cm 0 g 0 G -1 0 0 1 -284.288 -578.607 cm +1 0 0 1 -284.288 -530.786 cm BT -/F29 9.963 Tf 482.959 578.607 Td[(74)]TJ +/F29 9.963 Tf 482.959 530.786 Td[(78)]TJ ET -1 0 0 1 165.649 566.652 cm +1 0 0 1 165.649 518.831 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -566.652 cm +1 0 0 1 -165.649 -518.831 cm BT -/F8 9.963 Tf 165.649 566.652 Td[(psb)]TJ +/F8 9.963 Tf 165.649 518.831 Td[(psb)]TJ ET -1 0 0 1 181.246 566.652 cm +1 0 0 1 181.246 518.831 cm q []0 d 0 J @@ -2340,31 +2496,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -566.652 cm +1 0 0 1 -181.246 -518.831 cm BT -/F8 9.963 Tf 184.235 566.652 Td[(pr)1(e)-1(cse)-1(t)]TJ +/F8 9.963 Tf 184.235 518.831 Td[(pr)1(e)-1(cse)-1(t)]TJ ET -1 0 0 1 214.759 566.652 cm +1 0 0 1 214.759 518.831 cm 0 g 0 G -1 0 0 1 -214.759 -566.652 cm +1 0 0 1 -214.759 -518.831 cm BT -/F8 9.963 Tf 222.933 566.652 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 222.933 518.831 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ ET -1 0 0 1 484.453 566.652 cm +1 0 0 1 484.453 518.831 cm 0 g 0 G -1 0 0 1 -484.453 -566.652 cm +1 0 0 1 -484.453 -518.831 cm BT -/F8 9.963 Tf 484.453 566.652 Td[(75)]TJ +/F8 9.963 Tf 484.453 518.831 Td[(79)]TJ ET -1 0 0 1 494.416 566.652 cm +1 0 0 1 494.416 518.831 cm 0 g 0 G 1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -554.697 cm +1 0 0 1 -165.649 -506.876 cm BT -/F8 9.963 Tf 165.649 554.697 Td[(psb)]TJ +/F8 9.963 Tf 165.649 506.876 Td[(psb)]TJ ET -1 0 0 1 181.246 554.697 cm +1 0 0 1 181.246 506.876 cm q []0 d 0 J @@ -2373,31 +2529,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -554.697 cm +1 0 0 1 -181.246 -506.876 cm BT -/F8 9.963 Tf 184.235 554.697 Td[(pr)1(e)-1(cbl)1(d)]TJ +/F8 9.963 Tf 184.235 506.876 Td[(pr)1(e)-1(cbl)1(d)]TJ ET -1 0 0 1 216.364 554.697 cm +1 0 0 1 216.364 506.876 cm 0 g 0 G -1 0 0 1 -216.364 -554.697 cm +1 0 0 1 -216.364 -506.876 cm BT -/F8 9.963 Tf 222.933 554.697 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 222.933 506.876 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ ET -1 0 0 1 484.453 554.697 cm +1 0 0 1 484.453 506.876 cm 0 g 0 G -1 0 0 1 -484.453 -554.697 cm +1 0 0 1 -484.453 -506.876 cm BT -/F8 9.963 Tf 484.453 554.697 Td[(77)]TJ +/F8 9.963 Tf 484.453 506.876 Td[(81)]TJ ET -1 0 0 1 494.416 554.697 cm +1 0 0 1 494.416 506.876 cm 0 g 0 G 1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -542.742 cm +1 0 0 1 -165.649 -494.921 cm BT -/F8 9.963 Tf 165.649 542.742 Td[(psb)]TJ +/F8 9.963 Tf 165.649 494.921 Td[(psb)]TJ ET -1 0 0 1 181.246 542.742 cm +1 0 0 1 181.246 494.921 cm q []0 d 0 J @@ -2406,31 +2562,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -542.742 cm +1 0 0 1 -181.246 -494.921 cm BT -/F8 9.963 Tf 184.235 542.742 Td[(pr)1(e)-1(capl)1(y)]TJ +/F8 9.963 Tf 184.235 494.921 Td[(pr)1(e)-1(capl)1(y)]TJ ET -1 0 0 1 221.069 542.742 cm +1 0 0 1 221.069 494.921 cm 0 g 0 G -1 0 0 1 -221.069 -542.742 cm +1 0 0 1 -221.069 -494.921 cm BT -/F8 9.963 Tf 230.682 542.742 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 230.682 494.921 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ ET -1 0 0 1 484.453 542.742 cm +1 0 0 1 484.453 494.921 cm 0 g 0 G -1 0 0 1 -484.453 -542.742 cm +1 0 0 1 -484.453 -494.921 cm BT -/F8 9.963 Tf 484.453 542.742 Td[(78)]TJ +/F8 9.963 Tf 484.453 494.921 Td[(82)]TJ ET -1 0 0 1 494.416 542.742 cm +1 0 0 1 494.416 494.921 cm 0 g 0 G -1 0 0 1 -328.767 -11.956 cm +1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -530.786 cm +1 0 0 1 -165.649 -482.966 cm BT -/F8 9.963 Tf 165.649 530.786 Td[(psb)]TJ +/F8 9.963 Tf 165.649 482.966 Td[(psb)]TJ ET -1 0 0 1 181.246 530.786 cm +1 0 0 1 181.246 482.966 cm q []0 d 0 J @@ -2439,11 +2595,11 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -530.786 cm +1 0 0 1 -181.246 -482.966 cm BT -/F8 9.963 Tf 184.235 530.786 Td[(pr)1(e)-1(c)]TJ +/F8 9.963 Tf 184.235 482.966 Td[(pr)1(e)-1(c)]TJ ET -1 0 0 1 203.125 530.786 cm +1 0 0 1 203.125 482.966 cm q []0 d 0 J @@ -2452,43 +2608,43 @@ q 2.989 0.199 l S Q -1 0 0 1 -203.125 -530.786 cm +1 0 0 1 -203.125 -482.966 cm BT -/F8 9.963 Tf 206.114 530.786 Td[(desc)-1(r)]TJ +/F8 9.963 Tf 206.114 482.966 Td[(desc)-1(r)]TJ ET -1 0 0 1 228.336 530.786 cm +1 0 0 1 228.336 482.966 cm 0 g 0 G -1 0 0 1 -228.336 -530.786 cm +1 0 0 1 -228.336 -482.966 cm BT -/F8 9.963 Tf 238.43 530.786 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)]TJ +/F8 9.963 Tf 238.43 482.966 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)]TJ ET -1 0 0 1 484.453 530.786 cm +1 0 0 1 484.453 482.966 cm 0 g 0 G -1 0 0 1 -484.453 -530.786 cm +1 0 0 1 -484.453 -482.966 cm BT -/F8 9.963 Tf 484.453 530.786 Td[(79)]TJ +/F8 9.963 Tf 484.453 482.966 Td[(83)]TJ ET -1 0 0 1 494.416 530.786 cm +1 0 0 1 494.416 482.966 cm 0 g 0 G -1 0 0 1 -343.711 -21.917 cm +1 0 0 1 -343.711 -21.918 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -150.705 -508.869 cm +1 0 0 1 -150.705 -461.048 cm BT -/F29 9.963 Tf 150.705 508.869 Td[(9)-925(E)1(rror)-383(h)1(andl)-1(ing)]TJ +/F29 9.963 Tf 150.705 461.048 Td[(9)-925(E)1(rror)-383(h)1(andl)-1(ing)]TJ ET -1 0 0 1 240.002 508.869 cm +1 0 0 1 240.002 461.048 cm 0 g 0 G -1 0 0 1 -240.002 -508.869 cm +1 0 0 1 -240.002 -461.048 cm BT -/F29 9.963 Tf 482.959 508.869 Td[(80)]TJ +/F29 9.963 Tf 482.959 461.048 Td[(84)]TJ ET -1 0 0 1 165.649 496.913 cm +1 0 0 1 165.649 449.093 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -496.913 cm +1 0 0 1 -165.649 -449.093 cm BT -/F8 9.963 Tf 165.649 496.913 Td[(psb)]TJ +/F8 9.963 Tf 165.649 449.093 Td[(psb)]TJ ET -1 0 0 1 181.246 496.913 cm +1 0 0 1 181.246 449.093 cm q []0 d 0 J @@ -2497,31 +2653,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -496.913 cm +1 0 0 1 -181.246 -449.093 cm BT -/F8 9.963 Tf 184.235 496.913 Td[(errp)1(ush)]TJ +/F8 9.963 Tf 184.235 449.093 Td[(errp)1(ush)]TJ ET -1 0 0 1 217.001 496.913 cm +1 0 0 1 217.001 449.093 cm 0 g 0 G -1 0 0 1 -217.001 -496.913 cm +1 0 0 1 -217.001 -449.093 cm BT -/F8 9.963 Tf 222.933 496.913 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 222.933 449.093 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)]TJ ET -1 0 0 1 484.453 496.913 cm +1 0 0 1 484.453 449.093 cm 0 g 0 G -1 0 0 1 -484.453 -496.913 cm +1 0 0 1 -484.453 -449.093 cm BT -/F8 9.963 Tf 484.453 496.913 Td[(82)]TJ +/F8 9.963 Tf 484.453 449.093 Td[(86)]TJ ET -1 0 0 1 494.416 496.913 cm +1 0 0 1 494.416 449.093 cm 0 g 0 G 1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -484.958 cm +1 0 0 1 -165.649 -437.138 cm BT -/F8 9.963 Tf 165.649 484.958 Td[(psb)]TJ +/F8 9.963 Tf 165.649 437.138 Td[(psb)]TJ ET -1 0 0 1 181.246 484.958 cm +1 0 0 1 181.246 437.138 cm q []0 d 0 J @@ -2530,31 +2686,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -484.958 cm +1 0 0 1 -181.246 -437.138 cm BT -/F8 9.963 Tf 184.235 484.958 Td[(error)]TJ +/F8 9.963 Tf 184.235 437.138 Td[(error)]TJ ET -1 0 0 1 205.35 484.958 cm +1 0 0 1 205.35 437.138 cm 0 g 0 G -1 0 0 1 -205.35 -484.958 cm +1 0 0 1 -205.35 -437.138 cm BT -/F8 9.963 Tf 215.184 484.958 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 215.184 437.138 Td[(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET -1 0 0 1 484.453 484.958 cm +1 0 0 1 484.453 437.138 cm 0 g 0 G -1 0 0 1 -484.453 -484.958 cm +1 0 0 1 -484.453 -437.138 cm BT -/F8 9.963 Tf 484.453 484.958 Td[(83)]TJ +/F8 9.963 Tf 484.453 437.138 Td[(87)]TJ ET -1 0 0 1 494.416 484.958 cm +1 0 0 1 494.416 437.138 cm 0 g 0 G -1 0 0 1 -328.767 -11.955 cm +1 0 0 1 -328.767 -11.956 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -473.003 cm +1 0 0 1 -165.649 -425.182 cm BT -/F8 9.963 Tf 165.649 473.003 Td[(psb)]TJ +/F8 9.963 Tf 165.649 425.182 Td[(psb)]TJ ET -1 0 0 1 181.246 473.003 cm +1 0 0 1 181.246 425.182 cm q []0 d 0 J @@ -2563,11 +2719,11 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -473.003 cm +1 0 0 1 -181.246 -425.182 cm BT -/F8 9.963 Tf 184.235 473.003 Td[(se)-1(t)]TJ +/F8 9.963 Tf 184.235 425.182 Td[(se)-1(t)]TJ ET -1 0 0 1 197.064 473.003 cm +1 0 0 1 197.064 425.182 cm q []0 d 0 J @@ -2576,31 +2732,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -197.064 -473.003 cm +1 0 0 1 -197.064 -425.182 cm BT -/F8 9.963 Tf 200.053 473.003 Td[(errv)28(erb)-27(os)-1(i)1(t)28(y)]TJ +/F8 9.963 Tf 200.053 425.182 Td[(errv)28(erb)-27(os)-1(i)1(t)28(y)]TJ ET -1 0 0 1 251.942 473.003 cm +1 0 0 1 251.942 425.182 cm 0 g 0 G -1 0 0 1 -251.942 -473.003 cm +1 0 0 1 -251.942 -425.182 cm BT -/F8 9.963 Tf 261.676 473.003 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 261.676 425.182 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ ET -1 0 0 1 484.453 473.003 cm +1 0 0 1 484.453 425.182 cm 0 g 0 G -1 0 0 1 -484.453 -473.003 cm +1 0 0 1 -484.453 -425.182 cm BT -/F8 9.963 Tf 484.453 473.003 Td[(84)]TJ +/F8 9.963 Tf 484.453 425.182 Td[(88)]TJ ET -1 0 0 1 494.416 473.003 cm +1 0 0 1 494.416 425.182 cm 0 g 0 G 1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -461.048 cm +1 0 0 1 -165.649 -413.227 cm BT -/F8 9.963 Tf 165.649 461.048 Td[(psb)]TJ +/F8 9.963 Tf 165.649 413.227 Td[(psb)]TJ ET -1 0 0 1 181.246 461.048 cm +1 0 0 1 181.246 413.227 cm q []0 d 0 J @@ -2609,11 +2765,11 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -461.048 cm +1 0 0 1 -181.246 -413.227 cm BT -/F8 9.963 Tf 184.235 461.048 Td[(se)-1(t)]TJ +/F8 9.963 Tf 184.235 413.227 Td[(se)-1(t)]TJ ET -1 0 0 1 197.064 461.048 cm +1 0 0 1 197.064 413.227 cm q []0 d 0 J @@ -2622,31 +2778,31 @@ q 2.989 0.199 l S Q -1 0 0 1 -197.064 -461.048 cm +1 0 0 1 -197.064 -413.227 cm BT -/F8 9.963 Tf 200.053 461.048 Td[(erraction)]TJ +/F8 9.963 Tf 200.053 413.227 Td[(erraction)]TJ ET -1 0 0 1 238.852 461.048 cm +1 0 0 1 238.852 413.227 cm 0 g 0 G -1 0 0 1 -238.852 -461.048 cm +1 0 0 1 -238.852 -413.227 cm BT -/F8 9.963 Tf 246.179 461.048 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ +/F8 9.963 Tf 246.179 413.227 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)]TJ ET -1 0 0 1 484.453 461.048 cm +1 0 0 1 484.453 413.227 cm 0 g 0 G -1 0 0 1 -484.453 -461.048 cm +1 0 0 1 -484.453 -413.227 cm BT -/F8 9.963 Tf 484.453 461.048 Td[(85)]TJ +/F8 9.963 Tf 484.453 413.227 Td[(89)]TJ ET -1 0 0 1 494.416 461.048 cm +1 0 0 1 494.416 413.227 cm 0 g 0 G 1 0 0 1 -328.767 -11.955 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -165.649 -449.093 cm +1 0 0 1 -165.649 -401.272 cm BT -/F8 9.963 Tf 165.649 449.093 Td[(psb)]TJ +/F8 9.963 Tf 165.649 401.272 Td[(psb)]TJ ET -1 0 0 1 181.246 449.093 cm +1 0 0 1 181.246 401.272 cm q []0 d 0 J @@ -2655,25 +2811,25 @@ q 2.989 0.199 l S Q -1 0 0 1 -181.246 -449.093 cm +1 0 0 1 -181.246 -401.272 cm BT -/F8 9.963 Tf 184.235 449.093 Td[(errcomm)]TJ +/F8 9.963 Tf 184.235 401.272 Td[(errcomm)]TJ ET -1 0 0 1 222.48 449.093 cm +1 0 0 1 222.48 401.272 cm 0 g 0 G -1 0 0 1 -222.48 -449.093 cm +1 0 0 1 -222.48 -401.272 cm BT -/F8 9.963 Tf 230.682 449.093 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ +/F8 9.963 Tf 230.682 401.272 Td[(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)-500(.)-499(.)-500(.)-500(.)]TJ ET -1 0 0 1 484.453 449.093 cm +1 0 0 1 484.453 401.272 cm 0 g 0 G -1 0 0 1 -484.453 -449.093 cm +1 0 0 1 -484.453 -401.272 cm BT -/F8 9.963 Tf 484.453 449.093 Td[(86)]TJ +/F8 9.963 Tf 484.453 401.272 Td[(90)]TJ ET -1 0 0 1 494.416 449.093 cm +1 0 0 1 494.416 401.272 cm 0 g 0 G -1 0 0 1 -343.711 -358.655 cm +1 0 0 1 -343.711 -310.834 cm 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT @@ -2683,162 +2839,190 @@ ET 0 g 0 G endstream endobj -329 0 obj << +345 0 obj << /Type /Page -/Contents 330 0 R -/Resources 328 0 R +/Contents 346 0 R +/Resources 344 0 R /MediaBox [0 0 595.276 841.89] -/Parent 279 0 R -/Annots [ 332 0 R 333 0 R 334 0 R 335 0 R 336 0 R 337 0 R 338 0 R 339 0 R 340 0 R 341 0 R 342 0 R 343 0 R 344 0 R 345 0 R 346 0 R 347 0 R 348 0 R 349 0 R 350 0 R 351 0 R ] +/Parent 295 0 R +/Annots [ 348 0 R 349 0 R 350 0 R 351 0 R 352 0 R 353 0 R 354 0 R 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R 362 0 R 363 0 R 364 0 R 365 0 R 366 0 R 367 0 R 368 0 R 369 0 R 370 0 R 371 0 R ] >> endobj -332 0 obj << +348 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 703.195 231.978 714.044] +/Rect [164.653 703.195 206.872 714.044] /Subtype /Link -/A << /S /GoTo /D (section*.71) >> +/A << /S /GoTo /D (section*.73) >> >> endobj -333 0 obj << +349 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 691.24 231.978 702.088] +/Rect [164.653 691.24 209.086 702.088] /Subtype /Link -/A << /S /GoTo /D (section*.73) >> +/A << /S /GoTo /D (section*.76) >> >> endobj -334 0 obj << +350 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 679.285 210.442 690.133] +/Subtype /Link +/A << /S /GoTo /D (section*.78) >> +>> endobj +351 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 667.33 202.942 678.178] +/Subtype /Link +/A << /S /GoTo /D (section*.80) >> +>> endobj +352 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 671.26 257.299 680.171] +/Rect [164.653 655.375 231.978 666.223] +/Subtype /Link +/A << /S /GoTo /D (section*.82) >> +>> endobj +353 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.653 643.42 231.978 654.268] +/Subtype /Link +/A << /S /GoTo /D (section*.84) >> +>> endobj +354 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.709 623.439 257.299 632.35] /Subtype /Link /A << /S /GoTo /D (section.7) >> >> endobj -335 0 obj << +355 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 657.367 197.961 668.215] +/Rect [164.653 609.547 197.961 620.395] /Subtype /Link -/A << /S /GoTo /D (section*.75) >> +/A << /S /GoTo /D (section*.86) >> >> endobj -336 0 obj << +356 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 645.412 201.891 656.26] +/Rect [164.653 597.591 201.891 608.44] /Subtype /Link -/A << /S /GoTo /D (section*.77) >> +/A << /S /GoTo /D (section*.88) >> >> endobj -337 0 obj << +357 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 633.457 206.263 644.305] +/Rect [164.653 585.636 206.263 596.484] /Subtype /Link -/A << /S /GoTo /D (section*.79) >> +/A << /S /GoTo /D (section*.90) >> >> endobj -338 0 obj << +358 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 621.502 224.583 632.35] +/Rect [164.653 573.681 224.583 584.529] /Subtype /Link -/A << /S /GoTo /D (section*.81) >> +/A << /S /GoTo /D (section*.92) >> >> endobj -339 0 obj << +359 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 609.547 227.351 620.395] +/Rect [164.653 561.726 227.351 572.574] /Subtype /Link -/A << /S /GoTo /D (section*.83) >> +/A << /S /GoTo /D (section*.94) >> >> endobj -340 0 obj << +360 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 597.591 214.095 608.44] +/Rect [164.653 549.771 214.095 560.619] /Subtype /Link -/A << /S /GoTo /D (section*.85) >> +/A << /S /GoTo /D (section*.96) >> >> endobj -341 0 obj << +361 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 577.611 285.284 586.522] +/Rect [149.709 529.79 285.284 538.701] /Subtype /Link /A << /S /GoTo /D (section.8) >> >> endobj -342 0 obj << +362 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 563.718 215.755 574.567] +/Rect [164.653 515.898 215.755 526.746] /Subtype /Link -/A << /S /GoTo /D (section*.87) >> +/A << /S /GoTo /D (section*.98) >> >> endobj -343 0 obj << +363 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 551.763 217.361 562.611] +/Rect [164.653 503.943 217.361 514.791] /Subtype /Link -/A << /S /GoTo /D (section*.90) >> +/A << /S /GoTo /D (section*.101) >> >> endobj -344 0 obj << +364 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 539.808 222.065 550.656] +/Rect [164.653 491.987 222.065 502.836] /Subtype /Link -/A << /S /GoTo /D (section*.92) >> +/A << /S /GoTo /D (section*.103) >> >> endobj -345 0 obj << +365 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 527.853 229.332 538.701] +/Rect [164.653 480.032 229.332 490.88] /Subtype /Link -/A << /S /GoTo /D (section*.95) >> +/A << /S /GoTo /D (section*.106) >> >> endobj -346 0 obj << +366 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [149.709 505.935 240.998 516.783] +/Rect [149.709 458.114 240.998 468.963] /Subtype /Link /A << /S /GoTo /D (section.9) >> >> endobj -347 0 obj << +367 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 493.98 217.997 504.828] +/Rect [164.653 446.159 217.997 457.007] /Subtype /Link -/A << /S /GoTo /D (section*.97) >> +/A << /S /GoTo /D (section*.108) >> >> endobj -348 0 obj << +368 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 482.025 206.346 492.873] +/Rect [164.653 434.204 206.346 445.052] /Subtype /Link -/A << /S /GoTo /D (section*.99) >> +/A << /S /GoTo /D (section*.110) >> >> endobj -349 0 obj << +369 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 470.07 252.938 480.918] +/Rect [164.653 422.249 252.938 433.097] /Subtype /Link -/A << /S /GoTo /D (section*.101) >> +/A << /S /GoTo /D (section*.112) >> >> endobj -350 0 obj << +370 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 458.114 239.848 468.963] +/Rect [164.653 410.294 239.848 421.142] /Subtype /Link -/A << /S /GoTo /D (section*.103) >> +/A << /S /GoTo /D (section*.114) >> >> endobj -351 0 obj << +371 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [164.653 446.159 223.477 457.007] +/Rect [164.653 398.339 223.477 409.187] /Subtype /Link -/A << /S /GoTo /D (section*.105) >> +/A << /S /GoTo /D (section*.116) >> >> endobj -331 0 obj << -/D [329 0 R /XYZ 150.705 740.998 null] +347 0 obj << +/D [345 0 R /XYZ 150.705 740.998 null] >> endobj -328 0 obj << -/Font << /F8 278 0 R /F29 275 0 R >> +344 0 obj << +/Font << /F8 294 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -354 0 obj << +374 0 obj << /Length 11020 >> stream @@ -2944,57 +3128,57 @@ ET 0 g 0 G endstream endobj -353 0 obj << +373 0 obj << /Type /Page -/Contents 354 0 R -/Resources 352 0 R +/Contents 374 0 R +/Resources 372 0 R /MediaBox [0 0 595.276 841.89] -/Parent 279 0 R -/Annots [ 355 0 R 356 0 R 357 0 R 358 0 R 359 0 R 360 0 R 361 0 R ] +/Parent 295 0 R +/Annots [ 375 0 R 376 0 R 377 0 R 378 0 R 379 0 R 380 0 R 381 0 R ] >> endobj -355 0 obj << +375 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [171.341 574.027 183.296 582.44] /Subtype /Link /A << /S /GoTo /D (cite.metcalf) >> >> endobj -356 0 obj << +376 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [269.551 562.071 281.506 570.484] /Subtype /Link /A << /S /GoTo /D (cite.machiels) >> >> endobj -357 0 obj << +377 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [131.853 490.34 143.808 498.753] /Subtype /Link /A << /S /GoTo /D (cite.sblas97) >> >> endobj -358 0 obj << +378 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [148.479 490.34 160.434 498.753] /Subtype /Link /A << /S /GoTo /D (cite.sblas02) >> >> endobj -359 0 obj << +379 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [141.6 478.385 148.574 486.798] /Subtype /Link /A << /S /GoTo /D (cite.BLAS1) >> >> endobj -360 0 obj << +380 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [152.67 478.385 159.644 486.798] /Subtype /Link /A << /S /GoTo /D (cite.BLAS2) >> >> endobj -361 0 obj << +381 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [163.739 478.385 170.713 486.798] @@ -3002,17 +3186,17 @@ endobj /A << /S /GoTo /D (cite.BLAS3) >> >> endobj 10 0 obj << -/D [353 0 R /XYZ 99.895 716.092 null] +/D [373 0 R /XYZ 99.895 716.092 null] >> endobj 14 0 obj << -/D [353 0 R /XYZ 99.895 195.696 null] +/D [373 0 R /XYZ 99.895 195.696 null] >> endobj -352 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F11 367 0 R >> +372 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -378 0 obj << -/Length 8579 +398 0 obj << +/Length 8520 >> stream 1 0 0 1 150.705 740.998 cm @@ -3045,11 +3229,11 @@ ET 0 g 0 G 1 0 0 1 -294.12 -586.577 cm BT -/F8 9.963 Tf 294.12 586.577 Td[(])-303(th)1(at)-303(guar)1(an)28(tee)-1(s)-303(a)-303(p)-28(or)1(tabl)1(e)-304(an)1(d)-303(e\016)-1(cien)28(t)-303(com)-1(-)]TJ -143.415 -11.955 Td[(m)27(u)1(ni)1(c)-1(ati)1(on)-399(la)28(y)28(e)-1(r)1(.)-642(The)-399(Me)-1(ssage)-400(P)28(ass)-1(i)1(ng)-399(In)28(terface)-400(co)-28(d)1(e)-400(is)-399(e)-1(n)1(c)-1(ap)1(s)-1(u)1(lated)-399(with)1(in)]TJ 0 -11.955 Td[(th)1(e)-386(BLA)28(C)-1(S)-384(la)28(y)28(er.)-600(H)1(o)27(w)28(e)-1(v)28(er,)-397(in)-385(some)-386(cas)-1(es)-1(,)-397(MPI)-385(r)1(outi)1(nes)-386(are)-385(di)1(rec)-1(tl)1(y)-385(use)-1(d)-384(e)-1(i)1(-)]TJ 0 -11.955 Td[(th)1(e)-1(r)-403(to)-404(i)1(m)-1(p)1(ro)28(v)28(e)-404(e\016)-1(ciency)-404(or)-403(to)-403(impleme)-1(n)28(t)-403(c)-1(omm)28(un)1(ic)-1(ati)1(on)-403(pattern)1(s)-404(for)-403(whic)28(h)]TJ 0 -11.956 Td[(th)1(e)-456(BLA)28(C)-1(S)-454(pac)28(k)55(age)-455(do)-27(e)-1(sn't)-455(p)1(ro)28(vi)1(de)-456(an)29(y)-455(me)-1(th)1(o)-28(d.)-809(W)83(e)-455(as)-1(sume)-455(that)-455(th)1(e)-456(u)1(s)-1(er)]TJ 0 -11.955 Td[(pr)1(ogram)-407(has)-407(in)1(itial)1(iz)-1(ed)-406(a)-407(B)-1(LA)28(CS)-406(pro)-27(c)-1(es)-1(s)-407(gri)1(d)-407(with)-406(one)-407(c)-1(ol)1(umn)-407(an)1(d)-407(as)-407(man)28(y)]TJ 0 -11.955 Td[(ro)28(ws)-428(as)-427(th)1(e)-1(r)1(e)-428(are)-427(pr)1(o)-28(ce)-1(ss)-1(es)-1(;)-473(the)-427(PS)1(B)-1(L)1(AS)-427(in)1(itial)1(iz)-1(at)1(ion)-427(r)1(outin)1(e)-1(s)-427(will)-427(tak)29(e)-428(th)1(e)]TJ 0 -11.955 Td[(com)-1(m)28(un)1(ic)-1(a)1(tion)-333(con)28(text)-333(for)-333(th)1(is)-334(gri)1(d)-333(and)-333(stor)1(e)-334(in)28(tern)1(ally)-333(f)1(or)-333(fu)1(rther)-333(u)1(s)-1(e.)]TJ +/F8 9.963 Tf 294.12 586.577 Td[(])-303(th)1(at)-303(guar)1(an)28(tee)-1(s)-303(a)-303(p)-28(or)1(tabl)1(e)-304(an)1(d)-303(e\016)-1(cien)28(t)-303(com)-1(-)]TJ -143.415 -11.955 Td[(m)27(u)1(ni)1(c)-1(ati)1(on)-399(la)28(y)28(e)-1(r)1(.)-642(The)-399(Me)-1(ssage)-400(P)28(ass)-1(i)1(ng)-399(In)28(terface)-400(co)-28(d)1(e)-400(is)-399(e)-1(n)1(c)-1(ap)1(s)-1(u)1(lated)-399(with)1(in)]TJ 0 -11.955 Td[(th)1(e)-386(BLA)28(C)-1(S)-384(la)28(y)28(er.)-600(H)1(o)27(w)28(e)-1(v)28(er,)-397(in)-385(some)-386(cas)-1(es)-1(,)-397(MPI)-385(r)1(outi)1(nes)-386(are)-385(di)1(rec)-1(tl)1(y)-385(use)-1(d)-384(e)-1(i)1(-)]TJ 0 -11.955 Td[(th)1(e)-1(r)-403(to)-404(i)1(m)-1(p)1(ro)28(v)28(e)-404(e\016)-1(ciency)-404(or)-403(to)-403(impleme)-1(n)28(t)-403(c)-1(omm)28(un)1(ic)-1(ati)1(on)-403(pattern)1(s)-404(for)-403(whic)28(h)]TJ 0 -11.956 Td[(th)1(e)-334(BLA)27(CS)-333(p)1(ac)27(k)56(age)-334(d)1(o)-28(e)-1(sn)1('t)-333(pro)28(vi)1(de)-334(an)29(y)-334(metho)-27(d.)]TJ ET -1 0 0 1 150.705 489.34 cm +1 0 0 1 150.705 525.035 cm 0 g 0 G -1 0 0 1 97.575 -122.398 cm +1 0 0 1 97.575 -122.399 cm 0 g 0 G 0 g 0 G 1 0 0 1 4.981 0 cm @@ -3059,151 +3243,175 @@ q /Im1 Do Q Q -1 0 0 1 -38.173 -31.881 cm +1 0 0 1 -38.173 -31.88 cm 0 g 0 G -1 0 0 1 -215.088 -335.061 cm +1 0 0 1 -215.088 -370.756 cm BT -/F8 9.963 Tf 215.088 335.061 Td[(Figu)1(re)-333(1:)-445(P)1(SBLAS)-333(li)1(brar)1(y)-333(c)-1(omp)-27(onen)28(ts)-334(h)1(ierarc)28(h)28(y)83(.)]TJ +/F8 9.963 Tf 215.088 370.756 Td[(Figu)1(re)-333(1:)-445(P)1(SBLAS)-333(li)1(brar)1(y)-333(c)-1(omp)-27(onen)28(ts)-334(h)1(ierarc)28(h)28(y)83(.)]TJ ET -1 0 0 1 430.033 335.061 cm +1 0 0 1 430.033 370.756 cm 0 g 0 G 1 0 0 1 -279.328 -1.937 cm 0 g 0 G -1 0 0 1 -150.705 -333.124 cm +1 0 0 1 -150.705 -368.819 cm BT -/F8 9.963 Tf 165.649 311.492 Td[(The)-333(PSBLAS)-333(l)1(ibr)1(ary)-333(c)-1(on)1(s)-1(i)1(s)-1(ts)-333(of)-333(v)56(ariou)1(s)-334(clas)-1(se)-1(s)-333(of)-333(s)-1(u)1(br)1(outi)1(nes)-1(:)]TJ +/F8 9.963 Tf 165.649 347.017 Td[(The)-333(PSBLAS)-333(l)1(ibr)1(ary)-333(c)-1(on)1(s)-1(i)1(s)-1(ts)-333(of)-333(v)56(ariou)1(s)-334(clas)-1(se)-1(s)-333(of)-333(s)-1(u)1(br)1(outi)1(nes)-1(:)]TJ ET -1 0 0 1 145.724 292.251 cm +1 0 0 1 145.724 327.433 cm 0 g 0 G -1 0 0 1 -145.724 -292.251 cm +1 0 0 1 -145.724 -327.433 cm BT -/F29 9.963 Tf 150.705 292.251 Td[(Co)1(m)-1(putational)-384(rou)1(t)-1(ines)]TJ +/F29 9.963 Tf 150.705 327.433 Td[(Co)1(m)-1(putational)-384(rou)1(t)-1(ines)]TJ ET -1 0 0 1 269.897 292.251 cm +1 0 0 1 269.897 327.433 cm 0 g 0 G -1 0 0 1 -269.897 -292.251 cm +1 0 0 1 -269.897 -327.433 cm BT -/F8 9.963 Tf 274.879 292.251 Td[(com)-1(p)1(risin)1(g:)]TJ +/F8 9.963 Tf 274.879 327.433 Td[(com)-1(p)1(risin)1(g:)]TJ ET -1 0 0 1 175.611 272.667 cm +1 0 0 1 175.611 307.679 cm 0 g 0 G -1 0 0 1 -175.611 -272.667 cm +1 0 0 1 -175.611 -307.679 cm BT -/F14 9.963 Tf 187.567 272.667 Td[(\017)]TJ +/F14 9.963 Tf 187.567 307.679 Td[(\017)]TJ ET -1 0 0 1 192.548 272.667 cm +1 0 0 1 192.548 307.679 cm 0 g 0 G -1 0 0 1 -192.548 -272.667 cm +1 0 0 1 -192.548 -307.679 cm BT -/F8 9.963 Tf 197.529 272.667 Td[(Sp)1(arse)-334(matrix)-333(b)29(y)-333(dense)-334(matrix)-333(p)1(ro)-28(d)1(uct;)]TJ +/F8 9.963 Tf 197.529 307.679 Td[(Sp)1(arse)-334(matrix)-333(b)29(y)-333(dense)-334(matrix)-333(p)1(ro)-28(d)1(uct;)]TJ ET -1 0 0 1 175.611 257.069 cm +1 0 0 1 175.611 291.91 cm 0 g 0 G -1 0 0 1 -175.611 -257.069 cm +1 0 0 1 -175.611 -291.91 cm BT -/F14 9.963 Tf 187.567 257.069 Td[(\017)]TJ +/F14 9.963 Tf 187.567 291.91 Td[(\017)]TJ ET -1 0 0 1 192.548 257.069 cm +1 0 0 1 192.548 291.91 cm 0 g 0 G -1 0 0 1 -192.548 -257.069 cm +1 0 0 1 -192.548 -291.91 cm BT -/F8 9.963 Tf 197.529 257.069 Td[(Sp)1(arse)-334(tr)1(iangu)1(lar)-333(sys)-1(tems)-334(soluti)1(on)-333(for)-333(b)1(lo)-28(c)28(k)-334(d)1(iagon)1(al)-333(m)-1(atr)1(ice)-1(s;)]TJ +/F8 9.963 Tf 197.529 291.91 Td[(Sp)1(arse)-334(tr)1(iangu)1(lar)-333(sys)-1(tems)-334(soluti)1(on)-333(for)-333(b)1(lo)-28(c)28(k)-334(d)1(iagon)1(al)-333(m)-1(atr)1(ice)-1(s;)]TJ ET -1 0 0 1 175.611 241.47 cm +1 0 0 1 175.611 276.141 cm 0 g 0 G -1 0 0 1 -175.611 -241.47 cm +1 0 0 1 -175.611 -276.141 cm BT -/F14 9.963 Tf 187.567 241.47 Td[(\017)]TJ +/F14 9.963 Tf 187.567 276.141 Td[(\017)]TJ ET -1 0 0 1 192.548 241.47 cm +1 0 0 1 192.548 276.141 cm 0 g 0 G -1 0 0 1 -192.548 -241.47 cm +1 0 0 1 -192.548 -276.141 cm BT -/F8 9.963 Tf 197.529 241.47 Td[(V)83(ec)-1(t)1(or)-333(and)-333(matri)1(x)-333(norms;)]TJ +/F8 9.963 Tf 197.529 276.141 Td[(V)83(ec)-1(t)1(or)-333(and)-333(matri)1(x)-333(norms;)]TJ ET -1 0 0 1 175.611 225.872 cm +1 0 0 1 175.611 260.371 cm 0 g 0 G -1 0 0 1 -175.611 -225.872 cm +1 0 0 1 -175.611 -260.371 cm BT -/F14 9.963 Tf 187.567 225.872 Td[(\017)]TJ +/F14 9.963 Tf 187.567 260.371 Td[(\017)]TJ ET -1 0 0 1 192.548 225.872 cm +1 0 0 1 192.548 260.371 cm 0 g 0 G -1 0 0 1 -192.548 -225.872 cm +1 0 0 1 -192.548 -260.371 cm BT -/F8 9.963 Tf 197.529 225.872 Td[(Dense)-334(matrix)-333(sums;)]TJ +/F8 9.963 Tf 197.529 260.371 Td[(Dense)-334(matrix)-333(sums;)]TJ ET -1 0 0 1 175.611 210.273 cm +1 0 0 1 175.611 244.602 cm 0 g 0 G -1 0 0 1 -175.611 -210.273 cm +1 0 0 1 -175.611 -244.602 cm BT -/F14 9.963 Tf 187.567 210.273 Td[(\017)]TJ +/F14 9.963 Tf 187.567 244.602 Td[(\017)]TJ ET -1 0 0 1 192.548 210.273 cm +1 0 0 1 192.548 244.602 cm 0 g 0 G -1 0 0 1 -192.548 -210.273 cm +1 0 0 1 -192.548 -244.602 cm BT -/F8 9.963 Tf 197.529 210.273 Td[(Dot)-333(pr)1(o)-28(du)1(c)-1(t)1(s)-1(.)]TJ +/F8 9.963 Tf 197.529 244.602 Td[(Dot)-333(pr)1(o)-28(du)1(c)-1(t)1(s)-1(.)]TJ ET -1 0 0 1 145.724 190.69 cm +1 0 0 1 145.724 224.848 cm 0 g 0 G -1 0 0 1 -145.724 -190.69 cm +1 0 0 1 -145.724 -224.848 cm BT -/F29 9.963 Tf 150.705 190.69 Td[(Co)1(m)-1(m)32(unicat)-1(ion)-383(routines)]TJ +/F29 9.963 Tf 150.705 224.848 Td[(Co)1(m)-1(m)32(unicat)-1(ion)-383(routines)]TJ ET -1 0 0 1 274.194 190.69 cm +1 0 0 1 274.194 224.848 cm 0 g 0 G -1 0 0 1 -274.194 -190.69 cm +1 0 0 1 -274.194 -224.848 cm BT -/F8 9.963 Tf 279.175 190.69 Td[(han)1(dl)1(ing)-333(hal)1(o)-334(an)1(d)-333(o)28(v)28(e)-1(r)1(lap)-333(com)-1(m)28(un)1(ications;)]TJ +/F8 9.963 Tf 279.175 224.848 Td[(han)1(dl)1(ing)-333(hal)1(o)-334(an)1(d)-333(o)28(v)28(e)-1(r)1(lap)-333(com)-1(m)28(un)1(ications;)]TJ ET -1 0 0 1 145.724 171.106 cm +1 0 0 1 145.724 205.094 cm 0 g 0 G -1 0 0 1 -145.724 -171.106 cm +1 0 0 1 -145.724 -205.094 cm BT -/F29 9.963 Tf 150.705 171.106 Td[(Data)-383(m)-1(anagemen)32(t)-383(and)-383(auxi)-1(li)-1(ar)1(y)-383(routines)]TJ +/F29 9.963 Tf 150.705 205.094 Td[(Data)-383(m)-1(anagemen)32(t)-383(and)-383(auxi)-1(li)-1(ar)1(y)-383(routines)]TJ ET -1 0 0 1 356.44 171.106 cm +1 0 0 1 356.44 205.094 cm 0 g 0 G -1 0 0 1 -356.44 -171.106 cm +1 0 0 1 -356.44 -205.094 cm BT -/F8 9.963 Tf 361.422 171.106 Td[(in)1(c)-1(l)1(udi)1(ng:)]TJ +/F8 9.963 Tf 361.422 205.094 Td[(in)1(c)-1(l)1(udi)1(ng:)]TJ ET -1 0 0 1 175.611 151.523 cm +1 0 0 1 175.611 185.34 cm 0 g 0 G -1 0 0 1 -175.611 -151.523 cm +1 0 0 1 -175.611 -185.34 cm BT -/F14 9.963 Tf 187.567 151.523 Td[(\017)]TJ +/F14 9.963 Tf 187.567 185.34 Td[(\017)]TJ ET -1 0 0 1 192.548 151.523 cm +1 0 0 1 192.548 185.34 cm 0 g 0 G -1 0 0 1 -192.548 -151.523 cm +1 0 0 1 -192.548 -185.34 cm BT -/F8 9.963 Tf 197.529 151.523 Td[(Com)-1(m)28(un)1(ication)-333(d)1(e)-1(sc)-1(r)1(ipt)1(ors)-334(all)1(o)-28(c)-1(at)1(ion;)]TJ +/F8 9.963 Tf 197.529 185.34 Td[(P)28(ar)1(allel)-333(e)-1(n)28(v)1(iron)1(m)-1(en)28(t)-333(managem)-1(en)28(t)]TJ ET -1 0 0 1 175.611 135.924 cm +1 0 0 1 175.611 169.57 cm 0 g 0 G -1 0 0 1 -175.611 -135.924 cm +1 0 0 1 -175.611 -169.57 cm BT -/F14 9.963 Tf 187.567 135.924 Td[(\017)]TJ +/F14 9.963 Tf 187.567 169.57 Td[(\017)]TJ ET -1 0 0 1 192.548 135.924 cm +1 0 0 1 192.548 169.57 cm 0 g 0 G -1 0 0 1 -192.548 -135.924 cm +1 0 0 1 -192.548 -169.57 cm BT -/F8 9.963 Tf 197.529 135.924 Td[(Dense)-334(and)-332(s)-1(p)1(arse)-334(m)-1(a)1(trix)-333(all)1(o)-28(c)-1(at)1(ion;)]TJ +/F8 9.963 Tf 197.529 169.57 Td[(Com)-1(m)28(un)1(ication)-333(d)1(e)-1(sc)-1(r)1(ipt)1(ors)-334(all)1(o)-28(c)-1(at)1(ion;)]TJ ET -1 0 0 1 175.611 120.326 cm +1 0 0 1 175.611 153.801 cm 0 g 0 G -1 0 0 1 -175.611 -120.326 cm +1 0 0 1 -175.611 -153.801 cm BT -/F14 9.963 Tf 187.567 120.326 Td[(\017)]TJ +/F14 9.963 Tf 187.567 153.801 Td[(\017)]TJ ET -1 0 0 1 192.548 120.326 cm +1 0 0 1 192.548 153.801 cm 0 g 0 G -1 0 0 1 -192.548 -120.326 cm +1 0 0 1 -192.548 -153.801 cm +BT +/F8 9.963 Tf 197.529 153.801 Td[(Dense)-334(and)-332(s)-1(p)1(arse)-334(m)-1(a)1(trix)-333(all)1(o)-28(c)-1(at)1(ion;)]TJ +ET +1 0 0 1 175.611 138.032 cm +0 g 0 G +1 0 0 1 -175.611 -138.032 cm +BT +/F14 9.963 Tf 187.567 138.032 Td[(\017)]TJ +ET +1 0 0 1 192.548 138.032 cm +0 g 0 G +1 0 0 1 -192.548 -138.032 cm BT -/F8 9.963 Tf 197.529 120.326 Td[(Dense)-334(and)-332(s)-1(p)1(arse)-334(m)-1(a)1(trix)-333(b)1(uil)1(d)-333(and)-333(u)1(p)-28(d)1(ate;)]TJ +/F8 9.963 Tf 197.529 138.032 Td[(Dense)-334(and)-332(s)-1(p)1(arse)-334(m)-1(a)1(trix)-333(b)1(uil)1(d)-333(and)-333(u)1(p)-28(d)1(ate;)]TJ +ET +1 0 0 1 175.611 122.263 cm +0 g 0 G +1 0 0 1 -175.611 -122.263 cm +BT +/F14 9.963 Tf 187.567 122.263 Td[(\017)]TJ +ET +1 0 0 1 192.548 122.263 cm +0 g 0 G +1 0 0 1 -192.548 -122.263 cm +BT +/F8 9.963 Tf 197.529 122.263 Td[(Sp)1(arse)-334(matrix)-333(an)1(d)-333(dat)1(a)-334(d)1(istrib)1(uti)1(on)-333(pr)1(e)-1(p)1(ro)-28(ce)-1(ss)-1(i)1(ng.)]TJ ET 1 0 0 1 150.705 90.438 cm 0 g 0 G @@ -3215,30 +3423,30 @@ ET 0 g 0 G endstream endobj -377 0 obj << +397 0 obj << /Type /Page -/Contents 378 0 R -/Resources 376 0 R +/Contents 398 0 R +/Resources 396 0 R /MediaBox [0 0 595.276 841.89] -/Parent 279 0 R -/Annots [ 380 0 R 381 0 R ] +/Parent 295 0 R +/Annots [ 400 0 R 401 0 R ] >> endobj -375 0 obj << +395 0 obj << /Type /XObject /Subtype /Form /FormType 1 /PTEX.FileName (./figures/psblas.pdf) /PTEX.PageNumber 1 -/PTEX.InfoDict 386 0 R +/PTEX.InfoDict 406 0 R /Matrix [1 0 0 1 0 0] /BBox [0 0 308 272] /Resources << /ProcSet [ /PDF /Text ] /ExtGState << -/R4 387 0 R ->>/Font << /R10 388 0 R >> +/R4 407 0 R +>>/Font << /R10 408 0 R >> >> -/Length 389 0 R +/Length 409 0 R /Filter /FlateDecode >> stream @@ -3246,12 +3454,12 @@ x É3pol\°K<#k@¤Â/Ø5lµË·›ö«ûSé‹#³_¯Ýó+Qà^ÿ GBj®µ´‘Û´m]•Å¥:ƒ;æ#·!ß·J)HD&Ø·¼Í,ŽÉ Jc!QÆóÜÓî!P‰ÐŠ#)r2ò¶èχaPÿI’(õÍmì=´Nüe3 cÕ¡¯Š‚{çà™…óŠendstream endobj -386 0 obj +406 0 obj << /Producer (ESP Ghostscript 7.07) >> endobj -387 0 obj +407 0 obj << /Type /ExtGState /Name /R4 @@ -3260,22 +3468,22 @@ endobj /SM 0.02 >> endobj -388 0 obj +408 0 obj << /Subtype /Type1 /BaseFont /ZDCCRC#2BTimes-Roman /Type /Font /Name /R10 -/FontDescriptor 390 0 R +/FontDescriptor 410 0 R /FirstChar 32 /LastChar 251 /Widths [ 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 333 500 500 167 500 500 500 500 180 444 500 333 333 556 556 250 500 500 500 250 250 453 350 333 444 444 500 1000 1000 250 444 250 333 333 333 333 333 333 333 333 250 333 333 250 333 333 333 1000 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 250 889 250 276 250 250 250 250 611 722 889 310 250 250 250 250 250 667 250 250 250 278 250 250 278 500 722 500] >> endobj -389 0 obj +409 0 obj 307 endobj -390 0 obj +410 0 obj << /Type /FontDescriptor /FontName /ZDCCRC#2BTimes-Roman @@ -3289,14 +3497,14 @@ endobj /MissingWidth 250 /XHeight 461 /CharSet (/space/parenleft/parenright/zero/seven/nine/A/B/C/F/I/L/M/P/S/a/c/e/i/l/n/o/p/r/s/t) -/FontFile3 391 0 R +/FontFile3 411 0 R >> endobj -391 0 obj +411 0 obj << /Subtype /Type1C /Filter /FlateDecode -/Length 392 0 R +/Length 412 0 R >> stream xœeViXSg½1$÷R•±¤)"š¤ZµîÈhuªlZ-²ˆ€–ED²°„@BVáe߶ր KqA±—¶#Vë:¨mmuZétæ»ôòcn´3ócþÜç>÷ûÞ÷yÎyÏ9ïe`6s0ƒÁ ñòôôó\ ’“ÖùÉ$Rë畤ƒ\<‡\¤¶S§~¯ýÝ™µó©gÎ7/žÛeO.x=øY€1Œ¾ë^¦|à¹Jàâì¼qýpÙ&8,&ÊÖ @@ -3309,205 +3517,193 @@ d Ê ˆSeú#üÙXœ3 A:o6¡Â9j”SÏÞY ­‚kÚˆwoÖÞz†lÐr´ÀûûÕþa‰aü»xva "V rD«wr;¾è9{{xEPÌžGüz:xVµþI;Þà ×"WnèŽpé>ðƒðv防/«+o‚@ìÌúöÄNIÏQsÃ¥Pt$2Þ ÜŠwk3ºsaƒ<êZË­ºwªw& YfÜDûDû»±]°Êhj¥!†ç%ú q[óêò[á|^yºùJgÏ| ƒš¾øöcC›,ë€à<¤êRÙ·3+õàIÌzã°%S¿#ëз©«á‚TØp^¶••µ!§«GÞ_íLá)š‚B9Ï=ôËß“SÌ2r·º¨¢ÀDKEZŸ*Â!8+k_:íæ¬|w‘ªÆ”Œwž¾ÐVZ‘£¯âÕjª²@4×ÔYº ¢©Ü+„ÿ Ï)<”£õMu|ƒjbàNÚÜ—ú&#“P©åxú6¥zÔr”ȶ””¶ñÐb6­ŒFuÝF¢…Íyy-cÍZhh$# ÍU§Ýñ‡‡?*¦=|‹@R´ujÃVšDG}cš™ÜØ m´‡«Èí¦§}¾ârÖæ¢Å,;//#+??³A_¨+!8uåÉÉÅ NÛý{úw{Ê?ÞR—bÇ°8Ùa‘ØؘÊS´d4iLj46LJr6âe•Å…ZpÕyMÙtƒlK[n½ÓÝëã7/$u}Òç°ë²Zu ´9öŸ´œë¹4Ñ4ŸÔó:cSLTN;f"Ø•ùEÙ¼¬ŒìŒ,½0 <4-W—•9p¢ ¯(¸D}ÎÞÒ~y¸¯y¤‹§­R$ªôÉà­n»ÆGŸ½Âé–t^_›fܧ[zZ½!€¥ÆË …Æ‚ pl~=B5žzÝ.k ëkð=%™•VÊ~)¸ñr¹LÖ(·´75¶[äMR:'.iÍŠnr¿­°o‚4¯8äÿŒ+WÁΕët*ЃªXU]]á¦:.+# ¶ ù#ß[‘Èa…¶DIGýqðQŸQdÌ“³9ÃT,«‘]`2T×@Ôåš²úÔý™ý´ñïïÿú(àµp’¿t'Fû®žLé挫N¨õ¥aÕê›\ŸfÒk‹Á…Úô-t¢¢ &Ü­(íµÐéœý¦Ú8UL'ú…Tüñ›ô}Í••(Ó “[Ê®*0”ÑY©¡ó"‡@Ö'‡fHWƒû§WÂ(Aþˆç©„ú]ª×kjœ\Ølßíú-{èÀyNø’«Ò¤ç¨gUñQ#9íêæäžp“/íÈ»ëÜC|ä )MÍæ†Æâü’ü2~^E~9”mýÃmÒ@ÞœZ¿_•.$8Ï“S4¢ã‹|†Â&†Ì#¼’ zÅœ³¡» 6ü ✠Ez’F–¡"Vvê4¿‡Ë=hþ53Íä­Û 2Þ8³l¶/µ².óô×õÆQpD62ûœuƒbg–Z—<ÒŸ&mèUð e½d^Næ"ã¨éëá|;r"ÛdKq©¹.+('ÊîÖV„Ö\âER[(¦€Z›@ Ëh† )¹º YR´6ˆ¡wÐܱÚ+æV~]CKU;OÏl¦¶óí¬¿C'4­3ö­ xŒ/˜¨ŒVSD¨¢cú )([ ]”í9ÿÞ°‹IãpN×õtö!Ð|E8£÷(Þ‰îÔŠE )a˜`óæ°¡({1Ÿð­²xÂDçé¾î¡’„è£^›bW¾nËé]õÝòÐÖä‘8CíÂm×dÝñw’¾Ò} ¿ÀoÆGmW-W;znÓêx‚>zÂ주¹·Ïw´öž|Úý [@ïD¿üótäù„Æ Îô´…|Úb-;›?®Ú+a™Ö5þ€ÌGãy°Ki 5 €vÇ[çv”Ï›÷¸~Þ| û7h”|èendstream endobj -392 0 obj +412 0 obj 2796 endobj -380 0 obj << +400 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [308.692 655.375 315.666 666.223] /Subtype /Link /A << /S /GoTo /D (figure.1) >> >> endobj -381 0 obj << +401 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [283.161 585.581 295.116 593.994] /Subtype /Link /A << /S /GoTo /D (cite.BLACS) >> >> endobj -379 0 obj << -/D [377 0 R /XYZ 150.705 740.998 null] +399 0 obj << +/D [397 0 R /XYZ 150.705 740.998 null] >> endobj -382 0 obj << -/D [377 0 R /XYZ 258.703 347.016 null] +402 0 obj << +/D [397 0 R /XYZ 258.703 382.711 null] >> endobj -376 0 obj << -/Font << /F8 278 0 R /F29 275 0 R /F14 385 0 R >> -/XObject << /Im1 375 0 R >> +396 0 obj << +/Font << /F8 294 0 R /F29 291 0 R /F14 405 0 R >> +/XObject << /Im1 395 0 R >> /ProcSet [ /PDF /Text ] >> endobj -396 0 obj << -/Length 10368 +416 0 obj << +/Length 10540 >> stream 1 0 0 1 99.895 740.998 cm 0 g 0 G 1 0 0 1 343.711 0 cm 0 g 0 G -1 0 0 1 -318.804 -34.869 cm -0 g 0 G -1 0 0 1 -124.802 -706.129 cm -BT -/F14 9.963 Tf 136.757 706.129 Td[(\017)]TJ -ET -1 0 0 1 141.739 706.129 cm -0 g 0 G -1 0 0 1 -141.739 -706.129 cm -BT -/F8 9.963 Tf 146.72 706.129 Td[(Sp)1(arse)-334(matri)1(x)-334(an)1(d)-333(d)1(ata)-334(d)1(istrib)1(uti)1(on)-333(pr)1(e)-1(p)1(ro)-28(ce)-1(ss)-1(i)1(ng.)]TJ -ET -1 0 0 1 94.914 685.817 cm +1 0 0 1 -348.692 -34.869 cm 0 g 0 G -1 0 0 1 -94.914 -685.817 cm +1 0 0 1 -94.914 -706.129 cm BT -/F29 9.963 Tf 99.895 685.817 Td[(Preconditi)-1(on)1(e)-1(r)-382(routi)-1(n)1(es)]TJ +/F29 9.963 Tf 99.895 706.129 Td[(Preconditi)-1(on)1(e)-1(r)-382(routi)-1(n)1(es)]TJ ET -1 0 0 1 218.535 685.817 cm +1 0 0 1 218.535 706.129 cm 0 g 0 G -1 0 0 1 -123.621 -20.312 cm +1 0 0 1 -123.621 -20.041 cm 0 g 0 G -1 0 0 1 -94.914 -665.505 cm +1 0 0 1 -94.914 -686.088 cm BT -/F29 9.963 Tf 99.895 665.505 Td[(Iterati)-1(v)32(e)-383(met)-1(h)1(o)-32(ds)]TJ +/F29 9.963 Tf 99.895 686.088 Td[(Iterati)-1(v)32(e)-383(met)-1(h)1(o)-32(ds)]TJ ET -1 0 0 1 189.221 665.505 cm +1 0 0 1 189.221 686.088 cm 0 g 0 G -1 0 0 1 -189.221 -665.505 cm +1 0 0 1 -189.221 -686.088 cm BT -/F8 9.963 Tf 194.202 665.505 Td[(a)-333(s)-1(u)1(bse)-1(t)-333(of)-333(Kr)1(ylo)28(v)-333(sub)1(s)-1(p)1(ac)-1(e)-334(i)1(te)-1(r)1(ativ)28(e)-334(metho)-28(d)1(s)]TJ -94.307 -20.216 Td[(The)-392(f)1(ollo)28(win)1(g)-392(n)1(am)-1(i)1(ng)-391(s)-1(c)28(hem)-1(e)-391(has)-392(b)-27(e)-1(en)-391(ad)1(opted)-391(for)-391(all)-391(th)1(e)-392(sym)27(b)-27(ols)-392(i)1(n)28(ternal)1(ly)]TJ 0 -11.955 Td[(de\014n)1(e)-1(d)-332(in)-333(th)1(e)-334(PS)1(B)-1(LAS)-332(s)-1(of)1(t)28(w)27(ar)1(e)-334(pac)28(k)55(age:)]TJ +/F8 9.963 Tf 194.202 686.088 Td[(a)-333(s)-1(u)1(bse)-1(t)-333(of)-333(Kr)1(ylo)28(v)-333(sub)1(s)-1(p)1(ac)-1(e)-334(i)1(te)-1(r)1(ativ)28(e)-334(metho)-28(d)1(s)]TJ -94.307 -20.013 Td[(The)-392(f)1(ollo)28(win)1(g)-392(n)1(am)-1(i)1(ng)-391(s)-1(c)28(hem)-1(e)-391(has)-392(b)-27(e)-1(en)-391(ad)1(opted)-391(for)-391(all)-391(th)1(e)-392(sym)27(b)-27(ols)-392(i)1(n)28(ternal)1(ly)]TJ 0 -11.955 Td[(de\014n)1(e)-1(d)-332(in)-333(th)1(e)-334(PS)1(B)-1(LAS)-332(s)-1(of)1(t)28(w)27(ar)1(e)-334(pac)28(k)55(age:)]TJ ET -1 0 0 1 99.895 613.119 cm +1 0 0 1 99.895 634.108 cm 0 g 0 G -1 0 0 1 -99.895 -613.119 cm +1 0 0 1 -99.895 -634.108 cm BT -/F14 9.963 Tf 114.839 613.119 Td[(\017)]TJ +/F14 9.963 Tf 114.839 634.108 Td[(\017)]TJ ET -1 0 0 1 119.821 613.119 cm +1 0 0 1 119.821 634.108 cm 0 g 0 G -1 0 0 1 -119.821 -613.119 cm +1 0 0 1 -119.821 -634.108 cm BT -/F8 9.963 Tf 124.802 613.119 Td[(all)-274(the)-275(s)-1(y)1(m)27(b)-27(ols)-275(\050i.e.)-425(sub)1(routi)1(ne)-275(names)-1(,)-286(data)-275(t)28(y)1(p)-28(es)-1(.)1(..\051)-425(ar)1(e)-276(p)1(re\014xed)-275(b)29(y)]TJ/F32 9.963 Tf 297.883 0 Td[(psb_)]TJ +/F8 9.963 Tf 124.802 634.108 Td[(all)-274(the)-275(s)-1(y)1(m)27(b)-27(ols)-275(\050i.e.)-425(sub)1(routi)1(ne)-275(names)-1(,)-286(data)-275(t)28(y)1(p)-28(es)-1(.)1(..\051)-425(ar)1(e)-276(p)1(re\014xed)-275(b)29(y)]TJ/F32 9.963 Tf 297.883 0 Td[(psb_)]TJ ET -1 0 0 1 99.895 592.807 cm +1 0 0 1 99.895 614.066 cm 0 g 0 G -1 0 0 1 -99.895 -592.807 cm +1 0 0 1 -99.895 -614.066 cm BT -/F14 9.963 Tf 114.839 592.807 Td[(\017)]TJ +/F14 9.963 Tf 114.839 614.066 Td[(\017)]TJ ET -1 0 0 1 119.821 592.807 cm +1 0 0 1 119.821 614.066 cm 0 g 0 G -1 0 0 1 -119.821 -592.807 cm +1 0 0 1 -119.821 -614.066 cm BT -/F8 9.963 Tf 124.802 592.807 Td[(all)-333(th)1(e)-334(dat)1(a)-334(t)28(yp)-27(e)-334(n)1(ame)-1(s)-334(ar)1(e)-334(su\016xe)-1(d)-332(b)28(y)]TJ/F32 9.963 Tf 173.378 0 Td[(_type)]TJ +/F8 9.963 Tf 124.802 614.066 Td[(all)-333(th)1(e)-334(dat)1(a)-334(t)28(yp)-27(e)-334(n)1(ame)-1(s)-334(ar)1(e)-334(su\016xe)-1(d)-332(b)28(y)]TJ/F32 9.963 Tf 173.378 0 Td[(_type)]TJ ET -1 0 0 1 99.895 572.495 cm +1 0 0 1 99.895 594.025 cm 0 g 0 G -1 0 0 1 -99.895 -572.495 cm +1 0 0 1 -99.895 -594.025 cm BT -/F14 9.963 Tf 114.839 572.495 Td[(\017)]TJ +/F14 9.963 Tf 114.839 594.025 Td[(\017)]TJ ET -1 0 0 1 119.821 572.495 cm +1 0 0 1 119.821 594.025 cm 0 g 0 G -1 0 0 1 -119.821 -572.495 cm +1 0 0 1 -119.821 -594.025 cm BT -/F8 9.963 Tf 124.802 572.495 Td[(all)-333(th)1(e)-334(constan)28(t)-333(v)56(alues)-334(are)-333(s)-1(u)1(\016)-1(x)1(e)-1(d)-333(b)29(y)]TJ/F32 9.963 Tf 167.622 0 Td[(_)]TJ +/F8 9.963 Tf 124.802 594.025 Td[(all)-333(th)1(e)-334(constan)28(t)-333(v)56(alues)-334(are)-333(s)-1(u)1(\016)-1(x)1(e)-1(d)-333(b)29(y)]TJ/F32 9.963 Tf 167.622 0 Td[(_)]TJ ET -1 0 0 1 99.895 552.183 cm +1 0 0 1 99.895 573.984 cm 0 g 0 G -1 0 0 1 -99.895 -552.183 cm +1 0 0 1 -99.895 -573.984 cm BT -/F14 9.963 Tf 114.839 552.183 Td[(\017)]TJ +/F14 9.963 Tf 114.839 573.984 Td[(\017)]TJ ET -1 0 0 1 119.821 552.183 cm +1 0 0 1 119.821 573.984 cm 0 g 0 G -1 0 0 1 -119.821 -552.183 cm +1 0 0 1 -119.821 -573.984 cm BT -/F8 9.963 Tf 124.802 552.183 Td[(all)-473(th)1(e)-474(s)-1(u)1(br)1(outin)1(e)-474(names)-474(foll)1(o)27(w)-473(the)-473(rul)1(e)]TJ/F32 9.963 Tf 186.501 0 Td[(psb_xxname)]TJ/F8 9.963 Tf 57.02 0 Td[(where)]TJ/F32 9.963 Tf 30.205 0 Td[(xx)]TJ/F8 9.963 Tf 15.178 0 Td[(can)-473(b)-28(e)]TJ -288.904 -11.956 Td[(either:)]TJ +/F8 9.963 Tf 124.802 573.984 Td[(all)-473(th)1(e)-474(s)-1(u)1(br)1(outin)1(e)-474(names)-474(foll)1(o)27(w)-473(the)-473(rul)1(e)]TJ/F32 9.963 Tf 186.501 0 Td[(psb_xxname)]TJ/F8 9.963 Tf 57.02 0 Td[(where)]TJ/F32 9.963 Tf 30.205 0 Td[(xx)]TJ/F8 9.963 Tf 15.178 0 Td[(can)-473(b)-28(e)]TJ -288.904 -11.956 Td[(either:)]TJ ET -1 0 0 1 124.802 519.915 cm +1 0 0 1 124.802 541.987 cm 0 g 0 G -1 0 0 1 -124.802 -519.915 cm +1 0 0 1 -124.802 -541.987 cm BT -/F29 9.963 Tf 136.01 519.915 Td[({)]TJ +/F29 9.963 Tf 136.01 541.987 Td[({)]TJ ET -1 0 0 1 141.739 519.915 cm +1 0 0 1 141.739 541.987 cm 0 g 0 G -1 0 0 1 -141.739 -519.915 cm +1 0 0 1 -141.739 -541.987 cm BT -/F32 9.963 Tf 146.72 519.915 Td[(ge)]TJ/F8 9.963 Tf 10.461 0 Td[(:)-444(the)-333(rou)1(tine)-333(is)-334(related)-333(to)-333(dense)-334(d)1(ata,)]TJ +/F32 9.963 Tf 146.72 541.987 Td[(ge)]TJ/F8 9.963 Tf 10.461 0 Td[(:)-444(the)-333(rou)1(tine)-333(is)-334(related)-333(to)-333(dense)-334(d)1(ata,)]TJ ET -1 0 0 1 124.802 503.782 cm +1 0 0 1 124.802 525.989 cm 0 g 0 G -1 0 0 1 -124.802 -503.782 cm +1 0 0 1 -124.802 -525.989 cm BT -/F29 9.963 Tf 136.01 503.782 Td[({)]TJ +/F29 9.963 Tf 136.01 525.989 Td[({)]TJ ET -1 0 0 1 141.739 503.782 cm +1 0 0 1 141.739 525.989 cm 0 g 0 G -1 0 0 1 -141.739 -503.782 cm +1 0 0 1 -141.739 -525.989 cm BT -/F32 9.963 Tf 146.72 503.782 Td[(sp)]TJ/F8 9.963 Tf 10.461 0 Td[(:)-444(the)-333(rou)1(tine)-333(is)-334(related)-333(to)-333(s)-1(p)1(arse)-334(d)1(ata,)]TJ +/F32 9.963 Tf 146.72 525.989 Td[(sp)]TJ/F8 9.963 Tf 10.461 0 Td[(:)-444(the)-333(rou)1(tine)-333(is)-334(related)-333(to)-333(s)-1(p)1(arse)-334(d)1(ata,)]TJ ET -1 0 0 1 124.802 487.648 cm +1 0 0 1 124.802 509.991 cm 0 g 0 G -1 0 0 1 -124.802 -487.648 cm +1 0 0 1 -124.802 -509.991 cm BT -/F29 9.963 Tf 136.01 487.648 Td[({)]TJ +/F29 9.963 Tf 136.01 509.991 Td[({)]TJ ET -1 0 0 1 141.739 487.648 cm +1 0 0 1 141.739 509.991 cm 0 g 0 G -1 0 0 1 -141.739 -487.648 cm +1 0 0 1 -141.739 -509.991 cm BT -/F32 9.963 Tf 146.72 487.648 Td[(cd)]TJ/F8 9.963 Tf 10.461 0 Td[(:)-444(the)-333(rou)1(tine)-333(is)-334(related)-333(to)-333(c)-1(omm)28(un)1(ic)-1(ati)1(on)-333(des)-1(cri)1(ptor)-333(\050see)]TJ +/F32 9.963 Tf 146.72 509.991 Td[(cd)]TJ/F8 9.963 Tf 10.461 0 Td[(:)-444(the)-333(rou)1(tine)-333(is)-334(related)-333(to)-333(c)-1(omm)28(un)1(ic)-1(ati)1(on)-333(des)-1(cri)1(ptor)-333(\050see)]TJ ET -1 0 0 1 407.354 487.648 cm +1 0 0 1 407.354 509.991 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -407.354 -487.648 cm +1 0 0 1 -407.354 -509.991 cm BT -/F8 9.963 Tf 407.354 487.648 Td[(3)]TJ +/F8 9.963 Tf 407.354 509.991 Td[(3)]TJ ET -1 0 0 1 412.335 487.648 cm +1 0 0 1 412.335 509.991 cm 0 g 0 G -1 0 0 1 -412.335 -487.648 cm +1 0 0 1 -412.335 -509.991 cm BT -/F8 9.963 Tf 412.335 487.648 Td[(\051.)]TJ -287.533 -20.312 Td[(F)84(or)-276(exampl)1(e)-276(the)]TJ/F32 9.963 Tf 72.33 0 Td[(psb_geins)]TJ/F8 9.963 Tf 47.073 0 Td[(,)]TJ/F32 9.963 Tf 5.628 0 Td[(psb_spins)]TJ/F8 9.963 Tf 49.818 0 Td[(and)]TJ/F32 9.963 Tf 18.797 0 Td[(psb_cdins)]TJ/F8 9.963 Tf 49.818 0 Td[(p)-27(e)-1(r)1(form)-275(the)-276(sam)-1(e)]TJ -243.464 -11.955 Td[(action)-342(\050s)-1(ee)]TJ +/F8 9.963 Tf 412.335 509.991 Td[(\051.)]TJ -287.533 -20.042 Td[(F)84(or)-276(exampl)1(e)-276(the)]TJ/F32 9.963 Tf 72.33 0 Td[(psb_geins)]TJ/F8 9.963 Tf 47.073 0 Td[(,)]TJ/F32 9.963 Tf 5.628 0 Td[(psb_spins)]TJ/F8 9.963 Tf 49.818 0 Td[(and)]TJ/F32 9.963 Tf 18.797 0 Td[(psb_cdins)]TJ/F8 9.963 Tf 49.818 0 Td[(p)-27(e)-1(r)1(form)-275(the)-276(sam)-1(e)]TJ -243.464 -11.955 Td[(action)-342(\050s)-1(ee)]TJ ET -1 0 0 1 174.86 455.381 cm +1 0 0 1 174.86 477.994 cm 0 0 1 rg 0 0 1 RG -1 0 0 1 -174.86 -455.381 cm +1 0 0 1 -174.86 -477.994 cm BT -/F8 9.963 Tf 174.86 455.381 Td[(6)]TJ +/F8 9.963 Tf 174.86 477.994 Td[(6)]TJ ET -1 0 0 1 179.841 455.381 cm +1 0 0 1 179.841 477.994 cm 0 g 0 G -1 0 0 1 -179.841 -455.381 cm +1 0 0 1 -179.841 -477.994 cm BT -/F8 9.963 Tf 179.841 455.381 Td[(\051)-343(on)-342(den)1(s)-1(e)-343(matrice)-1(s,)-345(sparse)-343(m)-1(at)1(rice)-1(s)-343(an)1(d)-343(comm)27(un)1(ication)-342(de-)]TJ -55.039 -11.955 Td[(sc)-1(ri)1(ptor)1(s)-358(r)1(e)-1(sp)-27(e)-1(ctiv)28(ely)83(.)-514(In)28(terfa)1(c)-1(e)-357(o)28(v)28(e)-1(r)1(loadi)1(ng)-357(all)1(o)27(ws)-357(th)1(e)-358(u)1(s)-1(age)-357(of)-356(the)-357(same)]TJ 0 -11.955 Td[(subr)1(outi)1(ne)-334(i)1(n)28(terfaces)-334(for)-333(b)-27(oth)-333(r)1(e)-1(al)-333(an)1(d)-333(c)-1(ompl)1(e)-1(x)-333(d)1(ata.)]TJ -24.907 -20.216 Td[(In)-320(th)1(e)-321(d)1(e)-1(sc)-1(r)1(ipti)1(on)-320(of)-320(th)1(e)-321(sub)1(rout)1(ines)-1(,)-322(argu)1(m)-1(en)28(ts)-320(or)-320(argu)1(m)-1(en)28(t)-320(en)28(tri)1(e)-1(s)-320(are)-321(class)-1(i-)]TJ 0 -11.955 Td[(\014ed)-333(as:)]TJ +/F8 9.963 Tf 179.841 477.994 Td[(\051)-343(on)-342(den)1(s)-1(e)-343(matrice)-1(s,)-345(sparse)-343(m)-1(at)1(rice)-1(s)-343(an)1(d)-343(comm)27(un)1(ication)-342(de-)]TJ -55.039 -11.955 Td[(sc)-1(ri)1(ptor)1(s)-358(r)1(e)-1(sp)-27(e)-1(ctiv)28(ely)83(.)-514(In)28(terfa)1(c)-1(e)-357(o)28(v)28(e)-1(r)1(loadi)1(ng)-357(all)1(o)27(ws)-357(th)1(e)-358(u)1(s)-1(age)-357(of)-356(the)-357(same)]TJ 0 -11.955 Td[(subr)1(outi)1(ne)-334(i)1(n)28(terfaces)-334(for)-333(b)-27(oth)-333(r)1(e)-1(al)-333(an)1(d)-333(c)-1(ompl)1(e)-1(x)-333(d)1(ata.)]TJ -24.907 -20.013 Td[(In)-320(th)1(e)-321(d)1(e)-1(sc)-1(r)1(ipti)1(on)-320(of)-320(th)1(e)-321(sub)1(rout)1(ines)-1(,)-322(argu)1(m)-1(en)28(ts)-320(or)-320(argu)1(m)-1(en)28(t)-320(en)28(tri)1(e)-1(s)-320(are)-321(class)-1(i-)]TJ 0 -11.955 Td[(\014ed)-333(as:)]TJ ET -1 0 0 1 94.914 379.085 cm +1 0 0 1 94.914 402.104 cm 0 g 0 G -1 0 0 1 -94.914 -379.085 cm +1 0 0 1 -94.914 -402.104 cm BT -/F29 9.963 Tf 99.895 379.085 Td[(global)]TJ +/F29 9.963 Tf 99.895 402.104 Td[(global)]TJ ET -1 0 0 1 129.652 379.085 cm +1 0 0 1 129.652 402.104 cm 0 g 0 G -1 0 0 1 -129.652 -379.085 cm +1 0 0 1 -129.652 -402.104 cm BT -/F8 9.963 Tf 134.633 379.085 Td[(F)84(or)-228(inp)1(ut)-228(arg)1(ume)-1(n)28(t)1(s)-1(,)-249(th)1(e)-229(v)56(alue)-228(m)27(u)1(s)-1(t)-228(b)-27(e)-229(th)1(e)-229(sam)-1(e)-228(on)-228(all)-228(pr)1(o)-28(ce)-1(ss)-1(es)-229(p)1(artici-)]TJ -9.831 -11.956 Td[(pat)1(ing)-252(in)-252(the)-253(sub)1(rou)1(tin)1(e)-254(call)1(;)-280(f)1(or)-252(outp)1(ut)-252(argumen)28(ts)-253(th)1(e)-253(v)55(al)1(ue)-253(is)-253(gu)1(aran)28(teed)]TJ 0 -11.955 Td[(to)-333(b)-28(e)-333(the)-333(s)-1(ame)-1(.)]TJ +/F8 9.963 Tf 134.633 402.104 Td[(F)84(or)-228(inp)1(ut)-228(arg)1(ume)-1(n)28(t)1(s)-1(,)-249(th)1(e)-229(v)56(alue)-228(m)27(u)1(s)-1(t)-228(b)-27(e)-229(th)1(e)-229(sam)-1(e)-228(on)-228(all)-228(pr)1(o)-28(ce)-1(ss)-1(es)-229(p)1(artici-)]TJ -9.831 -11.955 Td[(pat)1(ing)-252(in)-252(the)-253(sub)1(rou)1(tin)1(e)-254(call)1(;)-280(f)1(or)-252(outp)1(ut)-252(argumen)28(ts)-253(th)1(e)-253(v)55(al)1(ue)-253(is)-253(gu)1(aran)28(teed)]TJ 0 -11.956 Td[(to)-333(b)-28(e)-333(the)-333(s)-1(ame)-1(.)]TJ ET -1 0 0 1 94.914 334.862 cm +1 0 0 1 94.914 358.152 cm 0 g 0 G -1 0 0 1 -94.914 -334.862 cm +1 0 0 1 -94.914 -358.152 cm BT -/F29 9.963 Tf 99.895 334.862 Td[(lo)-32(cal)]TJ +/F29 9.963 Tf 99.895 358.152 Td[(lo)-32(cal)]TJ ET -1 0 0 1 122.968 334.862 cm +1 0 0 1 122.968 358.152 cm 0 g 0 G -1 0 0 1 -122.968 -334.862 cm +1 0 0 1 -122.968 -358.152 cm BT -/F8 9.963 Tf 127.95 334.862 Td[(Ea)1(c)27(h)-333(pr)1(o)-28(ce)-1(ss)-334(has)-333(its)-334(o)28(wn)-333(v)56(alu)1(e)-1(\050s\051)-333(ind)1(e)-1(p)-27(end)1(e)-1(n)28(tl)1(y)83(.)]TJ/F18 11.955 Tf -28.055 -28.401 Td[(2.)1(1)-1125(A)1(ppli)1(cati)1(on)-375(s)1(tructure)]TJ/F8 9.963 Tf 0 -18.57 Td[(The)-274(m)-1(ain)-273(un)1(derlyi)1(ng)-274(pr)1(incip)1(le)-275(of)-274(th)1(e)-275(P)1(SBLAS)-274(lib)1(rar)1(y)-274(is)-275(th)1(at)-275(t)1(he)-275(l)1(ibr)1(ary)-274(ob)-55(jec)-1(t)1(s)]TJ 0 -11.955 Td[(are)-311(c)-1(r)1(e)-1(ated)-311(an)1(d)-311(exist)-311(with)-311(r)1(e)-1(f)1(e)-1(r)1(e)-1(n)1(c)-1(e)-311(to)-311(a)-311(discre)-1(t)1(iz)-1(ed)-311(space)-312(t)1(o)-312(wh)1(ic)27(h)-310(there)-311(c)-1(or)1(re-)]TJ 0 -11.955 Td[(sp)-28(on)1(ds)-340(an)-339(in)1(dex)-340(sp)1(ac)-1(e)-340(an)1(d)-339(a)-340(matrix)-339(sparsit)28(y)-339(patt)1(e)-1(rn)1(.)-463(As)-340(an)-339(example,)-341(c)-1(o)1(nsider)]TJ 0 -11.955 Td[(a)-355(c)-1(ell-ce)-1(n)28(t)1(e)-1(red)-355(\014)1(nit)1(e)-1(-v)28(olu)1(m)-1(e)-355(disc)-1(r)1(e)-1(ti)1(z)-1(ati)1(on)-355(of)-355(th)1(e)-356(Na)28(vier-Sto)1(k)28(e)-1(s)-356(equ)1(ation)1(s)-356(on)-355(a)]TJ 0 -11.955 Td[(sim)27(u)1(lation)-370(domain)1(;)-390(th)1(e)-372(i)1(nd)1(e)-1(x)-371(space)-371(1)]TJ/F11 9.963 Tf 166.004 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 22.959 0 Td[(is)-371(isom)-1(or)1(ph)1(ic)-371(to)-371(the)-371(s)-1(et)-371(of)-370(c)-1(ell)-371(cen-)]TJ -188.963 -11.955 Td[(ters,)-388(w)-1(h)1(e)-1(r)1(e)-1(as)-377(the)-377(pattern)-377(of)-376(the)-378(asso)-28(c)-1(i)1(ate)-1(d)-376(linear)-377(syste)-1(m)-377(m)-1(atr)1(ix)-377(is)-377(is)-1(omorp)1(hi)1(c)]TJ 0 -11.956 Td[(to)-277(the)-278(ad)1(jace)-1(n)1(c)-1(y)-277(grap)1(h)-277(imp)-28(o)1(s)-1(ed)-277(on)-277(the)-278(d)1(is)-1(cretization)-277(me)-1(sh)-277(b)28(y)-277(th)1(e)-278(disc)-1(r)1(e)-1(t)1(iz)-1(ati)1(on)]TJ 0 -11.955 Td[(ste)-1(n)1(c)-1(il)1(.)]TJ 14.944 -12.052 Td[(Th)28(us)-408(the)-409(\014)1(rst)-408(order)-408(of)-408(b)1(usines)-1(s)-408(is)-409(to)-408(e)-1(stab)1(lish)-408(an)-408(ind)1(ex)-409(space,)-427(and)-408(th)1(is)-409(i)1(s)]TJ -14.944 -11.955 Td[(don)1(e)-371(w)-1(i)1(th)-371(a)-371(call)-370(to)]TJ/F32 9.963 Tf 87.109 0 Td[(psb_cdall)]TJ/F8 9.963 Tf 50.769 0 Td[(in)-370(whic)28(h)-371(w)28(e)-372(sp)-27(e)-1(cif)1(y)-371(the)-371(siz)-1(e)-371(of)-370(the)-371(in)1(dex)-371(space)]TJ/F11 9.963 Tf -137.878 -11.955 Td[(n)]TJ/F8 9.963 Tf 9.143 0 Td[(and)-316(the)-318(al)1(lo)-28(cation)-317(of)-317(th)1(e)-318(e)-1(l)1(e)-1(me)-1(n)29(ts)-318(of)-317(the)-317(ind)1(e)-1(x)-317(space)-318(to)-317(the)-318(v)56(ar)1(ious)-318(p)1(ro)-28(ces)-1(se)-1(s)]TJ -9.143 -11.955 Td[(makin)1(g)-334(u)1(p)-333(the)-333(MP)1(I)-334(\050v)1(irtu)1(al\051)-333(par)1(allel)-334(mac)28(hin)1(e)-1(.)]TJ 14.944 -12.052 Td[(The)-309(i)1(nd)1(e)-1(x)-308(space)-309(is)-309(p)1(artit)1(ioned)-308(among)-308(pr)1(o)-28(c)-1(ess)-1(es)-1(,)-313(an)1(d)-308(thi)1(s)-309(c)-1(r)1(e)-1(ates)-309(a)-308(m)-1(ap)1(pi)1(ng)]TJ -14.944 -11.955 Td[(fr)1(om)-250(t)1(he)-249(\134global)1(")-249(n)28(um)28(b)-28(eri)1(ng)-249(1)]TJ/F11 9.963 Tf 132.852 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 21.745 0 Td[(to)-249(a)-249(n)28(u)1(m)27(b)-27(erin)1(g)-249(\134lo)-28(cal")-249(to)-249(eac)27(h)-249(p)1(ro)-28(ces)-1(s;)-277(e)-1(ac)28(h)]TJ -154.597 -11.955 Td[(pr)1(o)-28(ce)-1(ss)]TJ/F11 9.963 Tf 33.772 0 Td[(i)]TJ/F8 9.963 Tf 5.793 0 Td[(will)-237(o)28(wn)-236(a)-237(c)-1(ertain)-236(s)-1(u)1(bse)-1(t)-236(1)]TJ/F11 9.963 Tf 113.509 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 19.263 -1.495 Td[(ro)28(w)]TJ/F9 4.981 Tf 15.802 -0.996 Td[(i)]TJ/F8 9.963 Tf 3.654 2.491 Td[(,)-256(eac)27(h)-237(elem)-1(en)28(t)-237(of)-236(whic)28(h)-237(corresp)-28(on)1(ds)]TJ +/F8 9.963 Tf 127.95 358.152 Td[(Ea)1(c)27(h)-333(pr)1(o)-28(ce)-1(ss)-334(has)-333(its)-334(o)28(wn)-333(v)56(alu)1(e)-1(\050s\051)-333(ind)1(e)-1(p)-27(end)1(e)-1(n)28(tl)1(y)83(.)]TJ/F18 11.955 Tf -28.055 -28.042 Td[(2.)1(1)-1125(A)1(ppli)1(cati)1(on)-375(s)1(tructure)]TJ/F8 9.963 Tf 0 -18.444 Td[(The)-274(m)-1(ain)-273(un)1(derlyi)1(ng)-274(pr)1(incip)1(le)-275(of)-274(th)1(e)-275(P)1(SBLAS)-274(lib)1(rar)1(y)-274(is)-275(th)1(at)-275(t)1(he)-275(l)1(ibr)1(ary)-274(ob)-55(jec)-1(t)1(s)]TJ 0 -11.955 Td[(are)-311(c)-1(r)1(e)-1(ated)-311(an)1(d)-311(exist)-311(with)-311(r)1(e)-1(f)1(e)-1(r)1(e)-1(n)1(c)-1(e)-311(to)-311(a)-311(discre)-1(t)1(iz)-1(ed)-311(space)-312(t)1(o)-312(wh)1(ic)27(h)-310(there)-311(c)-1(or)1(re-)]TJ 0 -11.955 Td[(sp)-28(on)1(ds)-340(an)-339(in)1(dex)-340(sp)1(ac)-1(e)-340(an)1(d)-339(a)-340(matrix)-339(sparsit)28(y)-339(patt)1(e)-1(rn)1(.)-463(As)-340(an)-339(example,)-341(c)-1(o)1(nsider)]TJ 0 -11.955 Td[(a)-355(c)-1(ell-ce)-1(n)28(t)1(e)-1(red)-355(\014)1(nit)1(e)-1(-v)28(olu)1(m)-1(e)-355(disc)-1(r)1(e)-1(ti)1(z)-1(ati)1(on)-355(of)-355(th)1(e)-356(Na)28(vier-Sto)1(k)28(e)-1(s)-356(equ)1(ation)1(s)-356(on)-355(a)]TJ 0 -11.955 Td[(sim)27(u)1(lation)-370(domain)1(;)-390(th)1(e)-372(i)1(nd)1(e)-1(x)-371(space)-371(1)]TJ/F11 9.963 Tf 166.004 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 22.959 0 Td[(is)-371(isom)-1(or)1(ph)1(ic)-371(to)-371(the)-371(s)-1(et)-371(of)-370(c)-1(ell)-371(cen-)]TJ -188.963 -11.956 Td[(ters,)-388(w)-1(h)1(e)-1(r)1(e)-1(as)-377(the)-377(pattern)-377(of)-376(the)-378(asso)-28(c)-1(i)1(ate)-1(d)-376(linear)-377(syste)-1(m)-377(m)-1(atr)1(ix)-377(is)-377(is)-1(omorp)1(hi)1(c)]TJ 0 -11.955 Td[(to)-277(the)-278(ad)1(jace)-1(n)1(c)-1(y)-277(grap)1(h)-277(imp)-28(o)1(s)-1(ed)-277(on)-277(the)-278(d)1(is)-1(cretization)-277(me)-1(sh)-277(b)28(y)-277(th)1(e)-278(disc)-1(r)1(e)-1(t)1(iz)-1(ati)1(on)]TJ 0 -11.955 Td[(ste)-1(n)1(c)-1(il)1(.)]TJ 14.944 -11.984 Td[(Th)28(us)-408(the)-409(\014)1(rst)-408(order)-408(of)-408(b)1(usines)-1(s)-408(is)-409(to)-408(e)-1(stab)1(lish)-408(an)-408(ind)1(ex)-409(space,)-427(and)-408(th)1(is)-409(i)1(s)]TJ -14.944 -11.955 Td[(don)1(e)-371(w)-1(i)1(th)-371(a)-371(call)-370(to)]TJ/F32 9.963 Tf 87.109 0 Td[(psb_cdall)]TJ/F8 9.963 Tf 50.769 0 Td[(in)-370(whic)28(h)-371(w)28(e)-372(sp)-27(e)-1(cif)1(y)-371(the)-371(siz)-1(e)-371(of)-370(the)-371(in)1(dex)-371(space)]TJ/F11 9.963 Tf -137.878 -11.955 Td[(n)]TJ/F8 9.963 Tf 9.143 0 Td[(and)-316(the)-318(al)1(lo)-28(cation)-317(of)-317(th)1(e)-318(e)-1(l)1(e)-1(me)-1(n)29(ts)-318(of)-317(the)-317(ind)1(e)-1(x)-317(space)-318(to)-317(the)-318(v)56(ar)1(ious)-318(p)1(ro)-28(ces)-1(se)-1(s)]TJ -9.143 -11.956 Td[(makin)1(g)-334(u)1(p)-333(the)-333(MP)1(I)-334(\050v)1(irtu)1(al\051)-333(par)1(allel)-334(mac)28(hin)1(e)-1(.)]TJ 14.944 -11.984 Td[(The)-309(i)1(nd)1(e)-1(x)-308(space)-309(is)-309(p)1(artit)1(ioned)-308(among)-308(pr)1(o)-28(c)-1(ess)-1(es)-1(,)-313(an)1(d)-308(thi)1(s)-309(c)-1(r)1(e)-1(ates)-309(a)-308(m)-1(ap)1(pi)1(ng)]TJ -14.944 -11.955 Td[(fr)1(om)-250(t)1(he)-249(\134global)1(")-249(n)28(um)28(b)-28(eri)1(ng)-249(1)]TJ/F11 9.963 Tf 132.852 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 21.745 0 Td[(to)-249(a)-249(n)28(u)1(m)27(b)-27(erin)1(g)-249(\134lo)-28(cal")-249(to)-249(eac)27(h)-249(p)1(ro)-28(ces)-1(s;)-277(e)-1(ac)28(h)]TJ -154.597 -11.955 Td[(pr)1(o)-28(ce)-1(ss)]TJ/F11 9.963 Tf 33.772 0 Td[(i)]TJ/F8 9.963 Tf 5.793 0 Td[(will)-237(o)28(wn)-236(a)-237(c)-1(ertain)-236(s)-1(u)1(bse)-1(t)-236(1)]TJ/F11 9.963 Tf 113.509 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 19.263 -1.495 Td[(ro)28(w)]TJ/F9 4.981 Tf 15.802 -0.996 Td[(i)]TJ/F8 9.963 Tf 3.654 2.491 Td[(,)-256(eac)27(h)-237(elem)-1(en)28(t)-237(of)-236(whic)28(h)-237(corresp)-28(on)1(ds)]TJ -191.793 -11.955 Td[(to)-389(a)-390(ce)-1(rt)1(ain)-389(e)-1(leme)-1(n)29(t)-390(of)-389(1)]TJ/F11 9.963 Tf 111.314 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 19.263 0 Td[(.)-613(The)-390(u)1(s)-1(er)-389(do)-28(es)-390(not)-389(s)-1(et)-390(exp)1(licitly)-389(th)1(is)-390(m)-1(a)1(ppi)1(ng;)]TJ -130.577 -11.955 Td[(when)-392(th)1(e)-393(app)1(lication)-392(n)1(e)-1(eds)-392(to)-392(ind)1(icate)-393(to)-392(whic)28(h)-392(e)-1(l)1(e)-1(me)-1(n)29(t)-392(of)-392(the)-392(ind)1(e)-1(x)-392(space)-393(a)]TJ ET 1 0 0 1 99.895 90.438 cm 0 g 0 G @@ -3519,40 +3715,40 @@ ET 0 g 0 G endstream endobj -395 0 obj << +415 0 obj << /Type /Page -/Contents 396 0 R -/Resources 394 0 R +/Contents 416 0 R +/Resources 414 0 R /MediaBox [0 0 595.276 841.89] -/Parent 279 0 R -/Annots [ 401 0 R 402 0 R ] +/Parent 295 0 R +/Annots [ 421 0 R 422 0 R ] >> endobj -401 0 obj << +421 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [406.358 484.161 413.331 496.116] +/Rect [406.358 506.504 413.331 518.459] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -402 0 obj << +422 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] -/Rect [173.863 451.894 180.837 463.849] +/Rect [173.863 474.507 180.837 486.462] /Subtype /Link /A << /S /GoTo /D (section.6) >> >> endobj -397 0 obj << -/D [395 0 R /XYZ 99.895 740.998 null] +417 0 obj << +/D [415 0 R /XYZ 99.895 740.998 null] >> endobj 18 0 obj << -/D [395 0 R /XYZ 99.895 318.014 null] +/D [415 0 R /XYZ 99.895 341.596 null] >> endobj -394 0 obj << -/Font << /F14 385 0 R /F8 278 0 R /F29 275 0 R /F32 400 0 R /F18 269 0 R /F11 367 0 R /F9 405 0 R >> +414 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F14 405 0 R /F32 420 0 R /F18 285 0 R /F11 387 0 R /F9 425 0 R >> /ProcSet [ /PDF /Text ] >> endobj -408 0 obj << -/Length 10945 +428 0 obj << +/Length 10701 >> stream 1 0 0 1 150.705 740.998 cm @@ -3561,187 +3757,199 @@ stream 0 g 0 G 1 0 0 1 -494.416 -740.998 cm BT -/F8 9.963 Tf 150.705 706.129 Td[(to)-389(a)-390(ce)-1(rt)1(ain)-389(e)-1(l)1(e)-1(me)-1(n)29(t)-390(of)-389(1)]TJ/F11 9.963 Tf 111.313 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 19.263 0 Td[(.)-613(The)-390(u)1(s)-1(er)-389(do)-28(es)-390(not)-389(s)-1(et)-390(exp)1(licitly)-389(th)1(is)-390(m)-1(ap)1(pi)1(ng;)]TJ -130.576 -11.955 Td[(when)-392(th)1(e)-393(app)1(lication)-392(n)1(e)-1(eds)-392(to)-392(ind)1(icate)-393(to)-392(whic)28(h)-392(e)-1(l)1(e)-1(men)28(t)-392(of)-392(the)-392(ind)1(e)-1(x)-392(space)-393(a)]TJ 0 -11.955 Td[(ce)-1(r)1(tain)-273(i)1(te)-1(m)-273(is)-273(related,)-284(s)-1(u)1(c)27(h)-273(as)-273(th)1(e)-274(r)1(o)27(w)-273(an)1(d)-273(colu)1(m)-1(n)-272(ind)1(ex)-273(of)-273(a)-273(matr)1(ix)-273(co)-28(e\016)-1(cien)28(t,)]TJ 0 -11.956 Td[(it)-448(do)-28(es)-449(so)-449(in)-448(th)1(e)-449(\134global)1(")-449(n)28(u)1(m)27(b)-27(e)-1(r)1(ing,)-477(an)1(d)-448(the)-449(li)1(brar)1(y)-449(wil)1(l)-449(tr)1(anslate)-449(in)28(t)1(o)-449(th)1(e)]TJ 0 -11.955 Td[(app)1(rop)1(riate)-333(\134lo)-28(cal")-333(n)28(um)28(b)-27(e)-1(r)1(ing.)]TJ 14.944 -11.955 Td[(F)84(or)-274(a)-273(giv)28(e)-1(n)-273(in)1(dex)-274(space)-274(1)]TJ/F11 9.963 Tf 109.331 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 21.99 0 Td[(th)1(e)-1(re)-274(ar)1(e)-274(m)-1(an)29(y)-274(p)-27(os)-1(sib)1(le)-274(as)-1(so)-28(ciated)-274(top)-27(ologi)1(e)-1(s,)]TJ -146.265 -11.955 Td[(i.e.)-418(man)28(y)-254(d)1(i\013e)-1(r)1(e)-1(n)28(t)-254(d)1(isc)-1(r)1(e)-1(tization)-253(s)-1(tencils;)-280(th)28(u)1(s)-255(th)1(e)-255(desc)-1(r)1(ipti)1(on)-254(of)-254(th)1(e)-255(in)1(dex)-254(space)]TJ 0 -11.955 Td[(is)-355(not)-355(complete)-1(d)-354(un)29(til)-355(th)1(e)-356(u)1(s)-1(er)-355(has)-355(de\014n)1(e)-1(d)-354(a)-355(s)-1(p)1(arsit)28(y)-355(p)1(atte)-1(r)1(n,)-360(e)-1(i)1(ther)-355(expl)1(ic)-1(i)1(tly)]TJ 0 -11.956 Td[(th)1(rough)]TJ/F32 9.963 Tf 36.93 0 Td[(psb_cdins)]TJ/F8 9.963 Tf 49.66 0 Td[(or)-259(impli)1(c)-1(itl)1(y)-260(th)1(rou)1(gh)]TJ/F32 9.963 Tf 92.223 0 Td[(psb_spins)]TJ/F8 9.963 Tf 47.073 0 Td[(.)-420(Th)1(e)-260(des)-1(crip)1(tor)-259(is)-260(\014n)1(alize)-1(d)]TJ -225.886 -11.955 Td[(with)-354(a)-354(call)-354(to)]TJ/F32 9.963 Tf 62.273 0 Td[(psb_cdasb)]TJ/F8 9.963 Tf 50.604 0 Td[(an)1(d)-354(a)-355(spar)1(s)-1(e)-354(m)-1(atr)1(ix)-354(with)-354(a)-354(c)-1(al)1(l)-354(to)]TJ/F32 9.963 Tf 153.217 0 Td[(psb_spasb)]TJ/F8 9.963 Tf 47.073 0 Td[(.)-507(After)]TJ/F32 9.963 Tf -313.167 -11.955 Td[(psb_cdasb)]TJ/F8 9.963 Tf 50.443 0 Td[(eac)27(h)-338(p)1(ro)-28(ce)-1(ss)]TJ/F11 9.963 Tf 57.244 0 Td[(i)]TJ/F8 9.963 Tf 6.802 0 Td[(will)-338(h)1(a)27(v)28(e)-338(de\014n)1(e)-1(d)-337(a)-339(set)-339(of)-337(\134halo")-338(\050or)-338(\134gh)1(ost"\051)-338(ind)1(ic)-1(es)]TJ/F11 9.963 Tf -114.489 -11.955 Td[(n)]TJ/F8 9.963 Tf 5.98 -1.494 Td[(ro)28(w)]TJ/F9 4.981 Tf 15.802 -0.997 Td[(i)]TJ/F8 9.963 Tf 5.985 2.491 Td[(+)-234(1)]TJ/F11 9.963 Tf 16.721 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 19.264 -3.487 Td[(col)]TJ/F9 4.981 Tf 12.176 -0.996 Td[(i)]TJ/F8 9.963 Tf 3.655 4.483 Td[(,)-355(denot)1(ing)-351(elem)-1(en)28(ts)-351(of)-351(th)1(e)-351(ind)1(e)-1(x)-350(s)-1(p)1(ac)-1(e)-351(that)-350(are)]TJ/F19 9.963 Tf 209.596 0 Td[(not)]TJ/F8 9.963 Tf 18.445 0 Td[(ass)-1(ign)1(e)-1(d)]TJ -307.624 -11.955 Td[(to)-284(p)1(ro)-28(ces)-1(s)]TJ/F11 9.963 Tf 45.92 0 Td[(i)]TJ/F8 9.963 Tf 3.433 0 Td[(;)-300(ho)28(w)28(e)-1(v)28(er)-283(the)-284(v)56(ariab)1(les)-285(ass)-1(o)-27(c)-1(i)1(ate)-1(d)-283(with)-283(them)-284(are)-284(needed)-284(to)-283(c)-1(ompl)1(e)-1(te)]TJ -49.353 -11.955 Td[(com)-1(p)1(utati)1(ons)-410(ass)-1(o)-27(c)-1(iat)1(e)-1(d)-409(with)-409(th)1(e)-410(s)-1(p)1(arse)-410(matrix)]TJ/F11 9.963 Tf 216.316 0 Td[(A)]TJ/F8 9.963 Tf 7.472 0 Td[(,)-428(and)-409(th)28(u)1(s)-410(th)1(e)-1(y)-409(ha)28(v)28(e)-410(to)-409(b)-27(e)]TJ -223.788 -11.956 Td[(fetc)28(hed)-464(f)1(rom)-464(\050n)1(e)-1(i)1(gh)28(b)-27(ouri)1(ng\051)-463(pro)-27(c)-1(es)-1(se)-1(s.)-835(The)-464(d)1(e)-1(sc)-1(r)1(iptor)-463(of)-463(th)1(e)-464(ind)1(e)-1(x)-463(s)-1(p)1(ac)-1(e)-464(i)1(s)]TJ 0 -11.955 Td[(bu)1(ilt)-393(e)-1(xactly)-393(for)-393(the)-394(pu)1(rp)-27(ose)-395(of)-393(pr)1(op)-28(erl)1(y)-394(s)-1(equ)1(e)-1(n)1(c)-1(i)1(ng)-394(th)1(e)-395(comm)27(u)1(nication)-393(s)-1(t)1(e)-1(p)1(s)]TJ 0 -11.955 Td[(requ)1(ired)-333(to)-333(ac)27(h)1(ie)-1(v)28(e)-333(this)-333(ob)-55(jec)-1(ti)1(v)28(e)-1(.)]TJ 14.944 -11.955 Td[(A)-306(simple)-306(ap)1(pli)1(c)-1(ati)1(on)-306(stru)1(c)-1(tu)1(re)-306(will)-305(w)27(alk)-305(thr)1(ough)-305(th)1(e)-307(in)1(dex)-306(space)-306(allo)-28(cation)1(,)]TJ -14.944 -11.955 Td[(matrix)1(/v)28(e)-1(ctor)-333(cre)-1(a)1(tion)-333(and)-332(lin)1(e)-1(ar)-333(syste)-1(m)-333(s)-1(olu)1(tion)-333(as)-333(foll)1(o)27(ws:)]TJ +/F8 9.963 Tf 150.705 706.129 Td[(ce)-1(r)1(tain)-273(i)1(te)-1(m)-273(is)-273(related,)-285(su)1(c)27(h)-273(as)-273(th)1(e)-274(r)1(o)27(w)-273(an)1(d)-273(colu)1(m)-1(n)-272(ind)1(ex)-273(of)-273(a)-273(matr)1(ix)-273(co)-28(e\016)-1(cien)28(t,)]TJ 0 -11.955 Td[(it)-448(do)-28(es)-449(so)-449(in)-448(th)1(e)-449(\134global)1(")-449(n)28(u)1(m)27(b)-27(e)-1(r)1(ing,)-477(an)1(d)-448(the)-449(li)1(brar)1(y)-449(wil)1(l)-449(tr)1(anslate)-449(in)28(t)1(o)-449(th)1(e)]TJ 0 -11.955 Td[(app)1(rop)1(riate)-333(\134lo)-28(cal")-333(n)28(um)28(b)-27(e)-1(r)1(ing.)]TJ 14.944 -12.018 Td[(F)84(or)-274(a)-273(giv)28(e)-1(n)-273(in)1(dex)-274(space)-274(1)]TJ/F11 9.963 Tf 109.331 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 21.99 0 Td[(th)1(e)-1(re)-274(ar)1(e)-274(m)-1(an)29(y)-274(p)-27(os)-1(sib)1(le)-274(as)-1(so)-28(ciated)-274(top)-27(ologi)1(e)-1(s,)]TJ -146.265 -11.955 Td[(i.e.)-418(man)28(y)-254(d)1(i\013e)-1(r)1(e)-1(n)28(t)-254(d)1(isc)-1(r)1(e)-1(tization)-253(s)-1(tencils;)-280(th)28(u)1(s)-255(th)1(e)-255(desc)-1(r)1(ipti)1(on)-254(of)-254(th)1(e)-255(in)1(dex)-254(space)]TJ 0 -11.955 Td[(is)-355(not)-355(complete)-1(d)-354(un)29(til)-355(th)1(e)-356(u)1(s)-1(er)-355(has)-355(de\014n)1(e)-1(d)-354(a)-355(s)-1(p)1(arsit)28(y)-355(p)1(atte)-1(r)1(n,)-360(e)-1(i)1(ther)-355(expl)1(ic)-1(i)1(tly)]TJ 0 -11.955 Td[(th)1(rough)]TJ/F32 9.963 Tf 36.93 0 Td[(psb_cdins)]TJ/F8 9.963 Tf 49.66 0 Td[(or)-259(impli)1(c)-1(itl)1(y)-260(th)1(rou)1(gh)]TJ/F32 9.963 Tf 92.223 0 Td[(psb_spins)]TJ/F8 9.963 Tf 47.073 0 Td[(.)-420(Th)1(e)-260(des)-1(crip)1(tor)-259(is)-260(\014n)1(alize)-1(d)]TJ -225.886 -11.956 Td[(with)-354(a)-354(call)-354(to)]TJ/F32 9.963 Tf 62.273 0 Td[(psb_cdasb)]TJ/F8 9.963 Tf 50.604 0 Td[(an)1(d)-354(a)-355(spar)1(s)-1(e)-354(m)-1(atr)1(ix)-354(with)-354(a)-354(c)-1(al)1(l)-354(to)]TJ/F32 9.963 Tf 153.217 0 Td[(psb_spasb)]TJ/F8 9.963 Tf 47.073 0 Td[(.)-507(After)]TJ/F32 9.963 Tf -313.167 -11.955 Td[(psb_cdasb)]TJ/F8 9.963 Tf 50.443 0 Td[(eac)27(h)-338(p)1(ro)-28(ce)-1(ss)]TJ/F11 9.963 Tf 57.244 0 Td[(i)]TJ/F8 9.963 Tf 6.802 0 Td[(will)-338(h)1(a)27(v)28(e)-338(de\014n)1(e)-1(d)-337(a)-339(set)-339(of)-337(\134halo")-338(\050or)-338(\134gh)1(ost"\051)-338(ind)1(ic)-1(es)]TJ/F11 9.963 Tf -114.489 -11.955 Td[(n)]TJ/F8 9.963 Tf 5.98 -1.494 Td[(ro)28(w)]TJ/F9 4.981 Tf 15.802 -0.997 Td[(i)]TJ/F8 9.963 Tf 5.985 2.491 Td[(+)-234(1)]TJ/F11 9.963 Tf 16.721 0 Td[(:)-166(:)-167(:)-166(n)]TJ/F8 9.963 Tf 19.264 -3.487 Td[(col)]TJ/F9 4.981 Tf 12.176 -0.996 Td[(i)]TJ/F8 9.963 Tf 3.655 4.483 Td[(,)-355(denot)1(ing)-351(elem)-1(en)28(ts)-351(of)-351(th)1(e)-351(ind)1(e)-1(x)-350(s)-1(p)1(ac)-1(e)-351(that)-350(are)]TJ/F19 9.963 Tf 209.596 0 Td[(not)]TJ/F8 9.963 Tf 18.445 0 Td[(ass)-1(ign)1(e)-1(d)]TJ -307.624 -11.955 Td[(to)-284(p)1(ro)-28(ces)-1(s)]TJ/F11 9.963 Tf 45.92 0 Td[(i)]TJ/F8 9.963 Tf 3.433 0 Td[(;)-300(ho)28(w)28(e)-1(v)28(er)-283(the)-284(v)56(ariab)1(les)-285(ass)-1(o)-27(c)-1(i)1(ate)-1(d)-283(with)-283(them)-284(are)-284(needed)-284(to)-283(c)-1(ompl)1(e)-1(te)]TJ -49.353 -11.955 Td[(com)-1(p)1(utati)1(ons)-410(ass)-1(o)-27(c)-1(iat)1(e)-1(d)-409(with)-409(th)1(e)-410(s)-1(p)1(arse)-410(matrix)]TJ/F11 9.963 Tf 216.316 0 Td[(A)]TJ/F8 9.963 Tf 7.472 0 Td[(,)-428(and)-409(th)28(u)1(s)-410(th)1(e)-1(y)-409(ha)28(v)28(e)-410(to)-409(b)-27(e)]TJ -223.788 -11.955 Td[(fetc)28(hed)-464(f)1(rom)-464(\050n)1(e)-1(i)1(gh)28(b)-27(ouri)1(ng\051)-463(pro)-27(c)-1(es)-1(se)-1(s.)-835(The)-464(d)1(e)-1(sc)-1(r)1(iptor)-463(of)-463(th)1(e)-464(ind)1(e)-1(x)-463(s)-1(p)1(ac)-1(e)-464(i)1(s)]TJ 0 -11.956 Td[(bu)1(ilt)-393(e)-1(xactly)-393(for)-393(the)-394(pu)1(rp)-27(ose)-395(of)-393(pr)1(op)-28(erl)1(y)-394(s)-1(equ)1(e)-1(n)1(c)-1(i)1(ng)-394(th)1(e)-395(comm)27(u)1(nication)-393(s)-1(t)1(e)-1(p)1(s)]TJ 0 -11.955 Td[(requ)1(ired)-333(to)-333(ac)27(h)1(ie)-1(v)28(e)-333(this)-333(ob)-55(jec)-1(ti)1(v)28(e)-1(.)]TJ 14.944 -12.017 Td[(A)-306(simple)-306(ap)1(pli)1(c)-1(ati)1(on)-306(stru)1(c)-1(tu)1(re)-306(will)-305(w)27(alk)-305(thr)1(ough)-305(th)1(e)-307(in)1(dex)-306(space)-306(allo)-28(cation)1(,)]TJ -14.944 -11.955 Td[(matrix)1(/v)28(e)-1(ctor)-333(cre)-1(a)1(tion)-333(and)-332(lin)1(e)-1(ar)-333(syste)-1(m)-333(s)-1(olu)1(tion)-333(as)-333(foll)1(o)27(ws:)]TJ +ET +1 0 0 1 150.705 494.61 cm +0 g 0 G +1 0 0 1 -150.705 -494.61 cm +BT +/F8 9.963 Tf 162.881 494.61 Td[(1.)]TJ ET -1 0 0 1 150.705 471.011 cm +1 0 0 1 170.63 494.61 cm 0 g 0 G -1 0 0 1 -150.705 -471.011 cm +1 0 0 1 -170.63 -494.61 cm BT -/F8 9.963 Tf 162.881 471.011 Td[(1.)]TJ +/F8 9.963 Tf 175.611 494.61 Td[(Ini)1(tialize)-334(p)1(arallel)-333(en)28(vir)1(onme)-1(n)29(t)-334(wit)1(h)]TJ/F32 9.963 Tf 156.691 0 Td[(psb_init)]TJ ET -1 0 0 1 170.63 471.011 cm +1 0 0 1 150.705 474.435 cm 0 g 0 G -1 0 0 1 -170.63 -471.011 cm +1 0 0 1 -150.705 -474.435 cm BT -/F8 9.963 Tf 175.611 471.011 Td[(Ini)1(tialize)-334(p)1(arallel)-333(en)28(vir)1(onme)-1(n)29(t)-334(wit)1(h)]TJ/F32 9.963 Tf 156.691 0 Td[(blacs_gridinit)]TJ +/F8 9.963 Tf 162.881 474.435 Td[(2.)]TJ ET -1 0 0 1 150.705 451.085 cm +1 0 0 1 170.63 474.435 cm 0 g 0 G -1 0 0 1 -150.705 -451.085 cm +1 0 0 1 -170.63 -474.435 cm BT -/F8 9.963 Tf 162.881 451.085 Td[(2.)]TJ +/F8 9.963 Tf 175.611 474.435 Td[(Ini)1(tialize)-334(in)1(dex)-333(s)-1(p)1(ac)-1(e)-333(with)]TJ/F32 9.963 Tf 117.394 0 Td[(psb_cdall)]TJ ET -1 0 0 1 170.63 451.085 cm +1 0 0 1 150.705 454.261 cm 0 g 0 G -1 0 0 1 -170.63 -451.085 cm +1 0 0 1 -150.705 -454.261 cm BT -/F8 9.963 Tf 175.611 451.085 Td[(Ini)1(tialize)-334(in)1(dex)-333(s)-1(p)1(ac)-1(e)-333(with)]TJ/F32 9.963 Tf 117.394 0 Td[(psb_cdall)]TJ +/F8 9.963 Tf 162.881 454.261 Td[(3.)]TJ ET -1 0 0 1 150.705 431.16 cm +1 0 0 1 170.63 454.261 cm 0 g 0 G -1 0 0 1 -150.705 -431.16 cm +1 0 0 1 -170.63 -454.261 cm BT -/F8 9.963 Tf 162.881 431.16 Td[(3.)]TJ +/F8 9.963 Tf 175.611 454.261 Td[(Allo)-27(c)-1(ate)-302(spar)1(s)-1(e)-302(matr)1(ix)-301(and)-301(dense)-302(v)28(ec)-1(tor)1(s)-302(with)]TJ/F32 9.963 Tf 202.599 0 Td[(psb_spall)]TJ/F8 9.963 Tf 50.078 0 Td[(an)1(d)]TJ/F32 9.963 Tf 19.055 0 Td[(psb_geall)]TJ ET -1 0 0 1 170.63 431.16 cm +1 0 0 1 150.705 434.087 cm 0 g 0 G -1 0 0 1 -170.63 -431.16 cm +1 0 0 1 -150.705 -434.087 cm BT -/F8 9.963 Tf 175.611 431.16 Td[(Allo)-27(c)-1(ate)-302(spar)1(s)-1(e)-302(matr)1(ix)-301(and)-301(dense)-302(v)28(ec)-1(tor)1(s)-302(with)]TJ/F32 9.963 Tf 202.599 0 Td[(psb_spall)]TJ/F8 9.963 Tf 50.078 0 Td[(an)1(d)]TJ/F32 9.963 Tf 19.055 0 Td[(psb_geall)]TJ +/F8 9.963 Tf 162.881 434.087 Td[(4.)]TJ ET -1 0 0 1 150.705 411.235 cm +1 0 0 1 170.63 434.087 cm 0 g 0 G -1 0 0 1 -150.705 -411.235 cm +1 0 0 1 -170.63 -434.087 cm BT -/F8 9.963 Tf 162.881 411.235 Td[(4.)]TJ +/F8 9.963 Tf 175.611 434.087 Td[(Lo)-28(op)-410(o)27(v)28(er)-411(all)-410(lo)-28(cal)-411(ro)28(ws)-1(,)-430(generate)-411(m)-1(atr)1(ix)-411(an)1(d)-411(v)28(ec)-1(tor)-410(e)-1(n)28(tr)1(ies)-1(,)-430(and)-410(insert)]TJ 0 -11.956 Td[(th)1(e)-1(m)-334(wi)1(th)]TJ/F32 9.963 Tf 48.153 0 Td[(psb_spins)]TJ/F8 9.963 Tf 50.394 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geins)]TJ ET -1 0 0 1 170.63 411.235 cm +1 0 0 1 150.705 401.957 cm 0 g 0 G -1 0 0 1 -170.63 -411.235 cm +1 0 0 1 -150.705 -401.957 cm BT -/F8 9.963 Tf 175.611 411.235 Td[(Lo)-28(op)-410(o)27(v)28(er)-411(all)-410(lo)-28(cal)-411(ro)28(ws)-1(,)-430(generate)-411(m)-1(atr)1(ix)-411(an)1(d)-411(v)28(ec)-1(tor)-410(e)-1(n)28(tr)1(ies)-1(,)-430(and)-410(insert)]TJ 0 -11.955 Td[(th)1(e)-1(m)-334(wi)1(th)]TJ/F32 9.963 Tf 48.153 0 Td[(psb_spins)]TJ/F8 9.963 Tf 50.394 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geins)]TJ +/F8 9.963 Tf 162.881 401.957 Td[(5.)]TJ ET -1 0 0 1 150.705 379.354 cm +1 0 0 1 170.63 401.957 cm 0 g 0 G -1 0 0 1 -150.705 -379.354 cm +1 0 0 1 -170.63 -401.957 cm BT -/F8 9.963 Tf 162.881 379.354 Td[(5.)]TJ +/F8 9.963 Tf 175.611 401.957 Td[(Ass)-1(em)27(b)1(le)-334(th)1(e)-334(v)56(ariou)1(s)-334(en)28(titi)1(e)-1(s:)]TJ ET -1 0 0 1 170.63 379.354 cm +1 0 0 1 175.611 381.783 cm 0 g 0 G -1 0 0 1 -170.63 -379.354 cm +1 0 0 1 -175.611 -381.783 cm BT -/F8 9.963 Tf 175.611 379.354 Td[(Ass)-1(em)27(b)1(le)-334(th)1(e)-334(v)56(ariou)1(s)-334(en)28(titi)1(e)-1(s:)]TJ +/F8 9.963 Tf 179.818 381.783 Td[(\050a\051)]TJ ET -1 0 0 1 175.611 359.429 cm +1 0 0 1 192.548 381.783 cm 0 g 0 G -1 0 0 1 -175.611 -359.429 cm +1 0 0 1 -192.548 -381.783 cm BT -/F8 9.963 Tf 179.818 359.429 Td[(\050a\051)]TJ +/F32 9.963 Tf 197.529 381.783 Td[(psb_cdasb)]TJ ET -1 0 0 1 192.548 359.429 cm +1 0 0 1 175.611 365.718 cm 0 g 0 G -1 0 0 1 -192.548 -359.429 cm +1 0 0 1 -175.611 -365.718 cm BT -/F32 9.963 Tf 197.529 359.429 Td[(psb_cdasb)]TJ +/F8 9.963 Tf 179.264 365.718 Td[(\050b)1(\051)]TJ ET -1 0 0 1 175.611 343.489 cm +1 0 0 1 192.548 365.718 cm 0 g 0 G -1 0 0 1 -175.611 -343.489 cm +1 0 0 1 -192.548 -365.718 cm BT -/F8 9.963 Tf 179.264 343.489 Td[(\050b)1(\051)]TJ +/F32 9.963 Tf 197.529 365.718 Td[(psb_spasb)]TJ ET -1 0 0 1 192.548 343.489 cm +1 0 0 1 175.611 349.653 cm 0 g 0 G -1 0 0 1 -192.548 -343.489 cm +1 0 0 1 -175.611 -349.653 cm BT -/F32 9.963 Tf 197.529 343.489 Td[(psb_spasb)]TJ +/F8 9.963 Tf 180.371 349.653 Td[(\050c\051)]TJ ET -1 0 0 1 175.611 327.549 cm +1 0 0 1 192.548 349.653 cm 0 g 0 G -1 0 0 1 -175.611 -327.549 cm +1 0 0 1 -192.548 -349.653 cm BT -/F8 9.963 Tf 180.371 327.549 Td[(\050c\051)]TJ +/F32 9.963 Tf 197.529 349.653 Td[(psb_geasb)]TJ ET -1 0 0 1 192.548 327.549 cm +1 0 0 1 150.705 329.479 cm 0 g 0 G -1 0 0 1 -192.548 -327.549 cm +1 0 0 1 -150.705 -329.479 cm BT -/F32 9.963 Tf 197.529 327.549 Td[(psb_geasb)]TJ +/F8 9.963 Tf 162.881 329.479 Td[(6.)]TJ ET -1 0 0 1 150.705 307.623 cm +1 0 0 1 170.63 329.479 cm 0 g 0 G -1 0 0 1 -150.705 -307.623 cm +1 0 0 1 -170.63 -329.479 cm BT -/F8 9.963 Tf 162.881 307.623 Td[(6.)]TJ +/F8 9.963 Tf 175.611 329.479 Td[(Cho)-28(ose)-287(th)1(e)-287(precondi)1(tion)1(e)-1(r)-286(to)-287(b)-27(e)-287(used)-287(wit)1(h)]TJ/F32 9.963 Tf 185.645 0 Td[(psb_precset)]TJ/F8 9.963 Tf 60.39 0 Td[(an)1(d)-287(b)1(ui)1(ld)-286(it)-287(wit)1(h)]TJ/F32 9.963 Tf -246.035 -11.955 Td[(psb_precbld)]TJ ET -1 0 0 1 170.63 307.623 cm +1 0 0 1 150.705 297.349 cm 0 g 0 G -1 0 0 1 -170.63 -307.623 cm +1 0 0 1 -150.705 -297.349 cm BT -/F8 9.963 Tf 175.611 307.623 Td[(Cho)-28(ose)-287(th)1(e)-287(precondi)1(tion)1(e)-1(r)-286(to)-287(b)-27(e)-287(used)-287(wit)1(h)]TJ/F32 9.963 Tf 185.645 0 Td[(psb_precset)]TJ/F8 9.963 Tf 60.39 0 Td[(an)1(d)-287(b)1(ui)1(ld)-286(it)-287(wit)1(h)]TJ/F32 9.963 Tf -246.035 -11.955 Td[(psb_precbld)]TJ +/F8 9.963 Tf 162.881 297.349 Td[(7.)]TJ ET -1 0 0 1 150.705 275.743 cm +1 0 0 1 170.63 297.349 cm 0 g 0 G -1 0 0 1 -150.705 -275.743 cm +1 0 0 1 -170.63 -297.349 cm BT -/F8 9.963 Tf 162.881 275.743 Td[(7.)]TJ +/F8 9.963 Tf 175.611 297.349 Td[(Call)-333(the)-333(iterativ)28(e)-333(m)-1(eth)1(o)-28(d)-333(of)-333(c)27(h)1(oice)-1(,)-333(e.g.)]TJ/F32 9.963 Tf 176.865 0 Td[(psb_bicgstab)]TJ/F8 9.963 Tf -201.771 -20.112 Td[(Thi)1(s)-334(is)-334(th)1(e)-334(stru)1(c)-1(tu)1(re)-334(of)-333(t)1(he)-334(sample)-333(progr)1(am)]TJ/F32 9.963 Tf 194.327 0 Td[(test/pargen/ppde90.f90)]TJ/F8 9.963 Tf 115.067 0 Td[(.)]TJ -294.45 -12.017 Td[(F)84(or)-292(a)-291(s)-1(im)28(ul)1(ation)-291(in)-291(whic)28(h)-291(the)-292(sam)-1(e)-292(d)1(is)-1(cretization)-291(me)-1(sh)-291(is)-292(use)-1(d)-291(o)28(v)28(er)-292(m)28(ul)1(tipl)1(e)]TJ -14.944 -11.955 Td[(time)-334(steps,)-333(the)-334(f)1(ollo)28(win)1(g)-334(stru)1(c)-1(tu)1(re)-333(m)-1(a)28(y)-333(b)-27(e)-334(more)-334(ap)1(prop)1(ria)1(te)-1(:)]TJ ET -1 0 0 1 170.63 275.743 cm +1 0 0 1 150.705 233.153 cm 0 g 0 G -1 0 0 1 -170.63 -275.743 cm +1 0 0 1 -150.705 -233.153 cm BT -/F8 9.963 Tf 175.611 275.743 Td[(Call)-333(the)-333(iterativ)28(e)-333(m)-1(eth)1(o)-28(d)-333(of)-333(c)27(h)1(oice)-1(,)-333(e.g.)]TJ/F32 9.963 Tf 176.865 0 Td[(psb_bicgstab)]TJ/F8 9.963 Tf -201.771 -19.925 Td[(Thi)1(s)-334(is)-334(th)1(e)-334(stru)1(c)-1(tu)1(re)-334(of)-333(t)1(he)-334(sample)-333(progr)1(am)]TJ/F32 9.963 Tf 194.327 0 Td[(test/pargen/ppde90.f90)]TJ/F8 9.963 Tf 115.067 0 Td[(.)]TJ -294.45 -11.956 Td[(F)84(or)-292(a)-291(s)-1(im)28(ul)1(ation)-291(in)-291(whic)28(h)-291(the)-292(sam)-1(e)-292(d)1(is)-1(cretization)-291(me)-1(sh)-291(is)-292(use)-1(d)-291(o)28(v)28(er)-292(m)28(ul)1(tipl)1(e)]TJ -14.944 -11.955 Td[(time)-334(steps,)-333(the)-334(f)1(ollo)28(win)1(g)-334(stru)1(c)-1(tu)1(re)-333(m)-1(a)28(y)-333(b)-27(e)-334(more)-334(ap)1(prop)1(ria)1(te)-1(:)]TJ +/F8 9.963 Tf 162.881 233.153 Td[(1.)]TJ ET -1 0 0 1 150.705 211.982 cm +1 0 0 1 170.63 233.153 cm 0 g 0 G -1 0 0 1 -150.705 -211.982 cm +1 0 0 1 -170.63 -233.153 cm BT -/F8 9.963 Tf 162.881 211.982 Td[(1.)]TJ +/F8 9.963 Tf 175.611 233.153 Td[(Ini)1(tialize)-334(p)1(arallel)-333(en)28(vir)1(onme)-1(n)29(t)-334(wit)1(h)]TJ/F32 9.963 Tf 156.691 0 Td[(psb_init)]TJ ET -1 0 0 1 170.63 211.982 cm +1 0 0 1 150.705 212.978 cm 0 g 0 G -1 0 0 1 -170.63 -211.982 cm +1 0 0 1 -150.705 -212.978 cm BT -/F8 9.963 Tf 175.611 211.982 Td[(Ini)1(tialize)-334(p)1(arallel)-333(en)28(vir)1(onme)-1(n)29(t)-334(wit)1(h)]TJ/F32 9.963 Tf 156.691 0 Td[(blacs_gridinit)]TJ +/F8 9.963 Tf 162.881 212.978 Td[(2.)]TJ ET -1 0 0 1 150.705 192.057 cm +1 0 0 1 170.63 212.978 cm 0 g 0 G -1 0 0 1 -150.705 -192.057 cm +1 0 0 1 -170.63 -212.978 cm BT -/F8 9.963 Tf 162.881 192.057 Td[(2.)]TJ +/F8 9.963 Tf 175.611 212.978 Td[(Ini)1(tialize)-334(in)1(dex)-333(s)-1(p)1(ac)-1(e)-333(with)]TJ/F32 9.963 Tf 117.394 0 Td[(psb_cdall)]TJ ET -1 0 0 1 170.63 192.057 cm +1 0 0 1 150.705 192.804 cm 0 g 0 G -1 0 0 1 -170.63 -192.057 cm +1 0 0 1 -150.705 -192.804 cm BT -/F8 9.963 Tf 175.611 192.057 Td[(Ini)1(tialize)-334(in)1(dex)-333(s)-1(p)1(ac)-1(e)-333(with)]TJ/F32 9.963 Tf 117.394 0 Td[(psb_cdall)]TJ +/F8 9.963 Tf 162.881 192.804 Td[(3.)]TJ ET -1 0 0 1 150.705 172.131 cm +1 0 0 1 170.63 192.804 cm 0 g 0 G -1 0 0 1 -150.705 -172.131 cm +1 0 0 1 -170.63 -192.804 cm BT -/F8 9.963 Tf 162.881 172.131 Td[(3.)]TJ +/F8 9.963 Tf 175.611 192.804 Td[(Lo)-28(op)-271(o)28(v)28(er)-271(the)-272(top)-27(ology)-271(of)-271(th)1(e)-272(di)1(s)-1(cretization)-271(me)-1(sh)-271(and)-271(b)1(uil)1(d)-271(the)-272(d)1(e)-1(scrip)1(tor)]TJ 0 -11.955 Td[(with)]TJ/F32 9.963 Tf 22.693 0 Td[(psb_cdins)]TJ ET -1 0 0 1 170.63 172.131 cm +1 0 0 1 150.705 160.674 cm 0 g 0 G -1 0 0 1 -170.63 -172.131 cm +1 0 0 1 -150.705 -160.674 cm BT -/F8 9.963 Tf 175.611 172.131 Td[(Lo)-28(op)-271(o)28(v)28(er)-271(the)-272(top)-27(ology)-271(of)-271(th)1(e)-272(di)1(s)-1(cretization)-271(me)-1(sh)-271(and)-271(b)1(uil)1(d)-271(the)-272(d)1(e)-1(scrip)1(tor)]TJ 0 -11.955 Td[(with)]TJ/F32 9.963 Tf 22.693 0 Td[(psb_cdins)]TJ +/F8 9.963 Tf 162.881 160.674 Td[(4.)]TJ ET -1 0 0 1 150.705 140.251 cm +1 0 0 1 170.63 160.674 cm 0 g 0 G -1 0 0 1 -150.705 -140.251 cm +1 0 0 1 -170.63 -160.674 cm BT -/F8 9.963 Tf 162.881 140.251 Td[(4.)]TJ +/F8 9.963 Tf 175.611 160.674 Td[(Ass)-1(em)27(b)1(le)-334(th)1(e)-334(desc)-1(ri)1(ptor)-333(with)]TJ/F32 9.963 Tf 130.29 0 Td[(psb_cdasb)]TJ ET -1 0 0 1 170.63 140.251 cm +1 0 0 1 150.705 140.5 cm 0 g 0 G -1 0 0 1 -170.63 -140.251 cm +1 0 0 1 -150.705 -140.5 cm BT -/F8 9.963 Tf 175.611 140.251 Td[(Ass)-1(em)27(b)1(le)-334(th)1(e)-334(desc)-1(ri)1(ptor)-333(with)]TJ/F32 9.963 Tf 130.29 0 Td[(psb_cdasb)]TJ +/F8 9.963 Tf 162.881 140.5 Td[(5.)]TJ +ET +1 0 0 1 170.63 140.5 cm +0 g 0 G +1 0 0 1 -170.63 -140.5 cm +BT +/F8 9.963 Tf 175.611 140.5 Td[(Allo)-27(c)-1(ate)-222(the)-222(s)-1(p)1(arse)-223(matrices)-223(and)-221(dense)-223(v)28(ec)-1(tor)1(s)-223(with)]TJ/F32 9.963 Tf 220.646 0 Td[(psb_spall)]TJ/F8 9.963 Tf 49.287 0 Td[(an)1(d)]TJ/F32 9.963 Tf 18.264 0 Td[(psb_geall)]TJ ET 1 0 0 1 150.705 120.326 cm 0 g 0 G 1 0 0 1 -150.705 -120.326 cm BT -/F8 9.963 Tf 162.881 120.326 Td[(5.)]TJ +/F8 9.963 Tf 162.881 120.326 Td[(6.)]TJ ET 1 0 0 1 170.63 120.326 cm 0 g 0 G 1 0 0 1 -170.63 -120.326 cm BT -/F8 9.963 Tf 175.611 120.326 Td[(Allo)-27(c)-1(ate)-222(the)-222(s)-1(p)1(arse)-223(matrices)-223(and)-221(dense)-223(v)28(ec)-1(tor)1(s)-223(with)]TJ/F32 9.963 Tf 220.646 0 Td[(psb_spall)]TJ/F8 9.963 Tf 49.287 0 Td[(an)1(d)]TJ/F32 9.963 Tf 18.264 0 Td[(psb_geall)]TJ +/F8 9.963 Tf 175.611 120.326 Td[(Lo)-28(op)-333(o)28(v)28(er)-333(the)-333(time)-334(s)-1(t)1(e)-1(p)1(s)-1(:)]TJ ET 1 0 0 1 150.705 90.438 cm 0 g 0 G @@ -3753,144 +3961,147 @@ ET 0 g 0 G endstream endobj -407 0 obj << +427 0 obj << /Type /Page -/Contents 408 0 R -/Resources 406 0 R +/Contents 428 0 R +/Resources 426 0 R /MediaBox [0 0 595.276 841.89] -/Parent 425 0 R +/Parent 446 0 R +>> endobj +429 0 obj << +/D [427 0 R /XYZ 150.705 740.998 null] >> endobj -409 0 obj << -/D [407 0 R /XYZ 150.705 740.998 null] +430 0 obj << +/D [427 0 R /XYZ 150.705 508.184 null] >> endobj -410 0 obj << -/D [407 0 R /XYZ 150.705 484.46 null] +431 0 obj << +/D [427 0 R /XYZ 150.705 488.286 null] >> endobj -411 0 obj << -/D [407 0 R /XYZ 150.705 464.812 null] +432 0 obj << +/D [427 0 R /XYZ 150.705 468.112 null] >> endobj -412 0 obj << -/D [407 0 R /XYZ 150.705 444.886 null] +433 0 obj << +/D [427 0 R /XYZ 150.705 447.937 null] >> endobj -413 0 obj << -/D [407 0 R /XYZ 150.705 424.961 null] +434 0 obj << +/D [427 0 R /XYZ 150.705 415.808 null] >> endobj -414 0 obj << -/D [407 0 R /XYZ 150.705 393.081 null] +435 0 obj << +/D [427 0 R /XYZ 150.705 395.793 null] >> endobj -415 0 obj << -/D [407 0 R /XYZ 150.705 373.377 null] +436 0 obj << +/D [427 0 R /XYZ 150.705 377.237 null] >> endobj -416 0 obj << -/D [407 0 R /XYZ 150.705 354.946 null] +437 0 obj << +/D [427 0 R /XYZ 150.705 361.172 null] >> endobj -417 0 obj << -/D [407 0 R /XYZ 150.705 339.006 null] +438 0 obj << +/D [427 0 R /XYZ 150.705 343.053 null] >> endobj -418 0 obj << -/D [407 0 R /XYZ 150.705 321.073 null] +439 0 obj << +/D [427 0 R /XYZ 150.705 311.2 null] >> endobj -419 0 obj << -/D [407 0 R /XYZ 150.705 289.469 null] +440 0 obj << +/D [427 0 R /XYZ 150.705 247.28 null] >> endobj -420 0 obj << -/D [407 0 R /XYZ 150.705 225.985 null] +441 0 obj << +/D [427 0 R /XYZ 150.705 226.829 null] >> endobj -421 0 obj << -/D [407 0 R /XYZ 150.705 205.783 null] +442 0 obj << +/D [427 0 R /XYZ 150.705 206.655 null] >> endobj -422 0 obj << -/D [407 0 R /XYZ 150.705 185.858 null] +443 0 obj << +/D [427 0 R /XYZ 150.705 174.525 null] >> endobj -423 0 obj << -/D [407 0 R /XYZ 150.705 153.977 null] +444 0 obj << +/D [427 0 R /XYZ 150.705 154.351 null] >> endobj -424 0 obj << -/D [407 0 R /XYZ 150.705 134.052 null] +445 0 obj << +/D [427 0 R /XYZ 150.705 134.176 null] >> endobj -406 0 obj << -/Font << /F8 278 0 R /F11 367 0 R /F32 400 0 R /F9 405 0 R /F19 364 0 R >> +426 0 obj << +/Font << /F8 294 0 R /F11 387 0 R /F32 420 0 R /F9 425 0 R /F19 384 0 R >> /ProcSet [ /PDF /Text ] >> endobj -428 0 obj << -/Length 9260 +449 0 obj << +/Length 8980 >> stream 1 0 0 1 99.895 740.998 cm 0 g 0 G 1 0 0 1 343.711 0 cm 0 g 0 G -1 0 0 1 -343.711 -34.869 cm +1 0 0 1 -318.804 -34.869 cm 0 g 0 G -1 0 0 1 -99.895 -706.129 cm +1 0 0 1 -124.802 -706.129 cm BT -/F8 9.963 Tf 112.072 706.129 Td[(6.)]TJ +/F8 9.963 Tf 129.008 706.129 Td[(\050a\051)]TJ ET -1 0 0 1 119.821 706.129 cm +1 0 0 1 141.739 706.129 cm 0 g 0 G -1 0 0 1 -119.821 -706.129 cm +1 0 0 1 -141.739 -706.129 cm BT -/F8 9.963 Tf 124.802 706.129 Td[(Lo)-28(op)-333(o)28(v)28(er)-333(the)-333(time)-334(ste)-1(p)1(s)-1(:)]TJ +/F8 9.963 Tf 146.72 706.129 Td[(If)-339(after)-339(\014r)1(s)-1(t)-339(time)-340(s)-1(tep)1(,)-341(reinit)1(ialize)-340(the)-339(s)-1(p)1(ars)-1(e)-340(matr)1(ix)-339(w)-1(i)1(th)]TJ/F32 9.963 Tf 252.276 0 Td[(psb_sprn)]TJ/F8 9.963 Tf 41.843 0 Td[(;)]TJ -294.119 -11.955 Td[(also)-333(z)-1(ero)-333(out)-333(th)1(e)-334(dense)-334(v)28(ec)-1(tor)1(s)-1(;)]TJ ET -1 0 0 1 124.802 686.204 cm +1 0 0 1 124.802 678.233 cm 0 g 0 G -1 0 0 1 -124.802 -686.204 cm +1 0 0 1 -124.802 -678.233 cm BT -/F8 9.963 Tf 129.008 686.204 Td[(\050a\051)]TJ +/F8 9.963 Tf 128.455 678.233 Td[(\050b)1(\051)]TJ ET -1 0 0 1 141.739 686.204 cm +1 0 0 1 141.739 678.233 cm 0 g 0 G -1 0 0 1 -141.739 -686.204 cm +1 0 0 1 -141.739 -678.233 cm BT -/F8 9.963 Tf 146.72 686.204 Td[(If)-339(after)-339(\014r)1(s)-1(t)-339(time)-340(s)-1(tep)1(,)-341(reinit)1(ialize)-340(the)-339(s)-1(p)1(ars)-1(e)-340(matr)1(ix)-339(w)-1(i)1(th)]TJ/F32 9.963 Tf 252.276 0 Td[(psb_sprn)]TJ/F8 9.963 Tf 41.843 0 Td[(;)]TJ -294.119 -11.956 Td[(also)-333(z)-1(ero)-333(out)-333(th)1(e)-334(dense)-334(v)28(ec)-1(tor)1(s)-1(;)]TJ +/F8 9.963 Tf 146.72 678.233 Td[(Lo)-28(op)-252(o)28(v)28(er)-253(t)1(he)-253(me)-1(sh,)-268(generate)-253(th)1(e)-253(c)-1(o)-27(e)-1(\016c)-1(i)1(e)-1(n)28(t)1(s)-253(and)-252(in)1(s)-1(ert/u)1(p)-27(date)-253(th)1(e)-1(m)]TJ 0 -11.955 Td[(with)]TJ/F32 9.963 Tf 22.693 0 Td[(psb_spins)]TJ/F8 9.963 Tf 50.393 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geins)]TJ ET -1 0 0 1 124.802 658.308 cm +1 0 0 1 124.802 650.338 cm 0 g 0 G -1 0 0 1 -124.802 -658.308 cm +1 0 0 1 -124.802 -650.338 cm BT -/F8 9.963 Tf 128.455 658.308 Td[(\050b)1(\051)]TJ +/F8 9.963 Tf 129.562 650.338 Td[(\050c\051)]TJ ET -1 0 0 1 141.739 658.308 cm +1 0 0 1 141.739 650.338 cm 0 g 0 G -1 0 0 1 -141.739 -658.308 cm +1 0 0 1 -141.739 -650.338 cm BT -/F8 9.963 Tf 146.72 658.308 Td[(Lo)-28(op)-252(o)28(v)28(er)-253(t)1(he)-253(me)-1(sh,)-268(generate)-253(th)1(e)-253(c)-1(o)-27(e)-1(\016c)-1(i)1(e)-1(n)28(t)1(s)-253(and)-252(in)1(s)-1(ert/u)1(p)-27(date)-253(th)1(e)-1(m)]TJ 0 -11.955 Td[(with)]TJ/F32 9.963 Tf 22.693 0 Td[(psb_spins)]TJ/F8 9.963 Tf 50.393 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geins)]TJ +/F8 9.963 Tf 146.72 650.338 Td[(Ass)-1(em)27(b)1(le)-334(with)]TJ/F32 9.963 Tf 66.528 0 Td[(psb_spasb)]TJ/F8 9.963 Tf 50.394 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geasb)]TJ ET -1 0 0 1 124.802 630.413 cm +1 0 0 1 124.802 634.398 cm 0 g 0 G -1 0 0 1 -124.802 -630.413 cm +1 0 0 1 -124.802 -634.398 cm BT -/F8 9.963 Tf 129.562 630.413 Td[(\050c\051)]TJ +/F8 9.963 Tf 128.455 634.398 Td[(\050d)1(\051)]TJ ET -1 0 0 1 141.739 630.413 cm +1 0 0 1 141.739 634.398 cm 0 g 0 G -1 0 0 1 -141.739 -630.413 cm +1 0 0 1 -141.739 -634.398 cm BT -/F8 9.963 Tf 146.72 630.413 Td[(Ass)-1(em)27(b)1(le)-334(with)]TJ/F32 9.963 Tf 66.528 0 Td[(psb_spasb)]TJ/F8 9.963 Tf 50.394 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geasb)]TJ +/F8 9.963 Tf 146.72 634.398 Td[(Cho)-27(os)-1(e)-223(an)1(d)-222(b)1(uil)1(d)-222(pr)1(e)-1(cond)1(ition)1(e)-1(r)-222(wi)1(th)]TJ/F32 9.963 Tf 162.557 0 Td[(psb_precset)]TJ/F8 9.963 Tf 59.748 0 Td[(and)]TJ/F32 9.963 Tf 18.265 0 Td[(psb_precbld)]TJ ET -1 0 0 1 124.802 614.473 cm +1 0 0 1 124.802 618.458 cm 0 g 0 G -1 0 0 1 -124.802 -614.473 cm +1 0 0 1 -124.802 -618.458 cm BT -/F8 9.963 Tf 128.455 614.473 Td[(\050d)1(\051)]TJ +/F8 9.963 Tf 129.562 618.458 Td[(\050e\051)]TJ ET -1 0 0 1 141.739 614.473 cm +1 0 0 1 141.739 618.458 cm 0 g 0 G -1 0 0 1 -141.739 -614.473 cm +1 0 0 1 -141.739 -618.458 cm BT -/F8 9.963 Tf 146.72 614.473 Td[(Cho)-27(os)-1(e)-223(an)1(d)-222(b)1(uil)1(d)-222(pr)1(e)-1(cond)1(ition)1(e)-1(r)-222(wi)1(th)]TJ/F32 9.963 Tf 162.557 0 Td[(psb_precset)]TJ/F8 9.963 Tf 59.748 0 Td[(and)]TJ/F32 9.963 Tf 18.265 0 Td[(psb_precbld)]TJ +/F8 9.963 Tf 146.72 618.458 Td[(Call)-333(th)1(e)-334(iterativ)28(e)-333(m)-1(eth)1(o)-28(d)-333(of)-333(c)27(h)1(oice)-1(,)-333(e.g.)]TJ/F32 9.963 Tf 176.865 0 Td[(psb_bicgstab)]TJ/F8 9.963 Tf -223.69 -19.926 Td[(The)-382(inse)-1(r)1(tion)-382(r)1(outi)1(nes)-383(will)-382(b)-27(e)-382(c)-1(all)1(e)-1(d)-382(as)-382(man)28(y)-382(time)-1(s)-382(as)-383(n)1(e)-1(eded;)-406(it)-382(is)-382(c)-1(l)1(e)-1(ar)-382(t)1(hat)]TJ 0 -11.955 Td[(th)1(e)-1(y)-392(on)1(ly)-392(n)1(e)-1(ed)-392(b)-27(e)-393(called)-392(on)-391(the)-392(dat)1(a)-392(that)-392(is)-392(actuall)1(y)-392(allo)-27(c)-1(ated)-392(to)-392(th)1(e)-393(cu)1(rren)28(t)]TJ 0 -11.955 Td[(pr)1(o)-28(ce)-1(ss)-1(,)-333(i.)1(e)-1(.)-444(eac)27(h)-333(p)1(ro)-28(ce)-1(ss)-334(generates)-334(its)-333(o)27(wn)-333(d)1(ata.)]TJ 14.944 -11.955 Td[(In)-326(p)1(rin)1(c)-1(ip)1(le)-327(th)1(e)-1(r)1(e)-327(is)-326(no)-326(s)-1(p)-27(ec)-1(i\014)1(c)-327(or)1(der)-326(in)-326(th)1(e)-327(calls)-327(to)]TJ/F32 9.963 Tf 225.879 0 Td[(psb_spins)]TJ/F8 9.963 Tf 47.073 0 Td[(,)-327(nor)-326(is)-326(there)]TJ -287.896 -11.955 Td[(a)-393(requir)1(e)-1(men)28(t)-393(to)-394(b)1(ui)1(ld)-393(a)-393(m)-1(atr)1(ix)-393(ro)28(w)-394(i)1(n)-393(its)-394(en)28(ti)1(re)-1(t)28(y)-393(b)-27(e)-1(f)1(ore)-393(c)-1(all)1(ing)-393(the)-393(rou)1(tine;)]TJ 0 -11.956 Td[(th)1(is)-289(al)1(lo)28(w)-1(s)-288(the)-288(ap)1(plication)-287(pr)1(ogramm)-1(er)-288(to)-288(w)28(alk)-288(t)1(hrou)1(gh)-288(th)1(e)-289(d)1(isc)-1(r)1(e)-1(tization)-287(me)-1(sh)]TJ 0 -11.955 Td[(ele)-1(men)28(t)-401(b)28(y)-401(ele)-1(men)28(t,)-418(generatin)1(g)-401(the)-402(main)-400(part)-401(of)-400(a)-402(gi)1(v)28(e)-1(n)-401(matr)1(ix)-401(ro)28(w)-401(but)-401(al)1(s)-1(o)]TJ 0 -11.955 Td[(con)28(trib)1(ut)1(ions)-334(t)1(o)-334(th)1(e)-334(ro)28(ws)-334(corr)1(e)-1(sp)-28(on)1(di)1(ng)-333(to)-333(neigh)28(b)-27(our)1(ing)-333(ele)-1(men)28(ts.)]TJ 14.944 -11.955 Td[(F)84(rom)-411(a)-410(f)1(un)1(c)-1(ti)1(onal)-410(p)-27(oin)28(t)-409(of)-410(view)-410(it)-410(is)-410(e)-1(v)28(en)-410(p)-27(os)-1(sib)1(le)-411(to)-410(exec)-1(u)1(te)-411(on)1(e)-411(call)-410(f)1(or)]TJ -14.944 -11.955 Td[(eac)27(h)-372(n)1(onzero)-372(co)-28(e)-1(\016cie)-1(n)29(t;)-391(ho)28(w)28(e)-1(v)28(er)-372(th)1(is)-372(w)27(ou)1(ld)-371(ha)28(v)28(e)-372(a)-372(s)-1(u)1(bstan)28(tial)-371(c)-1(ompu)1(tation)1(al)]TJ 0 -11.955 Td[(o)28(v)28(e)-1(r)1(head.)-411(I)-1(t)-235(is)-236(therefor)1(e)-237(ad)1(visabl)1(e)-237(to)-235(pac)27(k)-235(a)-236(ce)-1(r)1(tain)-235(am)-1(ou)1(n)28(t)-236(of)-235(dat)1(a)-236(in)28(to)-235(e)-1(ac)27(h)-235(call)]TJ 0 -11.956 Td[(to)-307(the)-308(in)1(s)-1(erti)1(on)-307(rout)1(ine,)-313(sa)28(y)-308(t)1(ouc)27(h)1(in)1(g)-308(on)-307(a)-308(f)1(ew)-308(te)-1(n)1(s)-308(of)-307(ro)28(ws)-1(;)-315(the)-308(b)-27(e)-1(st)-307(p)-28(erf)1(ormng)]TJ 0 -11.955 Td[(v)56(alue)-385(w)27(ou)1(ld)-385(dep)-27(e)-1(n)1(d)-385(on)-385(b)-27(oth)-385(the)-385(arc)27(h)1(itec)-1(tu)1(re)-386(of)-385(th)1(e)-386(com)-1(p)1(uter)-385(b)-27(e)-1(in)1(g)-385(use)-1(d)-385(an)1(d)]TJ 0 -11.955 Td[(on)-449(the)-450(pr)1(oblem)-450(s)-1(tr)1(uctur)1(e)-1(.)-794(A)28(t)-450(t)1(he)-450(opp)-27(os)-1(i)1(te)-450(e)-1(xtr)1(e)-1(me,)-479(it)-450(w)28(oul)1(d)-450(b)-27(e)-450(p)-28(oss)-1(i)1(ble)-450(to)]TJ 0 -11.955 Td[(generate)-311(th)1(e)-311(en)28(tir)1(e)-311(par)1(t)-310(of)-310(a)-311(co)-28(e\016c)-1(ien)28(t)-310(matrix)-310(r)1(e)-1(sid)1(ing)-310(on)-310(a)-310(pr)1(o)-28(c)-1(ess)-311(and)-310(p)1(ass)-311(it)]TJ 0 -11.955 Td[(in)-308(a)-310(sin)1(gle)-310(call)-309(t)1(o)]TJ/F32 9.963 Tf 76.89 0 Td[(psb_spins)]TJ/F8 9.963 Tf 47.073 0 Td[(;)-317(th)1(is)-1(,)-313(ho)28(w)28(e)-1(v)28(er,)-314(w)28(oul)1(d)-309(en)28(tail)-309(a)-309(d)1(oub)1(lin)1(g)-309(of)-309(me)-1(mory)]TJ -123.963 -11.955 Td[(o)-28(cc)-1(u)1(pati)1(on,)-333(and)-332(th)28(us)-333(w)27(ou)1(ld)-333(b)-27(e)-334(almost)-334(al)1(w)27(a)28(ys)-334(f)1(ar)-333(fr)1(om)-334(op)1(timal.)]TJ/F18 11.955 Tf 0 -27.889 Td[(2.)1(2)-1125(P)1(r)-1(o)1(gramm)1(ing)-374(mo)-30(de)-1(l)]TJ/F8 9.963 Tf 0 -18.389 Td[(The)-325(P)1(SBLAS)-325(l)1(ibr)1(arary)-324(is)-325(ba)1(s)-1(ed)-325(on)-324(th)1(e)-325(Sin)1(gle)-325(Pr)1(ogram)-325(Mu)1(ltip)1(le)-325(Data)-325(\050)1(SP)1(MD\051)]TJ 0 -11.955 Td[(pr)1(ogramming)-413(mo)-28(d)1(e)-1(l)1(:)-604(eac)27(h)-412(pro)-27(c)-1(es)-1(s)-413(par)1(ticipat)1(ing)-413(in)-412(th)1(e)-414(comput)1(ation)-413(p)-27(erf)1(orms)]TJ 0 -11.956 Td[(th)1(e)-334(s)-1(ame)-334(action)1(s)-334(on)-333(a)-333(c)27(h)28(u)1(nk)-333(of)-333(d)1(ata.)-444(P)28(aral)1(le)-1(l)1(ism)-334(is)-334(th)29(us)-334(d)1(ata-dr)1(iv)28(e)-1(n)1(.)]TJ 14.944 -11.955 Td[(Be)-1(cause)-383(of)-382(t)1(his)-382(s)-1(tr)1(uctur)1(e)-1(,)-394(pr)1(ac)-1(ti)1(c)-1(al)1(ly)-382(all)-382(sub)1(routi)1(nes)]TJ/F19 9.963 Tf 234.029 0 Td[(mu)1(st)]TJ/F8 9.963 Tf 25.631 0 Td[(b)-27(e)-383(called)-382(sim)27(u)1(l-)]TJ -274.604 -11.955 Td[(tan)1(e)-1(ou)1(s)-1(ly)-309(b)28(y)-309(all)-310(p)1(ro)-28(ce)-1(sse)-1(s)-310(par)1(ticipati)1(ng)-310(i)1(n)-310(th)1(e)-310(c)-1(ompu)1(tation)1(,)-314(i.e)-310(e)-1(ac)28(h)-310(sub)1(rou)1(tin)1(e)]TJ 0 -11.955 Td[(call)-333(ac)-1(ts)-333(implicitl)1(y)-333(as)-334(a)-333(s)-1(yn)1(c)27(h)1(roni)1(z)-1(ati)1(on)-333(p)-28(oi)1(n)28(t.)-444(The)-334(exce)-1(p)1(tion)1(s)-334(to)-333(this)-333(ru)1(le)-334(are:)]TJ ET -1 0 0 1 124.802 598.532 cm +1 0 0 1 99.895 281.271 cm 0 g 0 G -1 0 0 1 -124.802 -598.532 cm +1 0 0 1 -99.895 -281.271 cm BT -/F8 9.963 Tf 129.562 598.532 Td[(\050e\051)]TJ +/F14 9.963 Tf 114.839 281.271 Td[(\017)]TJ ET -1 0 0 1 141.739 598.532 cm +1 0 0 1 119.821 281.271 cm 0 g 0 G -1 0 0 1 -141.739 -598.532 cm +1 0 0 1 -119.821 -281.271 cm BT -/F8 9.963 Tf 146.72 598.532 Td[(Call)-333(th)1(e)-334(iterativ)28(e)-333(m)-1(eth)1(o)-28(d)-333(of)-333(c)27(h)1(oice)-1(,)-333(e.g.)]TJ/F32 9.963 Tf 176.865 0 Td[(psb_bicgstab)]TJ/F8 9.963 Tf -223.69 -19.925 Td[(The)-382(inse)-1(r)1(tion)-382(r)1(outi)1(nes)-383(will)-382(b)-27(e)-382(c)-1(all)1(e)-1(d)-382(as)-382(man)28(y)-382(time)-1(s)-382(as)-383(n)1(e)-1(eded;)-406(it)-382(is)-382(c)-1(l)1(e)-1(ar)-382(t)1(hat)]TJ 0 -11.955 Td[(th)1(e)-1(y)-392(on)1(ly)-392(n)1(e)-1(ed)-392(b)-27(e)-393(called)-392(on)-391(the)-392(dat)1(a)-392(that)-392(is)-392(actuall)1(y)-392(allo)-27(c)-1(ated)-392(to)-392(th)1(e)-393(cu)1(rren)28(t)]TJ 0 -11.955 Td[(pr)1(o)-28(ce)-1(ss)-1(,)-333(i.)1(e)-1(.)-444(eac)27(h)-333(p)1(ro)-28(ce)-1(ss)-334(generates)-334(its)-333(o)27(wn)-333(d)1(ata.)]TJ 14.944 -11.955 Td[(In)-326(p)1(rin)1(c)-1(ip)1(le)-327(th)1(e)-1(r)1(e)-327(is)-326(no)-326(s)-1(p)-27(ec)-1(i\014)1(c)-327(or)1(der)-326(in)-326(th)1(e)-327(calls)-327(to)]TJ/F32 9.963 Tf 225.879 0 Td[(psb_spins)]TJ/F8 9.963 Tf 47.073 0 Td[(,)-327(nor)-326(is)-326(there)]TJ -287.896 -11.956 Td[(a)-393(requir)1(e)-1(men)28(t)-393(to)-394(b)1(ui)1(ld)-393(a)-393(m)-1(atr)1(ix)-393(ro)28(w)-394(i)1(n)-393(its)-394(en)28(ti)1(re)-1(t)28(y)-393(b)-27(e)-1(f)1(ore)-393(c)-1(all)1(ing)-393(the)-393(rou)1(tine;)]TJ 0 -11.955 Td[(th)1(is)-289(al)1(lo)28(w)-1(s)-288(the)-288(ap)1(plication)-287(pr)1(ogramm)-1(er)-288(to)-288(w)28(alk)-288(t)1(hrou)1(gh)-288(th)1(e)-289(d)1(isc)-1(r)1(e)-1(tization)-287(me)-1(sh)]TJ 0 -11.955 Td[(ele)-1(men)28(t)-401(b)28(y)-401(ele)-1(men)28(t,)-418(generatin)1(g)-401(the)-402(main)-400(part)-401(of)-400(a)-402(gi)1(v)28(e)-1(n)-401(matr)1(ix)-401(ro)28(w)-401(but)-401(al)1(s)-1(o)]TJ 0 -11.955 Td[(con)28(trib)1(ut)1(ions)-334(t)1(o)-334(th)1(e)-334(ro)28(ws)-334(corr)1(e)-1(sp)-28(on)1(di)1(ng)-333(to)-333(neigh)28(b)-27(our)1(ing)-333(ele)-1(men)28(ts.)]TJ 14.944 -11.955 Td[(F)84(rom)-411(a)-410(f)1(un)1(c)-1(ti)1(onal)-410(p)-27(oin)28(t)-409(of)-410(view)-410(it)-410(is)-410(e)-1(v)28(en)-410(p)-27(os)-1(sib)1(le)-411(to)-410(exec)-1(u)1(te)-411(on)1(e)-411(call)-410(f)1(or)]TJ -14.944 -11.955 Td[(eac)27(h)-372(n)1(onzero)-372(co)-28(e)-1(\016cie)-1(n)29(t;)-391(ho)28(w)28(e)-1(v)28(er)-372(th)1(is)-372(w)27(ou)1(ld)-371(ha)28(v)28(e)-372(a)-372(s)-1(u)1(bstan)28(tial)-371(c)-1(ompu)1(tation)1(al)]TJ 0 -11.956 Td[(o)28(v)28(e)-1(r)1(head.)-411(I)-1(t)-235(is)-236(therefor)1(e)-237(ad)1(visabl)1(e)-237(to)-235(pac)27(k)-235(a)-236(ce)-1(r)1(tain)-235(am)-1(ou)1(n)28(t)-236(of)-235(dat)1(a)-236(in)28(to)-235(e)-1(ac)27(h)-235(call)]TJ 0 -11.955 Td[(to)-307(the)-308(in)1(s)-1(erti)1(on)-307(rout)1(ine,)-313(sa)28(y)-308(t)1(ouc)27(h)1(in)1(g)-308(on)-307(a)-308(f)1(ew)-308(te)-1(n)1(s)-308(of)-307(ro)28(ws)-1(;)-315(the)-308(b)-27(e)-1(st)-307(p)-28(erf)1(ormng)]TJ 0 -11.955 Td[(v)56(alue)-385(w)27(ou)1(ld)-385(dep)-27(e)-1(n)1(d)-385(on)-385(b)-27(oth)-385(the)-385(arc)27(h)1(itec)-1(tu)1(re)-386(of)-385(th)1(e)-386(com)-1(p)1(uter)-385(b)-27(e)-1(in)1(g)-385(use)-1(d)-385(an)1(d)]TJ 0 -11.955 Td[(on)-449(the)-450(pr)1(oblem)-450(s)-1(tr)1(uctur)1(e)-1(.)-794(A)28(t)-450(t)1(he)-450(opp)-27(os)-1(i)1(te)-450(e)-1(xtr)1(e)-1(me,)-479(it)-450(w)28(oul)1(d)-450(b)-27(e)-450(p)-28(oss)-1(i)1(ble)-450(to)]TJ 0 -11.955 Td[(generate)-311(th)1(e)-311(en)28(tir)1(e)-311(par)1(t)-310(of)-310(a)-311(co)-28(e\016c)-1(ien)28(t)-310(matrix)-310(r)1(e)-1(sid)1(ing)-310(on)-310(a)-310(pr)1(o)-28(c)-1(ess)-311(and)-310(p)1(ass)-311(it)]TJ 0 -11.956 Td[(in)-308(a)-310(sin)1(gle)-310(call)-309(t)1(o)]TJ/F32 9.963 Tf 76.89 0 Td[(psb_spins)]TJ/F8 9.963 Tf 47.073 0 Td[(;)-317(th)1(is)-1(,)-313(ho)28(w)28(e)-1(v)28(er,)-314(w)28(oul)1(d)-309(en)28(tail)-309(a)-309(d)1(oub)1(lin)1(g)-309(of)-309(me)-1(mory)]TJ -123.963 -11.955 Td[(o)-28(cc)-1(u)1(pati)1(on,)-333(and)-332(th)28(us)-333(w)27(ou)1(ld)-333(b)-27(e)-334(almost)-334(al)1(w)27(a)28(ys)-334(f)1(ar)-333(fr)1(om)-334(op)1(timal.)]TJ/F18 11.955 Tf 0 -27.888 Td[(2.)1(2)-1125(P)1(r)-1(o)1(gramm)1(ing)-374(mo)-30(de)-1(l)]TJ/F8 9.963 Tf 0 -18.389 Td[(The)-325(P)1(SBLAS)-325(l)1(ibr)1(arary)-324(is)-325(ba)1(s)-1(ed)-325(on)-324(th)1(e)-325(Sin)1(gle)-325(Pr)1(ogram)-325(Mu)1(ltip)1(le)-325(Data)-325(\050)1(SP)1(MD\051)]TJ 0 -11.956 Td[(pr)1(ogramming)-413(mo)-28(d)1(e)-1(l)1(:)-604(eac)27(h)-412(pro)-27(c)-1(es)-1(s)-413(par)1(ticipat)1(ing)-413(in)-412(th)1(e)-414(comput)1(ation)-413(p)-27(erf)1(orms)]TJ 0 -11.955 Td[(th)1(e)-334(s)-1(ame)-334(action)1(s)-334(on)-333(a)-333(c)27(h)28(u)1(nk)-333(of)-333(d)1(ata.)-444(P)28(aral)1(le)-1(l)1(ism)-334(is)-334(th)29(us)-334(d)1(ata-dr)1(iv)28(e)-1(n)1(.)]TJ 14.944 -11.955 Td[(Be)-1(cause)-383(of)-382(t)1(his)-382(s)-1(tr)1(uctur)1(e)-1(,)-394(pr)1(ac)-1(ti)1(c)-1(al)1(ly)-382(all)-382(sub)1(routi)1(nes)]TJ/F19 9.963 Tf 234.029 0 Td[(mu)1(st)]TJ/F8 9.963 Tf 25.631 0 Td[(b)-27(e)-383(called)-382(sim)27(u)1(l-)]TJ -274.604 -11.955 Td[(tan)1(e)-1(ou)1(s)-1(ly)-309(b)28(y)-309(all)-310(p)1(ro)-28(ce)-1(sse)-1(s)-310(par)1(ticipati)1(ng)-310(i)1(n)-310(th)1(e)-310(c)-1(ompu)1(tation)1(,)-314(i.e)-310(e)-1(ac)28(h)-310(sub)1(rou)1(tin)1(e)]TJ 0 -11.955 Td[(call)-333(ac)-1(ts)-333(implicitl)1(y)-333(as)-334(a)-333(s)-1(yn)1(c)27(h)1(roni)1(z)-1(ati)1(on)-333(p)-28(oi)1(n)28(t.)-444(The)-334(exce)-1(p)1(tion)1(s)-334(to)-333(this)-333(ru)1(le)-334(are:)]TJ +/F8 9.963 Tf 124.802 281.271 Td[(The)-333(inse)-1(r)1(tion)-333(r)1(outin)1(e)-1(s)]TJ/F32 9.963 Tf 99.793 0 Td[(psb_cdins)]TJ/F8 9.963 Tf 47.073 0 Td[(,)]TJ/F32 9.963 Tf 6.088 0 Td[(psb_spins)]TJ/F8 9.963 Tf 50.394 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geins)]TJ/F8 9.963 Tf 47.073 0 Td[(;)]TJ ET 1 0 0 1 99.895 261.345 cm 0 g 0 G @@ -3902,19 +4113,7 @@ ET 0 g 0 G 1 0 0 1 -119.821 -261.345 cm BT -/F8 9.963 Tf 124.802 261.345 Td[(The)-333(inse)-1(r)1(tion)-333(r)1(outin)1(e)-1(s)]TJ/F32 9.963 Tf 99.793 0 Td[(psb_cdins)]TJ/F8 9.963 Tf 47.073 0 Td[(,)]TJ/F32 9.963 Tf 6.088 0 Td[(psb_spins)]TJ/F8 9.963 Tf 50.394 0 Td[(and)]TJ/F32 9.963 Tf 19.372 0 Td[(psb_geins)]TJ/F8 9.963 Tf 47.073 0 Td[(;)]TJ -ET -1 0 0 1 99.895 241.42 cm -0 g 0 G -1 0 0 1 -99.895 -241.42 cm -BT -/F14 9.963 Tf 114.839 241.42 Td[(\017)]TJ -ET -1 0 0 1 119.821 241.42 cm -0 g 0 G -1 0 0 1 -119.821 -241.42 cm -BT -/F8 9.963 Tf 124.802 241.42 Td[(The)-333(e)-1(rr)1(or)-333(han)1(dli)1(ng)-333(rou)1(tines.)]TJ -24.907 -19.925 Td[(In)-258(par)1(tic)-1(u)1(lar)1(,)-274(as)-259(p)-27(e)-1(r)-258(th)1(e)-259(discuss)-1(ion)-258(in)-258(th)1(e)-259(pr)1(e)-1(v)1(ious)-259(se)-1(ction)1(,)-274(t)1(he)-259(in)1(s)-1(ertio)1(n)-259(r)1(outi)1(nes)]TJ 0 -11.955 Td[(ma)27(y)-402(b)-27(e)-403(c)-1(all)1(e)-1(d)-402(a)-403(d)1(i\013e)-1(r)1(e)-1(n)28(t)-402(n)28(um)28(b)-27(e)-1(r)-402(of)-402(time)-1(s)-403(on)-402(e)-1(ac)28(h)-402(pro)-27(c)-1(es)-1(s,)-420(dep)-27(e)-1(n)1(din)1(g)-403(on)-402(th)1(e)]TJ 0 -11.955 Td[(dat)1(a)-334(d)1(istrib)1(utio)1(n)-333(c)27(hosen)-333(b)28(y)-333(the)-333(use)-1(r)1(.)]TJ +/F8 9.963 Tf 124.802 261.345 Td[(The)-333(e)-1(rr)1(or)-333(han)1(dli)1(ng)-333(rou)1(tines.)]TJ -24.907 -19.925 Td[(In)-258(par)1(tic)-1(u)1(lar)1(,)-274(as)-259(p)-27(e)-1(r)-258(th)1(e)-259(discuss)-1(ion)-258(in)-258(th)1(e)-259(pr)1(e)-1(v)1(ious)-259(se)-1(ction)1(,)-274(t)1(he)-259(in)1(s)-1(ertio)1(n)-259(r)1(outi)1(nes)]TJ 0 -11.955 Td[(ma)27(y)-402(b)-27(e)-403(c)-1(all)1(e)-1(d)-402(a)-403(d)1(i\013e)-1(r)1(e)-1(n)28(t)-402(n)28(um)28(b)-27(e)-1(r)-402(of)-402(time)-1(s)-403(on)-402(e)-1(ac)28(h)-402(pro)-27(c)-1(es)-1(s,)-420(dep)-27(e)-1(n)1(din)1(g)-403(on)-402(th)1(e)]TJ 0 -11.955 Td[(dat)1(a)-334(d)1(istrib)1(utio)1(n)-333(c)27(hosen)-333(b)28(y)-333(the)-333(use)-1(r)1(.)]TJ ET 1 0 0 1 99.895 90.438 cm 0 g 0 G @@ -3926,43 +4125,40 @@ ET 0 g 0 G endstream endobj -427 0 obj << +448 0 obj << /Type /Page -/Contents 428 0 R -/Resources 426 0 R +/Contents 449 0 R +/Resources 447 0 R /MediaBox [0 0 595.276 841.89] -/Parent 425 0 R ->> endobj -429 0 obj << -/D [427 0 R /XYZ 99.895 740.998 null] +/Parent 446 0 R >> endobj -430 0 obj << -/D [427 0 R /XYZ 99.895 716.092 null] +450 0 obj << +/D [448 0 R /XYZ 99.895 740.998 null] >> endobj -431 0 obj << -/D [427 0 R /XYZ 99.895 698.214 null] +451 0 obj << +/D [448 0 R /XYZ 99.895 716.092 null] >> endobj -432 0 obj << -/D [427 0 R /XYZ 99.895 670.319 null] +452 0 obj << +/D [448 0 R /XYZ 99.895 690.244 null] >> endobj -433 0 obj << -/D [427 0 R /XYZ 99.895 642.147 null] +453 0 obj << +/D [448 0 R /XYZ 99.895 662.072 null] >> endobj -434 0 obj << -/D [427 0 R /XYZ 99.895 625.93 null] +454 0 obj << +/D [448 0 R /XYZ 99.895 645.855 null] >> endobj -435 0 obj << -/D [427 0 R /XYZ 99.895 609.989 null] +455 0 obj << +/D [448 0 R /XYZ 99.895 629.915 null] >> endobj 22 0 obj << -/D [427 0 R /XYZ 99.895 371.446 null] +/D [448 0 R /XYZ 99.895 391.372 null] >> endobj -426 0 obj << -/Font << /F8 278 0 R /F32 400 0 R /F18 269 0 R /F19 364 0 R /F14 385 0 R >> +447 0 obj << +/Font << /F8 294 0 R /F32 420 0 R /F18 285 0 R /F19 384 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -438 0 obj << -/Length 13078 +458 0 obj << +/Length 13191 >> stream 1 0 0 1 150.705 740.998 cm @@ -4022,7 +4218,7 @@ ET 0 g 0 G 1 0 0 1 -210.308 -462.743 cm BT -/F8 9.963 Tf 215.29 462.743 Td[(in)1(c)-1(l)1(udes)-223(general)-222(i)1(nf)1(ormation)-222(ab)-27(out)-222(matri)1(x)-222(and)-222(BLA)28(CS)-222(gri)1(d.)-407(Mor)1(e)]TJ -39.679 -11.955 Td[(pr)1(e)-1(cise)-1(l)1(y:)]TJ +/F8 9.963 Tf 215.29 462.743 Td[(in)1(c)-1(l)1(udes)-223(general)-222(i)1(nf)1(ormation)-222(ab)-27(out)-222(matri)1(x)-222(and)-222(p)1(ro)-28(ces)-1(s)-222(grid)1(.)-408(M)1(ore)]TJ -39.679 -11.955 Td[(pr)1(e)-1(cise)-1(l)1(y:)]TJ ET 1 0 0 1 170.63 430.886 cm 0 g 0 G @@ -4137,7 +4333,7 @@ ET 0 g 0 G 1 0 0 1 -287.128 -391.058 cm BT -/F8 9.963 Tf 292.109 391.058 Td[(Com)-1(m)28(un)1(ication)-222(con)28(text)-222(as)-223(r)1(e)-1(tu)1(rn)1(e)-1(d)-222(b)29(y)-222(the)-222(B)-1(LA)28(CS)]TJ -94.58 -11.955 Td[(\050glob)1(al\051.)]TJ +/F8 9.963 Tf 292.109 391.058 Td[(Com)-1(m)28(un)1(ication)-222(con)28(text)-222(ass)-1(o)-28(ciated)-222(with)-221(the)-223(p)1(ro-)]TJ -94.58 -11.955 Td[(ce)-1(ss)-1(es)-334(com)-1(p)1(rised)-333(in)-333(th)1(e)-334(vir)1(tual)-333(p)1(arall)1(e)-1(l)-333(mac)27(h)1(ine)-334(\050)1(global)1(\051.)]TJ ET 1 0 0 1 170.63 363.185 cm 0 g 0 G @@ -4464,45 +4660,45 @@ ET 0 g 0 G endstream endobj -437 0 obj << +457 0 obj << /Type /Page -/Contents 438 0 R -/Resources 436 0 R +/Contents 458 0 R +/Resources 456 0 R /MediaBox [0 0 595.276 841.89] -/Parent 425 0 R +/Parent 446 0 R >> endobj -439 0 obj << -/D [437 0 R /XYZ 150.705 740.998 null] +459 0 obj << +/D [457 0 R /XYZ 150.705 740.998 null] >> endobj 26 0 obj << -/D [437 0 R /XYZ 150.705 716.092 null] +/D [457 0 R /XYZ 150.705 716.092 null] >> endobj 30 0 obj << -/D [437 0 R /XYZ 150.705 584.754 null] +/D [457 0 R /XYZ 150.705 584.754 null] >> endobj -440 0 obj << -/D [437 0 R /XYZ 393.237 542.399 null] +460 0 obj << +/D [457 0 R /XYZ 393.237 542.399 null] >> endobj -441 0 obj << -/D [437 0 R /XYZ 150.705 195.994 null] +461 0 obj << +/D [457 0 R /XYZ 150.705 195.994 null] >> endobj -442 0 obj << -/D [437 0 R /XYZ 150.705 180.077 null] +462 0 obj << +/D [457 0 R /XYZ 150.705 180.077 null] >> endobj -443 0 obj << -/D [437 0 R /XYZ 150.705 164.159 null] +463 0 obj << +/D [457 0 R /XYZ 150.705 164.159 null] >> endobj -444 0 obj << -/D [437 0 R /XYZ 150.705 148.242 null] +464 0 obj << +/D [457 0 R /XYZ 150.705 148.242 null] >> endobj -445 0 obj << -/D [437 0 R /XYZ 150.705 132.325 null] +465 0 obj << +/D [457 0 R /XYZ 150.705 132.325 null] >> endobj -436 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F32 400 0 R /F29 275 0 R >> +456 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F32 420 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -448 0 obj << +468 0 obj << /Length 9132 >> stream @@ -4792,45 +4988,45 @@ ET 0 g 0 G endstream endobj -447 0 obj << +467 0 obj << /Type /Page -/Contents 448 0 R -/Resources 446 0 R +/Contents 468 0 R +/Resources 466 0 R /MediaBox [0 0 595.276 841.89] -/Parent 425 0 R +/Parent 446 0 R >> endobj -449 0 obj << -/D [447 0 R /XYZ 99.895 740.998 null] +469 0 obj << +/D [467 0 R /XYZ 99.895 740.998 null] >> endobj -450 0 obj << -/D [447 0 R /XYZ 99.895 642.513 null] +470 0 obj << +/D [467 0 R /XYZ 99.895 642.513 null] >> endobj -451 0 obj << -/D [447 0 R /XYZ 99.895 626.633 null] +471 0 obj << +/D [467 0 R /XYZ 99.895 626.633 null] >> endobj -452 0 obj << -/D [447 0 R /XYZ 99.895 610.753 null] +472 0 obj << +/D [467 0 R /XYZ 99.895 610.753 null] >> endobj -453 0 obj << -/D [447 0 R /XYZ 99.895 594.872 null] +473 0 obj << +/D [467 0 R /XYZ 99.895 594.872 null] >> endobj -454 0 obj << -/D [447 0 R /XYZ 99.895 578.992 null] +474 0 obj << +/D [467 0 R /XYZ 99.895 578.992 null] >> endobj -455 0 obj << -/D [447 0 R /XYZ 99.895 495.485 null] +475 0 obj << +/D [467 0 R /XYZ 99.895 495.485 null] >> endobj -456 0 obj << -/D [447 0 R /XYZ 99.895 479.605 null] +476 0 obj << +/D [467 0 R /XYZ 99.895 479.605 null] >> endobj -457 0 obj << -/D [447 0 R /XYZ 147.412 181.979 null] +477 0 obj << +/D [467 0 R /XYZ 147.412 181.979 null] >> endobj -446 0 obj << -/Font << /F8 278 0 R /F29 275 0 R /F11 367 0 R /F32 400 0 R >> +466 0 obj << +/Font << /F8 294 0 R /F29 291 0 R /F11 387 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -460 0 obj << +480 0 obj << /Length 12478 >> stream @@ -5429,30 +5625,30 @@ ET 0 g 0 G endstream endobj -459 0 obj << +479 0 obj << /Type /Page -/Contents 460 0 R -/Resources 458 0 R +/Contents 480 0 R +/Resources 478 0 R /MediaBox [0 0 595.276 841.89] -/Parent 425 0 R +/Parent 446 0 R >> endobj -461 0 obj << -/D [459 0 R /XYZ 150.705 740.998 null] +481 0 obj << +/D [479 0 R /XYZ 150.705 740.998 null] >> endobj 34 0 obj << -/D [459 0 R /XYZ 150.705 621.159 null] +/D [479 0 R /XYZ 150.705 621.159 null] >> endobj 38 0 obj << -/D [459 0 R /XYZ 150.705 290.116 null] +/D [479 0 R /XYZ 150.705 290.116 null] >> endobj -462 0 obj << -/D [459 0 R /XYZ 170.451 258.585 null] +482 0 obj << +/D [479 0 R /XYZ 170.451 258.585 null] >> endobj -458 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F32 400 0 R /F18 269 0 R >> +478 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F32 420 0 R /F18 285 0 R >> /ProcSet [ /PDF /Text ] >> endobj -465 0 obj << +485 0 obj << /Length 9729 >> stream @@ -5756,32 +5952,32 @@ ET 0 g 0 G endstream endobj -464 0 obj << +484 0 obj << /Type /Page -/Contents 465 0 R -/Resources 463 0 R +/Contents 485 0 R +/Resources 483 0 R /MediaBox [0 0 595.276 841.89] -/Parent 425 0 R -/Annots [ 467 0 R ] +/Parent 446 0 R +/Annots [ 487 0 R ] >> endobj -467 0 obj << +487 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [266.631 332.064 273.605 342.912] /Subtype /Link /A << /S /GoTo /D (figure.3) >> >> endobj -466 0 obj << -/D [464 0 R /XYZ 99.895 740.998 null] +486 0 obj << +/D [484 0 R /XYZ 99.895 740.998 null] >> endobj -468 0 obj << -/D [464 0 R /XYZ 155.561 186.917 null] +488 0 obj << +/D [484 0 R /XYZ 155.561 186.917 null] >> endobj -463 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F32 400 0 R >> +483 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -471 0 obj << +491 0 obj << /Length 13658 >> stream @@ -6215,50 +6411,50 @@ ET 0 g 0 G endstream endobj -470 0 obj << +490 0 obj << /Type /Page -/Contents 471 0 R -/Resources 469 0 R +/Contents 491 0 R +/Resources 489 0 R /MediaBox [0 0 595.276 841.89] -/Parent 479 0 R -/Annots [ 478 0 R ] +/Parent 499 0 R +/Annots [ 498 0 R ] >> endobj -478 0 obj << +498 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [365.914 152.981 372.888 164.106] /Subtype /Link /A << /S /GoTo /D (figure.4) >> >> endobj -472 0 obj << -/D [470 0 R /XYZ 150.705 740.998 null] +492 0 obj << +/D [490 0 R /XYZ 150.705 740.998 null] >> endobj -473 0 obj << -/D [470 0 R /XYZ 150.705 716.092 null] +493 0 obj << +/D [490 0 R /XYZ 150.705 716.092 null] >> endobj -474 0 obj << -/D [470 0 R /XYZ 150.705 665.697 null] +494 0 obj << +/D [490 0 R /XYZ 150.705 665.697 null] >> endobj -475 0 obj << -/D [470 0 R /XYZ 150.705 613.783 null] +495 0 obj << +/D [490 0 R /XYZ 150.705 613.783 null] >> endobj -476 0 obj << -/D [470 0 R /XYZ 150.705 597.677 null] +496 0 obj << +/D [490 0 R /XYZ 150.705 597.677 null] >> endobj 42 0 obj << -/D [470 0 R /XYZ 150.705 416.675 null] +/D [490 0 R /XYZ 150.705 416.675 null] >> endobj 46 0 obj << -/D [470 0 R /XYZ 150.705 246.05 null] +/D [490 0 R /XYZ 150.705 246.05 null] >> endobj -477 0 obj << -/D [470 0 R /XYZ 317.297 168.146 null] +497 0 obj << +/D [490 0 R /XYZ 317.297 168.146 null] >> endobj -469 0 obj << -/Font << /F8 278 0 R /F32 400 0 R /F11 367 0 R /F14 385 0 R /F29 275 0 R /F18 269 0 R >> +489 0 obj << +/Font << /F8 294 0 R /F32 420 0 R /F11 387 0 R /F14 405 0 R /F29 291 0 R /F18 285 0 R >> /ProcSet [ /PDF /Text ] >> endobj -483 0 obj << +503 0 obj << /Length 9702 >> stream @@ -6619,27 +6815,27 @@ ET 0 g 0 G endstream endobj -482 0 obj << +502 0 obj << /Type /Page -/Contents 483 0 R -/Resources 481 0 R +/Contents 503 0 R +/Resources 501 0 R /MediaBox [0 0 595.276 841.89] -/Parent 479 0 R +/Parent 499 0 R >> endobj -484 0 obj << -/D [482 0 R /XYZ 99.895 740.998 null] +504 0 obj << +/D [502 0 R /XYZ 99.895 740.998 null] >> endobj -480 0 obj << -/D [482 0 R /XYZ 155.478 325.727 null] +500 0 obj << +/D [502 0 R /XYZ 155.478 325.727 null] >> endobj 50 0 obj << -/D [482 0 R /XYZ 99.895 284.803 null] +/D [502 0 R /XYZ 99.895 284.803 null] >> endobj -481 0 obj << -/Font << /F8 278 0 R /F32 400 0 R /F36 487 0 R /F29 275 0 R /F11 367 0 R >> +501 0 obj << +/Font << /F8 294 0 R /F32 420 0 R /F36 507 0 R /F29 291 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -490 0 obj << +510 0 obj << /Length 1970 >> stream @@ -6759,21 +6955,21 @@ ET 0 g 0 G endstream endobj -489 0 obj << +509 0 obj << /Type /Page -/Contents 490 0 R -/Resources 488 0 R +/Contents 510 0 R +/Resources 508 0 R /MediaBox [0 0 595.276 841.89] -/Parent 479 0 R +/Parent 499 0 R >> endobj -491 0 obj << -/D [489 0 R /XYZ 150.705 740.998 null] +511 0 obj << +/D [509 0 R /XYZ 150.705 740.998 null] >> endobj -488 0 obj << -/Font << /F29 275 0 R /F8 278 0 R >> +508 0 obj << +/Font << /F29 291 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -494 0 obj << +514 0 obj << /Length 336 >> stream @@ -6795,24 +6991,24 @@ ET 0 g 0 G endstream endobj -493 0 obj << +513 0 obj << /Type /Page -/Contents 494 0 R -/Resources 492 0 R +/Contents 514 0 R +/Resources 512 0 R /MediaBox [0 0 595.276 841.89] -/Parent 479 0 R +/Parent 499 0 R >> endobj -495 0 obj << -/D [493 0 R /XYZ 99.895 740.998 null] +515 0 obj << +/D [513 0 R /XYZ 99.895 740.998 null] >> endobj 54 0 obj << -/D [493 0 R /XYZ 99.895 716.092 null] +/D [513 0 R /XYZ 99.895 716.092 null] >> endobj -492 0 obj << -/Font << /F18 269 0 R /F8 278 0 R >> +512 0 obj << +/Font << /F18 285 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -498 0 obj << +518 0 obj << /Length 9014 >> stream @@ -7127,66 +7323,66 @@ ET 0 g 0 G endstream endobj -497 0 obj << +517 0 obj << /Type /Page -/Contents 498 0 R -/Resources 496 0 R +/Contents 518 0 R +/Resources 516 0 R /MediaBox [0 0 595.276 841.89] -/Parent 479 0 R -/Annots [ 502 0 R 503 0 R 504 0 R 505 0 R 506 0 R ] +/Parent 499 0 R +/Annots [ 522 0 R 523 0 R 524 0 R 525 0 R 526 0 R ] >> endobj -502 0 obj << +522 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 387.203 439.871 398.051] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -503 0 obj << +523 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 319.285 220.609 330.133] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -504 0 obj << +524 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 263.321 439.871 274.169] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -505 0 obj << +525 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.807 195.403 263.781 206.251] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -506 0 obj << +526 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 139.163 412.588 150.288] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -499 0 obj << -/D [497 0 R /XYZ 150.705 740.998 null] +519 0 obj << +/D [517 0 R /XYZ 150.705 740.998 null] >> endobj 58 0 obj << -/D [497 0 R /XYZ 150.705 659.305 null] +/D [517 0 R /XYZ 150.705 659.305 null] >> endobj -500 0 obj << -/D [497 0 R /XYZ 150.705 580.189 null] +520 0 obj << +/D [517 0 R /XYZ 150.705 580.189 null] >> endobj -501 0 obj << -/D [497 0 R /XYZ 318.451 491.59 null] +521 0 obj << +/D [517 0 R /XYZ 318.451 491.59 null] >> endobj -496 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +516 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -509 0 obj << +529 0 obj << /Length 2004 >> stream @@ -7240,29 +7436,29 @@ ET 0 g 0 G endstream endobj -508 0 obj << +528 0 obj << /Type /Page -/Contents 509 0 R -/Resources 507 0 R +/Contents 529 0 R +/Resources 527 0 R /MediaBox [0 0 595.276 841.89] -/Parent 479 0 R -/Annots [ 511 0 R ] +/Parent 499 0 R +/Annots [ 531 0 R ] >> endobj -511 0 obj << +531 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.998 657.312 212.972 666.223] /Subtype /Link /A << /S /GoTo /D (table.1) >> >> endobj -510 0 obj << -/D [508 0 R /XYZ 99.895 740.998 null] +530 0 obj << +/D [528 0 R /XYZ 99.895 740.998 null] >> endobj -507 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R >> +527 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -514 0 obj << +534 0 obj << /Length 8940 >> stream @@ -7553,59 +7749,59 @@ ET 0 g 0 G endstream endobj -513 0 obj << +533 0 obj << /Type /Page -/Contents 514 0 R -/Resources 512 0 R +/Contents 534 0 R +/Resources 532 0 R /MediaBox [0 0 595.276 841.89] -/Parent 525 0 R -/Annots [ 521 0 R 522 0 R 523 0 R 524 0 R ] +/Parent 545 0 R +/Annots [ 541 0 R 542 0 R 543 0 R 544 0 R ] >> endobj -521 0 obj << +541 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 310.012 260.792 320.86] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -522 0 obj << +542 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 240.936 260.792 251.784] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -523 0 obj << +543 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 183.538 412.588 194.663] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -524 0 obj << +544 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 117.392 439.871 128.241] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -515 0 obj << -/D [513 0 R /XYZ 150.705 740.998 null] +535 0 obj << +/D [533 0 R /XYZ 150.705 740.998 null] >> endobj 62 0 obj << -/D [513 0 R /XYZ 150.705 657.318 null] +/D [533 0 R /XYZ 150.705 657.318 null] >> endobj -519 0 obj << -/D [513 0 R /XYZ 150.705 518.138 null] +539 0 obj << +/D [533 0 R /XYZ 150.705 518.138 null] >> endobj -520 0 obj << -/D [513 0 R /XYZ 318.451 428.96 null] +540 0 obj << +/D [533 0 R /XYZ 318.451 428.96 null] >> endobj -512 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +532 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -528 0 obj << +548 0 obj << /Length 917 >> stream @@ -7635,21 +7831,21 @@ ET 0 g 0 G endstream endobj -527 0 obj << +547 0 obj << /Type /Page -/Contents 528 0 R -/Resources 526 0 R +/Contents 548 0 R +/Resources 546 0 R /MediaBox [0 0 595.276 841.89] -/Parent 525 0 R +/Parent 545 0 R >> endobj -529 0 obj << -/D [527 0 R /XYZ 99.895 740.998 null] +549 0 obj << +/D [547 0 R /XYZ 99.895 740.998 null] >> endobj -526 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R >> +546 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -532 0 obj << +552 0 obj << /Length 9283 >> stream @@ -7940,59 +8136,59 @@ ET 0 g 0 G endstream endobj -531 0 obj << +551 0 obj << /Type /Page -/Contents 532 0 R -/Resources 530 0 R +/Contents 552 0 R +/Resources 550 0 R /MediaBox [0 0 595.276 841.89] -/Parent 525 0 R -/Annots [ 536 0 R 537 0 R 538 0 R 539 0 R ] +/Parent 545 0 R +/Annots [ 556 0 R 557 0 R 558 0 R 559 0 R ] >> endobj -536 0 obj << +556 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 322.758 260.792 333.607] /Subtype /Link /A << /S /GoTo /D (table.3) >> >> endobj -537 0 obj << +557 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 253.484 260.792 264.332] /Subtype /Link /A << /S /GoTo /D (table.3) >> >> endobj -538 0 obj << +558 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 195.888 412.588 207.013] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -539 0 obj << +559 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [202.013 119.329 208.986 128.24] /Subtype /Link /A << /S /GoTo /D (table.2) >> >> endobj -533 0 obj << -/D [531 0 R /XYZ 150.705 740.998 null] +553 0 obj << +/D [551 0 R /XYZ 150.705 740.998 null] >> endobj 66 0 obj << -/D [531 0 R /XYZ 150.705 656.979 null] +/D [551 0 R /XYZ 150.705 656.979 null] >> endobj -534 0 obj << -/D [531 0 R /XYZ 150.705 531.428 null] +554 0 obj << +/D [551 0 R /XYZ 150.705 531.428 null] >> endobj -535 0 obj << -/D [531 0 R /XYZ 318.451 442.151 null] +555 0 obj << +/D [551 0 R /XYZ 318.451 442.151 null] >> endobj -530 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +550 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -542 0 obj << +562 0 obj << /Length 736 >> stream @@ -8022,21 +8218,21 @@ ET 0 g 0 G endstream endobj -541 0 obj << +561 0 obj << /Type /Page -/Contents 542 0 R -/Resources 540 0 R +/Contents 562 0 R +/Resources 560 0 R /MediaBox [0 0 595.276 841.89] -/Parent 525 0 R +/Parent 545 0 R >> endobj -543 0 obj << -/D [541 0 R /XYZ 99.895 740.998 null] +563 0 obj << +/D [561 0 R /XYZ 99.895 740.998 null] >> endobj -540 0 obj << -/Font << /F29 275 0 R /F8 278 0 R >> +560 0 obj << +/Font << /F29 291 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -546 0 obj << +566 0 obj << /Length 7989 >> stream @@ -8303,45 +8499,45 @@ ET 0 g 0 G endstream endobj -545 0 obj << +565 0 obj << /Type /Page -/Contents 546 0 R -/Resources 544 0 R +/Contents 566 0 R +/Resources 564 0 R /MediaBox [0 0 595.276 841.89] -/Parent 525 0 R -/Annots [ 550 0 R 551 0 R ] +/Parent 545 0 R +/Annots [ 570 0 R 571 0 R ] >> endobj -550 0 obj << +570 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 321.365 220.609 330.276] /Subtype /Link /A << /S /GoTo /D (table.4) >> >> endobj -551 0 obj << +571 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 263.36 412.588 274.485] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -547 0 obj << -/D [545 0 R /XYZ 150.705 740.998 null] +567 0 obj << +/D [565 0 R /XYZ 150.705 740.998 null] >> endobj 70 0 obj << -/D [545 0 R /XYZ 150.705 659.601 null] +/D [565 0 R /XYZ 150.705 659.601 null] >> endobj -548 0 obj << -/D [545 0 R /XYZ 150.705 523.894 null] +568 0 obj << +/D [565 0 R /XYZ 150.705 523.894 null] >> endobj -549 0 obj << -/D [545 0 R /XYZ 318.451 435.382 null] +569 0 obj << +/D [565 0 R /XYZ 318.451 435.382 null] >> endobj -544 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +564 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -554 0 obj << +574 0 obj << /Length 7079 >> stream @@ -8608,45 +8804,45 @@ ET 0 g 0 G endstream endobj -553 0 obj << +573 0 obj << /Type /Page -/Contents 554 0 R -/Resources 552 0 R +/Contents 574 0 R +/Resources 572 0 R /MediaBox [0 0 595.276 841.89] -/Parent 525 0 R -/Annots [ 558 0 R 559 0 R ] +/Parent 545 0 R +/Annots [ 578 0 R 579 0 R ] >> endobj -558 0 obj << +578 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 378.394 169.8 387.305] /Subtype /Link /A << /S /GoTo /D (table.5) >> >> endobj -559 0 obj << +579 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 320.389 361.779 331.514] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -555 0 obj << -/D [553 0 R /XYZ 99.895 740.998 null] +575 0 obj << +/D [573 0 R /XYZ 99.895 740.998 null] >> endobj 74 0 obj << -/D [553 0 R /XYZ 99.895 659.601 null] +/D [573 0 R /XYZ 99.895 659.601 null] >> endobj -556 0 obj << -/D [553 0 R /XYZ 99.895 580.923 null] +576 0 obj << +/D [573 0 R /XYZ 99.895 580.923 null] >> endobj -557 0 obj << -/D [553 0 R /XYZ 267.641 492.411 null] +577 0 obj << +/D [573 0 R /XYZ 267.641 492.411 null] >> endobj -552 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +572 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -562 0 obj << +582 0 obj << /Length 7664 >> stream @@ -8913,45 +9109,45 @@ ET 0 g 0 G endstream endobj -561 0 obj << +581 0 obj << /Type /Page -/Contents 562 0 R -/Resources 560 0 R +/Contents 582 0 R +/Resources 580 0 R /MediaBox [0 0 595.276 841.89] -/Parent 571 0 R -/Annots [ 569 0 R 570 0 R ] +/Parent 591 0 R +/Annots [ 589 0 R 590 0 R ] >> endobj -569 0 obj << +589 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 324.596 220.609 333.507] /Subtype /Link /A << /S /GoTo /D (table.6) >> >> endobj -570 0 obj << +590 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 266.591 412.588 277.716] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -563 0 obj << -/D [561 0 R /XYZ 150.705 740.998 null] +583 0 obj << +/D [581 0 R /XYZ 150.705 740.998 null] >> endobj 78 0 obj << -/D [561 0 R /XYZ 150.705 659.601 null] +/D [581 0 R /XYZ 150.705 659.601 null] >> endobj -567 0 obj << -/D [561 0 R /XYZ 150.705 527.125 null] +587 0 obj << +/D [581 0 R /XYZ 150.705 527.125 null] >> endobj -568 0 obj << -/D [561 0 R /XYZ 318.451 438.613 null] +588 0 obj << +/D [581 0 R /XYZ 318.451 438.613 null] >> endobj -560 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +580 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -574 0 obj << +594 0 obj << /Length 7788 >> stream @@ -9248,45 +9444,45 @@ ET 0 g 0 G endstream endobj -573 0 obj << +593 0 obj << /Type /Page -/Contents 574 0 R -/Resources 572 0 R +/Contents 594 0 R +/Resources 592 0 R /MediaBox [0 0 595.276 841.89] -/Parent 571 0 R -/Annots [ 578 0 R 579 0 R ] +/Parent 591 0 R +/Annots [ 598 0 R 599 0 R ] >> endobj -578 0 obj << +598 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 322.367 169.8 331.278] /Subtype /Link /A << /S /GoTo /D (table.7) >> >> endobj -579 0 obj << +599 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 264.362 361.779 275.487] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -575 0 obj << -/D [573 0 R /XYZ 99.895 740.998 null] +595 0 obj << +/D [593 0 R /XYZ 99.895 740.998 null] >> endobj 82 0 obj << -/D [573 0 R /XYZ 99.895 659.601 null] +/D [593 0 R /XYZ 99.895 659.601 null] >> endobj -576 0 obj << -/D [573 0 R /XYZ 267.641 495.409 null] +596 0 obj << +/D [593 0 R /XYZ 267.641 495.409 null] >> endobj -577 0 obj << -/D [573 0 R /XYZ 99.895 424.185 null] +597 0 obj << +/D [593 0 R /XYZ 99.895 424.185 null] >> endobj -572 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +592 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -582 0 obj << +602 0 obj << /Length 7167 >> stream @@ -9595,45 +9791,45 @@ ET 0 g 0 G endstream endobj -581 0 obj << +601 0 obj << /Type /Page -/Contents 582 0 R -/Resources 580 0 R +/Contents 602 0 R +/Resources 600 0 R /MediaBox [0 0 595.276 841.89] -/Parent 571 0 R -/Annots [ 589 0 R 590 0 R ] +/Parent 591 0 R +/Annots [ 609 0 R 610 0 R ] >> endobj -589 0 obj << +609 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 338.322 417.818 349.447] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -590 0 obj << +610 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 282.531 412.588 293.656] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -583 0 obj << -/D [581 0 R /XYZ 150.705 740.998 null] +603 0 obj << +/D [601 0 R /XYZ 150.705 740.998 null] >> endobj 86 0 obj << -/D [581 0 R /XYZ 150.705 659.601 null] +/D [601 0 R /XYZ 150.705 659.601 null] >> endobj -587 0 obj << -/D [581 0 R /XYZ 318.451 499.911 null] +607 0 obj << +/D [601 0 R /XYZ 318.451 499.911 null] >> endobj -588 0 obj << -/D [581 0 R /XYZ 150.705 430.399 null] +608 0 obj << +/D [601 0 R /XYZ 150.705 430.399 null] >> endobj -580 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F13 586 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +600 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F13 606 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -593 0 obj << +613 0 obj << /Length 10178 >> stream @@ -9993,61 +10189,61 @@ ET 0 g 0 G endstream endobj -592 0 obj << +612 0 obj << /Type /Page -/Contents 593 0 R -/Resources 591 0 R +/Contents 613 0 R +/Resources 611 0 R /MediaBox [0 0 595.276 841.89] -/Parent 571 0 R -/Annots [ 600 0 R 601 0 R 602 0 R ] +/Parent 591 0 R +/Annots [ 620 0 R 621 0 R 622 0 R ] >> endobj -600 0 obj << +620 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 238.457 389.062 249.305] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -601 0 obj << +621 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 183.626 367.009 194.751] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -602 0 obj << +622 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 117.392 169.8 128.24] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -594 0 obj << -/D [592 0 R /XYZ 99.895 740.998 null] +614 0 obj << +/D [612 0 R /XYZ 99.895 740.998 null] >> endobj 90 0 obj << -/D [592 0 R /XYZ 99.895 649.401 null] +/D [612 0 R /XYZ 99.895 649.401 null] >> endobj -595 0 obj << -/D [592 0 R /XYZ 229.172 625.49 null] +615 0 obj << +/D [612 0 R /XYZ 229.172 625.49 null] >> endobj -596 0 obj << -/D [592 0 R /XYZ 226.034 609.411 null] +616 0 obj << +/D [612 0 R /XYZ 226.034 609.411 null] >> endobj -597 0 obj << -/D [592 0 R /XYZ 225.394 593.332 null] +617 0 obj << +/D [612 0 R /XYZ 225.394 593.332 null] >> endobj -598 0 obj << -/D [592 0 R /XYZ 267.641 420.675 null] +618 0 obj << +/D [612 0 R /XYZ 267.641 420.675 null] >> endobj -599 0 obj << -/D [592 0 R /XYZ 99.895 352.932 null] +619 0 obj << +/D [612 0 R /XYZ 99.895 352.932 null] >> endobj -591 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F7 566 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +611 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F7 586 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -605 0 obj << +625 0 obj << /Length 8668 >> stream @@ -10308,71 +10504,71 @@ ET 0 g 0 G endstream endobj -604 0 obj << +624 0 obj << /Type /Page -/Contents 605 0 R -/Resources 603 0 R +/Contents 625 0 R +/Resources 623 0 R /MediaBox [0 0 595.276 841.89] -/Parent 571 0 R -/Annots [ 607 0 R 608 0 R 609 0 R 610 0 R 611 0 R 612 0 R 613 0 R ] +/Parent 591 0 R +/Annots [ 627 0 R 628 0 R 629 0 R 630 0 R 631 0 R 632 0 R 633 0 R ] >> endobj -607 0 obj << +627 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 667.33 439.871 678.178] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -608 0 obj << +628 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 599.584 220.609 610.432] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -609 0 obj << +629 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 543.516 412.588 554.641] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -610 0 obj << +630 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [397.199 503.943 404.172 514.791] /Subtype /Link /A << /S /GoTo /D (equation.1) >> >> endobj -611 0 obj << +631 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.202 488.002 403.176 498.851] /Subtype /Link /A << /S /GoTo /D (equation.2) >> >> endobj -612 0 obj << +632 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [396.507 472.062 403.481 482.91] /Subtype /Link /A << /S /GoTo /D (equation.3) >> >> endobj -613 0 obj << +633 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 260.854 260.792 271.702] /Subtype /Link /A << /S /GoTo /D (table.9) >> >> endobj -606 0 obj << -/D [604 0 R /XYZ 150.705 740.998 null] +626 0 obj << +/D [624 0 R /XYZ 150.705 740.998 null] >> endobj -603 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F32 400 0 R >> +623 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -616 0 obj << +636 0 obj << /Length 9191 >> stream @@ -10606,30 +10802,30 @@ ET 0 g 0 G endstream endobj -615 0 obj << +635 0 obj << /Type /Page -/Contents 616 0 R -/Resources 614 0 R +/Contents 636 0 R +/Resources 634 0 R /MediaBox [0 0 595.276 841.89] -/Parent 571 0 R +/Parent 591 0 R >> endobj -617 0 obj << -/D [615 0 R /XYZ 99.895 740.998 null] +637 0 obj << +/D [635 0 R /XYZ 99.895 740.998 null] >> endobj 94 0 obj << -/D [615 0 R /XYZ 99.895 655.883 null] +/D [635 0 R /XYZ 99.895 655.883 null] >> endobj -618 0 obj << -/D [615 0 R /XYZ 99.895 293.772 null] +638 0 obj << +/D [635 0 R /XYZ 99.895 293.772 null] >> endobj -619 0 obj << -/D [615 0 R /XYZ 270.132 168.31 null] +639 0 obj << +/D [635 0 R /XYZ 270.132 168.31 null] >> endobj -614 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F13 586 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R >> +634 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F13 606 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -622 0 obj << +642 0 obj << /Length 10679 >> stream @@ -10926,64 +11122,64 @@ ET 0 g 0 G endstream endobj -621 0 obj << +641 0 obj << /Type /Page -/Contents 622 0 R -/Resources 620 0 R +/Contents 642 0 R +/Resources 640 0 R /MediaBox [0 0 595.276 841.89] -/Parent 630 0 R -/Annots [ 624 0 R 625 0 R 626 0 R 627 0 R 628 0 R 629 0 R ] +/Parent 650 0 R +/Annots [ 644 0 R 645 0 R 646 0 R 647 0 R 648 0 R 649 0 R ] >> endobj -624 0 obj << +644 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 667.33 444.852 678.178] /Subtype /Link /A << /S /GoTo /D (table.10) >> >> endobj -625 0 obj << +645 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [393.738 612.07 400.712 622.919] /Subtype /Link /A << /S /GoTo /D (section.3) >> >> endobj -626 0 obj << +646 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 544.856 225.591 555.704] /Subtype /Link /A << /S /GoTo /D (table.10) >> >> endobj -627 0 obj << +647 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [432.897 489.596 444.852 500.445] /Subtype /Link /A << /S /GoTo /D (table.10) >> >> endobj -628 0 obj << +648 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 422.382 225.591 433.23] /Subtype /Link /A << /S /GoTo /D (table.10) >> >> endobj -629 0 obj << +649 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 366.846 412.588 377.971] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -623 0 obj << -/D [621 0 R /XYZ 150.705 740.998 null] +643 0 obj << +/D [641 0 R /XYZ 150.705 740.998 null] >> endobj -620 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F32 400 0 R /F19 364 0 R >> +640 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F32 420 0 R /F19 384 0 R >> /ProcSet [ /PDF /Text ] >> endobj -633 0 obj << +653 0 obj << /Length 5337 >> stream @@ -11125,36 +11321,36 @@ ET 0 g 0 G endstream endobj -632 0 obj << +652 0 obj << /Type /Page -/Contents 633 0 R -/Resources 631 0 R +/Contents 653 0 R +/Resources 651 0 R /MediaBox [0 0 595.276 841.89] -/Parent 630 0 R -/Annots [ 635 0 R 636 0 R ] +/Parent 650 0 R +/Annots [ 655 0 R 656 0 R ] >> endobj -635 0 obj << +655 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 501.895 174.781 510.806] /Subtype /Link /A << /S /GoTo /D (table.10) >> >> endobj -636 0 obj << +656 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [225.425 344.54 237.38 355.389] /Subtype /Link /A << /S /GoTo /D (table.10) >> >> endobj -634 0 obj << -/D [632 0 R /XYZ 99.895 740.998 null] +654 0 obj << +/D [652 0 R /XYZ 99.895 740.998 null] >> endobj -631 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F32 400 0 R /F11 367 0 R >> +651 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -639 0 obj << +659 0 obj << /Length 345 >> stream @@ -11176,24 +11372,24 @@ ET 0 g 0 G endstream endobj -638 0 obj << +658 0 obj << /Type /Page -/Contents 639 0 R -/Resources 637 0 R +/Contents 659 0 R +/Resources 657 0 R /MediaBox [0 0 595.276 841.89] -/Parent 630 0 R +/Parent 650 0 R >> endobj -640 0 obj << -/D [638 0 R /XYZ 150.705 740.998 null] +660 0 obj << +/D [658 0 R /XYZ 150.705 740.998 null] >> endobj 98 0 obj << -/D [638 0 R /XYZ 150.705 716.092 null] +/D [658 0 R /XYZ 150.705 716.092 null] >> endobj -637 0 obj << -/Font << /F18 269 0 R /F8 278 0 R >> +657 0 obj << +/Font << /F18 285 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -643 0 obj << +663 0 obj << /Length 7919 >> stream @@ -11506,52 +11702,52 @@ ET 0 g 0 G endstream endobj -642 0 obj << +662 0 obj << /Type /Page -/Contents 643 0 R -/Resources 641 0 R +/Contents 663 0 R +/Resources 661 0 R /MediaBox [0 0 595.276 841.89] -/Parent 630 0 R -/Annots [ 647 0 R 648 0 R 649 0 R ] +/Parent 650 0 R +/Annots [ 667 0 R 668 0 R 669 0 R ] >> endobj -647 0 obj << +667 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [310.744 307.373 322.699 318.221] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -648 0 obj << +668 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 251.739 361.779 262.864] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -649 0 obj << +669 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [382.088 184.704 394.043 195.552] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -644 0 obj << -/D [642 0 R /XYZ 99.895 740.998 null] +664 0 obj << +/D [662 0 R /XYZ 99.895 740.998 null] >> endobj 102 0 obj << -/D [642 0 R /XYZ 99.895 661.336 null] +/D [662 0 R /XYZ 99.895 661.336 null] >> endobj -645 0 obj << -/D [642 0 R /XYZ 270.132 503.495 null] +665 0 obj << +/D [662 0 R /XYZ 270.132 503.495 null] >> endobj -646 0 obj << -/D [642 0 R /XYZ 99.895 434.605 null] +666 0 obj << +/D [662 0 R /XYZ 99.895 434.605 null] >> endobj -641 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +661 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -652 0 obj << +672 0 obj << /Length 2131 >> stream @@ -11613,29 +11809,29 @@ ET 0 g 0 G endstream endobj -651 0 obj << +671 0 obj << /Type /Page -/Contents 652 0 R -/Resources 650 0 R +/Contents 672 0 R +/Resources 670 0 R /MediaBox [0 0 595.276 841.89] -/Parent 630 0 R -/Annots [ 654 0 R ] +/Parent 650 0 R +/Annots [ 674 0 R ] >> endobj -654 0 obj << +674 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [213.636 637.387 225.591 646.298] /Subtype /Link /A << /S /GoTo /D (table.11) >> >> endobj -653 0 obj << -/D [651 0 R /XYZ 150.705 740.998 null] +673 0 obj << +/D [671 0 R /XYZ 150.705 740.998 null] >> endobj -650 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R >> +670 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -657 0 obj << +677 0 obj << /Length 9644 >> stream @@ -12090,45 +12286,45 @@ ET 0 g 0 G endstream endobj -656 0 obj << +676 0 obj << /Type /Page -/Contents 657 0 R -/Resources 655 0 R +/Contents 677 0 R +/Resources 675 0 R /MediaBox [0 0 595.276 841.89] -/Parent 630 0 R -/Annots [ 661 0 R 662 0 R ] +/Parent 650 0 R +/Annots [ 681 0 R 682 0 R ] >> endobj -661 0 obj << +681 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [162.826 309.518 174.781 318.429] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -662 0 obj << +682 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 252.36 361.779 263.485] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -658 0 obj << -/D [656 0 R /XYZ 99.895 740.998 null] +678 0 obj << +/D [676 0 R /XYZ 99.895 740.998 null] >> endobj 106 0 obj << -/D [656 0 R /XYZ 99.895 662.987 null] +/D [676 0 R /XYZ 99.895 662.987 null] >> endobj -659 0 obj << -/D [656 0 R /XYZ 270.132 502.701 null] +679 0 obj << +/D [676 0 R /XYZ 270.132 502.701 null] >> endobj -660 0 obj << -/D [656 0 R /XYZ 99.895 434.4 null] +680 0 obj << +/D [676 0 R /XYZ 99.895 434.4 null] >> endobj -655 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +675 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -665 0 obj << +685 0 obj << /Length 5142 >> stream @@ -12238,41 +12434,41 @@ ET 0 g 0 G endstream endobj -664 0 obj << +684 0 obj << /Type /Page -/Contents 665 0 R -/Resources 663 0 R +/Contents 685 0 R +/Resources 683 0 R /MediaBox [0 0 595.276 841.89] -/Parent 672 0 R -/Annots [ 667 0 R ] +/Parent 692 0 R +/Annots [ 687 0 R ] >> endobj -667 0 obj << +687 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [253.818 579.659 265.774 590.507] /Subtype /Link /A << /S /GoTo /D (table.12) >> >> endobj -666 0 obj << -/D [664 0 R /XYZ 150.705 740.998 null] +686 0 obj << +/D [684 0 R /XYZ 150.705 740.998 null] >> endobj -668 0 obj << -/D [664 0 R /XYZ 150.705 481.2 null] +688 0 obj << +/D [684 0 R /XYZ 150.705 481.2 null] >> endobj -669 0 obj << -/D [664 0 R /XYZ 150.705 485.185 null] +689 0 obj << +/D [684 0 R /XYZ 150.705 485.185 null] >> endobj -670 0 obj << -/D [664 0 R /XYZ 150.705 466.112 null] +690 0 obj << +/D [684 0 R /XYZ 150.705 466.112 null] >> endobj -671 0 obj << -/D [664 0 R /XYZ 150.705 422.277 null] +691 0 obj << +/D [684 0 R /XYZ 150.705 422.277 null] >> endobj -663 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F18 269 0 R /F10 518 0 R >> +683 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F18 285 0 R /F10 538 0 R >> /ProcSet [ /PDF /Text ] >> endobj -675 0 obj << +695 0 obj << /Length 10706 >> stream @@ -12728,48 +12924,48 @@ ET 0 g 0 G endstream endobj -674 0 obj << +694 0 obj << /Type /Page -/Contents 675 0 R -/Resources 673 0 R +/Contents 695 0 R +/Resources 693 0 R /MediaBox [0 0 595.276 841.89] -/Parent 672 0 R -/Annots [ 680 0 R 681 0 R ] +/Parent 692 0 R +/Annots [ 700 0 R 701 0 R ] >> endobj -680 0 obj << +700 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [205.998 242.104 217.953 251.015] /Subtype /Link /A << /S /GoTo /D (table.13) >> >> endobj -681 0 obj << +701 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 184.481 361.779 195.605] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -676 0 obj << -/D [674 0 R /XYZ 99.895 740.998 null] +696 0 obj << +/D [694 0 R /XYZ 99.895 740.998 null] >> endobj 110 0 obj << -/D [674 0 R /XYZ 99.895 661.124 null] +/D [694 0 R /XYZ 99.895 661.124 null] >> endobj -677 0 obj << -/D [674 0 R /XYZ 270.132 466.154 null] +697 0 obj << +/D [694 0 R /XYZ 270.132 466.154 null] >> endobj -678 0 obj << -/D [674 0 R /XYZ 99.895 395.25 null] +698 0 obj << +/D [694 0 R /XYZ 99.895 395.25 null] >> endobj -679 0 obj << -/D [674 0 R /XYZ 99.895 343.542 null] +699 0 obj << +/D [694 0 R /XYZ 99.895 343.542 null] >> endobj -673 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F7 566 0 R /F13 586 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +693 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F7 586 0 R /F13 606 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -684 0 obj << +704 0 obj << /Length 7026 >> stream @@ -13009,21 +13205,21 @@ ET 0 g 0 G endstream endobj -683 0 obj << +703 0 obj << /Type /Page -/Contents 684 0 R -/Resources 682 0 R +/Contents 704 0 R +/Resources 702 0 R /MediaBox [0 0 595.276 841.89] -/Parent 672 0 R +/Parent 692 0 R >> endobj -685 0 obj << -/D [683 0 R /XYZ 150.705 740.998 null] +705 0 obj << +/D [703 0 R /XYZ 150.705 740.998 null] >> endobj -682 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R >> +702 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -688 0 obj << +708 0 obj << /Length 10117 >> stream @@ -13454,41 +13650,41 @@ ET 0 g 0 G endstream endobj -687 0 obj << +707 0 obj << /Type /Page -/Contents 688 0 R -/Resources 686 0 R +/Contents 708 0 R +/Resources 706 0 R /MediaBox [0 0 595.276 841.89] -/Parent 672 0 R -/Annots [ 693 0 R ] +/Parent 692 0 R +/Annots [ 713 0 R ] >> endobj -693 0 obj << +713 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 185.196 361.779 196.321] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -689 0 obj << -/D [687 0 R /XYZ 99.895 740.998 null] +709 0 obj << +/D [707 0 R /XYZ 99.895 740.998 null] >> endobj 114 0 obj << -/D [687 0 R /XYZ 99.895 659.027 null] +/D [707 0 R /XYZ 99.895 659.027 null] >> endobj -690 0 obj << -/D [687 0 R /XYZ 270.132 457.729 null] +710 0 obj << +/D [707 0 R /XYZ 270.132 457.729 null] >> endobj -691 0 obj << -/D [687 0 R /XYZ 99.895 385.681 null] +711 0 obj << +/D [707 0 R /XYZ 99.895 385.681 null] >> endobj -692 0 obj << -/D [687 0 R /XYZ 99.895 333.817 null] +712 0 obj << +/D [707 0 R /XYZ 99.895 333.817 null] >> endobj -686 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F11 367 0 R /F10 518 0 R /F14 385 0 R /F7 566 0 R /F13 586 0 R /F29 275 0 R /F19 364 0 R /F32 400 0 R >> +706 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F11 387 0 R /F10 538 0 R /F14 405 0 R /F7 586 0 R /F13 606 0 R /F29 291 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -696 0 obj << +716 0 obj << /Length 7765 >> stream @@ -13753,30 +13949,30 @@ ET 0 g 0 G endstream endobj -695 0 obj << +715 0 obj << /Type /Page -/Contents 696 0 R -/Resources 694 0 R +/Contents 716 0 R +/Resources 714 0 R /MediaBox [0 0 595.276 841.89] -/Parent 672 0 R -/Annots [ 698 0 R ] +/Parent 692 0 R +/Annots [ 718 0 R ] >> endobj -698 0 obj << +718 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [256.807 310.612 268.762 319.523] /Subtype /Link /A << /S /GoTo /D (table.14) >> >> endobj -697 0 obj << -/D [695 0 R /XYZ 150.705 740.998 null] +717 0 obj << +/D [715 0 R /XYZ 150.705 740.998 null] >> endobj -694 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R >> +714 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -701 0 obj << -/Length 371 +721 0 obj << +/Length 419 >> stream 1 0 0 1 99.895 740.998 cm @@ -13785,7 +13981,7 @@ stream 0 g 0 G 1 0 0 1 -443.606 -740.998 cm BT -/F18 14.346 Tf 99.895 706.129 Td[(6)-1125(Dat)1(a)-375(ma)1(nagemen)31(t)-374(and)-375(ini)1(ti)1(ali)1(zat)1(ion)-375(rout)1(ines)]TJ +/F18 14.346 Tf 99.895 706.129 Td[(6)-1125(Dat)1(a)-373(m)1(anag)1(e)-1(m)1(en)31(t)-372(and)-372(e)-1(n)32(vironm)1(e)-1(n)32(t)-372(handli)1(ng)]TJ 24.21 -17.933 Td[(rout)1(ines)]TJ ET 1 0 0 1 99.895 90.438 cm 0 g 0 G @@ -13797,24 +13993,524 @@ ET 0 g 0 G endstream endobj -700 0 obj << +720 0 obj << /Type /Page -/Contents 701 0 R -/Resources 699 0 R +/Contents 721 0 R +/Resources 719 0 R /MediaBox [0 0 595.276 841.89] -/Parent 672 0 R +/Parent 692 0 R >> endobj -702 0 obj << -/D [700 0 R /XYZ 99.895 740.998 null] +722 0 obj << +/D [720 0 R /XYZ 99.895 740.998 null] >> endobj 118 0 obj << -/D [700 0 R /XYZ 99.895 716.092 null] +/D [720 0 R /XYZ 99.895 716.092 null] >> endobj -699 0 obj << -/Font << /F18 269 0 R /F8 278 0 R >> +719 0 obj << +/Font << /F18 285 0 R /F8 294 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +725 0 obj << +/Length 4294 +>> +stream +1 0 0 1 150.705 740.998 cm +0 g 0 G +1 0 0 1 343.711 0 cm +0 g 0 G +1 0 0 1 -348.692 -60.772 cm +0 g 0 G +0 g 0 G +1 0 0 1 -145.724 -680.226 cm +BT +/F18 14.346 Tf 150.705 680.226 Td[(psb)]TJ +ET +1 0 0 1 175.972 680.226 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +4.842 0.199 l +S +Q +1 0 0 1 -175.972 -680.226 cm +BT +/F18 14.346 Tf 180.814 680.226 Td[(i)1(n)-1(i)1(t|Ini)1(ti)1(al)1(izes)-375(PSB)1(LAS)-375(parall)1(el)]TJ -30.109 -17.933 Td[(en)31(vi)1(r)-1(o)1(nmen)31(t)]TJ 0 -35.768 Td[(Syn)31(t)1(ax)]TJ/F8 9.963 Tf 122.327 -21.821 Td[(call)-333(psb)]TJ +ET +1 0 0 1 306.894 604.704 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -306.894 -604.704 cm +BT +/F8 9.963 Tf 309.883 604.704 Td[(in)1(it)-333(\050)]TJ/F19 9.963 Tf 22.139 0 Td[(ictxt,)-357(n)-1(p)]TJ/F8 9.963 Tf 36.192 0 Td[(\051)]TJ -217.509 -23.911 Td[(Thi)1(s)-307(s)-1(u)1(brou)1(tin)1(e)-307(in)1(itiali)1(z)-1(es)-307(the)-307(P)1(SBLAS)-306(p)1(arallel)-306(e)-1(n)29(viron)1(me)-1(n)28(t,)-311(de\014n)1(ing)-306(a)-306(virtu)1(al)]TJ 0 -11.955 Td[(par)1(allel)-333(m)-1(a)1(c)27(hi)1(ne.)]TJ +ET +1 0 0 1 145.724 548.913 cm +0 g 0 G +1 0 0 1 -145.724 -548.913 cm +BT +/F29 9.963 Tf 150.705 548.913 Td[(On)-383(En)33(t)-1(r)1(y)]TJ +ET +1 0 0 1 202.109 548.913 cm +0 g 0 G +1 0 0 1 -56.385 -19.925 cm +0 g 0 G +1 0 0 1 -145.724 -528.988 cm +BT +/F29 9.963 Tf 150.705 528.988 Td[(np)]TJ +ET +1 0 0 1 163.435 528.988 cm +0 g 0 G +1 0 0 1 -163.435 -528.988 cm +BT +/F8 9.963 Tf 168.416 528.988 Td[(Num)28(b)-27(e)-1(r)-333(of)-333(p)1(ro)-28(ces)-1(se)-1(s)-333(in)-333(the)-333(PS)1(B)-1(LAS)-332(virtu)1(al)-333(par)1(allel)-333(m)-1(ac)28(hin)1(e)-1(.)]TJ 7.195 -11.956 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(global)]TJ/F8 9.963 Tf 29.757 0 Td[(.)]TJ -57.708 -11.955 Td[(T)28(yp)-28(e:)]TJ/F29 9.963 Tf 25.184 0 Td[(optional)]TJ/F8 9.963 Tf 40.577 0 Td[(.)]TJ -65.761 -11.955 Td[(Sp)-27(ec)-1(i\014)1(ed)-393(as:)-564(an)-392(in)28(tege)-1(r)-392(v)56(alue.)-1016(Defau)1(lt:)-564(u)1(s)-1(e)-393(all)-392(a)27(v)56(ail)1(able)-393(pr)1(o)-28(ce)-1(ss)-1(es)-393(pro-)]TJ 0 -11.955 Td[(vid)1(e)-1(d)-332(b)28(y)-333(the)-333(un)1(derlyi)1(ng)-333(par)1(allel)-333(e)-1(n)28(v)1(iron)1(m)-1(en)28(t.)]TJ +ET +1 0 0 1 145.724 459.249 cm +0 g 0 G +1 0 0 1 -145.724 -459.249 cm +BT +/F29 9.963 Tf 150.705 459.249 Td[(On)-383(Re)-1(tur)1(n)]TJ +ET +1 0 0 1 205.243 459.249 cm +0 g 0 G +1 0 0 1 -59.519 -19.925 cm +0 g 0 G +1 0 0 1 -145.724 -439.324 cm +BT +/F29 9.963 Tf 150.705 439.324 Td[(ic)-1(o)1(n)32(t)-1(xt)]TJ +ET +1 0 0 1 185.712 439.324 cm +0 g 0 G +1 0 0 1 -185.712 -439.324 cm +BT +/F8 9.963 Tf 190.694 439.324 Td[(th)1(e)-334(c)-1(omm)28(un)1(ic)-1(ati)1(on)-333(c)-1(on)29(te)-1(x)1(t)-334(i)1(den)28(tif)1(yin)1(g)-334(th)1(e)-334(vi)1(rtu)1(al)-333(paral)1(le)-1(l)-333(mac)27(h)1(in)1(e)-1(.)]TJ -15.083 -11.955 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(global)]TJ/F8 9.963 Tf 29.757 0 Td[(.)]TJ -57.708 -11.955 Td[(T)28(yp)-28(e:)]TJ/F29 9.963 Tf 25.184 0 Td[(requ)1(i)-1(r)1(e)-1(d)]TJ/F8 9.963 Tf 41.898 0 Td[(.)]TJ -67.082 -11.956 Td[(Sp)-27(ec)-1(i\014)1(ed)-333(as)-1(:)-444(an)-333(in)29(te)-1(ger)-333(v)56(ariab)1(le.)]TJ/F18 14.346 Tf -24.906 -32.945 Td[(No)1(tes)]TJ +ET +1 0 0 1 150.705 348.692 cm +0 g 0 G +1 0 0 1 -150.705 -348.692 cm +BT +/F8 9.963 Tf 162.881 348.692 Td[(1.)]TJ +ET +1 0 0 1 170.63 348.692 cm +0 g 0 G +1 0 0 1 -170.63 -348.692 cm +BT +/F8 9.963 Tf 175.611 348.692 Td[(A)-333(c)-1(all)-333(t)1(o)-334(th)1(is)-334(r)1(outin)1(e)-334(m)28(ust)-334(p)1(rec)-1(ede)-333(an)28(y)-333(other)-333(P)1(SBLAS)-333(c)-1(al)1(l.)]TJ +ET +1 0 0 1 150.705 328.766 cm +0 g 0 G +1 0 0 1 -150.705 -328.766 cm +BT +/F8 9.963 Tf 162.881 328.766 Td[(2.)]TJ +ET +1 0 0 1 170.63 328.766 cm +0 g 0 G +1 0 0 1 -170.63 -328.766 cm +BT +/F8 9.963 Tf 175.611 328.766 Td[(It)-262(is)-262(an)-262(err)1(or)-262(to)-262(sp)-28(ec)-1(i)1(fy)-262(a)-262(v)56(alu)1(e)-262(for)]TJ/F11 9.963 Tf 147.14 0 Td[(np)]TJ/F8 9.963 Tf 13.602 0 Td[(greater)-262(th)1(an)-262(th)1(e)-263(n)28(u)1(m)27(b)-27(er)-262(of)-262(p)1(ro)-27(c)-1(es)-1(se)-1(s)]TJ -160.742 -11.955 Td[(a)28(v)56(ailabl)1(e)-334(in)-333(th)1(e)-334(u)1(nd)1(e)-1(rl)1(yin)1(g)-334(p)1(arall)1(e)-1(l)-333(exe)-1(cu)1(tion)-333(en)28(vir)1(onme)-1(n)29(t.)]TJ +ET +1 0 0 1 150.705 90.438 cm +0 g 0 G +1 0 0 1 -150.705 -90.438 cm +BT +/F8 9.963 Tf 317.579 90.438 Td[(40)]TJ +ET +1 0 0 1 494.416 90.438 cm +0 g 0 G +endstream +endobj +724 0 obj << +/Type /Page +/Contents 725 0 R +/Resources 723 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 731 0 R +>> endobj +726 0 obj << +/D [724 0 R /XYZ 150.705 740.998 null] +>> endobj +122 0 obj << +/D [724 0 R /XYZ 150.705 644.457 null] +>> endobj +727 0 obj << +/D [724 0 R /XYZ 150.705 613.869 null] +>> endobj +728 0 obj << +/D [724 0 R /XYZ 150.705 360.647 null] +>> endobj +729 0 obj << +/D [724 0 R /XYZ 150.705 364.632 null] +>> endobj +730 0 obj << +/D [724 0 R /XYZ 150.705 342.769 null] +>> endobj +723 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F11 387 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +734 0 obj << +/Length 5900 +>> +stream +1 0 0 1 99.895 740.998 cm +0 g 0 G +1 0 0 1 343.711 0 cm +0 g 0 G +1 0 0 1 -348.692 -60.772 cm +0 g 0 G +0 g 0 G +1 0 0 1 -94.914 -680.226 cm +BT +/F18 14.346 Tf 99.895 680.226 Td[(psb)]TJ +ET +1 0 0 1 125.163 680.226 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +4.842 0.199 l +S +Q +1 0 0 1 -125.163 -680.226 cm +BT +/F18 14.346 Tf 130.004 680.226 Td[(inf)1(o|Return)-375(info)1(r)-1(m)1(at)1(io)1(n)-375(ab)-32(o)1(ut)-375(P)1(SBLA)1(S)]TJ -30.109 -17.933 Td[(parall)1(e)-1(l)-374(en)31(vi)1(r)-1(o)1(nmen)31(t)]TJ 0 -35.768 Td[(Syn)31(t)1(ax)]TJ/F8 9.963 Tf 110.179 -21.821 Td[(call)-333(psb)]TJ +ET +1 0 0 1 243.936 604.704 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -243.936 -604.704 cm +BT +/F8 9.963 Tf 246.925 604.704 Td[(in)1(fo)-333(\050)]TJ/F19 9.963 Tf 23.523 0 Td[(ictxt,)-357(iam,)-357(np)]TJ/F8 9.963 Tf 59.105 0 Td[(\051)]TJ -229.658 -23.911 Td[(This)-310(subr)1(outi)1(ne)-310(return)1(s)-311(i)1(nf)1(orman)28(tion)-309(ab)-28(ou)1(t)-310(th)1(e)-311(PS)1(BLAS)-310(p)1(arallel)-310(en)28(vir)1(onmen)28(t,)]TJ 0 -11.955 Td[(de\014n)1(in)1(g)-334(a)-333(vir)1(tual)-333(p)1(arall)1(e)-1(l)-333(mac)27(h)1(ine.)]TJ +ET +1 0 0 1 94.914 548.913 cm +0 g 0 G +1 0 0 1 -94.914 -548.913 cm +BT +/F29 9.963 Tf 99.895 548.913 Td[(On)-383(En)32(tr)1(y)]TJ +ET +1 0 0 1 151.3 548.913 cm +0 g 0 G +1 0 0 1 -56.386 -19.925 cm +0 g 0 G +1 0 0 1 -94.914 -528.988 cm +BT +/F29 9.963 Tf 99.895 528.988 Td[(ic)-1(on)33(t)-1(xt)]TJ +ET +1 0 0 1 134.903 528.988 cm +0 g 0 G +1 0 0 1 -134.903 -528.988 cm +BT +/F8 9.963 Tf 139.884 528.988 Td[(th)1(e)-334(c)-1(omm)28(un)1(ic)-1(ati)1(on)-333(c)-1(on)29(te)-1(x)1(t)-334(i)1(den)28(tif)1(yin)1(g)-334(th)1(e)-334(vi)1(rtu)1(al)-334(p)1(aral)1(le)-1(l)-333(mac)27(h)1(ine.)]TJ -15.082 -11.956 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(global)]TJ/F8 9.963 Tf 29.756 0 Td[(.)]TJ -57.707 -11.955 Td[(T)28(yp)-27(e)-1(:)]TJ/F29 9.963 Tf 25.183 0 Td[(requ)1(i)-1(red)]TJ/F8 9.963 Tf 41.899 0 Td[(.)]TJ -67.082 -11.955 Td[(Sp)-27(ec)-1(i)1(\014ed)-333(as)-1(:)-444(an)-333(in)29(te)-1(ger)-333(v)56(ariab)1(le.)]TJ +ET +1 0 0 1 94.914 471.204 cm +0 g 0 G +1 0 0 1 -94.914 -471.204 cm +BT +/F29 9.963 Tf 99.895 471.204 Td[(On)-383(R)-1(etur)1(n)]TJ +ET +1 0 0 1 154.434 471.204 cm +0 g 0 G +1 0 0 1 -59.52 -19.925 cm +0 g 0 G +1 0 0 1 -94.914 -451.279 cm +BT +/F29 9.963 Tf 99.895 451.279 Td[(iam)]TJ +ET +1 0 0 1 118.195 451.279 cm +0 g 0 G +1 0 0 1 -118.195 -451.279 cm +BT +/F8 9.963 Tf 123.176 451.279 Td[(Iden)28(ti)1(\014er)-333(of)-333(c)-1(u)1(rren)28(t)-333(p)1(ro)-28(ce)-1(ss)-334(in)-333(t)1(he)-334(P)1(SBLAS)-333(vi)1(rtual)-333(p)1(arall)1(e)-1(l)-333(mac)27(h)1(ine.)]TJ 1.626 -11.955 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(lo)-32(cal)]TJ/F8 9.963 Tf 23.073 0 Td[(.)]TJ -51.024 -11.955 Td[(T)28(yp)-27(e)-1(:)]TJ/F29 9.963 Tf 25.183 0 Td[(requ)1(i)-1(red)]TJ/F8 9.963 Tf 41.899 0 Td[(.)]TJ -67.082 -11.955 Td[(Sp)-27(ec)-1(i)1(\014ed)-333(as)-1(:)-444(an)-333(in)29(te)-1(ger)-333(v)56(alu)1(e)-1(.)]TJ/F14 9.963 Tf 134.302 0 Td[(\000)]TJ/F8 9.963 Tf 7.749 0 Td[(1)]TJ/F14 9.963 Tf 7.749 0 Td[(\024)]TJ/F11 9.963 Tf 10.516 0 Td[(i)1(am)]TJ/F14 9.963 Tf 20.213 0 Td[(\024)]TJ/F11 9.963 Tf 10.516 0 Td[(np)]TJ/F14 9.963 Tf 13.206 0 Td[(\000)]TJ/F8 9.963 Tf 9.963 0 Td[(1)]TJ +ET +1 0 0 1 94.914 395.488 cm +0 g 0 G +1 0 0 1 -94.914 -395.488 cm +BT +/F29 9.963 Tf 99.895 395.488 Td[(np)]TJ +ET +1 0 0 1 112.625 395.488 cm +0 g 0 G +1 0 0 1 -112.625 -395.488 cm +BT +/F8 9.963 Tf 117.607 395.488 Td[(Nu)1(m)27(b)-27(e)-1(r)-333(of)-333(p)1(ro)-28(ces)-1(se)-1(s)-333(in)-333(th)1(e)-334(PS)1(B)-1(LAS)-332(virt)1(ual)-333(par)1(allel)-333(m)-1(ac)28(hin)1(e)-1(.)]TJ 7.195 -11.955 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(global)]TJ/F8 9.963 Tf 29.756 0 Td[(.)]TJ -57.707 -11.955 Td[(T)28(yp)-27(e)-1(:)]TJ/F29 9.963 Tf 25.183 0 Td[(requ)1(i)-1(red)]TJ/F8 9.963 Tf 41.899 0 Td[(.)]TJ -67.082 -11.955 Td[(Sp)-27(ec)-1(i)1(\014ed)-333(as)-1(:)-444(an)-333(in)29(te)-1(ger)-333(v)56(ariab)1(le.)]TJ/F18 14.346 Tf -24.907 -32.946 Td[(No)1(tes)]TJ +ET +1 0 0 1 99.895 304.856 cm +0 g 0 G +1 0 0 1 -99.895 -304.856 cm +BT +/F8 9.963 Tf 112.072 304.856 Td[(1.)]TJ +ET +1 0 0 1 119.821 304.856 cm +0 g 0 G +1 0 0 1 -119.821 -304.856 cm +BT +/F8 9.963 Tf 124.802 304.856 Td[(F)84(or)-500(pr)1(o)-28(ce)-1(ss)-1(es)-501(i)1(n)-500(th)1(e)-501(v)1(irtu)1(al)-500(par)1(allel)-500(mac)27(h)1(ine)-500(th)1(e)-501(id)1(e)-1(n)29(ti\014er)-500(wil)1(l)-500(s)-1(at)1(is)-1(f)1(y)]TJ 0 -11.955 Td[(0)]TJ/F14 9.963 Tf 7.749 0 Td[(\024)]TJ/F11 9.963 Tf 10.516 0 Td[(i)1(am)]TJ/F14 9.963 Tf 20.213 0 Td[(\024)]TJ/F11 9.963 Tf 10.516 0 Td[(np)]TJ/F14 9.963 Tf 13.206 0 Td[(\000)]TJ/F8 9.963 Tf 9.963 0 Td[(1;)]TJ +ET +1 0 0 1 99.895 272.976 cm +0 g 0 G +1 0 0 1 -99.895 -272.976 cm +BT +/F8 9.963 Tf 112.072 272.976 Td[(2.)]TJ +ET +1 0 0 1 119.821 272.976 cm +0 g 0 G +1 0 0 1 -119.821 -272.976 cm +BT +/F8 9.963 Tf 124.802 272.976 Td[(If)-432(th)1(e)-433(use)-1(r)-432(h)1(as)-433(requ)1(e)-1(ste)-1(d)-432(on)]TJ/F32 9.963 Tf 130.4 0 Td[(psb_init)]TJ/F8 9.963 Tf 46.151 0 Td[(a)-432(n)28(um)28(b)-27(e)-1(r)-432(of)-432(p)1(ro)-28(ce)-1(ss)-1(es)-433(less)-433(than)]TJ -176.551 -11.956 Td[(th)1(e)-417(total)-416(a)27(v)56(ai)1(lable)-416(in)-416(the)-417(p)1(arall)1(e)-1(l)-416(exe)-1(cut)1(ion)-416(e)-1(n)29(viron)1(me)-1(n)28(t,)-437(t)1(he)-417(remaini)1(ng)]TJ 0 -11.955 Td[(pr)1(o)-28(ce)-1(ss)-1(es)-319(will)-318(ha)28(v)28(e)-319(on)-318(retur)1(n)]TJ/F11 9.963 Tf 128.478 0 Td[(ia)1(m)]TJ/F8 9.963 Tf 20.213 0 Td[(=)]TJ/F14 9.963 Tf 10.516 0 Td[(\000)]TJ/F8 9.963 Tf 7.749 0 Td[(1;)-323(an)28(y)-318(s)-1(u)1(c)27(h)-318(pr)1(o)-28(c)-1(ess)-320(ma)28(y)-318(only)-318(pl)1(ac)-1(e)]TJ -166.956 -11.955 Td[(a)-333(c)-1(al)1(l)-334(t)1(o)]TJ/F32 9.963 Tf 38.744 0 Td[(psb_exit)]TJ/F8 9.963 Tf 41.842 0 Td[(,)-333(and)-333(i)1(s)-334(requ)1(ired)-333(to)-333(do)-333(s)-1(o.)]TJ +ET +1 0 0 1 99.895 90.438 cm +0 g 0 G +1 0 0 1 -99.895 -90.438 cm +BT +/F8 9.963 Tf 266.77 90.438 Td[(41)]TJ +ET +1 0 0 1 443.606 90.438 cm +0 g 0 G +endstream +endobj +733 0 obj << +/Type /Page +/Contents 734 0 R +/Resources 732 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 731 0 R +>> endobj +735 0 obj << +/D [733 0 R /XYZ 99.895 740.998 null] +>> endobj +126 0 obj << +/D [733 0 R /XYZ 99.895 641.668 null] +>> endobj +736 0 obj << +/D [733 0 R /XYZ 99.895 613.869 null] +>> endobj +737 0 obj << +/D [733 0 R /XYZ 99.895 316.811 null] +>> endobj +738 0 obj << +/D [733 0 R /XYZ 99.895 320.796 null] +>> endobj +739 0 obj << +/D [733 0 R /XYZ 99.895 286.979 null] +>> endobj +732 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F14 405 0 R /F11 387 0 R /F32 420 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +742 0 obj << +/Length 2968 +>> +stream +1 0 0 1 150.705 740.998 cm +0 g 0 G +1 0 0 1 343.711 0 cm +0 g 0 G +1 0 0 1 -348.692 -60.772 cm +0 g 0 G +0 g 0 G +1 0 0 1 -145.724 -680.226 cm +BT +/F18 14.346 Tf 150.705 680.226 Td[(psb)]TJ +ET +1 0 0 1 175.972 680.226 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +4.842 0.199 l +S +Q +1 0 0 1 -175.972 -680.226 cm +BT +/F18 14.346 Tf 180.814 680.226 Td[(exit)1(|E)-1(x)1(it)-374(fr)-1(o)1(m)-375(P)1(SBLA)1(S)-375(par)-1(al)1(lel)]TJ -30.109 -17.933 Td[(en)31(vi)1(r)-1(o)1(nmen)31(t)]TJ 0 -35.768 Td[(Syn)31(t)1(ax)]TJ/F8 9.963 Tf 130.292 -21.821 Td[(call)-333(psb)]TJ +ET +1 0 0 1 314.859 604.704 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -314.859 -604.704 cm +BT +/F8 9.963 Tf 317.848 604.704 Td[(exit)-333(\050)]TJ/F19 9.963 Tf 23.523 0 Td[(ictxt)]TJ/F8 9.963 Tf 18.879 0 Td[(\051)]TJ -209.545 -23.911 Td[(Thi)1(s)-334(s)-1(u)1(br)1(outin)1(e)-334(exits)-333(from)-333(the)-333(PSBLAS)-333(p)1(arall)1(e)-1(l)-333(vi)1(rtu)1(al)-334(mac)28(hin)1(e)-1(.)]TJ +ET +1 0 0 1 145.724 560.868 cm +0 g 0 G +1 0 0 1 -145.724 -560.868 cm +BT +/F29 9.963 Tf 150.705 560.868 Td[(On)-383(En)33(t)-1(r)1(y)]TJ +ET +1 0 0 1 202.109 560.868 cm +0 g 0 G +1 0 0 1 -56.385 -19.925 cm +0 g 0 G +1 0 0 1 -145.724 -540.943 cm +BT +/F29 9.963 Tf 150.705 540.943 Td[(ic)-1(o)1(n)32(t)-1(xt)]TJ +ET +1 0 0 1 185.712 540.943 cm +0 g 0 G +1 0 0 1 -185.712 -540.943 cm +BT +/F8 9.963 Tf 190.694 540.943 Td[(th)1(e)-334(c)-1(omm)28(un)1(ic)-1(ati)1(on)-333(c)-1(on)29(te)-1(x)1(t)-334(i)1(den)28(tif)1(yin)1(g)-334(th)1(e)-334(vi)1(rtu)1(al)-333(paral)1(le)-1(l)-333(mac)27(h)1(in)1(e)-1(.)]TJ -15.083 -11.955 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(global)]TJ/F8 9.963 Tf 29.757 0 Td[(.)]TJ -57.708 -11.956 Td[(T)28(yp)-28(e:)]TJ/F29 9.963 Tf 25.184 0 Td[(requ)1(i)-1(r)1(e)-1(d)]TJ/F8 9.963 Tf 41.898 0 Td[(.)]TJ -67.082 -11.955 Td[(Sp)-27(ec)-1(i\014)1(ed)-333(as)-1(:)-444(an)-333(in)29(te)-1(ger)-333(v)56(ariab)1(le.)]TJ/F18 14.346 Tf -24.906 -32.946 Td[(No)1(tes)]TJ +ET +1 0 0 1 150.705 450.311 cm +0 g 0 G +1 0 0 1 -150.705 -450.311 cm +BT +/F8 9.963 Tf 162.881 450.311 Td[(1.)]TJ +ET +1 0 0 1 170.63 450.311 cm +0 g 0 G +1 0 0 1 -170.63 -450.311 cm +BT +/F8 9.963 Tf 175.611 450.311 Td[(This)-241(rou)1(tin)1(e)-242(ma)28(y)-241(b)-27(e)-242(called)-241(ev)28(e)-1(n)-240(if)-241(a)-241(p)1(reviou)1(s)-242(call)-241(t)1(o)]TJ/F32 9.963 Tf 220.575 0 Td[(psb_info)]TJ/F8 9.963 Tf 44.244 0 Td[(has)-241(retu)1(rned)]TJ -264.819 -11.956 Td[(with)]TJ/F11 9.963 Tf 23.052 0 Td[(ia)1(m)]TJ/F8 9.963 Tf 20.811 0 Td[(=)]TJ/F14 9.963 Tf 11.115 0 Td[(\000)]TJ/F8 9.963 Tf 7.749 0 Td[(1;)-387(in)1(dee)-1(d)1(,)-378(it)-369(it)-369(is)-370(th)1(e)-370(ONL)83(Y)-369(rou)1(tin)1(e)-370(th)1(at)-370(ma)28(y)-369(b)-28(e)-369(c)-1(all)1(e)-1(d)-369(i)1(n)]TJ -62.727 -11.955 Td[(th)1(is)-334(situat)1(ion,)-333(an)1(d)-333(it)-333(is)-334(r)1(e)-1(qu)1(ired)-333(to)-333(do)-333(so.)]TJ +ET +1 0 0 1 150.705 90.438 cm +0 g 0 G +1 0 0 1 -150.705 -90.438 cm +BT +/F8 9.963 Tf 317.579 90.438 Td[(42)]TJ +ET +1 0 0 1 494.416 90.438 cm +0 g 0 G +endstream +endobj +741 0 obj << +/Type /Page +/Contents 742 0 R +/Resources 740 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 731 0 R +>> endobj +743 0 obj << +/D [741 0 R /XYZ 150.705 740.998 null] +>> endobj +130 0 obj << +/D [741 0 R /XYZ 150.705 644.457 null] +>> endobj +744 0 obj << +/D [741 0 R /XYZ 150.705 613.869 null] +>> endobj +745 0 obj << +/D [741 0 R /XYZ 150.705 462.266 null] +>> endobj +746 0 obj << +/D [741 0 R /XYZ 150.705 466.251 null] +>> endobj +740 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R /F14 405 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +749 0 obj << +/Length 2270 +>> +stream +1 0 0 1 99.895 740.998 cm +0 g 0 G +1 0 0 1 343.711 0 cm +0 g 0 G +1 0 0 1 -348.692 -60.772 cm +0 g 0 G +0 g 0 G +1 0 0 1 -94.914 -680.226 cm +BT +/F18 14.346 Tf 99.895 680.226 Td[(psb)]TJ +ET +1 0 0 1 125.163 680.226 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +4.842 0.199 l +S +Q +1 0 0 1 -125.163 -680.226 cm +BT +/F18 14.346 Tf 130.004 680.226 Td[(barr)-1(i)1(e)-1(r|Sinc)31(hroni)1(zat)1(io)1(n)-375(p)-32(o)1(in)32(t)-375(parall)1(e)-1(l)]TJ -30.109 -17.933 Td[(en)31(vi)1(r)-1(o)1(nmen)31(t)]TJ 0 -35.768 Td[(Syn)31(t)1(ax)]TJ/F8 9.963 Tf 123.747 -21.821 Td[(call)-333(psb)]TJ +ET +1 0 0 1 257.504 604.704 cm +q +[]0 d +0 J +0.398 w +0 0.199 m +2.989 0.199 l +S +Q +1 0 0 1 -257.504 -604.704 cm +BT +/F8 9.963 Tf 260.493 604.704 Td[(bar)1(rier)-333(\050)]TJ/F19 9.963 Tf 36.613 0 Td[(ictxt)]TJ/F8 9.963 Tf 18.879 0 Td[(\051)]TJ -216.09 -23.911 Td[(This)-280(s)-1(u)1(br)1(outin)1(e)-281(acts)-281(as)-281(a)-280(sync)28(hr)1(onization)-280(p)-27(oin)29(t)-281(f)1(or)-280(th)1(e)-281(PS)1(B)-1(LAS)-279(par)1(allel)-281(v)1(irtu)1(al)]TJ 0 -11.955 Td[(mac)27(hi)1(ne.)-444(As)-334(s)-1(u)1(c)27(h)1(,)-333(it)-333(m)27(u)1(s)-1(t)-333(b)-27(e)-334(c)-1(al)1(le)-1(d)-332(b)28(y)-333(all)-333(par)1(ticipati)1(ng)-333(pr)1(o)-28(ce)-1(ss)-1(es)-1(.)]TJ +ET +1 0 0 1 94.914 548.913 cm +0 g 0 G +1 0 0 1 -94.914 -548.913 cm +BT +/F29 9.963 Tf 99.895 548.913 Td[(On)-383(En)32(tr)1(y)]TJ +ET +1 0 0 1 151.3 548.913 cm +0 g 0 G +1 0 0 1 -56.386 -19.925 cm +0 g 0 G +1 0 0 1 -94.914 -528.988 cm +BT +/F29 9.963 Tf 99.895 528.988 Td[(ic)-1(on)33(t)-1(xt)]TJ +ET +1 0 0 1 134.903 528.988 cm +0 g 0 G +1 0 0 1 -134.903 -528.988 cm +BT +/F8 9.963 Tf 139.884 528.988 Td[(th)1(e)-334(c)-1(omm)28(un)1(ic)-1(ati)1(on)-333(c)-1(on)29(te)-1(x)1(t)-334(i)1(den)28(tif)1(yin)1(g)-334(th)1(e)-334(vi)1(rtu)1(al)-334(p)1(aral)1(le)-1(l)-333(mac)27(h)1(ine.)]TJ -15.082 -11.956 Td[(Scop)-27(e)-1(:)]TJ/F29 9.963 Tf 27.951 0 Td[(global)]TJ/F8 9.963 Tf 29.756 0 Td[(.)]TJ -57.707 -11.955 Td[(T)28(yp)-27(e)-1(:)]TJ/F29 9.963 Tf 25.183 0 Td[(requ)1(i)-1(red)]TJ/F8 9.963 Tf 41.899 0 Td[(.)]TJ -67.082 -11.955 Td[(Sp)-27(ec)-1(i)1(\014ed)-333(as)-1(:)-444(an)-333(in)29(te)-1(ger)-333(v)56(ariab)1(le.)]TJ +ET +1 0 0 1 99.895 90.438 cm +0 g 0 G +1 0 0 1 -99.895 -90.438 cm +BT +/F8 9.963 Tf 266.77 90.438 Td[(43)]TJ +ET +1 0 0 1 443.606 90.438 cm +0 g 0 G +endstream +endobj +748 0 obj << +/Type /Page +/Contents 749 0 R +/Resources 747 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 731 0 R +>> endobj +750 0 obj << +/D [748 0 R /XYZ 99.895 740.998 null] +>> endobj +134 0 obj << +/D [748 0 R /XYZ 99.895 644.457 null] +>> endobj +751 0 obj << +/D [748 0 R /XYZ 99.895 613.869 null] +>> endobj +747 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -705 0 obj << +754 0 obj << /Length 7903 >> stream @@ -13998,33 +14694,33 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(40)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(44)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -704 0 obj << +753 0 obj << /Type /Page -/Contents 705 0 R -/Resources 703 0 R +/Contents 754 0 R +/Resources 752 0 R /MediaBox [0 0 595.276 841.89] -/Parent 708 0 R +/Parent 731 0 R >> endobj -706 0 obj << -/D [704 0 R /XYZ 150.705 740.998 null] +755 0 obj << +/D [753 0 R /XYZ 150.705 740.998 null] >> endobj -122 0 obj << -/D [704 0 R /XYZ 150.705 643.675 null] +138 0 obj << +/D [753 0 R /XYZ 150.705 643.675 null] >> endobj -707 0 obj << -/D [704 0 R /XYZ 150.705 615.876 null] +756 0 obj << +/D [753 0 R /XYZ 150.705 615.876 null] >> endobj -703 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F11 367 0 R /F14 385 0 R >> +752 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -711 0 obj << +759 0 obj << /Length 3485 >> stream @@ -14143,41 +14839,41 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(41)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(45)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -710 0 obj << +758 0 obj << /Type /Page -/Contents 711 0 R -/Resources 709 0 R +/Contents 759 0 R +/Resources 757 0 R /MediaBox [0 0 595.276 841.89] -/Parent 708 0 R -/Annots [ 713 0 R ] +/Parent 731 0 R +/Annots [ 761 0 R ] >> endobj -713 0 obj << +761 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 601.3 361.779 612.425] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -712 0 obj << -/D [710 0 R /XYZ 99.895 740.998 null] +760 0 obj << +/D [758 0 R /XYZ 99.895 740.998 null] >> endobj -714 0 obj << -/D [710 0 R /XYZ 99.895 505.908 null] +762 0 obj << +/D [758 0 R /XYZ 99.895 505.908 null] >> endobj -715 0 obj << -/D [710 0 R /XYZ 99.895 509.893 null] +763 0 obj << +/D [758 0 R /XYZ 99.895 509.893 null] >> endobj -709 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F32 400 0 R /F18 269 0 R >> +757 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F32 420 0 R /F18 285 0 R >> /ProcSet [ /PDF /Text ] >> endobj -718 0 obj << +766 0 obj << /Length 6019 >> stream @@ -14374,47 +15070,47 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(42)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(46)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -717 0 obj << +765 0 obj << /Type /Page -/Contents 718 0 R -/Resources 716 0 R +/Contents 766 0 R +/Resources 764 0 R /MediaBox [0 0 595.276 841.89] -/Parent 708 0 R -/Annots [ 721 0 R ] +/Parent 772 0 R +/Annots [ 769 0 R ] >> endobj -721 0 obj << +769 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 332.502 412.588 343.627] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -719 0 obj << -/D [717 0 R /XYZ 150.705 740.998 null] +767 0 obj << +/D [765 0 R /XYZ 150.705 740.998 null] >> endobj -126 0 obj << -/D [717 0 R /XYZ 150.705 644.457 null] +142 0 obj << +/D [765 0 R /XYZ 150.705 644.457 null] >> endobj -720 0 obj << -/D [717 0 R /XYZ 150.705 613.869 null] +768 0 obj << +/D [765 0 R /XYZ 150.705 613.869 null] >> endobj -722 0 obj << -/D [717 0 R /XYZ 150.705 249.065 null] +770 0 obj << +/D [765 0 R /XYZ 150.705 249.065 null] >> endobj -723 0 obj << -/D [717 0 R /XYZ 150.705 253.05 null] +771 0 obj << +/D [765 0 R /XYZ 150.705 253.05 null] >> endobj -716 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F11 367 0 R /F32 400 0 R >> +764 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F11 387 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -726 0 obj << +775 0 obj << /Length 3732 >> stream @@ -14575,47 +15271,47 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(43)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(47)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -725 0 obj << +774 0 obj << /Type /Page -/Contents 726 0 R -/Resources 724 0 R +/Contents 775 0 R +/Resources 773 0 R /MediaBox [0 0 595.276 841.89] -/Parent 708 0 R -/Annots [ 729 0 R ] +/Parent 772 0 R +/Annots [ 778 0 R ] >> endobj -729 0 obj << +778 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 521.792 361.779 532.917] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -727 0 obj << -/D [725 0 R /XYZ 99.895 740.998 null] +776 0 obj << +/D [774 0 R /XYZ 99.895 740.998 null] >> endobj -130 0 obj << -/D [725 0 R /XYZ 99.895 644.457 null] +146 0 obj << +/D [774 0 R /XYZ 99.895 644.457 null] >> endobj -728 0 obj << -/D [725 0 R /XYZ 99.895 613.869 null] +777 0 obj << +/D [774 0 R /XYZ 99.895 613.869 null] >> endobj -730 0 obj << -/D [725 0 R /XYZ 99.895 416.438 null] +779 0 obj << +/D [774 0 R /XYZ 99.895 416.438 null] >> endobj -731 0 obj << -/D [725 0 R /XYZ 99.895 420.423 null] +780 0 obj << +/D [774 0 R /XYZ 99.895 420.423 null] >> endobj -724 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +773 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -734 0 obj << +783 0 obj << /Length 4807 >> stream @@ -14840,48 +15536,48 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(44)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(48)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -733 0 obj << +782 0 obj << /Type /Page -/Contents 734 0 R -/Resources 732 0 R +/Contents 783 0 R +/Resources 781 0 R /MediaBox [0 0 595.276 841.89] -/Parent 708 0 R -/Annots [ 737 0 R 738 0 R ] +/Parent 772 0 R +/Annots [ 786 0 R 787 0 R ] >> endobj -737 0 obj << +786 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 539.725 412.588 550.85] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -738 0 obj << +787 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 462.017 412.588 473.142] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -735 0 obj << -/D [733 0 R /XYZ 150.705 740.998 null] +784 0 obj << +/D [782 0 R /XYZ 150.705 740.998 null] >> endobj -134 0 obj << -/D [733 0 R /XYZ 150.705 659.601 null] +150 0 obj << +/D [782 0 R /XYZ 150.705 659.601 null] >> endobj -736 0 obj << -/D [733 0 R /XYZ 150.705 631.802 null] +785 0 obj << +/D [782 0 R /XYZ 150.705 631.802 null] >> endobj -732 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +781 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -741 0 obj << +790 0 obj << /Length 3300 >> stream @@ -15030,41 +15726,41 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(45)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(49)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -740 0 obj << +789 0 obj << /Type /Page -/Contents 741 0 R -/Resources 739 0 R +/Contents 790 0 R +/Resources 788 0 R /MediaBox [0 0 595.276 841.89] -/Parent 708 0 R -/Annots [ 744 0 R ] +/Parent 772 0 R +/Annots [ 793 0 R ] >> endobj -744 0 obj << +793 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 539.725 361.779 550.85] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -742 0 obj << -/D [740 0 R /XYZ 99.895 740.998 null] +791 0 obj << +/D [789 0 R /XYZ 99.895 740.998 null] >> endobj -138 0 obj << -/D [740 0 R /XYZ 99.895 659.601 null] +154 0 obj << +/D [789 0 R /XYZ 99.895 659.601 null] >> endobj -743 0 obj << -/D [740 0 R /XYZ 99.895 631.802 null] +792 0 obj << +/D [789 0 R /XYZ 99.895 631.802 null] >> endobj -739 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +788 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -747 0 obj << +796 0 obj << /Length 6865 >> stream @@ -15311,60 +16007,60 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(46)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(50)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -746 0 obj << +795 0 obj << /Type /Page -/Contents 747 0 R -/Resources 745 0 R +/Contents 796 0 R +/Resources 794 0 R /MediaBox [0 0 595.276 841.89] -/Parent 756 0 R -/Annots [ 750 0 R 751 0 R ] +/Parent 772 0 R +/Annots [ 799 0 R 800 0 R ] >> endobj -750 0 obj << +799 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 539.725 412.588 550.85] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -751 0 obj << +800 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 406.226 417.818 417.351] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -748 0 obj << -/D [746 0 R /XYZ 150.705 740.998 null] +797 0 obj << +/D [795 0 R /XYZ 150.705 740.998 null] >> endobj -142 0 obj << -/D [746 0 R /XYZ 150.705 659.601 null] +158 0 obj << +/D [795 0 R /XYZ 150.705 659.601 null] >> endobj -749 0 obj << -/D [746 0 R /XYZ 150.705 631.802 null] +798 0 obj << +/D [795 0 R /XYZ 150.705 631.802 null] >> endobj -752 0 obj << -/D [746 0 R /XYZ 150.705 322.789 null] +801 0 obj << +/D [795 0 R /XYZ 150.705 322.789 null] >> endobj -753 0 obj << -/D [746 0 R /XYZ 150.705 326.774 null] +802 0 obj << +/D [795 0 R /XYZ 150.705 326.774 null] >> endobj -754 0 obj << -/D [746 0 R /XYZ 150.705 304.911 null] +803 0 obj << +/D [795 0 R /XYZ 150.705 304.911 null] >> endobj -755 0 obj << -/D [746 0 R /XYZ 150.705 284.986 null] +804 0 obj << +/D [795 0 R /XYZ 150.705 284.986 null] >> endobj -745 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R >> +794 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -759 0 obj << +807 0 obj << /Length 8235 >> stream @@ -15662,55 +16358,55 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(47)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(51)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -758 0 obj << +806 0 obj << /Type /Page -/Contents 759 0 R -/Resources 757 0 R +/Contents 807 0 R +/Resources 805 0 R /MediaBox [0 0 595.276 841.89] -/Parent 756 0 R -/Annots [ 762 0 R 763 0 R 764 0 R ] +/Parent 772 0 R +/Annots [ 810 0 R 811 0 R 812 0 R ] >> endobj -762 0 obj << +810 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 281.036 328.21 292.161] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -763 0 obj << +811 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 187.229 367.009 198.354] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -764 0 obj << +812 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 129.071 328.21 140.195] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -760 0 obj << -/D [758 0 R /XYZ 99.895 740.998 null] +808 0 obj << +/D [806 0 R /XYZ 99.895 740.998 null] >> endobj -146 0 obj << -/D [758 0 R /XYZ 99.895 637.607 null] +162 0 obj << +/D [806 0 R /XYZ 99.895 637.607 null] >> endobj -761 0 obj << -/D [758 0 R /XYZ 99.895 608.707 null] +809 0 obj << +/D [806 0 R /XYZ 99.895 608.707 null] >> endobj -757 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F11 367 0 R /F32 400 0 R >> +805 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F11 387 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -767 0 obj << +815 0 obj << /Length 3526 >> stream @@ -15794,45 +16490,45 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(48)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(52)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -766 0 obj << +814 0 obj << /Type /Page -/Contents 767 0 R -/Resources 765 0 R +/Contents 815 0 R +/Resources 813 0 R /MediaBox [0 0 595.276 841.89] -/Parent 756 0 R +/Parent 823 0 R >> endobj -768 0 obj << -/D [766 0 R /XYZ 150.705 740.998 null] +816 0 obj << +/D [814 0 R /XYZ 150.705 740.998 null] >> endobj -769 0 obj << -/D [766 0 R /XYZ 150.705 627.452 null] +817 0 obj << +/D [814 0 R /XYZ 150.705 627.452 null] >> endobj -770 0 obj << -/D [766 0 R /XYZ 150.705 631.437 null] +818 0 obj << +/D [814 0 R /XYZ 150.705 631.437 null] >> endobj -771 0 obj << -/D [766 0 R /XYZ 150.705 599.556 null] +819 0 obj << +/D [814 0 R /XYZ 150.705 599.556 null] >> endobj -772 0 obj << -/D [766 0 R /XYZ 150.705 565.739 null] +820 0 obj << +/D [814 0 R /XYZ 150.705 565.739 null] >> endobj -773 0 obj << -/D [766 0 R /XYZ 150.705 521.903 null] +821 0 obj << +/D [814 0 R /XYZ 150.705 521.903 null] >> endobj -774 0 obj << -/D [766 0 R /XYZ 150.705 478.068 null] +822 0 obj << +/D [814 0 R /XYZ 150.705 478.068 null] >> endobj -765 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F18 269 0 R /F32 400 0 R >> +813 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F18 285 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -777 0 obj << +826 0 obj << /Length 8587 >> stream @@ -16103,60 +16799,60 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(49)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(53)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -776 0 obj << +825 0 obj << /Type /Page -/Contents 777 0 R -/Resources 775 0 R +/Contents 826 0 R +/Resources 824 0 R /MediaBox [0 0 595.276 841.89] -/Parent 756 0 R -/Annots [ 780 0 R 781 0 R ] +/Parent 823 0 R +/Annots [ 829 0 R 830 0 R ] >> endobj -780 0 obj << +829 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 542.654 361.779 553.779] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -781 0 obj << +830 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 289.425 367.009 300.55] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -778 0 obj << -/D [776 0 R /XYZ 99.895 740.998 null] +827 0 obj << +/D [825 0 R /XYZ 99.895 740.998 null] >> endobj -150 0 obj << -/D [776 0 R /XYZ 99.895 661.943 null] +166 0 obj << +/D [825 0 R /XYZ 99.895 661.943 null] >> endobj -779 0 obj << -/D [776 0 R /XYZ 99.895 634.145 null] +828 0 obj << +/D [825 0 R /XYZ 99.895 634.145 null] >> endobj -782 0 obj << -/D [776 0 R /XYZ 99.895 206.825 null] +831 0 obj << +/D [825 0 R /XYZ 99.895 206.825 null] >> endobj -783 0 obj << -/D [776 0 R /XYZ 99.895 210.518 null] +832 0 obj << +/D [825 0 R /XYZ 99.895 210.518 null] >> endobj -784 0 obj << -/D [776 0 R /XYZ 99.895 177.009 null] +833 0 obj << +/D [825 0 R /XYZ 99.895 177.009 null] >> endobj -785 0 obj << -/D [776 0 R /XYZ 99.895 157.946 null] +834 0 obj << +/D [825 0 R /XYZ 99.895 157.946 null] >> endobj -775 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +824 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -788 0 obj << +837 0 obj << /Length 1637 >> stream @@ -16192,33 +16888,33 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(50)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(54)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -787 0 obj << +836 0 obj << /Type /Page -/Contents 788 0 R -/Resources 786 0 R +/Contents 837 0 R +/Resources 835 0 R /MediaBox [0 0 595.276 841.89] -/Parent 756 0 R +/Parent 823 0 R >> endobj -789 0 obj << -/D [787 0 R /XYZ 150.705 740.998 null] +838 0 obj << +/D [836 0 R /XYZ 150.705 740.998 null] >> endobj -790 0 obj << -/D [787 0 R /XYZ 150.705 716.092 null] +839 0 obj << +/D [836 0 R /XYZ 150.705 716.092 null] >> endobj -791 0 obj << -/D [787 0 R /XYZ 150.705 676.296 null] +840 0 obj << +/D [836 0 R /XYZ 150.705 676.296 null] >> endobj -786 0 obj << -/Font << /F8 278 0 R /F32 400 0 R >> +835 0 obj << +/Font << /F8 294 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -794 0 obj << +843 0 obj << /Length 4380 >> stream @@ -16417,48 +17113,48 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(51)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(55)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -793 0 obj << +842 0 obj << /Type /Page -/Contents 794 0 R -/Resources 792 0 R +/Contents 843 0 R +/Resources 841 0 R /MediaBox [0 0 595.276 841.89] -/Parent 756 0 R -/Annots [ 797 0 R 798 0 R ] +/Parent 823 0 R +/Annots [ 846 0 R 847 0 R ] >> endobj -797 0 obj << +846 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 539.725 367.009 550.85] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -798 0 obj << +847 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 483.934 361.779 495.059] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -795 0 obj << -/D [793 0 R /XYZ 99.895 740.998 null] +844 0 obj << +/D [842 0 R /XYZ 99.895 740.998 null] >> endobj -154 0 obj << -/D [793 0 R /XYZ 99.895 659.601 null] +170 0 obj << +/D [842 0 R /XYZ 99.895 659.601 null] >> endobj -796 0 obj << -/D [793 0 R /XYZ 99.895 631.802 null] +845 0 obj << +/D [842 0 R /XYZ 99.895 631.802 null] >> endobj -792 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +841 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -801 0 obj << +850 0 obj << /Length 5571 >> stream @@ -16681,54 +17377,54 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(52)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(56)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -800 0 obj << +849 0 obj << /Type /Page -/Contents 801 0 R -/Resources 799 0 R +/Contents 850 0 R +/Resources 848 0 R /MediaBox [0 0 595.276 841.89] -/Parent 808 0 R -/Annots [ 804 0 R 805 0 R ] +/Parent 823 0 R +/Annots [ 853 0 R 854 0 R ] >> endobj -804 0 obj << +853 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 521.792 417.818 532.917] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -805 0 obj << +854 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 466.002 412.588 477.127] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -802 0 obj << -/D [800 0 R /XYZ 150.705 740.998 null] +851 0 obj << +/D [849 0 R /XYZ 150.705 740.998 null] >> endobj -158 0 obj << -/D [800 0 R /XYZ 150.705 641.668 null] +174 0 obj << +/D [849 0 R /XYZ 150.705 641.668 null] >> endobj -803 0 obj << -/D [800 0 R /XYZ 150.705 613.869 null] +852 0 obj << +/D [849 0 R /XYZ 150.705 613.869 null] >> endobj -806 0 obj << -/D [800 0 R /XYZ 150.705 304.856 null] +855 0 obj << +/D [849 0 R /XYZ 150.705 304.856 null] >> endobj -807 0 obj << -/D [800 0 R /XYZ 150.705 308.841 null] +856 0 obj << +/D [849 0 R /XYZ 150.705 308.841 null] >> endobj -799 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +848 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -811 0 obj << +859 0 obj << /Length 4778 >> stream @@ -16901,41 +17597,41 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(53)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(57)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -810 0 obj << +858 0 obj << /Type /Page -/Contents 811 0 R -/Resources 809 0 R +/Contents 859 0 R +/Resources 857 0 R /MediaBox [0 0 595.276 841.89] -/Parent 808 0 R -/Annots [ 814 0 R ] +/Parent 823 0 R +/Annots [ 862 0 R ] >> endobj -814 0 obj << +862 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 539.725 328.21 550.85] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -812 0 obj << -/D [810 0 R /XYZ 99.895 740.998 null] +860 0 obj << +/D [858 0 R /XYZ 99.895 740.998 null] >> endobj -162 0 obj << -/D [810 0 R /XYZ 99.895 659.601 null] +178 0 obj << +/D [858 0 R /XYZ 99.895 659.601 null] >> endobj -813 0 obj << -/D [810 0 R /XYZ 99.895 631.802 null] +861 0 obj << +/D [858 0 R /XYZ 99.895 631.802 null] >> endobj -809 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R >> +857 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -817 0 obj << +865 0 obj << /Length 7598 >> stream @@ -17144,41 +17840,41 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(54)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(58)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -816 0 obj << +864 0 obj << /Type /Page -/Contents 817 0 R -/Resources 815 0 R +/Contents 865 0 R +/Resources 863 0 R /MediaBox [0 0 595.276 841.89] -/Parent 808 0 R -/Annots [ 820 0 R ] +/Parent 869 0 R +/Annots [ 868 0 R ] >> endobj -820 0 obj << +868 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 335.069 412.588 346.194] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -818 0 obj << -/D [816 0 R /XYZ 150.705 740.998 null] +866 0 obj << +/D [864 0 R /XYZ 150.705 740.998 null] >> endobj -166 0 obj << -/D [816 0 R /XYZ 150.705 652.844 null] +182 0 obj << +/D [864 0 R /XYZ 150.705 652.844 null] >> endobj -819 0 obj << -/D [816 0 R /XYZ 150.705 623.213 null] +867 0 obj << +/D [864 0 R /XYZ 150.705 623.213 null] >> endobj -815 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F11 367 0 R /F32 400 0 R >> +863 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F11 387 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -823 0 obj << +872 0 obj << /Length 1135 >> stream @@ -17218,36 +17914,36 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(55)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(59)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -822 0 obj << +871 0 obj << /Type /Page -/Contents 823 0 R -/Resources 821 0 R +/Contents 872 0 R +/Resources 870 0 R /MediaBox [0 0 595.276 841.89] -/Parent 808 0 R +/Parent 869 0 R >> endobj -824 0 obj << -/D [822 0 R /XYZ 99.895 740.998 null] +873 0 obj << +/D [871 0 R /XYZ 99.895 740.998 null] >> endobj -825 0 obj << -/D [822 0 R /XYZ 99.895 696.263 null] +874 0 obj << +/D [871 0 R /XYZ 99.895 696.263 null] >> endobj -826 0 obj << -/D [822 0 R /XYZ 99.895 700.248 null] +875 0 obj << +/D [871 0 R /XYZ 99.895 700.248 null] >> endobj -827 0 obj << -/D [822 0 R /XYZ 99.895 677.832 null] +876 0 obj << +/D [871 0 R /XYZ 99.895 677.832 null] >> endobj -821 0 obj << -/Font << /F18 269 0 R /F8 278 0 R >> +870 0 obj << +/Font << /F18 285 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -830 0 obj << +879 0 obj << /Length 3949 >> stream @@ -17408,41 +18104,41 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(56)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(60)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -829 0 obj << +878 0 obj << /Type /Page -/Contents 830 0 R -/Resources 828 0 R +/Contents 879 0 R +/Resources 877 0 R /MediaBox [0 0 595.276 841.89] -/Parent 808 0 R -/Annots [ 833 0 R ] +/Parent 869 0 R +/Annots [ 882 0 R ] >> endobj -833 0 obj << +882 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 539.725 379.019 550.85] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -831 0 obj << -/D [829 0 R /XYZ 150.705 740.998 null] +880 0 obj << +/D [878 0 R /XYZ 150.705 740.998 null] >> endobj -170 0 obj << -/D [829 0 R /XYZ 150.705 659.601 null] +186 0 obj << +/D [878 0 R /XYZ 150.705 659.601 null] >> endobj -832 0 obj << -/D [829 0 R /XYZ 150.705 631.802 null] +881 0 obj << +/D [878 0 R /XYZ 150.705 631.802 null] >> endobj -828 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +877 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -836 0 obj << +885 0 obj << /Length 3927 >> stream @@ -17603,41 +18299,41 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(57)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(61)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -835 0 obj << +884 0 obj << /Type /Page -/Contents 836 0 R -/Resources 834 0 R +/Contents 885 0 R +/Resources 883 0 R /MediaBox [0 0 595.276 841.89] -/Parent 808 0 R -/Annots [ 839 0 R ] +/Parent 869 0 R +/Annots [ 888 0 R ] >> endobj -839 0 obj << +888 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [261.152 460.024 328.21 471.149] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -837 0 obj << -/D [835 0 R /XYZ 99.895 740.998 null] +886 0 obj << +/D [884 0 R /XYZ 99.895 740.998 null] >> endobj -174 0 obj << -/D [835 0 R /XYZ 99.895 659.601 null] +190 0 obj << +/D [884 0 R /XYZ 99.895 659.601 null] >> endobj -838 0 obj << -/D [835 0 R /XYZ 99.895 631.802 null] +887 0 obj << +/D [884 0 R /XYZ 99.895 631.802 null] >> endobj -834 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +883 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -842 0 obj << +891 0 obj << /Length 5662 >> stream @@ -17822,41 +18518,41 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(58)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(62)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -841 0 obj << +890 0 obj << /Type /Page -/Contents 842 0 R -/Resources 840 0 R +/Contents 891 0 R +/Resources 889 0 R /MediaBox [0 0 595.276 841.89] -/Parent 846 0 R -/Annots [ 845 0 R ] +/Parent 869 0 R +/Annots [ 894 0 R ] >> endobj -845 0 obj << +894 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [311.962 318.555 379.019 329.679] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -843 0 obj << -/D [841 0 R /XYZ 150.705 740.998 null] +892 0 obj << +/D [890 0 R /XYZ 150.705 740.998 null] >> endobj -178 0 obj << -/D [841 0 R /XYZ 150.705 644.457 null] +194 0 obj << +/D [890 0 R /XYZ 150.705 644.457 null] >> endobj -844 0 obj << -/D [841 0 R /XYZ 150.705 613.869 null] +893 0 obj << +/D [890 0 R /XYZ 150.705 613.869 null] >> endobj -840 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F11 367 0 R /F10 518 0 R /F32 400 0 R >> +889 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F11 387 0 R /F10 538 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -849 0 obj << +897 0 obj << /Length 8020 >> stream @@ -18157,41 +18853,41 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(59)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(63)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -848 0 obj << +896 0 obj << /Type /Page -/Contents 849 0 R -/Resources 847 0 R +/Contents 897 0 R +/Resources 895 0 R /MediaBox [0 0 595.276 841.89] -/Parent 846 0 R -/Annots [ 852 0 R ] +/Parent 869 0 R +/Annots [ 900 0 R ] >> endobj -852 0 obj << +900 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [294.721 430.136 361.779 441.261] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -850 0 obj << -/D [848 0 R /XYZ 99.895 740.998 null] +898 0 obj << +/D [896 0 R /XYZ 99.895 740.998 null] >> endobj -182 0 obj << -/D [848 0 R /XYZ 99.895 644.457 null] +198 0 obj << +/D [896 0 R /XYZ 99.895 644.457 null] >> endobj -851 0 obj << -/D [848 0 R /XYZ 99.895 613.869 null] +899 0 obj << +/D [896 0 R /XYZ 99.895 613.869 null] >> endobj -847 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R >> +895 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -855 0 obj << +903 0 obj << /Length 8027 >> stream @@ -18492,41 +19188,41 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(60)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(64)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -854 0 obj << +902 0 obj << /Type /Page -/Contents 855 0 R -/Resources 853 0 R +/Contents 903 0 R +/Resources 901 0 R /MediaBox [0 0 595.276 841.89] -/Parent 846 0 R -/Annots [ 858 0 R ] +/Parent 907 0 R +/Annots [ 906 0 R ] >> endobj -858 0 obj << +906 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 430.136 412.588 441.261] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -856 0 obj << -/D [854 0 R /XYZ 150.705 740.998 null] +904 0 obj << +/D [902 0 R /XYZ 150.705 740.998 null] >> endobj -186 0 obj << -/D [854 0 R /XYZ 150.705 644.457 null] +202 0 obj << +/D [902 0 R /XYZ 150.705 644.457 null] >> endobj -857 0 obj << -/D [854 0 R /XYZ 150.705 613.869 null] +905 0 obj << +/D [902 0 R /XYZ 150.705 613.869 null] >> endobj -853 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R >> +901 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -861 0 obj << +910 0 obj << /Length 549 >> stream @@ -18542,30 +19238,30 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(61)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(65)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -860 0 obj << +909 0 obj << /Type /Page -/Contents 861 0 R -/Resources 859 0 R +/Contents 910 0 R +/Resources 908 0 R /MediaBox [0 0 595.276 841.89] -/Parent 846 0 R +/Parent 907 0 R >> endobj -862 0 obj << -/D [860 0 R /XYZ 99.895 740.998 null] +911 0 obj << +/D [909 0 R /XYZ 99.895 740.998 null] >> endobj -190 0 obj << -/D [860 0 R /XYZ 99.895 716.092 null] +206 0 obj << +/D [909 0 R /XYZ 99.895 716.092 null] >> endobj -859 0 obj << -/Font << /F18 269 0 R /F8 278 0 R >> +908 0 obj << +/Font << /F18 285 0 R /F8 294 0 R >> /ProcSet [ /PDF /Text ] >> endobj -865 0 obj << +914 0 obj << /Length 8493 >> stream @@ -18856,55 +19552,55 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(62)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(66)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -864 0 obj << +913 0 obj << /Type /Page -/Contents 865 0 R -/Resources 863 0 R +/Contents 914 0 R +/Resources 912 0 R /MediaBox [0 0 595.276 841.89] -/Parent 846 0 R -/Annots [ 868 0 R 869 0 R 870 0 R ] +/Parent 907 0 R +/Annots [ 917 0 R 918 0 R 919 0 R ] >> endobj -868 0 obj << +917 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 402.366 417.818 413.491] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -869 0 obj << +918 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 345.316 412.588 356.441] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -870 0 obj << +919 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -866 0 obj << -/D [864 0 R /XYZ 150.705 740.998 null] +915 0 obj << +/D [913 0 R /XYZ 150.705 740.998 null] >> endobj -194 0 obj << -/D [864 0 R /XYZ 150.705 657.44 null] +210 0 obj << +/D [913 0 R /XYZ 150.705 657.44 null] >> endobj -867 0 obj << -/D [864 0 R /XYZ 150.705 496.017 null] +916 0 obj << +/D [913 0 R /XYZ 150.705 496.017 null] >> endobj -863 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +912 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -873 0 obj << +922 0 obj << /Length 4755 >> stream @@ -19008,27 +19704,27 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(63)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(67)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -872 0 obj << +921 0 obj << /Type /Page -/Contents 873 0 R -/Resources 871 0 R +/Contents 922 0 R +/Resources 920 0 R /MediaBox [0 0 595.276 841.89] -/Parent 846 0 R +/Parent 907 0 R >> endobj -874 0 obj << -/D [872 0 R /XYZ 99.895 740.998 null] +923 0 obj << +/D [921 0 R /XYZ 99.895 740.998 null] >> endobj -871 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R >> +920 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -877 0 obj << +926 0 obj << /Length 8503 >> stream @@ -19319,55 +20015,55 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(64)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(68)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -876 0 obj << +925 0 obj << /Type /Page -/Contents 877 0 R -/Resources 875 0 R +/Contents 926 0 R +/Resources 924 0 R /MediaBox [0 0 595.276 841.89] -/Parent 883 0 R -/Annots [ 880 0 R 881 0 R 882 0 R ] +/Parent 907 0 R +/Annots [ 929 0 R 930 0 R 931 0 R ] >> endobj -880 0 obj << +929 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 402.366 417.818 413.491] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -881 0 obj << +930 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 345.316 412.588 356.441] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -882 0 obj << +931 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -878 0 obj << -/D [876 0 R /XYZ 150.705 740.998 null] +927 0 obj << +/D [925 0 R /XYZ 150.705 740.998 null] >> endobj -198 0 obj << -/D [876 0 R /XYZ 150.705 657.44 null] +214 0 obj << +/D [925 0 R /XYZ 150.705 657.44 null] >> endobj -879 0 obj << -/D [876 0 R /XYZ 150.705 496.017 null] +928 0 obj << +/D [925 0 R /XYZ 150.705 496.017 null] >> endobj -875 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +924 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -886 0 obj << +934 0 obj << /Length 4755 >> stream @@ -19471,27 +20167,27 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(65)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(69)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -885 0 obj << +933 0 obj << /Type /Page -/Contents 886 0 R -/Resources 884 0 R +/Contents 934 0 R +/Resources 932 0 R /MediaBox [0 0 595.276 841.89] -/Parent 883 0 R +/Parent 907 0 R >> endobj -887 0 obj << -/D [885 0 R /XYZ 99.895 740.998 null] +935 0 obj << +/D [933 0 R /XYZ 99.895 740.998 null] >> endobj -884 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R >> +932 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -890 0 obj << +938 0 obj << /Length 8524 >> stream @@ -19782,55 +20478,55 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(66)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(70)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -889 0 obj << +937 0 obj << /Type /Page -/Contents 890 0 R -/Resources 888 0 R +/Contents 938 0 R +/Resources 936 0 R /MediaBox [0 0 595.276 841.89] -/Parent 883 0 R -/Annots [ 893 0 R 894 0 R 895 0 R ] +/Parent 944 0 R +/Annots [ 941 0 R 942 0 R 943 0 R ] >> endobj -893 0 obj << +941 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 402.366 417.818 413.491] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -894 0 obj << +942 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 345.316 412.588 356.441] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -895 0 obj << +943 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -891 0 obj << -/D [889 0 R /XYZ 150.705 740.998 null] +939 0 obj << +/D [937 0 R /XYZ 150.705 740.998 null] >> endobj -202 0 obj << -/D [889 0 R /XYZ 150.705 657.44 null] +218 0 obj << +/D [937 0 R /XYZ 150.705 657.44 null] >> endobj -892 0 obj << -/D [889 0 R /XYZ 150.705 496.017 null] +940 0 obj << +/D [937 0 R /XYZ 150.705 496.017 null] >> endobj -888 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +936 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -898 0 obj << +947 0 obj << /Length 4755 >> stream @@ -19934,27 +20630,27 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(67)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(71)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -897 0 obj << +946 0 obj << /Type /Page -/Contents 898 0 R -/Resources 896 0 R +/Contents 947 0 R +/Resources 945 0 R /MediaBox [0 0 595.276 841.89] -/Parent 883 0 R +/Parent 944 0 R >> endobj -899 0 obj << -/D [897 0 R /XYZ 99.895 740.998 null] +948 0 obj << +/D [946 0 R /XYZ 99.895 740.998 null] >> endobj -896 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R >> +945 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -902 0 obj << +951 0 obj << /Length 8542 >> stream @@ -20245,55 +20941,55 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(68)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(72)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -901 0 obj << +950 0 obj << /Type /Page -/Contents 902 0 R -/Resources 900 0 R +/Contents 951 0 R +/Resources 949 0 R /MediaBox [0 0 595.276 841.89] -/Parent 883 0 R -/Annots [ 905 0 R 906 0 R 907 0 R ] +/Parent 944 0 R +/Annots [ 954 0 R 955 0 R 956 0 R ] >> endobj -905 0 obj << +954 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 396.933 417.818 408.058] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -906 0 obj << +955 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 340.97 412.588 352.095] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -907 0 obj << +956 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -903 0 obj << -/D [901 0 R /XYZ 150.705 740.998 null] +952 0 obj << +/D [950 0 R /XYZ 150.705 740.998 null] >> endobj -206 0 obj << -/D [901 0 R /XYZ 150.705 659.304 null] +222 0 obj << +/D [950 0 R /XYZ 150.705 659.304 null] >> endobj -904 0 obj << -/D [901 0 R /XYZ 150.705 489.226 null] +953 0 obj << +/D [950 0 R /XYZ 150.705 489.226 null] >> endobj -900 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +949 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -910 0 obj << +959 0 obj << /Length 4755 >> stream @@ -20397,27 +21093,27 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(69)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(73)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -909 0 obj << +958 0 obj << /Type /Page -/Contents 910 0 R -/Resources 908 0 R +/Contents 959 0 R +/Resources 957 0 R /MediaBox [0 0 595.276 841.89] -/Parent 883 0 R +/Parent 944 0 R >> endobj -911 0 obj << -/D [909 0 R /XYZ 99.895 740.998 null] +960 0 obj << +/D [958 0 R /XYZ 99.895 740.998 null] >> endobj -908 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R >> +957 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -914 0 obj << +963 0 obj << /Length 8715 >> stream @@ -20708,55 +21404,55 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(70)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(74)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -913 0 obj << +962 0 obj << /Type /Page -/Contents 914 0 R -/Resources 912 0 R +/Contents 963 0 R +/Resources 961 0 R /MediaBox [0 0 595.276 841.89] -/Parent 923 0 R -/Annots [ 920 0 R 921 0 R 922 0 R ] +/Parent 944 0 R +/Annots [ 969 0 R 970 0 R 971 0 R ] >> endobj -920 0 obj << +969 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 396.933 417.818 408.058] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -921 0 obj << +970 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 340.97 412.588 352.095] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -922 0 obj << +971 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -915 0 obj << -/D [913 0 R /XYZ 150.705 740.998 null] +964 0 obj << +/D [962 0 R /XYZ 150.705 740.998 null] >> endobj -210 0 obj << -/D [913 0 R /XYZ 150.705 659.304 null] +226 0 obj << +/D [962 0 R /XYZ 150.705 659.304 null] >> endobj -919 0 obj << -/D [913 0 R /XYZ 150.705 489.226 null] +968 0 obj << +/D [962 0 R /XYZ 150.705 489.226 null] >> endobj -912 0 obj << -/Font << /F18 269 0 R /F48 918 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +961 0 obj << +/Font << /F18 285 0 R /F48 967 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -926 0 obj << +974 0 obj << /Length 5254 >> stream @@ -20872,27 +21568,27 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(71)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(75)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -925 0 obj << +973 0 obj << /Type /Page -/Contents 926 0 R -/Resources 924 0 R +/Contents 974 0 R +/Resources 972 0 R /MediaBox [0 0 595.276 841.89] -/Parent 923 0 R +/Parent 944 0 R >> endobj -927 0 obj << -/D [925 0 R /XYZ 99.895 740.998 null] +975 0 obj << +/D [973 0 R /XYZ 99.895 740.998 null] >> endobj -924 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R >> +972 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -930 0 obj << +978 0 obj << /Length 8542 >> stream @@ -21183,55 +21879,55 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(72)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(76)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -929 0 obj << +977 0 obj << /Type /Page -/Contents 930 0 R -/Resources 928 0 R +/Contents 978 0 R +/Resources 976 0 R /MediaBox [0 0 595.276 841.89] -/Parent 923 0 R -/Annots [ 933 0 R 934 0 R 935 0 R ] +/Parent 984 0 R +/Annots [ 981 0 R 982 0 R 983 0 R ] >> endobj -933 0 obj << +981 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 402.366 417.818 413.491] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -934 0 obj << +982 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 345.316 412.588 356.441] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -935 0 obj << +983 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [345.53 117.115 412.588 128.24] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -931 0 obj << -/D [929 0 R /XYZ 150.705 740.998 null] +979 0 obj << +/D [977 0 R /XYZ 150.705 740.998 null] >> endobj -214 0 obj << -/D [929 0 R /XYZ 150.705 657.44 null] +230 0 obj << +/D [977 0 R /XYZ 150.705 657.44 null] >> endobj -932 0 obj << -/D [929 0 R /XYZ 150.705 496.017 null] +980 0 obj << +/D [977 0 R /XYZ 150.705 496.017 null] >> endobj -928 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F14 385 0 R /F11 367 0 R /F10 518 0 R /F7 566 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +976 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F14 405 0 R /F11 387 0 R /F10 538 0 R /F7 586 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -938 0 obj << +987 0 obj << /Length 5255 >> stream @@ -21347,27 +22043,27 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(73)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(77)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -937 0 obj << +986 0 obj << /Type /Page -/Contents 938 0 R -/Resources 936 0 R +/Contents 987 0 R +/Resources 985 0 R /MediaBox [0 0 595.276 841.89] -/Parent 923 0 R +/Parent 984 0 R >> endobj -939 0 obj << -/D [937 0 R /XYZ 99.895 740.998 null] +988 0 obj << +/D [986 0 R /XYZ 99.895 740.998 null] >> endobj -936 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F11 367 0 R /F14 385 0 R >> +985 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F11 387 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -942 0 obj << +991 0 obj << /Length 2993 >> stream @@ -21419,30 +22115,30 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(74)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(78)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -941 0 obj << +990 0 obj << /Type /Page -/Contents 942 0 R -/Resources 940 0 R +/Contents 991 0 R +/Resources 989 0 R /MediaBox [0 0 595.276 841.89] -/Parent 923 0 R +/Parent 984 0 R >> endobj -943 0 obj << -/D [941 0 R /XYZ 150.705 740.998 null] +992 0 obj << +/D [990 0 R /XYZ 150.705 740.998 null] >> endobj -218 0 obj << -/D [941 0 R /XYZ 150.705 716.092 null] +234 0 obj << +/D [990 0 R /XYZ 150.705 716.092 null] >> endobj -940 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F14 385 0 R >> +989 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F14 405 0 R >> /ProcSet [ /PDF /Text ] >> endobj -946 0 obj << +995 0 obj << /Length 8430 >> stream @@ -21682,68 +22378,68 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(75)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(79)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -945 0 obj << +994 0 obj << /Type /Page -/Contents 946 0 R -/Resources 944 0 R +/Contents 995 0 R +/Resources 993 0 R /MediaBox [0 0 595.276 841.89] -/Parent 923 0 R -/Annots [ 949 0 R 951 0 R 952 0 R 953 0 R ] +/Parent 984 0 R +/Annots [ 998 0 R 1000 0 R 1001 0 R 1002 0 R ] >> endobj -949 0 obj << +998 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [312.487 546.52 379.545 557.645] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -951 0 obj << +1000 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [387.037 286.001 398.992 294.414] /Subtype /Link /A << /S /GoTo /D (cite.SUPERLU) >> >> endobj -952 0 obj << +1001 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [404.493 286.001 416.448 294.414] /Subtype /Link /A << /S /GoTo /D (cite.UMFPACK) >> >> endobj -953 0 obj << +1002 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [128.289 262.091 134.751 272.193] /Subtype /Link /A << /S /GoTo /D (Hfootnote.1) >> >> endobj -947 0 obj << -/D [945 0 R /XYZ 99.895 740.998 null] +996 0 obj << +/D [994 0 R /XYZ 99.895 740.998 null] >> endobj -222 0 obj << -/D [945 0 R /XYZ 99.895 657.02 null] +238 0 obj << +/D [994 0 R /XYZ 99.895 657.02 null] >> endobj -948 0 obj << -/D [945 0 R /XYZ 99.895 628.522 null] +997 0 obj << +/D [994 0 R /XYZ 99.895 628.522 null] >> endobj -950 0 obj << -/D [945 0 R /XYZ 99.895 320.45 null] +999 0 obj << +/D [994 0 R /XYZ 99.895 320.45 null] >> endobj -957 0 obj << -/D [945 0 R /XYZ 115.138 129.79 null] +1006 0 obj << +/D [994 0 R /XYZ 115.138 129.79 null] >> endobj -944 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R /F7 566 0 R /F37 956 0 R /F53 960 0 R >> +993 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R /F7 586 0 R /F37 1005 0 R /F53 1009 0 R >> /ProcSet [ /PDF /Text ] >> endobj -965 0 obj << +1014 0 obj << /Length 3820 >> stream @@ -21827,35 +22523,35 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(76)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(80)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -964 0 obj << +1013 0 obj << /Type /Page -/Contents 965 0 R -/Resources 963 0 R +/Contents 1014 0 R +/Resources 1012 0 R /MediaBox [0 0 595.276 841.89] -/Parent 968 0 R -/Annots [ 967 0 R ] +/Parent 984 0 R +/Annots [ 1016 0 R ] >> endobj -967 0 obj << +1016 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[0 1 0] /Rect [336.242 705.133 343.216 713.546] /Subtype /Link /A << /S /GoTo /D (cite.PARA04) >> >> endobj -966 0 obj << -/D [964 0 R /XYZ 150.705 740.998 null] +1015 0 obj << +/D [1013 0 R /XYZ 150.705 740.998 null] >> endobj -963 0 obj << -/Font << /F29 275 0 R /F8 278 0 R /F32 400 0 R /F11 367 0 R >> +1012 0 obj << +/Font << /F29 291 0 R /F8 294 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -972 0 obj << +1020 0 obj << /Length 6128 >> stream @@ -22112,55 +22808,55 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(77)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(81)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -971 0 obj << +1019 0 obj << /Type /Page -/Contents 972 0 R -/Resources 970 0 R +/Contents 1020 0 R +/Resources 1018 0 R /MediaBox [0 0 595.276 841.89] -/Parent 968 0 R -/Annots [ 975 0 R 976 0 R 977 0 R ] +/Parent 984 0 R +/Annots [ 1023 0 R 1024 0 R 1025 0 R ] >> endobj -975 0 obj << +1023 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [317.856 551.68 390.144 562.805] /Subtype /Link /A << /S /GoTo /D (spdata) >> >> endobj -976 0 obj << +1024 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [371.488 507.845 438.546 518.97] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -977 0 obj << +1025 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [318.576 386.3 385.634 397.425] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -973 0 obj << -/D [971 0 R /XYZ 99.895 740.998 null] +1021 0 obj << +/D [1019 0 R /XYZ 99.895 740.998 null] >> endobj -226 0 obj << -/D [971 0 R /XYZ 99.895 659.601 null] +242 0 obj << +/D [1019 0 R /XYZ 99.895 659.601 null] >> endobj -974 0 obj << -/D [971 0 R /XYZ 99.895 631.802 null] +1022 0 obj << +/D [1019 0 R /XYZ 99.895 631.802 null] >> endobj -970 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R >> +1018 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -980 0 obj << +1028 0 obj << /Length 7274 >> stream @@ -22433,51 +23129,51 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(78)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(82)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -979 0 obj << +1027 0 obj << /Type /Page -/Contents 980 0 R -/Resources 978 0 R +/Contents 1028 0 R +/Resources 1026 0 R /MediaBox [0 0 595.276 841.89] -/Parent 968 0 R -/Annots [ 984 0 R 985 0 R ] +/Parent 1034 0 R +/Annots [ 1032 0 R 1033 0 R ] >> endobj -984 0 obj << +1032 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [372.153 482.039 439.211 493.164] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -985 0 obj << +1033 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [375.695 394.367 442.753 405.492] /Subtype /Link /A << /S /GoTo /D (descdata) >> >> endobj -981 0 obj << -/D [979 0 R /XYZ 150.705 740.998 null] +1029 0 obj << +/D [1027 0 R /XYZ 150.705 740.998 null] >> endobj -230 0 obj << -/D [979 0 R /XYZ 150.705 644.457 null] +246 0 obj << +/D [1027 0 R /XYZ 150.705 644.457 null] >> endobj -982 0 obj << -/D [979 0 R /XYZ 150.705 613.869 null] +1030 0 obj << +/D [1027 0 R /XYZ 150.705 613.869 null] >> endobj -983 0 obj << -/D [979 0 R /XYZ 150.705 562.16 null] +1031 0 obj << +/D [1027 0 R /XYZ 150.705 562.16 null] >> endobj -978 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R /F11 367 0 R >> +1026 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R /F11 387 0 R >> /ProcSet [ /PDF /Text ] >> endobj -988 0 obj << +1037 0 obj << /Length 2563 >> stream @@ -22606,41 +23302,41 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(79)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(83)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -987 0 obj << +1036 0 obj << /Type /Page -/Contents 988 0 R -/Resources 986 0 R +/Contents 1037 0 R +/Resources 1035 0 R /MediaBox [0 0 595.276 841.89] -/Parent 968 0 R -/Annots [ 991 0 R ] +/Parent 1034 0 R +/Annots [ 1040 0 R ] >> endobj -991 0 obj << +1040 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [321.343 533.748 388.401 544.873] /Subtype /Link /A << /S /GoTo /D (precdata) >> >> endobj -989 0 obj << -/D [987 0 R /XYZ 99.895 740.998 null] +1038 0 obj << +/D [1036 0 R /XYZ 99.895 740.998 null] >> endobj -234 0 obj << -/D [987 0 R /XYZ 99.895 641.668 null] +250 0 obj << +/D [1036 0 R /XYZ 99.895 641.668 null] >> endobj -990 0 obj << -/D [987 0 R /XYZ 99.895 613.869 null] +1039 0 obj << +/D [1036 0 R /XYZ 99.895 613.869 null] >> endobj -986 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R /F32 400 0 R >> +1035 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -994 0 obj << +1043 0 obj << /Length 7601 >> stream @@ -22680,45 +23376,45 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(80)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(84)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -993 0 obj << +1042 0 obj << /Type /Page -/Contents 994 0 R -/Resources 992 0 R +/Contents 1043 0 R +/Resources 1041 0 R /MediaBox [0 0 595.276 841.89] -/Parent 968 0 R -/Annots [ 996 0 R 997 0 R ] +/Parent 1034 0 R +/Annots [ 1045 0 R 1046 0 R ] >> endobj -996 0 obj << +1045 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.286 501.77 203.26 512.895] /Subtype /Link /A << /S /GoTo /D (figure.5) >> >> endobj -997 0 obj << +1046 0 obj << /Type /Annot /Border[0 0 0]/H/I/C[1 0 0] /Rect [196.757 370.54 203.731 381.388] /Subtype /Link /A << /S /GoTo /D (figure.6) >> >> endobj -995 0 obj << -/D [993 0 R /XYZ 150.705 740.998 null] +1044 0 obj << +/D [1042 0 R /XYZ 150.705 740.998 null] >> endobj -238 0 obj << -/D [993 0 R /XYZ 150.705 716.092 null] +254 0 obj << +/D [1042 0 R /XYZ 150.705 716.092 null] >> endobj -992 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F32 400 0 R >> +1041 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1002 0 obj << +1051 0 obj << /Length 4526 >> stream @@ -22864,33 +23560,33 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(81)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(85)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -1001 0 obj << +1050 0 obj << /Type /Page -/Contents 1002 0 R -/Resources 1000 0 R +/Contents 1051 0 R +/Resources 1049 0 R /MediaBox [0 0 595.276 841.89] -/Parent 968 0 R +/Parent 1034 0 R >> endobj -1003 0 obj << -/D [1001 0 R /XYZ 99.895 740.998 null] +1052 0 obj << +/D [1050 0 R /XYZ 99.895 740.998 null] >> endobj -998 0 obj << -/D [1001 0 R /XYZ 143.452 412.237 null] +1047 0 obj << +/D [1050 0 R /XYZ 143.452 412.237 null] >> endobj -999 0 obj << -/D [1001 0 R /XYZ 146.161 171.074 null] +1048 0 obj << +/D [1050 0 R /XYZ 146.161 171.074 null] >> endobj -1000 0 obj << -/Font << /F36 487 0 R /F8 278 0 R /F32 400 0 R >> +1049 0 obj << +/Font << /F36 507 0 R /F8 294 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1006 0 obj << +1055 0 obj << /Length 4630 >> stream @@ -23095,33 +23791,33 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(82)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(86)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -1005 0 obj << +1054 0 obj << /Type /Page -/Contents 1006 0 R -/Resources 1004 0 R +/Contents 1055 0 R +/Resources 1053 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1009 0 R +/Parent 1034 0 R >> endobj -1007 0 obj << -/D [1005 0 R /XYZ 150.705 740.998 null] +1056 0 obj << +/D [1054 0 R /XYZ 150.705 740.998 null] >> endobj -242 0 obj << -/D [1005 0 R /XYZ 150.705 644.457 null] +258 0 obj << +/D [1054 0 R /XYZ 150.705 644.457 null] >> endobj -1008 0 obj << -/D [1005 0 R /XYZ 150.705 613.869 null] +1057 0 obj << +/D [1054 0 R /XYZ 150.705 613.869 null] >> endobj -1004 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R >> +1053 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1012 0 obj << +1060 0 obj << /Length 1702 >> stream @@ -23186,33 +23882,33 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(83)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(87)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -1011 0 obj << +1059 0 obj << /Type /Page -/Contents 1012 0 R -/Resources 1010 0 R +/Contents 1060 0 R +/Resources 1058 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1009 0 R +/Parent 1034 0 R >> endobj -1013 0 obj << -/D [1011 0 R /XYZ 99.895 740.998 null] +1061 0 obj << +/D [1059 0 R /XYZ 99.895 740.998 null] >> endobj -246 0 obj << -/D [1011 0 R /XYZ 99.895 644.457 null] +262 0 obj << +/D [1059 0 R /XYZ 99.895 644.457 null] >> endobj -1014 0 obj << -/D [1011 0 R /XYZ 99.895 613.869 null] +1062 0 obj << +/D [1059 0 R /XYZ 99.895 613.869 null] >> endobj -1010 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R >> +1058 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1017 0 obj << +1065 0 obj << /Length 1992 >> stream @@ -23303,33 +23999,33 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(84)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(88)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -1016 0 obj << +1064 0 obj << /Type /Page -/Contents 1017 0 R -/Resources 1015 0 R +/Contents 1065 0 R +/Resources 1063 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1009 0 R +/Parent 1068 0 R >> endobj -1018 0 obj << -/D [1016 0 R /XYZ 150.705 740.998 null] +1066 0 obj << +/D [1064 0 R /XYZ 150.705 740.998 null] >> endobj -250 0 obj << -/D [1016 0 R /XYZ 150.705 641.668 null] +266 0 obj << +/D [1064 0 R /XYZ 150.705 641.668 null] >> endobj -1019 0 obj << -/D [1016 0 R /XYZ 150.705 613.869 null] +1067 0 obj << +/D [1064 0 R /XYZ 150.705 613.869 null] >> endobj -1015 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R >> +1063 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1022 0 obj << +1071 0 obj << /Length 2306 >> stream @@ -23446,33 +24142,33 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(85)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(89)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -1021 0 obj << +1070 0 obj << /Type /Page -/Contents 1022 0 R -/Resources 1020 0 R +/Contents 1071 0 R +/Resources 1069 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1009 0 R +/Parent 1068 0 R >> endobj -1023 0 obj << -/D [1021 0 R /XYZ 99.895 740.998 null] +1072 0 obj << +/D [1070 0 R /XYZ 99.895 740.998 null] >> endobj -254 0 obj << -/D [1021 0 R /XYZ 99.895 641.668 null] +270 0 obj << +/D [1070 0 R /XYZ 99.895 641.668 null] >> endobj -1024 0 obj << -/D [1021 0 R /XYZ 99.895 613.869 null] +1073 0 obj << +/D [1070 0 R /XYZ 99.895 613.869 null] >> endobj -1020 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R >> +1069 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1027 0 obj << +1076 0 obj << /Length 2232 >> stream @@ -23549,33 +24245,33 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(86)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(90)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -1026 0 obj << +1075 0 obj << /Type /Page -/Contents 1027 0 R -/Resources 1025 0 R +/Contents 1076 0 R +/Resources 1074 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1009 0 R +/Parent 1068 0 R >> endobj -1028 0 obj << -/D [1026 0 R /XYZ 150.705 740.998 null] +1077 0 obj << +/D [1075 0 R /XYZ 150.705 740.998 null] >> endobj -258 0 obj << -/D [1026 0 R /XYZ 150.705 659.601 null] +274 0 obj << +/D [1075 0 R /XYZ 150.705 659.601 null] >> endobj -1029 0 obj << -/D [1026 0 R /XYZ 150.705 631.802 null] +1078 0 obj << +/D [1075 0 R /XYZ 150.705 631.802 null] >> endobj -1025 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F29 275 0 R >> +1074 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F29 291 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1032 0 obj << +1081 0 obj << /Length 9366 >> stream @@ -23735,66 +24431,66 @@ ET 0 g 0 G 1 0 0 1 -99.895 -90.438 cm BT -/F8 9.963 Tf 266.77 90.438 Td[(87)]TJ +/F8 9.963 Tf 266.77 90.438 Td[(91)]TJ ET 1 0 0 1 443.606 90.438 cm 0 g 0 G endstream endobj -1031 0 obj << +1080 0 obj << /Type /Page -/Contents 1032 0 R -/Resources 1030 0 R +/Contents 1081 0 R +/Resources 1079 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1009 0 R +/Parent 1068 0 R >> endobj -1033 0 obj << -/D [1031 0 R /XYZ 99.895 740.998 null] +1082 0 obj << +/D [1080 0 R /XYZ 99.895 740.998 null] >> endobj -1034 0 obj << -/D [1031 0 R /XYZ 99.895 695.85 null] +1083 0 obj << +/D [1080 0 R /XYZ 99.895 695.85 null] >> endobj -372 0 obj << -/D [1031 0 R /XYZ 99.895 700.315 null] +392 0 obj << +/D [1080 0 R /XYZ 99.895 700.315 null] >> endobj -373 0 obj << -/D [1031 0 R /XYZ 99.895 654.559 null] +393 0 obj << +/D [1080 0 R /XYZ 99.895 654.559 null] >> endobj -374 0 obj << -/D [1031 0 R /XYZ 99.895 606.866 null] +394 0 obj << +/D [1080 0 R /XYZ 99.895 606.866 null] >> endobj -1035 0 obj << -/D [1031 0 R /XYZ 99.895 561.111 null] +1084 0 obj << +/D [1080 0 R /XYZ 99.895 561.111 null] >> endobj -1036 0 obj << -/D [1031 0 R /XYZ 99.895 514.801 null] +1085 0 obj << +/D [1080 0 R /XYZ 99.895 514.801 null] >> endobj -969 0 obj << -/D [1031 0 R /XYZ 99.895 457.644 null] +1017 0 obj << +/D [1080 0 R /XYZ 99.895 457.644 null] >> endobj -1037 0 obj << -/D [1031 0 R /XYZ 99.895 387.978 null] +1086 0 obj << +/D [1080 0 R /XYZ 99.895 387.978 null] >> endobj -1038 0 obj << -/D [1031 0 R /XYZ 99.895 341.669 null] +1087 0 obj << +/D [1080 0 R /XYZ 99.895 341.669 null] >> endobj -1039 0 obj << -/D [1031 0 R /XYZ 99.895 295.913 null] +1088 0 obj << +/D [1080 0 R /XYZ 99.895 295.913 null] >> endobj -1040 0 obj << -/D [1031 0 R /XYZ 99.895 250.157 null] +1089 0 obj << +/D [1080 0 R /XYZ 99.895 250.157 null] >> endobj -1041 0 obj << -/D [1031 0 R /XYZ 99.895 216.91 null] +1090 0 obj << +/D [1080 0 R /XYZ 99.895 216.91 null] >> endobj -962 0 obj << -/D [1031 0 R /XYZ 99.895 171.154 null] +1011 0 obj << +/D [1080 0 R /XYZ 99.895 171.154 null] >> endobj -1030 0 obj << -/Font << /F18 269 0 R /F8 278 0 R /F19 364 0 R /F32 400 0 R >> +1079 0 obj << +/Font << /F18 285 0 R /F8 294 0 R /F19 384 0 R /F32 420 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1044 0 obj << +1093 0 obj << /Length 7806 >> stream @@ -23926,61 +24622,61 @@ ET 0 g 0 G 1 0 0 1 -150.705 -90.438 cm BT -/F8 9.963 Tf 317.579 90.438 Td[(88)]TJ +/F8 9.963 Tf 317.579 90.438 Td[(92)]TJ ET 1 0 0 1 494.416 90.438 cm 0 g 0 G endstream endobj -1043 0 obj << +1092 0 obj << /Type /Page -/Contents 1044 0 R -/Resources 1042 0 R +/Contents 1093 0 R +/Resources 1091 0 R /MediaBox [0 0 595.276 841.89] -/Parent 1050 0 R +/Parent 1068 0 R >> endobj -1045 0 obj << -/D [1043 0 R /XYZ 150.705 740.998 null] +1094 0 obj << +/D [1092 0 R /XYZ 150.705 740.998 null] >> endobj -961 0 obj << -/D [1043 0 R /XYZ 150.705 716.092 null] +1010 0 obj << +/D [1092 0 R /XYZ 150.705 716.092 null] >> endobj -393 0 obj << -/D [1043 0 R /XYZ 150.705 675.743 null] +413 0 obj << +/D [1092 0 R /XYZ 150.705 675.743 null] >> endobj -370 0 obj << -/D [1043 0 R /XYZ 150.705 631.907 null] +390 0 obj << +/D [1092 0 R /XYZ 150.705 631.907 null] >> endobj -371 0 obj << -/D [1043 0 R /XYZ 150.705 588.072 null] +391 0 obj << +/D [1092 0 R /XYZ 150.705 588.072 null] >> endobj -1046 0 obj << -/D [1043 0 R /XYZ 150.705 544.236 null] +1095 0 obj << +/D [1092 0 R /XYZ 150.705 544.236 null] >> endobj -1047 0 obj << -/D [1043 0 R /XYZ 150.705 500.4 null] +1096 0 obj << +/D [1092 0 R /XYZ 150.705 500.4 null] >> endobj -369 0 obj << -/D [1043 0 R /XYZ 150.705 435.145 null] +389 0 obj << +/D [1092 0 R /XYZ 150.705 435.145 null] >> endobj -368 0 obj << -/D [1043 0 R /XYZ 150.705 389.372 null] +388 0 obj << +/D [1092 0 R /XYZ 150.705 389.372 null] >> endobj -1048 0 obj << -/D [1043 0 R /XYZ 150.705 357.492 null] +1097 0 obj << +/D [1092 0 R /XYZ 150.705 357.492 null] >> endobj -1049 0 obj << -/D [1043 0 R /XYZ 150.705 313.656 null] +1098 0 obj << +/D [1092 0 R /XYZ 150.705 313.656 null] >> endobj -1042 0 obj << -/Font << /F8 278 0 R /F19 364 0 R >> +1091 0 obj << +/Font << /F8 294 0 R /F19 384 0 R >> /ProcSet [ /PDF /Text ] >> endobj -1051 0 obj << +1099 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis 197/.notdef] >> endobj -959 0 obj << +1008 0 obj << /Length1 937 /Length2 2883 /Length3 532 @@ -24000,7 +24696,7 @@ stream /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /TMKWWJ+CMR8 def +/FontName /HRAVIK+CMR8 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24053,33 +24749,33 @@ u cleartomark endstream endobj -960 0 obj << +1009 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1051 0 R +/Encoding 1099 0 R /FirstChar 45 /LastChar 118 -/Widths 1052 0 R -/BaseFont /TMKWWJ+CMR8 -/FontDescriptor 958 0 R +/Widths 1100 0 R +/BaseFont /HRAVIK+CMR8 +/FontDescriptor 1007 0 R >> endobj -958 0 obj << +1007 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /TMKWWJ+CMR8 +/FontName /HRAVIK+CMR8 /ItalicAngle 0 /StemV 76 /XHeight 431 /FontBBox [-36 -250 1070 750] /Flags 4 /CharSet (/hyphen/T/a/c/e/g/h/i/n/r/s/t/v) -/FontFile 959 0 R +/FontFile 1008 0 R >> endobj -1052 0 obj +1100 0 obj [354 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 767 0 0 0 0 0 0 0 0 0 0 0 0 531 0 472 0 472 0 531 590 295 0 0 0 0 590 0 0 0 414 419 413 0 561 ] endobj -955 0 obj << +1004 0 obj << /Length1 757 /Length2 1052 /Length3 532 @@ -24099,7 +24795,7 @@ stream /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /LLOGFF+CMR6 def +/FontName /XARKRB+CMR6 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24125,37 +24821,37 @@ currentfile eexec cleartomark endstream endobj -956 0 obj << +1005 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1051 0 R +/Encoding 1099 0 R /FirstChar 49 /LastChar 49 -/Widths 1053 0 R -/BaseFont /LLOGFF+CMR6 -/FontDescriptor 954 0 R +/Widths 1101 0 R +/BaseFont /XARKRB+CMR6 +/FontDescriptor 1003 0 R >> endobj -954 0 obj << +1003 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /LLOGFF+CMR6 +/FontName /XARKRB+CMR6 /ItalicAngle 0 /StemV 83 /XHeight 431 /FontBBox [-20 -250 1193 750] /Flags 4 /CharSet (/one) -/FontFile 955 0 R +/FontFile 1004 0 R >> endobj -1053 0 obj +1101 0 obj [611 ] endobj -1054 0 obj << +1102 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie 197/.notdef] >> endobj -917 0 obj << +966 0 obj << /Length1 771 /Length2 1072 /Length3 532 @@ -24175,7 +24871,7 @@ stream /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /OAQTCE+CMMI12 def +/FontName /SIUALC+CMMI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24204,37 +24900,37 @@ P cleartomark endstream endobj -918 0 obj << +967 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1054 0 R +/Encoding 1102 0 R /FirstChar 108 /LastChar 108 -/Widths 1055 0 R -/BaseFont /OAQTCE+CMMI12 -/FontDescriptor 916 0 R +/Widths 1103 0 R +/BaseFont /SIUALC+CMMI12 +/FontDescriptor 965 0 R >> endobj -916 0 obj << +965 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /OAQTCE+CMMI12 +/FontName /SIUALC+CMMI12 /ItalicAngle -14 /StemV 65 /XHeight 431 /FontBBox [-30 -250 1026 750] /Flags 4 /CharSet (/l) -/FontFile 917 0 R +/FontFile 966 0 R >> endobj -1055 0 obj +1103 0 obj [292 ] endobj -1056 0 obj << +1104 0 obj << /Type /Encoding /Differences [ 0 /minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft 129/.notdef 161/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus 171/.notdef 173/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade 197/.notdef] >> endobj -585 0 obj << +605 0 obj << /Length1 788 /Length2 759 /Length3 532 @@ -24254,7 +24950,7 @@ stream /ItalicAngle -14.035 def /isFixedPitch false def end readonly def -/FontName /ZFQRWV+CMSY7 def +/FontName /VDKHFY+CMSY7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24281,33 +24977,33 @@ aaT'/D cleartomark endstream endobj -586 0 obj << +606 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1056 0 R +/Encoding 1104 0 R /FirstChar 0 /LastChar 49 -/Widths 1057 0 R -/BaseFont /ZFQRWV+CMSY7 -/FontDescriptor 584 0 R +/Widths 1105 0 R +/BaseFont /VDKHFY+CMSY7 +/FontDescriptor 604 0 R >> endobj -584 0 obj << +604 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /ZFQRWV+CMSY7 +/FontName /VDKHFY+CMSY7 /ItalicAngle -14 /StemV 93 /XHeight 431 /FontBBox [-15 -951 1252 782] /Flags 4 /CharSet (/minus/infinity) -/FontFile 585 0 R +/FontFile 605 0 R >> endobj -1057 0 obj +1105 0 obj [893 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1139 ] endobj -565 0 obj << +585 0 obj << /Length1 808 /Length2 1412 /Length3 532 @@ -24327,7 +25023,7 @@ stream /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /LLZLNO+CMR7 def +/FontName /BYZOSV+CMR7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24360,33 +25056,33 @@ u/K cleartomark endstream endobj -566 0 obj << +586 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1051 0 R +/Encoding 1099 0 R /FirstChar 43 /LastChar 58 -/Widths 1058 0 R -/BaseFont /LLZLNO+CMR7 -/FontDescriptor 564 0 R +/Widths 1106 0 R +/BaseFont /BYZOSV+CMR7 +/FontDescriptor 584 0 R >> endobj -564 0 obj << +584 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /LLZLNO+CMR7 +/FontName /BYZOSV+CMR7 /ItalicAngle 0 /StemV 79 /XHeight 431 /FontBBox [-27 -250 1122 750] /Flags 4 /CharSet (/plus/one/two/colon) -/FontFile 565 0 R +/FontFile 585 0 R >> endobj -1058 0 obj +1106 0 obj [877 0 0 0 0 0 569 569 0 0 0 0 0 0 0 323 ] endobj -517 0 obj << +537 0 obj << /Length1 930 /Length2 3612 /Length3 532 @@ -24406,7 +25102,7 @@ stream /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /UOFMQM+CMMI7 def +/FontName /UKPTHL+CMMI7 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24451,37 +25147,37 @@ d cleartomark endstream endobj -518 0 obj << +538 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1054 0 R +/Encoding 1102 0 R /FirstChar 59 /LastChar 121 -/Widths 1059 0 R -/BaseFont /UOFMQM+CMMI7 -/FontDescriptor 516 0 R +/Widths 1107 0 R +/BaseFont /UKPTHL+CMMI7 +/FontDescriptor 536 0 R >> endobj -516 0 obj << +536 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /UOFMQM+CMMI7 +/FontName /UKPTHL+CMMI7 /ItalicAngle -14 /StemV 81 /XHeight 431 /FontBBox [0 -250 1171 750] /Flags 4 /CharSet (/comma/H/T/a/c/i/j/k/m/n/r/y) -/FontFile 517 0 R +/FontFile 537 0 R >> endobj -1059 0 obj +1107 0 obj [339 0 0 0 0 0 0 0 0 0 0 0 0 936 0 0 0 0 0 0 0 0 0 0 0 675 0 0 0 0 0 0 0 0 0 0 0 0 620 0 511 0 0 0 0 0 404 473 607 0 1014 706 0 0 0 530 0 0 0 0 0 0 579 ] endobj -1060 0 obj << +1108 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/dieresis/visiblespace 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/dieresis 197/.notdef] >> endobj -486 0 obj << +506 0 obj << /Length1 1348 /Length2 5822 /Length3 532 @@ -24501,7 +25197,7 @@ stream /ItalicAngle 0 def /isFixedPitch true def end readonly def -/FontName /YKMHMR+CMTT9 def +/FontName /LGRNYR+CMTT9 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24578,33 +25274,33 @@ V cleartomark endstream endobj -487 0 obj << +507 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1060 0 R +/Encoding 1108 0 R /FirstChar 39 /LastChar 122 -/Widths 1061 0 R -/BaseFont /YKMHMR+CMTT9 -/FontDescriptor 485 0 R +/Widths 1109 0 R +/BaseFont /LGRNYR+CMTT9 +/FontDescriptor 505 0 R >> endobj -485 0 obj << +505 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 -/FontName /YKMHMR+CMTT9 +/FontName /LGRNYR+CMTT9 /ItalicAngle 0 /StemV 74 /XHeight 431 /FontBBox [-6 -233 542 698] /Flags 4 /CharSet (/quoteright/parenleft/parenright/comma/period/zero/one/two/nine/colon/equal/greater/underscore/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/q/r/s/t/u/v/x/y/z) -/FontFile 486 0 R +/FontFile 506 0 R >> endobj -1061 0 obj +1109 0 obj [525 525 525 0 0 525 0 525 0 525 525 525 0 0 0 0 0 0 525 525 0 0 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 0 525 525 525 525 525 525 525 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 0 525 525 525 ] endobj -404 0 obj << +424 0 obj << /Length1 767 /Length2 1242 /Length3 532 @@ -24624,7 +25320,7 @@ stream /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /TOCUFI+CMMI5 def +/FontName /DPVIVY+CMMI5 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24651,33 +25347,33 @@ currentfile eexec cleartomark endstream endobj -405 0 obj << +425 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1054 0 R +/Encoding 1102 0 R /FirstChar 105 /LastChar 105 -/Widths 1062 0 R -/BaseFont /TOCUFI+CMMI5 -/FontDescriptor 403 0 R +/Widths 1110 0 R +/BaseFont /DPVIVY+CMMI5 +/FontDescriptor 423 0 R >> endobj -403 0 obj << +423 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /TOCUFI+CMMI5 +/FontName /DPVIVY+CMMI5 /ItalicAngle -14 /StemV 90 /XHeight 431 /FontBBox [37 -250 1349 750] /Flags 4 /CharSet (/i) -/FontFile 404 0 R +/FontFile 424 0 R >> endobj -1062 0 obj +1110 0 obj [534 ] endobj -399 0 obj << +419 0 obj << /Length1 1632 /Length2 9445 /Length3 532 @@ -24697,7 +25393,7 @@ stream /ItalicAngle 0 def /isFixedPitch true def end readonly def -/FontName /JDUFFB+CMTT10 def +/FontName /IWMXAP+CMTT10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24804,33 +25500,33 @@ F| cleartomark endstream endobj -400 0 obj << +420 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1060 0 R +/Encoding 1108 0 R /FirstChar 37 /LastChar 122 -/Widths 1063 0 R -/BaseFont /JDUFFB+CMTT10 -/FontDescriptor 398 0 R +/Widths 1111 0 R +/BaseFont /IWMXAP+CMTT10 +/FontDescriptor 418 0 R >> endobj -398 0 obj << +418 0 obj << /Ascent 611 /CapHeight 611 /Descent -222 -/FontName /JDUFFB+CMTT10 +/FontName /IWMXAP+CMTT10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-4 -235 731 800] /Flags 4 /CharSet (/percent/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/nine/colon/equal/A/B/E/F/L/O/P/S/W/backslash/underscore/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) -/FontFile 399 0 R +/FontFile 419 0 R >> endobj -1063 0 obj +1111 0 obj [525 0 0 525 525 0 525 525 525 525 525 525 525 525 525 525 525 525 0 0 525 525 0 0 525 0 0 0 525 525 0 0 525 525 0 0 0 0 0 525 0 0 525 525 0 0 525 0 0 0 525 0 0 0 0 525 0 0 525 0 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 ] endobj -384 0 obj << +404 0 obj << /Length1 1004 /Length2 2124 /Length3 532 @@ -24850,7 +25546,7 @@ stream /ItalicAngle -14.035 def /isFixedPitch false def end readonly def -/FontName /SXMPHR+CMSY10 def +/FontName /JRPTAR+CMSY10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -24892,33 +25588,33 @@ p cleartomark endstream endobj -385 0 obj << +405 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1056 0 R +/Encoding 1104 0 R /FirstChar 0 /LastChar 120 -/Widths 1064 0 R -/BaseFont /SXMPHR+CMSY10 -/FontDescriptor 383 0 R +/Widths 1112 0 R +/BaseFont /JRPTAR+CMSY10 +/FontDescriptor 403 0 R >> endobj -383 0 obj << +403 0 obj << /Ascent 750 /CapHeight 683 /Descent -194 -/FontName /SXMPHR+CMSY10 +/FontName /JRPTAR+CMSY10 /ItalicAngle -14 /StemV 85 /XHeight 431 /FontBBox [-29 -960 1116 775] /Flags 4 /CharSet (/minus/bullet/lessequal/greaterequal/arrowleft/element/braceleft/braceright/bar/bardbl/radical/section) -/FontFile 384 0 R +/FontFile 404 0 R >> endobj -1064 0 obj +1112 0 obj [778 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 0 778 778 0 0 0 0 0 0 0 0 0 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 667 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 0 0 278 500 0 0 0 0 833 0 0 0 0 0 0 0 444 ] endobj -366 0 obj << +386 0 obj << /Length1 1363 /Length2 8729 /Length3 532 @@ -24938,7 +25634,7 @@ stream /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /YVBCJW+CMMI10 def +/FontName /OLEBLM+CMMI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -25029,37 +25725,37 @@ PM{ cleartomark endstream endobj -367 0 obj << +387 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1054 0 R +/Encoding 1102 0 R /FirstChar 11 /LastChar 122 -/Widths 1065 0 R -/BaseFont /YVBCJW+CMMI10 -/FontDescriptor 365 0 R +/Widths 1113 0 R +/BaseFont /OLEBLM+CMMI10 +/FontDescriptor 385 0 R >> endobj -365 0 obj << +385 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /YVBCJW+CMMI10 +/FontName /OLEBLM+CMMI10 /ItalicAngle -14 /StemV 72 /XHeight 431 /FontBBox [-32 -250 1048 750] /Flags 4 /CharSet (/alpha/beta/period/comma/less/greater/A/D/I/L/N/P/Q/T/U/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) -/FontFile 366 0 R +/FontFile 386 0 R >> endobj -1065 0 obj +1113 0 obj [640 566 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 278 778 0 778 0 0 750 0 0 828 0 0 0 0 440 0 0 681 0 803 0 642 791 0 0 584 683 0 0 0 0 0 0 0 0 0 0 0 529 429 433 520 466 490 477 576 345 412 521 298 878 600 485 503 0 451 469 361 572 485 716 572 490 465 ] endobj -1066 0 obj << +1114 0 obj << /Type /Encoding /Differences [ 0 /Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress 129/.notdef 160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 171/.notdef 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis 197/.notdef] >> endobj -363 0 obj << +383 0 obj << /Length1 1707 /Length2 13643 /Length3 532 @@ -25079,7 +25775,7 @@ stream /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /ELNBEQ+CMTI10 def +/FontName /ZRKFXT+CMTI10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -25223,33 +25919,33 @@ Y cleartomark endstream endobj -364 0 obj << +384 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1066 0 R +/Encoding 1114 0 R /FirstChar 11 /LastChar 122 -/Widths 1067 0 R -/BaseFont /ELNBEQ+CMTI10 -/FontDescriptor 362 0 R +/Widths 1115 0 R +/BaseFont /ZRKFXT+CMTI10 +/FontDescriptor 382 0 R >> endobj -362 0 obj << +382 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /ELNBEQ+CMTI10 +/FontName /ZRKFXT+CMTI10 /ItalicAngle -14 /StemV 68 /XHeight 431 /FontBBox [-163 -250 1146 969] /Flags 4 /CharSet (/ff/fi/fl/quoteright/comma/hyphen/period/slash/zero/one/two/three/five/eight/nine/colon/equal/A/B/C/D/E/F/G/I/K/L/M/N/O/P/R/S/T/U/V/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z) -/FontFile 363 0 R +/FontFile 383 0 R >> endobj -1067 0 obj +1115 0 obj [613 562 588 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 307 0 0 0 0 307 358 307 511 511 511 511 511 0 511 0 0 511 511 307 0 0 767 0 0 0 743 704 716 755 678 653 774 0 386 0 769 627 897 743 767 678 0 729 562 716 743 743 0 0 0 0 0 0 0 0 0 0 511 460 460 511 460 307 460 511 307 307 460 256 818 562 511 511 460 422 409 332 537 460 664 464 486 409 ] endobj -277 0 obj << +293 0 obj << /Length1 2062 /Length2 15030 /Length3 532 @@ -25269,7 +25965,7 @@ stream /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /QHTOSY+CMR10 def +/FontName /AOFOUU+CMR10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -25435,33 +26131,33 @@ sߥ cleartomark endstream endobj -278 0 obj << +294 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1051 0 R +/Encoding 1099 0 R /FirstChar 11 /LastChar 123 -/Widths 1068 0 R -/BaseFont /QHTOSY+CMR10 -/FontDescriptor 276 0 R +/Widths 1116 0 R +/BaseFont /AOFOUU+CMR10 +/FontDescriptor 292 0 R >> endobj -276 0 obj << +292 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /QHTOSY+CMR10 +/FontName /AOFOUU+CMR10 /ItalicAngle 0 /StemV 69 /XHeight 431 /FontBBox [-251 -250 1009 969] /Flags 4 /CharSet (/ff/fi/fl/ffi/quotedblright/ampersand/quoteright/parenleft/parenright/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/W/X/Y/bracketleft/quotedblleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash) -/FontFile 277 0 R +/FontFile 293 0 R >> endobj -1068 0 obj +1116 0 obj [583 556 556 833 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 0 0 0 778 278 389 389 0 778 278 333 278 500 500 500 500 500 500 500 500 500 500 500 278 278 0 778 0 0 0 750 708 722 764 681 653 785 750 361 514 778 625 917 750 778 681 0 736 556 722 750 750 1028 750 750 0 278 500 278 0 0 0 500 556 444 556 444 306 500 556 278 306 528 278 833 556 500 556 528 392 394 389 556 528 722 528 528 444 500 ] endobj -274 0 obj << +290 0 obj << /Length1 1787 /Length2 11956 /Length3 532 @@ -25481,7 +26177,7 @@ stream /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /DPGUGF+CMBX10 def +/FontName /LKFMSU+CMBX10 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -25622,33 +26318,33 @@ m7 cleartomark endstream endobj -275 0 obj << +291 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1051 0 R +/Encoding 1099 0 R /FirstChar 12 /LastChar 123 -/Widths 1069 0 R -/BaseFont /DPGUGF+CMBX10 -/FontDescriptor 273 0 R +/Widths 1117 0 R +/BaseFont /LKFMSU+CMBX10 +/FontDescriptor 289 0 R >> endobj -273 0 obj << +289 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 -/FontName /DPGUGF+CMBX10 +/FontName /LKFMSU+CMBX10 /ItalicAngle 0 /StemV 114 /XHeight 444 /FontBBox [-301 -250 1164 946] /Flags 4 /CharSet (/fi/fl/quotedblright/quoteright/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/equal/A/B/C/D/E/F/G/I/L/M/N/O/P/R/S/T/U/V/bracketleft/quotedblleft/bracketright/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash) -/FontFile 274 0 R +/FontFile 290 0 R >> endobj -1069 0 obj +1117 0 obj [639 639 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 603 0 0 0 0 319 0 0 0 0 0 0 319 0 575 575 575 575 575 575 575 575 575 575 319 0 0 894 0 0 0 869 818 831 882 756 724 904 0 436 0 0 692 1092 900 864 786 0 862 639 800 885 869 0 0 0 0 319 603 319 0 0 0 559 639 511 639 527 351 575 639 319 351 607 319 958 639 575 639 607 474 454 447 639 607 831 607 607 511 575 ] endobj -271 0 obj << +287 0 obj << /Length1 1089 /Length2 5106 /Length3 532 @@ -25668,7 +26364,7 @@ stream /ItalicAngle -14.04 def /isFixedPitch false def end readonly def -/FontName /VPOOYP+CMTI12 def +/FontName /LWXFUG+CMTI12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -25732,33 +26428,33 @@ Hn4*/ cleartomark endstream endobj -272 0 obj << +288 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1066 0 R +/Encoding 1114 0 R /FirstChar 65 /LastChar 121 -/Widths 1070 0 R -/BaseFont /VPOOYP+CMTI12 -/FontDescriptor 270 0 R +/Widths 1118 0 R +/BaseFont /LWXFUG+CMTI12 +/FontDescriptor 286 0 R >> endobj -270 0 obj << +286 0 obj << /Ascent 694 /CapHeight 683 /Descent -194 -/FontName /VPOOYP+CMTI12 +/FontName /LWXFUG+CMTI12 /ItalicAngle -14 /StemV 63 /XHeight 431 /FontBBox [-36 -251 1103 750] /Flags 4 /CharSet (/A/B/L/P/S/a/b/c/d/e/f/g/h/i/l/n/o/p/r/s/t/u/y) -/FontFile 271 0 R +/FontFile 287 0 R >> endobj -1070 0 obj +1118 0 obj [727 688 0 0 0 0 0 0 0 0 0 613 0 0 0 663 0 0 550 0 0 0 0 0 0 0 0 0 0 0 0 0 500 450 450 500 450 300 450 500 300 0 0 250 0 550 500 500 0 413 400 325 525 0 0 0 475 ] endobj -268 0 obj << +284 0 obj << /Length1 1634 /Length2 9477 /Length3 532 @@ -25778,7 +26474,7 @@ stream /ItalicAngle 0 def /isFixedPitch false def end readonly def -/FontName /UUWXVA+CMBX12 def +/FontName /KWTLBN+CMBX12 def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def @@ -25895,290 +26591,318 @@ d_ cleartomark endstream endobj -269 0 obj << +285 0 obj << /Type /Font /Subtype /Type1 -/Encoding 1051 0 R +/Encoding 1099 0 R /FirstChar 12 /LastChar 124 -/Widths 1071 0 R -/BaseFont /UUWXVA+CMBX12 -/FontDescriptor 267 0 R +/Widths 1119 0 R +/BaseFont /KWTLBN+CMBX12 +/FontDescriptor 283 0 R >> endobj -267 0 obj << +283 0 obj << /Ascent 694 /CapHeight 686 /Descent -194 -/FontName /UUWXVA+CMBX12 +/FontName /KWTLBN+CMBX12 /ItalicAngle 0 /StemV 109 /XHeight 444 /FontBBox [-53 -251 1139 750] /Flags 4 /CharSet (/fi/quoteright/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/U/V/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z/emdash) -/FontFile 268 0 R +/FontFile 284 0 R >> endobj -1071 0 obj +1119 0 obj [625 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 313 0 0 0 0 0 375 313 0 563 563 563 563 563 563 563 563 563 563 0 0 0 0 0 0 0 850 800 813 862 738 707 884 880 419 0 0 676 1067 880 845 769 0 839 625 782 865 850 0 0 0 0 0 0 0 0 0 0 547 625 500 625 513 344 563 625 313 0 594 313 938 625 563 625 0 459 444 438 625 594 813 594 594 500 0 1125 ] endobj -279 0 obj << +295 0 obj << /Type /Pages /Count 6 -/Parent 1072 0 R -/Kids [262 0 R 281 0 R 329 0 R 353 0 R 377 0 R 395 0 R] +/Parent 1120 0 R +/Kids [278 0 R 297 0 R 345 0 R 373 0 R 397 0 R 415 0 R] >> endobj -425 0 obj << +446 0 obj << /Type /Pages /Count 6 -/Parent 1072 0 R -/Kids [407 0 R 427 0 R 437 0 R 447 0 R 459 0 R 464 0 R] +/Parent 1120 0 R +/Kids [427 0 R 448 0 R 457 0 R 467 0 R 479 0 R 484 0 R] >> endobj -479 0 obj << +499 0 obj << /Type /Pages /Count 6 -/Parent 1072 0 R -/Kids [470 0 R 482 0 R 489 0 R 493 0 R 497 0 R 508 0 R] +/Parent 1120 0 R +/Kids [490 0 R 502 0 R 509 0 R 513 0 R 517 0 R 528 0 R] >> endobj -525 0 obj << +545 0 obj << /Type /Pages /Count 6 -/Parent 1072 0 R -/Kids [513 0 R 527 0 R 531 0 R 541 0 R 545 0 R 553 0 R] +/Parent 1120 0 R +/Kids [533 0 R 547 0 R 551 0 R 561 0 R 565 0 R 573 0 R] >> endobj -571 0 obj << +591 0 obj << /Type /Pages /Count 6 -/Parent 1072 0 R -/Kids [561 0 R 573 0 R 581 0 R 592 0 R 604 0 R 615 0 R] +/Parent 1120 0 R +/Kids [581 0 R 593 0 R 601 0 R 612 0 R 624 0 R 635 0 R] >> endobj -630 0 obj << +650 0 obj << /Type /Pages /Count 6 -/Parent 1072 0 R -/Kids [621 0 R 632 0 R 638 0 R 642 0 R 651 0 R 656 0 R] +/Parent 1120 0 R +/Kids [641 0 R 652 0 R 658 0 R 662 0 R 671 0 R 676 0 R] >> endobj -672 0 obj << +692 0 obj << /Type /Pages /Count 6 -/Parent 1073 0 R -/Kids [664 0 R 674 0 R 683 0 R 687 0 R 695 0 R 700 0 R] +/Parent 1121 0 R +/Kids [684 0 R 694 0 R 703 0 R 707 0 R 715 0 R 720 0 R] >> endobj -708 0 obj << +731 0 obj << /Type /Pages /Count 6 -/Parent 1073 0 R -/Kids [704 0 R 710 0 R 717 0 R 725 0 R 733 0 R 740 0 R] +/Parent 1121 0 R +/Kids [724 0 R 733 0 R 741 0 R 748 0 R 753 0 R 758 0 R] >> endobj -756 0 obj << +772 0 obj << /Type /Pages /Count 6 -/Parent 1073 0 R -/Kids [746 0 R 758 0 R 766 0 R 776 0 R 787 0 R 793 0 R] +/Parent 1121 0 R +/Kids [765 0 R 774 0 R 782 0 R 789 0 R 795 0 R 806 0 R] >> endobj -808 0 obj << +823 0 obj << /Type /Pages /Count 6 -/Parent 1073 0 R -/Kids [800 0 R 810 0 R 816 0 R 822 0 R 829 0 R 835 0 R] +/Parent 1121 0 R +/Kids [814 0 R 825 0 R 836 0 R 842 0 R 849 0 R 858 0 R] >> endobj -846 0 obj << +869 0 obj << /Type /Pages /Count 6 -/Parent 1073 0 R -/Kids [841 0 R 848 0 R 854 0 R 860 0 R 864 0 R 872 0 R] +/Parent 1121 0 R +/Kids [864 0 R 871 0 R 878 0 R 884 0 R 890 0 R 896 0 R] >> endobj -883 0 obj << +907 0 obj << /Type /Pages /Count 6 -/Parent 1073 0 R -/Kids [876 0 R 885 0 R 889 0 R 897 0 R 901 0 R 909 0 R] +/Parent 1121 0 R +/Kids [902 0 R 909 0 R 913 0 R 921 0 R 925 0 R 933 0 R] >> endobj -923 0 obj << +944 0 obj << /Type /Pages /Count 6 -/Parent 1074 0 R -/Kids [913 0 R 925 0 R 929 0 R 937 0 R 941 0 R 945 0 R] +/Parent 1122 0 R +/Kids [937 0 R 946 0 R 950 0 R 958 0 R 962 0 R 973 0 R] >> endobj -968 0 obj << +984 0 obj << /Type /Pages /Count 6 -/Parent 1074 0 R -/Kids [964 0 R 971 0 R 979 0 R 987 0 R 993 0 R 1001 0 R] +/Parent 1122 0 R +/Kids [977 0 R 986 0 R 990 0 R 994 0 R 1013 0 R 1019 0 R] >> endobj -1009 0 obj << +1034 0 obj << /Type /Pages /Count 6 -/Parent 1074 0 R -/Kids [1005 0 R 1011 0 R 1016 0 R 1021 0 R 1026 0 R 1031 0 R] +/Parent 1122 0 R +/Kids [1027 0 R 1036 0 R 1042 0 R 1050 0 R 1054 0 R 1059 0 R] >> endobj -1050 0 obj << +1068 0 obj << /Type /Pages -/Count 1 -/Parent 1074 0 R -/Kids [1043 0 R] +/Count 5 +/Parent 1122 0 R +/Kids [1064 0 R 1070 0 R 1075 0 R 1080 0 R 1092 0 R] >> endobj -1072 0 obj << +1120 0 obj << /Type /Pages /Count 36 -/Parent 1075 0 R -/Kids [279 0 R 425 0 R 479 0 R 525 0 R 571 0 R 630 0 R] +/Parent 1123 0 R +/Kids [295 0 R 446 0 R 499 0 R 545 0 R 591 0 R 650 0 R] >> endobj -1073 0 obj << +1121 0 obj << /Type /Pages /Count 36 -/Parent 1075 0 R -/Kids [672 0 R 708 0 R 756 0 R 808 0 R 846 0 R 883 0 R] +/Parent 1123 0 R +/Kids [692 0 R 731 0 R 772 0 R 823 0 R 869 0 R 907 0 R] >> endobj -1074 0 obj << +1122 0 obj << /Type /Pages -/Count 19 -/Parent 1075 0 R -/Kids [923 0 R 968 0 R 1009 0 R 1050 0 R] +/Count 23 +/Parent 1123 0 R +/Kids [944 0 R 984 0 R 1034 0 R 1068 0 R] >> endobj -1075 0 obj << +1123 0 obj << /Type /Pages -/Count 91 -/Kids [1072 0 R 1073 0 R 1074 0 R] +/Count 95 +/Kids [1120 0 R 1121 0 R 1122 0 R] >> endobj -1076 0 obj << +1124 0 obj << /Type /Outlines /First 7 0 R /Last 7 0 R /Count 1 >> endobj +275 0 obj << +/Title 276 0 R +/A 273 0 R +/Parent 255 0 R +/Prev 271 0 R +>> endobj +271 0 obj << +/Title 272 0 R +/A 269 0 R +/Parent 255 0 R +/Prev 267 0 R +/Next 275 0 R +>> endobj +267 0 obj << +/Title 268 0 R +/A 265 0 R +/Parent 255 0 R +/Prev 263 0 R +/Next 271 0 R +>> endobj +263 0 obj << +/Title 264 0 R +/A 261 0 R +/Parent 255 0 R +/Prev 259 0 R +/Next 267 0 R +>> endobj 259 0 obj << /Title 260 0 R /A 257 0 R -/Parent 239 0 R -/Prev 255 0 R +/Parent 255 0 R +/Next 263 0 R >> endobj 255 0 obj << /Title 256 0 R /A 253 0 R -/Parent 239 0 R -/Prev 251 0 R -/Next 259 0 R +/Parent 7 0 R +/Prev 235 0 R +/First 259 0 R +/Last 275 0 R +/Count -5 >> endobj 251 0 obj << /Title 252 0 R /A 249 0 R -/Parent 239 0 R +/Parent 235 0 R /Prev 247 0 R -/Next 255 0 R >> endobj 247 0 obj << /Title 248 0 R /A 245 0 R -/Parent 239 0 R +/Parent 235 0 R /Prev 243 0 R /Next 251 0 R >> endobj 243 0 obj << /Title 244 0 R /A 241 0 R -/Parent 239 0 R +/Parent 235 0 R +/Prev 239 0 R /Next 247 0 R >> endobj 239 0 obj << /Title 240 0 R /A 237 0 R -/Parent 7 0 R -/Prev 219 0 R -/First 243 0 R -/Last 259 0 R -/Count -5 +/Parent 235 0 R +/Next 243 0 R >> endobj 235 0 obj << /Title 236 0 R /A 233 0 R -/Parent 219 0 R -/Prev 231 0 R +/Parent 7 0 R +/Prev 207 0 R +/Next 255 0 R +/First 239 0 R +/Last 251 0 R +/Count -4 >> endobj 231 0 obj << /Title 232 0 R /A 229 0 R -/Parent 219 0 R +/Parent 207 0 R /Prev 227 0 R -/Next 235 0 R >> endobj 227 0 obj << /Title 228 0 R /A 225 0 R -/Parent 219 0 R +/Parent 207 0 R /Prev 223 0 R /Next 231 0 R >> endobj 223 0 obj << /Title 224 0 R /A 221 0 R -/Parent 219 0 R +/Parent 207 0 R +/Prev 219 0 R /Next 227 0 R >> endobj 219 0 obj << /Title 220 0 R /A 217 0 R -/Parent 7 0 R -/Prev 191 0 R -/Next 239 0 R -/First 223 0 R -/Last 235 0 R -/Count -4 +/Parent 207 0 R +/Prev 215 0 R +/Next 223 0 R >> endobj 215 0 obj << /Title 216 0 R /A 213 0 R -/Parent 191 0 R +/Parent 207 0 R /Prev 211 0 R +/Next 219 0 R >> endobj 211 0 obj << /Title 212 0 R /A 209 0 R -/Parent 191 0 R -/Prev 207 0 R +/Parent 207 0 R /Next 215 0 R >> endobj 207 0 obj << /Title 208 0 R /A 205 0 R -/Parent 191 0 R -/Prev 203 0 R -/Next 211 0 R +/Parent 7 0 R +/Prev 119 0 R +/Next 235 0 R +/First 211 0 R +/Last 231 0 R +/Count -6 >> endobj 203 0 obj << /Title 204 0 R /A 201 0 R -/Parent 191 0 R +/Parent 119 0 R /Prev 199 0 R -/Next 207 0 R >> endobj 199 0 obj << /Title 200 0 R /A 197 0 R -/Parent 191 0 R +/Parent 119 0 R /Prev 195 0 R /Next 203 0 R >> endobj 195 0 obj << /Title 196 0 R /A 193 0 R -/Parent 191 0 R +/Parent 119 0 R +/Prev 191 0 R /Next 199 0 R >> endobj 191 0 obj << /Title 192 0 R /A 189 0 R -/Parent 7 0 R -/Prev 119 0 R -/Next 219 0 R -/First 195 0 R -/Last 215 0 R -/Count -6 +/Parent 119 0 R +/Prev 187 0 R +/Next 195 0 R >> endobj 187 0 obj << /Title 188 0 R /A 185 0 R /Parent 119 0 R /Prev 183 0 R +/Next 191 0 R >> endobj 183 0 obj << /Title 184 0 R @@ -26296,10 +27020,10 @@ endobj /A 117 0 R /Parent 7 0 R /Prev 99 0 R -/Next 191 0 R +/Next 207 0 R /First 123 0 R -/Last 187 0 R -/Count -17 +/Last 203 0 R +/Count -21 >> endobj 115 0 obj << /Title 116 0 R @@ -26499,1124 +27223,1172 @@ endobj 7 0 obj << /Title 8 0 R /A 5 0 R -/Parent 1076 0 R +/Parent 1124 0 R /First 11 0 R -/Last 239 0 R +/Last 255 0 R /Count -9 >> endobj -1077 0 obj << -/Names [(Doc-Start) 266 0 R (Hfootnote.1) 957 0 R (Item.1) 410 0 R (Item.10) 419 0 R (Item.11) 420 0 R (Item.12) 421 0 R (Item.13) 422 0 R (Item.14) 423 0 R (Item.15) 424 0 R (Item.16) 430 0 R (Item.17) 431 0 R (Item.18) 432 0 R (Item.19) 433 0 R (Item.2) 411 0 R (Item.20) 434 0 R (Item.21) 435 0 R (Item.22) 441 0 R (Item.23) 442 0 R (Item.24) 443 0 R (Item.25) 444 0 R (Item.26) 445 0 R (Item.27) 450 0 R (Item.28) 451 0 R (Item.29) 452 0 R (Item.3) 412 0 R (Item.30) 453 0 R (Item.31) 454 0 R (Item.32) 455 0 R (Item.33) 456 0 R (Item.34) 473 0 R (Item.35) 474 0 R (Item.36) 475 0 R (Item.37) 476 0 R (Item.38) 669 0 R (Item.39) 670 0 R (Item.4) 413 0 R (Item.40) 671 0 R (Item.41) 715 0 R (Item.42) 723 0 R (Item.43) 731 0 R (Item.44) 753 0 R (Item.45) 754 0 R (Item.46) 755 0 R (Item.47) 770 0 R (Item.48) 771 0 R (Item.49) 772 0 R (Item.5) 414 0 R (Item.50) 773 0 R (Item.51) 774 0 R (Item.52) 783 0 R (Item.53) 784 0 R (Item.54) 785 0 R (Item.55) 790 0 R (Item.56) 791 0 R (Item.57) 807 0 R (Item.58) 826 0 R (Item.59) 827 0 R (Item.6) 415 0 R (Item.7) 416 0 R (Item.8) 417 0 R (Item.9) 418 0 R (cite.APNUM06) 1041 0 R (cite.BLACS) 393 0 R (cite.BLAS1) 372 0 R (cite.BLAS2) 373 0 R (cite.BLAS3) 374 0 R (cite.CAI_SAAD) 1037 0 R (cite.CAI_SARKIS) 1038 0 R (cite.CAI_WIDLUND) 1039 0 R (cite.DD1) 1040 0 R (cite.DD2) 1048 0 R (cite.DOUGLAS) 1035 0 R (cite.KIVA3PSBLAS) 1047 0 R (cite.MPI1) 1049 0 R (cite.PARA04) 969 0 R (cite.PARA04FOREST) 1036 0 R (cite.PSBLAS) 1046 0 R (cite.SUPERLU) 961 0 R (cite.UMFPACK) 962 0 R (cite.machiels) 369 0 R (cite.metcalf) 368 0 R (cite.sblas02) 371 0 R (cite.sblas97) 370 0 R (descdata) 440 0 R (equation.1) 595 0 R (equation.2) 596 0 R (equation.3) 597 0 R (figure.1) 382 0 R (figure.2) 457 0 R (figure.3) 468 0 R (figure.4) 480 0 R (figure.5) 998 0 R (figure.6) 999 0 R (page.1) 265 0 R (page.10) 472 0 R (page.11) 484 0 R (page.12) 491 0 R (page.13) 495 0 R (page.14) 499 0 R (page.15) 510 0 R (page.16) 515 0 R (page.17) 529 0 R (page.18) 533 0 R (page.19) 543 0 R (page.2) 379 0 R (page.20) 547 0 R (page.21) 555 0 R (page.22) 563 0 R (page.23) 575 0 R (page.24) 583 0 R (page.25) 594 0 R (page.26) 606 0 R (page.27) 617 0 R (page.28) 623 0 R (page.29) 634 0 R (page.3) 397 0 R (page.30) 640 0 R (page.31) 644 0 R (page.32) 653 0 R (page.33) 658 0 R (page.34) 666 0 R (page.35) 676 0 R (page.36) 685 0 R (page.37) 689 0 R (page.38) 697 0 R (page.39) 702 0 R (page.4) 409 0 R (page.40) 706 0 R (page.41) 712 0 R (page.42) 719 0 R (page.43) 727 0 R (page.44) 735 0 R (page.45) 742 0 R (page.46) 748 0 R (page.47) 760 0 R (page.48) 768 0 R (page.49) 778 0 R (page.5) 429 0 R (page.50) 789 0 R (page.51) 795 0 R (page.52) 802 0 R (page.53) 812 0 R (page.54) 818 0 R (page.55) 824 0 R (page.56) 831 0 R (page.57) 837 0 R (page.58) 843 0 R (page.59) 850 0 R (page.6) 439 0 R (page.60) 856 0 R (page.61) 862 0 R (page.62) 866 0 R (page.63) 874 0 R (page.64) 878 0 R (page.65) 887 0 R (page.66) 891 0 R (page.67) 899 0 R (page.68) 903 0 R (page.69) 911 0 R (page.7) 449 0 R (page.70) 915 0 R (page.71) 927 0 R (page.72) 931 0 R (page.73) 939 0 R (page.74) 943 0 R (page.75) 947 0 R (page.76) 966 0 R (page.77) 973 0 R (page.78) 981 0 R (page.79) 989 0 R (page.8) 461 0 R (page.80) 995 0 R (page.81) 1003 0 R (page.82) 1007 0 R (page.83) 1013 0 R (page.84) 1018 0 R (page.85) 1023 0 R (page.86) 1028 0 R (page.87) 1033 0 R (page.88) 1045 0 R (page.9) 466 0 R (page.i) 283 0 R (page.ii) 331 0 R (precdata) 477 0 R (section*.1) 284 0 R (section*.10) 74 0 R (section*.100) 1014 0 R (section*.101) 250 0 R (section*.102) 1019 0 R (section*.103) 254 0 R (section*.104) 1024 0 R (section*.105) 258 0 R (section*.106) 1029 0 R (section*.107) 1034 0 R (section*.11) 556 0 R (section*.12) 78 0 R (section*.13) 567 0 R (section*.14) 82 0 R (section*.15) 577 0 R (section*.16) 86 0 R (section*.17) 588 0 R (section*.18) 90 0 R (section*.19) 599 0 R (section*.2) 58 0 R (section*.20) 94 0 R (section*.21) 618 0 R (section*.22) 102 0 R (section*.23) 646 0 R (section*.24) 106 0 R (section*.25) 660 0 R (section*.26) 668 0 R (section*.27) 110 0 R (section*.28) 678 0 R (section*.29) 679 0 R (section*.3) 500 0 R (section*.30) 114 0 R (section*.31) 691 0 R (section*.32) 692 0 R (section*.33) 122 0 R (section*.34) 707 0 R (section*.35) 714 0 R (section*.36) 126 0 R (section*.37) 720 0 R (section*.38) 722 0 R (section*.39) 130 0 R (section*.4) 62 0 R (section*.40) 728 0 R (section*.41) 730 0 R (section*.42) 134 0 R (section*.43) 736 0 R (section*.44) 138 0 R (section*.45) 743 0 R (section*.46) 142 0 R (section*.47) 749 0 R (section*.48) 752 0 R (section*.49) 146 0 R (section*.5) 519 0 R (section*.50) 761 0 R (section*.51) 769 0 R (section*.52) 150 0 R (section*.53) 779 0 R (section*.54) 782 0 R (section*.55) 154 0 R (section*.56) 796 0 R (section*.57) 158 0 R (section*.58) 803 0 R (section*.59) 806 0 R (section*.6) 66 0 R (section*.60) 162 0 R (section*.61) 813 0 R (section*.62) 166 0 R (section*.63) 819 0 R (section*.64) 825 0 R (section*.65) 170 0 R (section*.66) 832 0 R (section*.67) 174 0 R (section*.68) 838 0 R (section*.69) 178 0 R (section*.7) 534 0 R (section*.70) 844 0 R (section*.71) 182 0 R (section*.72) 851 0 R (section*.73) 186 0 R (section*.74) 857 0 R (section*.75) 194 0 R (section*.76) 867 0 R (section*.77) 198 0 R (section*.78) 879 0 R (section*.79) 202 0 R (section*.8) 70 0 R (section*.80) 892 0 R (section*.81) 206 0 R (section*.82) 904 0 R (section*.83) 210 0 R (section*.84) 919 0 R (section*.85) 214 0 R (section*.86) 932 0 R (section*.87) 222 0 R (section*.88) 948 0 R (section*.89) 950 0 R (section*.9) 548 0 R (section*.90) 226 0 R (section*.91) 974 0 R (section*.92) 230 0 R (section*.93) 982 0 R (section*.94) 983 0 R (section*.95) 234 0 R (section*.96) 990 0 R (section*.97) 242 0 R (section*.98) 1008 0 R (section*.99) 246 0 R (section.1) 10 0 R (section.2) 14 0 R (section.3) 26 0 R (section.4) 54 0 R (section.5) 98 0 R (section.6) 118 0 R (section.7) 190 0 R (section.8) 218 0 R (section.9) 238 0 R (spdata) 462 0 R (subsection.2.1) 18 0 R (subsection.2.2) 22 0 R (subsection.3.1) 30 0 R (subsection.3.2) 38 0 R (subsection.3.3) 46 0 R (subsubsection.3.1.1) 34 0 R (subsubsection.3.2.1) 42 0 R (subsubsection.3.3.1) 50 0 R (table.1) 501 0 R (table.10) 619 0 R (table.11) 645 0 R (table.12) 659 0 R (table.13) 677 0 R (table.14) 690 0 R (table.2) 520 0 R (table.3) 535 0 R (table.4) 549 0 R (table.5) 557 0 R (table.6) 568 0 R (table.7) 576 0 R (table.8) 587 0 R (table.9) 598 0 R (title.0) 6 0 R] +1125 0 obj << +/Names [(Doc-Start) 282 0 R (Hfootnote.1) 1006 0 R (Item.1) 430 0 R (Item.10) 439 0 R (Item.11) 440 0 R (Item.12) 441 0 R (Item.13) 442 0 R (Item.14) 443 0 R (Item.15) 444 0 R (Item.16) 445 0 R (Item.17) 451 0 R (Item.18) 452 0 R (Item.19) 453 0 R (Item.2) 431 0 R (Item.20) 454 0 R (Item.21) 455 0 R (Item.22) 461 0 R (Item.23) 462 0 R (Item.24) 463 0 R (Item.25) 464 0 R (Item.26) 465 0 R (Item.27) 470 0 R (Item.28) 471 0 R (Item.29) 472 0 R (Item.3) 432 0 R (Item.30) 473 0 R (Item.31) 474 0 R (Item.32) 475 0 R (Item.33) 476 0 R (Item.34) 493 0 R (Item.35) 494 0 R (Item.36) 495 0 R (Item.37) 496 0 R (Item.38) 689 0 R (Item.39) 690 0 R (Item.4) 433 0 R (Item.40) 691 0 R (Item.41) 729 0 R (Item.42) 730 0 R (Item.43) 738 0 R (Item.44) 739 0 R (Item.45) 746 0 R (Item.46) 763 0 R (Item.47) 771 0 R (Item.48) 780 0 R (Item.49) 802 0 R (Item.5) 434 0 R (Item.50) 803 0 R (Item.51) 804 0 R (Item.52) 818 0 R (Item.53) 819 0 R (Item.54) 820 0 R (Item.55) 821 0 R (Item.56) 822 0 R (Item.57) 832 0 R (Item.58) 833 0 R (Item.59) 834 0 R (Item.6) 435 0 R (Item.60) 839 0 R (Item.61) 840 0 R (Item.62) 856 0 R (Item.63) 875 0 R (Item.64) 876 0 R (Item.7) 436 0 R (Item.8) 437 0 R (Item.9) 438 0 R (cite.APNUM06) 1090 0 R (cite.BLACS) 413 0 R (cite.BLAS1) 392 0 R (cite.BLAS2) 393 0 R (cite.BLAS3) 394 0 R (cite.CAI_SAAD) 1086 0 R (cite.CAI_SARKIS) 1087 0 R (cite.CAI_WIDLUND) 1088 0 R (cite.DD1) 1089 0 R (cite.DD2) 1097 0 R (cite.DOUGLAS) 1084 0 R (cite.KIVA3PSBLAS) 1096 0 R (cite.MPI1) 1098 0 R (cite.PARA04) 1017 0 R (cite.PARA04FOREST) 1085 0 R (cite.PSBLAS) 1095 0 R (cite.SUPERLU) 1010 0 R (cite.UMFPACK) 1011 0 R (cite.machiels) 389 0 R (cite.metcalf) 388 0 R (cite.sblas02) 391 0 R (cite.sblas97) 390 0 R (descdata) 460 0 R (equation.1) 615 0 R (equation.2) 616 0 R (equation.3) 617 0 R (figure.1) 402 0 R (figure.2) 477 0 R (figure.3) 488 0 R (figure.4) 500 0 R (figure.5) 1047 0 R (figure.6) 1048 0 R (page.1) 281 0 R (page.10) 492 0 R (page.11) 504 0 R (page.12) 511 0 R (page.13) 515 0 R (page.14) 519 0 R (page.15) 530 0 R (page.16) 535 0 R (page.17) 549 0 R (page.18) 553 0 R (page.19) 563 0 R (page.2) 399 0 R (page.20) 567 0 R (page.21) 575 0 R (page.22) 583 0 R (page.23) 595 0 R (page.24) 603 0 R (page.25) 614 0 R (page.26) 626 0 R (page.27) 637 0 R (page.28) 643 0 R (page.29) 654 0 R (page.3) 417 0 R (page.30) 660 0 R (page.31) 664 0 R (page.32) 673 0 R (page.33) 678 0 R (page.34) 686 0 R (page.35) 696 0 R (page.36) 705 0 R (page.37) 709 0 R (page.38) 717 0 R (page.39) 722 0 R (page.4) 429 0 R (page.40) 726 0 R (page.41) 735 0 R (page.42) 743 0 R (page.43) 750 0 R (page.44) 755 0 R (page.45) 760 0 R (page.46) 767 0 R (page.47) 776 0 R (page.48) 784 0 R (page.49) 791 0 R (page.5) 450 0 R (page.50) 797 0 R (page.51) 808 0 R (page.52) 816 0 R (page.53) 827 0 R (page.54) 838 0 R (page.55) 844 0 R (page.56) 851 0 R (page.57) 860 0 R (page.58) 866 0 R (page.59) 873 0 R (page.6) 459 0 R (page.60) 880 0 R (page.61) 886 0 R (page.62) 892 0 R (page.63) 898 0 R (page.64) 904 0 R (page.65) 911 0 R (page.66) 915 0 R (page.67) 923 0 R (page.68) 927 0 R (page.69) 935 0 R (page.7) 469 0 R (page.70) 939 0 R (page.71) 948 0 R (page.72) 952 0 R (page.73) 960 0 R (page.74) 964 0 R (page.75) 975 0 R (page.76) 979 0 R (page.77) 988 0 R (page.78) 992 0 R (page.79) 996 0 R (page.8) 481 0 R (page.80) 1015 0 R (page.81) 1021 0 R (page.82) 1029 0 R (page.83) 1038 0 R (page.84) 1044 0 R (page.85) 1052 0 R (page.86) 1056 0 R (page.87) 1061 0 R (page.88) 1066 0 R (page.89) 1072 0 R (page.9) 486 0 R (page.90) 1077 0 R (page.91) 1082 0 R (page.92) 1094 0 R (page.i) 299 0 R (page.ii) 347 0 R (precdata) 497 0 R (section*.1) 300 0 R (section*.10) 74 0 R (section*.100) 999 0 R (section*.101) 242 0 R (section*.102) 1022 0 R (section*.103) 246 0 R (section*.104) 1030 0 R (section*.105) 1031 0 R (section*.106) 250 0 R (section*.107) 1039 0 R (section*.108) 258 0 R (section*.109) 1057 0 R (section*.11) 576 0 R (section*.110) 262 0 R (section*.111) 1062 0 R (section*.112) 266 0 R (section*.113) 1067 0 R (section*.114) 270 0 R (section*.115) 1073 0 R (section*.116) 274 0 R (section*.117) 1078 0 R (section*.118) 1083 0 R (section*.12) 78 0 R (section*.13) 587 0 R (section*.14) 82 0 R (section*.15) 597 0 R (section*.16) 86 0 R (section*.17) 608 0 R (section*.18) 90 0 R (section*.19) 619 0 R (section*.2) 58 0 R (section*.20) 94 0 R (section*.21) 638 0 R (section*.22) 102 0 R (section*.23) 666 0 R (section*.24) 106 0 R (section*.25) 680 0 R (section*.26) 688 0 R (section*.27) 110 0 R (section*.28) 698 0 R (section*.29) 699 0 R (section*.3) 520 0 R (section*.30) 114 0 R (section*.31) 711 0 R (section*.32) 712 0 R (section*.33) 122 0 R (section*.34) 727 0 R (section*.35) 728 0 R (section*.36) 126 0 R (section*.37) 736 0 R (section*.38) 737 0 R (section*.39) 130 0 R (section*.4) 62 0 R (section*.40) 744 0 R (section*.41) 745 0 R (section*.42) 134 0 R (section*.43) 751 0 R (section*.44) 138 0 R (section*.45) 756 0 R (section*.46) 762 0 R (section*.47) 142 0 R (section*.48) 768 0 R (section*.49) 770 0 R (section*.5) 539 0 R (section*.50) 146 0 R (section*.51) 777 0 R (section*.52) 779 0 R (section*.53) 150 0 R (section*.54) 785 0 R (section*.55) 154 0 R (section*.56) 792 0 R (section*.57) 158 0 R (section*.58) 798 0 R (section*.59) 801 0 R (section*.6) 66 0 R (section*.60) 162 0 R (section*.61) 809 0 R (section*.62) 817 0 R (section*.63) 166 0 R (section*.64) 828 0 R (section*.65) 831 0 R (section*.66) 170 0 R (section*.67) 845 0 R (section*.68) 174 0 R (section*.69) 852 0 R (section*.7) 554 0 R (section*.70) 855 0 R (section*.71) 178 0 R (section*.72) 861 0 R (section*.73) 182 0 R (section*.74) 867 0 R (section*.75) 874 0 R (section*.76) 186 0 R (section*.77) 881 0 R (section*.78) 190 0 R (section*.79) 887 0 R (section*.8) 70 0 R (section*.80) 194 0 R (section*.81) 893 0 R (section*.82) 198 0 R (section*.83) 899 0 R (section*.84) 202 0 R (section*.85) 905 0 R (section*.86) 210 0 R (section*.87) 916 0 R (section*.88) 214 0 R (section*.89) 928 0 R (section*.9) 568 0 R (section*.90) 218 0 R (section*.91) 940 0 R (section*.92) 222 0 R (section*.93) 953 0 R (section*.94) 226 0 R (section*.95) 968 0 R (section*.96) 230 0 R (section*.97) 980 0 R (section*.98) 238 0 R (section*.99) 997 0 R (section.1) 10 0 R (section.2) 14 0 R (section.3) 26 0 R (section.4) 54 0 R (section.5) 98 0 R (section.6) 118 0 R (section.7) 206 0 R (section.8) 234 0 R (section.9) 254 0 R (spdata) 482 0 R (subsection.2.1) 18 0 R (subsection.2.2) 22 0 R (subsection.3.1) 30 0 R (subsection.3.2) 38 0 R (subsection.3.3) 46 0 R (subsubsection.3.1.1) 34 0 R (subsubsection.3.2.1) 42 0 R (subsubsection.3.3.1) 50 0 R (table.1) 521 0 R (table.10) 639 0 R (table.11) 665 0 R (table.12) 679 0 R (table.13) 697 0 R (table.14) 710 0 R (table.2) 540 0 R (table.3) 555 0 R (table.4) 569 0 R (table.5) 577 0 R (table.6) 588 0 R (table.7) 596 0 R (table.8) 607 0 R (table.9) 618 0 R (title.0) 6 0 R] /Limits [(Doc-Start) (title.0)] >> endobj -1078 0 obj << -/Kids [1077 0 R] +1126 0 obj << +/Kids [1125 0 R] >> endobj -1079 0 obj << -/Dests 1078 0 R +1127 0 obj << +/Dests 1126 0 R >> endobj -1080 0 obj << +1128 0 obj << /Type /Catalog -/Pages 1075 0 R -/Outlines 1076 0 R -/Names 1079 0 R +/Pages 1123 0 R +/Outlines 1124 0 R +/Names 1127 0 R /URI (http://ce.uniroma2.it/psblas) /PageMode /UseOutlines /URI<> /ViewerPreferences<<>> /PageLabels << /Nums [0 << /S /D >> 1 << /S /r >> 3 << /S /D >> ] >> -/OpenAction 261 0 R +/OpenAction 277 0 R /PTEX.Fullbanner (This is pdfTeX, Version 3.14159-1.10b) >> endobj -1081 0 obj << +1129 0 obj << /Title (Parallel Sparse BLAS V. 2.0) /Subject (Parallel Sparse Basic Linear Algebra Subroutines) /Keywords (Computer Science Linear Algebra Fluid Dynamics Parallel Linux MPI PSBLAS Iterative Solvers Preconditioners) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex,v 1.7 2006/04/27 16:31:44 sfilippo Exp $) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.10b)/Keywords() -/CreationDate (D:20060525152600) +/CreationDate (D:20060526130900) >> endobj xref -0 1082 +0 1130 0000000001 65535 f 0000000002 00000 f 0000000003 00000 f 0000000004 00000 f 0000000000 00000 f 0000000009 00000 n -0000006760 00000 n -0000840153 00000 n +0000007094 00000 n +0000862380 00000 n 0000000052 00000 n 0000000094 00000 n -0000073702 00000 n -0000840081 00000 n +0000077771 00000 n +0000862308 00000 n 0000000139 00000 n 0000000172 00000 n -0000073762 00000 n -0000839958 00000 n +0000077831 00000 n +0000862185 00000 n 0000000218 00000 n 0000000255 00000 n -0000099292 00000 n -0000839884 00000 n +0000103474 00000 n +0000862111 00000 n 0000000306 00000 n 0000000350 00000 n -0000121600 00000 n -0000839810 00000 n +0000125258 00000 n +0000862037 00000 n 0000000401 00000 n 0000000441 00000 n -0000135101 00000 n -0000839687 00000 n +0000138872 00000 n +0000861914 00000 n 0000000487 00000 n 0000000523 00000 n -0000135162 00000 n -0000839576 00000 n +0000138933 00000 n +0000861803 00000 n 0000000574 00000 n 0000000622 00000 n -0000158393 00000 n -0000839515 00000 n +0000162164 00000 n +0000861742 00000 n 0000000678 00000 n 0000000718 00000 n -0000158454 00000 n -0000839391 00000 n +0000162225 00000 n +0000861618 00000 n 0000000769 00000 n 0000000820 00000 n -0000183302 00000 n -0000839330 00000 n +0000187073 00000 n +0000861557 00000 n 0000000876 00000 n 0000000916 00000 n -0000183363 00000 n -0000839219 00000 n +0000187134 00000 n +0000861446 00000 n 0000000967 00000 n 0000001019 00000 n -0000193624 00000 n -0000839158 00000 n +0000197395 00000 n +0000861385 00000 n 0000001075 00000 n 0000001115 00000 n -0000196676 00000 n -0000839034 00000 n +0000200447 00000 n +0000861261 00000 n 0000001161 00000 n 0000001204 00000 n -0000206876 00000 n -0000838960 00000 n +0000210647 00000 n +0000861187 00000 n 0000001251 00000 n 0000001284 00000 n -0000219542 00000 n -0000838873 00000 n +0000223313 00000 n +0000861100 00000 n 0000001331 00000 n 0000001362 00000 n -0000231307 00000 n -0000838786 00000 n +0000235078 00000 n +0000861013 00000 n 0000001409 00000 n 0000001440 00000 n -0000241269 00000 n -0000838699 00000 n +0000245040 00000 n +0000860926 00000 n 0000001487 00000 n 0000001519 00000 n -0000249261 00000 n -0000838612 00000 n +0000253032 00000 n +0000860839 00000 n 0000001567 00000 n 0000001599 00000 n -0000257838 00000 n -0000838525 00000 n +0000261609 00000 n +0000860752 00000 n 0000001647 00000 n 0000001679 00000 n -0000266551 00000 n -0000838438 00000 n +0000270322 00000 n +0000860665 00000 n 0000001727 00000 n 0000001759 00000 n -0000274629 00000 n -0000838351 00000 n +0000278400 00000 n +0000860578 00000 n 0000001807 00000 n 0000001839 00000 n -0000285875 00000 n -0000838264 00000 n +0000289646 00000 n +0000860491 00000 n 0000001887 00000 n 0000001917 00000 n -0000305990 00000 n -0000838190 00000 n +0000309761 00000 n +0000860417 00000 n 0000001965 00000 n 0000001995 00000 n -0000324963 00000 n -0000838063 00000 n +0000328734 00000 n +0000860290 00000 n 0000002041 00000 n 0000002085 00000 n -0000333755 00000 n -0000837985 00000 n +0000337526 00000 n +0000860212 00000 n 0000002134 00000 n 0000002165 00000 n -0000346939 00000 n -0000837893 00000 n +0000350710 00000 n +0000860120 00000 n 0000002214 00000 n 0000002245 00000 n -0000364480 00000 n -0000837801 00000 n +0000368251 00000 n +0000860028 00000 n 0000002294 00000 n 0000002327 00000 n -0000382814 00000 n -0000837723 00000 n +0000386585 00000 n +0000859950 00000 n 0000002376 00000 n 0000002410 00000 n -0000392142 00000 n -0000837593 00000 n +0000395961 00000 n +0000859820 00000 n 0000002457 00000 n -0000002522 00000 n -0000400430 00000 n -0000837514 00000 n -0000002571 00000 n -0000002603 00000 n -0000411257 00000 n -0000837421 00000 n -0000002652 00000 n -0000002684 00000 n -0000415782 00000 n -0000837328 00000 n -0000002733 00000 n -0000002765 00000 n -0000421523 00000 n -0000837235 00000 n -0000002814 00000 n -0000002846 00000 n -0000425479 00000 n -0000837142 00000 n -0000002895 00000 n -0000002928 00000 n -0000433154 00000 n -0000837049 00000 n -0000002977 00000 n -0000003009 00000 n -0000442621 00000 n -0000836956 00000 n -0000003058 00000 n -0000003090 00000 n -0000456280 00000 n -0000836863 00000 n -0000003139 00000 n -0000003171 00000 n -0000463800 00000 n -0000836770 00000 n -0000003220 00000 n -0000003253 00000 n -0000470182 00000 n -0000836677 00000 n -0000003302 00000 n -0000003333 00000 n -0000475739 00000 n -0000836584 00000 n -0000003382 00000 n -0000003414 00000 n -0000484005 00000 n -0000836491 00000 n -0000003463 00000 n -0000003495 00000 n -0000490265 00000 n -0000836398 00000 n -0000003544 00000 n -0000003576 00000 n -0000494848 00000 n -0000836305 00000 n -0000003625 00000 n -0000003658 00000 n -0000501166 00000 n -0000836212 00000 n -0000003707 00000 n -0000003738 00000 n -0000509869 00000 n -0000836119 00000 n -0000003787 00000 n -0000003831 00000 n -0000518564 00000 n -0000836040 00000 n -0000003880 00000 n -0000003924 00000 n -0000519612 00000 n -0000835910 00000 n -0000003971 00000 n -0000004010 00000 n -0000528973 00000 n -0000835831 00000 n -0000004059 00000 n -0000004089 00000 n -0000543600 00000 n -0000835738 00000 n -0000004138 00000 n -0000004169 00000 n -0000558248 00000 n -0000835645 00000 n -0000004218 00000 n -0000004250 00000 n -0000572913 00000 n -0000835552 00000 n -0000004299 00000 n -0000004335 00000 n -0000587752 00000 n -0000835459 00000 n -0000004384 00000 n -0000004421 00000 n -0000602931 00000 n -0000835380 00000 n -0000004470 00000 n -0000004503 00000 n -0000612065 00000 n -0000835250 00000 n -0000004550 00000 n -0000004595 00000 n -0000621551 00000 n -0000835171 00000 n -0000004644 00000 n -0000004678 00000 n -0000633161 00000 n -0000835078 00000 n -0000004727 00000 n -0000004761 00000 n -0000641263 00000 n -0000834985 00000 n -0000004810 00000 n -0000004845 00000 n -0000644557 00000 n -0000834906 00000 n -0000004894 00000 n -0000004934 00000 n -0000652970 00000 n -0000834790 00000 n -0000004981 00000 n -0000005017 00000 n -0000663001 00000 n -0000834711 00000 n -0000005066 00000 n -0000005100 00000 n -0000665187 00000 n -0000834618 00000 n -0000005149 00000 n -0000005181 00000 n -0000667662 00000 n -0000834525 00000 n -0000005231 00000 n -0000005277 00000 n -0000670452 00000 n -0000834432 00000 n -0000005327 00000 n -0000005370 00000 n -0000673167 00000 n -0000834353 00000 n -0000005420 00000 n -0000005454 00000 n -0000006519 00000 n -0000006819 00000 n -0000005506 00000 n -0000006638 00000 n -0000006699 00000 n -0000831260 00000 n -0000819353 00000 n -0000831096 00000 n -0000818928 00000 n -0000811937 00000 n -0000818764 00000 n -0000811130 00000 n -0000796590 00000 n -0000810966 00000 n -0000795667 00000 n -0000777779 00000 n -0000795504 00000 n -0000831993 00000 n -0000042799 00000 n -0000035581 00000 n -0000006929 00000 n -0000042677 00000 n -0000042738 00000 n -0000036056 00000 n -0000036207 00000 n -0000036357 00000 n -0000036514 00000 n -0000036671 00000 n -0000036821 00000 n -0000036977 00000 n -0000037138 00000 n -0000037295 00000 n -0000037456 00000 n -0000037613 00000 n -0000037775 00000 n -0000037922 00000 n -0000038075 00000 n -0000038228 00000 n -0000038381 00000 n -0000038534 00000 n -0000038688 00000 n -0000038842 00000 n -0000038996 00000 n -0000039150 00000 n -0000039303 00000 n -0000039457 00000 n -0000039608 00000 n -0000039762 00000 n -0000039916 00000 n -0000040070 00000 n -0000040224 00000 n -0000040375 00000 n -0000040527 00000 n -0000040681 00000 n -0000040834 00000 n -0000040988 00000 n -0000041142 00000 n -0000041296 00000 n -0000041450 00000 n -0000041604 00000 n -0000041758 00000 n -0000041911 00000 n -0000042064 00000 n -0000042217 00000 n -0000042371 00000 n -0000042524 00000 n -0000061278 00000 n -0000057855 00000 n -0000042896 00000 n -0000061216 00000 n -0000058146 00000 n -0000058300 00000 n -0000058453 00000 n -0000058604 00000 n -0000058758 00000 n -0000058911 00000 n -0000059065 00000 n -0000059218 00000 n -0000059372 00000 n -0000059525 00000 n -0000059677 00000 n -0000059831 00000 n -0000059985 00000 n -0000060139 00000 n -0000060293 00000 n -0000060445 00000 n -0000060598 00000 n -0000060752 00000 n -0000060906 00000 n -0000061061 00000 n -0000073822 00000 n -0000072441 00000 n -0000061362 00000 n -0000072628 00000 n -0000072782 00000 n -0000072938 00000 n -0000073092 00000 n -0000073246 00000 n -0000073397 00000 n -0000073549 00000 n -0000777028 00000 n -0000760881 00000 n -0000776864 00000 n -0000759304 00000 n -0000748416 00000 n -0000759140 00000 n -0000692434 00000 n -0000692371 00000 n -0000692119 00000 n -0000692182 00000 n -0000683079 00000 n -0000683141 00000 n -0000683203 00000 n -0000082717 00000 n -0000088228 00000 n -0000082570 00000 n -0000073932 00000 n -0000088104 00000 n -0000087800 00000 n -0000087951 00000 n -0000088166 00000 n -0000747828 00000 n -0000743905 00000 n -0000747665 00000 n -0000083360 00000 n -0000083416 00000 n -0000083496 00000 n -0000084536 00000 n -0000084557 00000 n -0000084888 00000 n -0000087778 00000 n -0000692056 00000 n -0000099352 00000 n -0000098780 00000 n -0000088353 00000 n -0000099231 00000 n -0000743207 00000 n -0000731334 00000 n -0000743043 00000 n -0000098927 00000 n -0000099079 00000 n -0000731111 00000 n -0000728307 00000 n -0000730947 00000 n -0000111614 00000 n -0000110504 00000 n -0000099500 00000 n -0000110623 00000 n -0000110685 00000 n -0000110746 00000 n -0000110808 00000 n -0000110870 00000 n -0000110932 00000 n -0000110994 00000 n -0000111056 00000 n -0000111118 00000 n -0000111180 00000 n -0000111242 00000 n -0000111304 00000 n -0000111366 00000 n -0000111428 00000 n -0000111490 00000 n -0000111552 00000 n -0000832111 00000 n -0000121660 00000 n -0000121055 00000 n -0000111736 00000 n -0000121174 00000 n -0000121235 00000 n -0000121296 00000 n -0000121357 00000 n -0000121418 00000 n -0000121479 00000 n -0000121539 00000 n -0000135595 00000 n -0000134920 00000 n -0000121783 00000 n -0000135039 00000 n -0000135223 00000 n -0000135285 00000 n -0000135347 00000 n -0000135409 00000 n -0000135471 00000 n -0000135533 00000 n -0000145565 00000 n -0000144896 00000 n -0000135705 00000 n -0000145015 00000 n -0000145076 00000 n -0000145137 00000 n -0000145198 00000 n -0000145259 00000 n -0000145320 00000 n -0000145381 00000 n -0000145442 00000 n -0000145503 00000 n -0000158577 00000 n -0000158212 00000 n -0000145675 00000 n -0000158331 00000 n -0000158515 00000 n -0000168888 00000 n -0000168475 00000 n -0000158687 00000 n -0000168765 00000 n -0000168614 00000 n -0000168826 00000 n -0000183485 00000 n -0000182702 00000 n -0000168985 00000 n -0000182992 00000 n -0000183054 00000 n -0000183116 00000 n -0000183178 00000 n -0000183240 00000 n -0000183423 00000 n -0000182841 00000 n -0000832229 00000 n -0000193562 00000 n -0000193684 00000 n -0000193382 00000 n -0000183621 00000 n -0000193501 00000 n -0000727709 00000 n -0000719744 00000 n -0000727546 00000 n -0000196017 00000 n -0000195836 00000 n -0000193807 00000 n -0000195955 00000 n -0000196736 00000 n -0000196496 00000 n -0000196101 00000 n -0000196615 00000 n -0000207060 00000 n -0000205893 00000 n -0000196820 00000 n -0000206814 00000 n -0000206937 00000 n -0000206999 00000 n -0000206064 00000 n -0000206214 00000 n -0000206364 00000 n -0000206514 00000 n -0000206664 00000 n -0000209622 00000 n -0000209272 00000 n -0000207209 00000 n -0000209561 00000 n -0000209411 00000 n -0000219726 00000 n -0000218718 00000 n -0000209719 00000 n -0000219480 00000 n -0000718330 00000 n -0000712994 00000 n -0000718167 00000 n -0000219603 00000 n -0000219665 00000 n -0000218881 00000 n -0000219030 00000 n -0000219180 00000 n -0000219330 00000 n -0000832347 00000 n -0000221044 00000 n -0000220864 00000 n -0000219888 00000 n -0000220983 00000 n -0000231492 00000 n -0000230483 00000 n -0000221141 00000 n -0000231245 00000 n -0000231368 00000 n -0000231430 00000 n -0000230646 00000 n -0000230796 00000 n -0000230946 00000 n -0000231096 00000 n -0000232629 00000 n -0000232449 00000 n -0000231654 00000 n -0000232568 00000 n -0000241454 00000 n -0000240761 00000 n -0000232713 00000 n -0000241207 00000 n -0000241330 00000 n -0000241392 00000 n -0000240908 00000 n -0000241058 00000 n -0000249444 00000 n -0000248754 00000 n -0000241616 00000 n -0000249200 00000 n -0000249321 00000 n -0000249382 00000 n -0000248901 00000 n -0000249049 00000 n -0000258023 00000 n -0000257329 00000 n -0000249606 00000 n -0000257776 00000 n -0000712720 00000 n -0000709708 00000 n -0000712559 00000 n -0000257899 00000 n -0000257961 00000 n -0000257476 00000 n -0000257626 00000 n -0000832465 00000 n -0000266734 00000 n -0000266044 00000 n -0000258197 00000 n -0000266490 00000 n -0000266611 00000 n -0000266673 00000 n -0000266191 00000 n -0000266339 00000 n -0000274814 00000 n -0000274122 00000 n -0000266896 00000 n -0000274567 00000 n -0000709370 00000 n -0000707032 00000 n -0000709209 00000 n -0000274690 00000 n -0000274752 00000 n -0000274269 00000 n -0000274417 00000 n -0000286243 00000 n -0000285213 00000 n -0000274976 00000 n -0000285814 00000 n -0000285935 00000 n -0000285996 00000 n -0000286058 00000 n -0000286120 00000 n -0000286182 00000 n -0000285368 00000 n -0000285518 00000 n -0000285667 00000 n -0000296450 00000 n -0000295144 00000 n -0000286417 00000 n -0000296388 00000 n -0000295331 00000 n -0000295480 00000 n -0000295630 00000 n -0000295780 00000 n -0000295933 00000 n -0000296086 00000 n -0000296238 00000 n -0000306172 00000 n -0000305810 00000 n -0000296560 00000 n -0000305929 00000 n -0000306050 00000 n -0000306111 00000 n -0000318228 00000 n -0000317084 00000 n -0000306346 00000 n -0000318166 00000 n -0000317263 00000 n -0000317413 00000 n -0000317564 00000 n -0000317715 00000 n -0000317866 00000 n -0000318016 00000 n -0000832583 00000 n -0000324268 00000 n -0000323760 00000 n -0000318364 00000 n -0000324207 00000 n -0000323907 00000 n -0000324058 00000 n -0000325024 00000 n -0000324782 00000 n -0000324378 00000 n -0000324901 00000 n -0000333939 00000 n -0000333086 00000 n -0000325108 00000 n -0000333694 00000 n -0000333816 00000 n -0000333878 00000 n -0000333241 00000 n -0000333392 00000 n -0000333543 00000 n -0000336630 00000 n -0000336278 00000 n -0000334088 00000 n -0000336568 00000 n -0000336417 00000 n -0000347121 00000 n -0000346430 00000 n -0000336727 00000 n -0000346878 00000 n -0000347000 00000 n -0000347062 00000 n -0000346577 00000 n -0000346728 00000 n -0000353082 00000 n -0000352484 00000 n -0000347283 00000 n -0000352774 00000 n -0000352623 00000 n -0000352836 00000 n -0000352896 00000 n -0000352958 00000 n -0000353020 00000 n -0000832701 00000 n -0000364724 00000 n -0000363970 00000 n -0000353205 00000 n -0000364419 00000 n -0000364541 00000 n -0000364603 00000 n -0000364663 00000 n -0000364117 00000 n -0000364268 00000 n -0000372177 00000 n -0000371996 00000 n -0000364911 00000 n -0000372115 00000 n -0000383059 00000 n -0000382463 00000 n -0000372287 00000 n -0000382753 00000 n -0000382875 00000 n -0000382937 00000 n -0000382998 00000 n -0000382602 00000 n -0000391422 00000 n -0000391070 00000 n -0000383246 00000 n -0000391360 00000 n -0000391209 00000 n -0000392203 00000 n -0000391962 00000 n -0000391532 00000 n -0000392081 00000 n -0000400554 00000 n -0000400249 00000 n -0000392287 00000 n -0000400368 00000 n -0000400492 00000 n -0000832819 00000 n -0000404705 00000 n -0000404234 00000 n -0000400690 00000 n -0000404522 00000 n -0000404373 00000 n -0000404583 00000 n -0000404644 00000 n -0000411504 00000 n -0000410906 00000 n -0000404828 00000 n -0000411195 00000 n -0000411319 00000 n -0000411045 00000 n -0000411381 00000 n -0000411443 00000 n -0000416026 00000 n -0000415431 00000 n -0000411640 00000 n -0000415721 00000 n -0000415843 00000 n -0000415570 00000 n -0000415904 00000 n -0000415965 00000 n -0000421647 00000 n -0000421015 00000 n -0000416149 00000 n -0000421461 00000 n -0000421585 00000 n -0000421162 00000 n -0000421311 00000 n -0000425601 00000 n -0000425129 00000 n -0000421770 00000 n -0000425418 00000 n -0000425540 00000 n -0000425268 00000 n -0000433526 00000 n -0000432648 00000 n -0000425724 00000 n -0000433092 00000 n -0000433216 00000 n -0000432795 00000 n -0000432944 00000 n -0000433278 00000 n -0000433340 00000 n -0000433402 00000 n -0000433464 00000 n -0000832937 00000 n -0000442743 00000 n -0000441956 00000 n -0000433662 00000 n -0000442560 00000 n -0000442682 00000 n -0000442111 00000 n -0000442261 00000 n -0000442410 00000 n -0000447017 00000 n -0000446464 00000 n -0000442879 00000 n -0000446583 00000 n -0000446645 00000 n -0000446707 00000 n -0000446769 00000 n -0000446831 00000 n -0000446893 00000 n -0000446955 00000 n -0000456646 00000 n -0000455773 00000 n -0000447127 00000 n -0000456219 00000 n -0000456341 00000 n -0000455920 00000 n -0000456071 00000 n -0000456402 00000 n -0000456463 00000 n -0000456524 00000 n -0000456585 00000 n -0000458770 00000 n -0000458465 00000 n -0000456769 00000 n -0000458584 00000 n -0000458646 00000 n -0000458708 00000 n -0000463922 00000 n -0000463293 00000 n -0000458854 00000 n -0000463739 00000 n -0000463861 00000 n -0000463440 00000 n -0000463588 00000 n -0000470430 00000 n -0000469675 00000 n -0000464045 00000 n -0000470120 00000 n -0000470244 00000 n -0000469822 00000 n -0000469970 00000 n -0000470306 00000 n -0000470368 00000 n -0000833055 00000 n -0000475861 00000 n -0000475390 00000 n -0000470553 00000 n -0000475678 00000 n -0000475800 00000 n -0000475529 00000 n -0000484129 00000 n -0000483654 00000 n -0000475997 00000 n -0000483943 00000 n -0000484067 00000 n -0000483793 00000 n -0000485822 00000 n -0000485459 00000 n -0000484265 00000 n -0000485578 00000 n -0000485639 00000 n -0000485700 00000 n -0000485761 00000 n -0000490389 00000 n -0000489914 00000 n -0000485906 00000 n -0000490203 00000 n -0000490327 00000 n -0000490053 00000 n -0000494970 00000 n -0000494498 00000 n -0000490512 00000 n -0000494787 00000 n -0000494909 00000 n -0000494637 00000 n -0000501290 00000 n -0000500814 00000 n -0000495093 00000 n -0000501104 00000 n -0000501228 00000 n -0000500953 00000 n -0000833173 00000 n -0000509991 00000 n -0000509518 00000 n -0000501439 00000 n -0000509808 00000 n -0000509930 00000 n -0000509657 00000 n -0000518688 00000 n -0000518213 00000 n -0000510127 00000 n -0000518502 00000 n -0000518626 00000 n -0000518352 00000 n -0000519673 00000 n -0000519432 00000 n -0000518824 00000 n -0000519551 00000 n -0000529096 00000 n -0000528309 00000 n -0000519757 00000 n -0000528911 00000 n -0000529034 00000 n -0000528464 00000 n -0000528612 00000 n -0000528762 00000 n -0000534264 00000 n -0000534084 00000 n -0000529270 00000 n -0000534203 00000 n -0000543723 00000 n -0000542936 00000 n -0000534374 00000 n -0000543538 00000 n -0000543661 00000 n -0000543091 00000 n -0000543239 00000 n -0000543389 00000 n -0000833291 00000 n -0000548891 00000 n -0000548711 00000 n -0000543897 00000 n -0000548830 00000 n -0000558371 00000 n -0000557584 00000 n -0000549001 00000 n -0000558186 00000 n -0000558309 00000 n -0000557739 00000 n -0000557887 00000 n -0000558037 00000 n -0000563539 00000 n -0000563359 00000 n -0000558545 00000 n -0000563478 00000 n -0000573037 00000 n -0000572250 00000 n -0000563649 00000 n -0000572851 00000 n -0000572975 00000 n -0000572405 00000 n -0000572553 00000 n -0000572702 00000 n -0000578205 00000 n -0000578025 00000 n -0000573211 00000 n -0000578144 00000 n -0000587876 00000 n -0000587089 00000 n -0000578315 00000 n -0000587690 00000 n -0000705149 00000 n -0000702510 00000 n -0000704984 00000 n -0000587814 00000 n -0000587244 00000 n -0000587392 00000 n -0000587541 00000 n -0000833409 00000 n -0000593556 00000 n -0000593376 00000 n -0000588063 00000 n -0000593495 00000 n -0000603054 00000 n -0000602267 00000 n -0000593666 00000 n -0000602869 00000 n -0000602992 00000 n -0000602422 00000 n -0000602570 00000 n -0000602720 00000 n -0000608722 00000 n -0000608542 00000 n -0000603228 00000 n -0000608661 00000 n -0000612127 00000 n -0000611884 00000 n -0000608832 00000 n -0000612003 00000 n -0000621793 00000 n -0000620713 00000 n -0000612224 00000 n -0000621490 00000 n -0000621611 00000 n -0000620876 00000 n -0000621672 00000 n -0000621026 00000 n -0000621181 00000 n -0000621336 00000 n -0000701291 00000 n -0000698690 00000 n -0000701130 00000 n -0000621732 00000 n -0000698270 00000 n -0000693657 00000 n -0000698108 00000 n -0000691993 00000 n -0000683767 00000 n -0000626201 00000 n -0000625846 00000 n -0000621967 00000 n -0000626139 00000 n -0000625985 00000 n -0000833527 00000 n -0000683391 00000 n -0000633283 00000 n -0000632498 00000 n -0000626311 00000 n -0000633100 00000 n -0000633222 00000 n -0000632653 00000 n -0000632801 00000 n -0000632951 00000 n -0000641448 00000 n -0000640752 00000 n -0000633419 00000 n -0000641201 00000 n -0000641325 00000 n -0000641387 00000 n -0000640899 00000 n -0000641050 00000 n -0000644679 00000 n -0000644206 00000 n -0000641584 00000 n -0000644496 00000 n -0000644618 00000 n -0000644345 00000 n -0000653032 00000 n -0000652462 00000 n -0000644802 00000 n -0000652908 00000 n -0000652609 00000 n -0000652758 00000 n -0000657900 00000 n -0000657963 00000 n -0000658026 00000 n -0000657715 00000 n -0000653129 00000 n -0000657837 00000 n -0000663128 00000 n -0000662814 00000 n -0000658124 00000 n -0000662937 00000 n -0000663064 00000 n -0000833646 00000 n -0000665312 00000 n -0000665001 00000 n -0000663239 00000 n -0000665124 00000 n -0000665249 00000 n -0000667789 00000 n -0000667475 00000 n -0000665423 00000 n -0000667598 00000 n -0000667725 00000 n -0000670577 00000 n -0000670266 00000 n -0000667900 00000 n -0000670389 00000 n -0000670514 00000 n -0000673294 00000 n -0000672980 00000 n -0000670688 00000 n -0000673103 00000 n -0000673230 00000 n -0000683829 00000 n -0000682831 00000 n -0000673405 00000 n -0000682954 00000 n -0000683017 00000 n -0000683265 00000 n -0000683328 00000 n -0000683453 00000 n -0000683516 00000 n -0000683579 00000 n -0000683642 00000 n -0000683705 00000 n -0000692625 00000 n -0000691806 00000 n -0000683940 00000 n -0000691929 00000 n -0000692245 00000 n -0000692309 00000 n -0000692497 00000 n -0000692561 00000 n -0000833771 00000 n -0000692710 00000 n -0000698495 00000 n -0000701489 00000 n -0000701514 00000 n -0000705349 00000 n -0000705374 00000 n -0000709582 00000 n -0000712933 00000 n -0000718553 00000 n -0000718725 00000 n -0000728044 00000 n -0000731309 00000 n -0000743602 00000 n -0000748128 00000 n -0000759607 00000 n -0000759932 00000 n -0000777410 00000 n -0000796180 00000 n -0000811561 00000 n -0000819172 00000 n -0000831628 00000 n -0000833851 00000 n -0000833971 00000 n -0000834091 00000 n -0000834197 00000 n -0000834279 00000 n -0000840251 00000 n -0000846779 00000 n -0000846820 00000 n -0000846860 00000 n -0000847196 00000 n +0000002528 00000 n +0000400640 00000 n +0000859741 00000 n +0000002577 00000 n +0000002608 00000 n +0000407212 00000 n +0000859648 00000 n +0000002657 00000 n +0000002688 00000 n +0000410874 00000 n +0000859555 00000 n +0000002737 00000 n +0000002768 00000 n +0000413780 00000 n +0000859462 00000 n +0000002817 00000 n +0000002851 00000 n +0000422155 00000 n +0000859369 00000 n +0000002900 00000 n +0000002932 00000 n +0000432982 00000 n +0000859276 00000 n +0000002981 00000 n +0000003013 00000 n +0000437507 00000 n +0000859183 00000 n +0000003062 00000 n +0000003094 00000 n +0000443248 00000 n +0000859090 00000 n +0000003143 00000 n +0000003175 00000 n +0000447204 00000 n +0000858997 00000 n +0000003224 00000 n +0000003257 00000 n +0000454879 00000 n +0000858904 00000 n +0000003306 00000 n +0000003338 00000 n +0000464346 00000 n +0000858811 00000 n +0000003387 00000 n +0000003419 00000 n +0000478005 00000 n +0000858718 00000 n +0000003468 00000 n +0000003500 00000 n +0000485525 00000 n +0000858625 00000 n +0000003549 00000 n +0000003582 00000 n +0000491907 00000 n +0000858532 00000 n +0000003631 00000 n +0000003662 00000 n +0000497464 00000 n +0000858439 00000 n +0000003711 00000 n +0000003743 00000 n +0000505730 00000 n +0000858346 00000 n +0000003792 00000 n +0000003824 00000 n +0000511990 00000 n +0000858253 00000 n +0000003873 00000 n +0000003905 00000 n +0000516573 00000 n +0000858160 00000 n +0000003954 00000 n +0000003987 00000 n +0000522891 00000 n +0000858067 00000 n +0000004036 00000 n +0000004067 00000 n +0000531594 00000 n +0000857974 00000 n +0000004116 00000 n +0000004160 00000 n +0000540289 00000 n +0000857895 00000 n +0000004209 00000 n +0000004253 00000 n +0000541337 00000 n +0000857765 00000 n +0000004300 00000 n +0000004339 00000 n +0000550698 00000 n +0000857686 00000 n +0000004388 00000 n +0000004418 00000 n +0000565325 00000 n +0000857593 00000 n +0000004467 00000 n +0000004498 00000 n +0000579973 00000 n +0000857500 00000 n +0000004547 00000 n +0000004579 00000 n +0000594638 00000 n +0000857407 00000 n +0000004628 00000 n +0000004664 00000 n +0000609477 00000 n +0000857314 00000 n +0000004713 00000 n +0000004750 00000 n +0000624656 00000 n +0000857235 00000 n +0000004799 00000 n +0000004832 00000 n +0000633790 00000 n +0000857105 00000 n +0000004879 00000 n +0000004924 00000 n +0000643282 00000 n +0000857026 00000 n +0000004973 00000 n +0000005007 00000 n +0000654916 00000 n +0000856933 00000 n +0000005057 00000 n +0000005091 00000 n +0000663033 00000 n +0000856840 00000 n +0000005141 00000 n +0000005176 00000 n +0000666342 00000 n +0000856761 00000 n +0000005226 00000 n +0000005266 00000 n +0000674770 00000 n +0000856645 00000 n +0000005313 00000 n +0000005349 00000 n +0000684806 00000 n +0000856566 00000 n +0000005399 00000 n +0000005433 00000 n +0000686992 00000 n +0000856473 00000 n +0000005483 00000 n +0000005515 00000 n +0000689467 00000 n +0000856380 00000 n +0000005565 00000 n +0000005611 00000 n +0000692257 00000 n +0000856287 00000 n +0000005661 00000 n +0000005704 00000 n +0000694972 00000 n +0000856208 00000 n +0000005754 00000 n +0000005788 00000 n +0000006853 00000 n +0000007153 00000 n +0000005840 00000 n +0000006972 00000 n +0000007033 00000 n +0000853078 00000 n +0000841171 00000 n +0000852914 00000 n +0000840746 00000 n +0000833755 00000 n +0000840582 00000 n +0000832948 00000 n +0000818408 00000 n +0000832784 00000 n +0000817485 00000 n +0000799597 00000 n +0000817322 00000 n +0000853811 00000 n +0000043167 00000 n +0000035950 00000 n +0000007263 00000 n +0000043045 00000 n +0000043106 00000 n +0000036425 00000 n +0000036576 00000 n +0000036726 00000 n +0000036883 00000 n +0000037040 00000 n +0000037190 00000 n +0000037346 00000 n +0000037507 00000 n +0000037664 00000 n +0000037825 00000 n +0000037982 00000 n +0000038144 00000 n +0000038291 00000 n +0000038444 00000 n +0000038597 00000 n +0000038750 00000 n +0000038903 00000 n +0000039057 00000 n +0000039211 00000 n +0000039365 00000 n +0000039519 00000 n +0000039672 00000 n +0000039826 00000 n +0000039977 00000 n +0000040131 00000 n +0000040285 00000 n +0000040439 00000 n +0000040593 00000 n +0000040743 00000 n +0000040897 00000 n +0000041051 00000 n +0000041205 00000 n +0000041359 00000 n +0000041511 00000 n +0000041665 00000 n +0000041818 00000 n +0000041972 00000 n +0000042126 00000 n +0000042279 00000 n +0000042432 00000 n +0000042585 00000 n +0000042739 00000 n +0000042892 00000 n +0000065347 00000 n +0000061271 00000 n +0000043264 00000 n +0000065285 00000 n +0000061594 00000 n +0000061748 00000 n +0000061901 00000 n +0000062055 00000 n +0000062208 00000 n +0000062362 00000 n +0000062515 00000 n +0000062666 00000 n +0000062820 00000 n +0000062973 00000 n +0000063127 00000 n +0000063281 00000 n +0000063435 00000 n +0000063589 00000 n +0000063740 00000 n +0000063894 00000 n +0000064049 00000 n +0000064204 00000 n +0000064358 00000 n +0000064510 00000 n +0000064665 00000 n +0000064820 00000 n +0000064975 00000 n +0000065130 00000 n +0000077891 00000 n +0000076510 00000 n +0000065431 00000 n +0000076697 00000 n +0000076851 00000 n +0000077007 00000 n +0000077161 00000 n +0000077315 00000 n +0000077466 00000 n +0000077618 00000 n +0000798846 00000 n +0000782699 00000 n +0000798682 00000 n +0000781122 00000 n +0000770234 00000 n +0000780958 00000 n +0000714242 00000 n +0000714179 00000 n +0000713927 00000 n +0000713990 00000 n +0000704884 00000 n +0000704946 00000 n +0000705008 00000 n +0000086727 00000 n +0000092238 00000 n +0000086580 00000 n +0000078001 00000 n +0000092114 00000 n +0000091810 00000 n +0000091961 00000 n +0000092176 00000 n +0000769646 00000 n +0000765723 00000 n +0000769483 00000 n +0000087370 00000 n +0000087426 00000 n +0000087506 00000 n +0000088546 00000 n +0000088567 00000 n +0000088898 00000 n +0000091788 00000 n +0000713864 00000 n +0000103534 00000 n +0000102962 00000 n +0000092363 00000 n +0000103413 00000 n +0000765025 00000 n +0000753152 00000 n +0000764861 00000 n +0000103109 00000 n +0000103261 00000 n +0000752929 00000 n +0000750125 00000 n +0000752765 00000 n +0000115612 00000 n +0000114442 00000 n +0000103682 00000 n +0000114561 00000 n +0000114623 00000 n +0000114685 00000 n +0000114747 00000 n +0000114809 00000 n +0000114871 00000 n +0000114933 00000 n +0000114995 00000 n +0000115057 00000 n +0000115119 00000 n +0000115181 00000 n +0000115241 00000 n +0000115302 00000 n +0000115364 00000 n +0000115426 00000 n +0000115488 00000 n +0000115550 00000 n +0000853929 00000 n +0000125318 00000 n +0000124773 00000 n +0000115734 00000 n +0000124892 00000 n +0000124953 00000 n +0000125014 00000 n +0000125075 00000 n +0000125136 00000 n +0000125197 00000 n +0000139366 00000 n +0000138691 00000 n +0000125441 00000 n +0000138810 00000 n +0000138994 00000 n +0000139056 00000 n +0000139118 00000 n +0000139180 00000 n +0000139242 00000 n +0000139304 00000 n +0000149336 00000 n +0000148667 00000 n +0000139476 00000 n +0000148786 00000 n +0000148847 00000 n +0000148908 00000 n +0000148969 00000 n +0000149030 00000 n +0000149091 00000 n +0000149152 00000 n +0000149213 00000 n +0000149274 00000 n +0000162348 00000 n +0000161983 00000 n +0000149446 00000 n +0000162102 00000 n +0000162286 00000 n +0000172659 00000 n +0000172246 00000 n +0000162458 00000 n +0000172536 00000 n +0000172385 00000 n +0000172597 00000 n +0000187256 00000 n +0000186473 00000 n +0000172756 00000 n +0000186763 00000 n +0000186825 00000 n +0000186887 00000 n +0000186949 00000 n +0000187011 00000 n +0000187194 00000 n +0000186612 00000 n +0000854047 00000 n +0000197333 00000 n +0000197455 00000 n +0000197153 00000 n +0000187392 00000 n +0000197272 00000 n +0000749527 00000 n +0000741562 00000 n +0000749364 00000 n +0000199788 00000 n +0000199607 00000 n +0000197578 00000 n +0000199726 00000 n +0000200507 00000 n +0000200267 00000 n +0000199872 00000 n +0000200386 00000 n +0000210831 00000 n +0000209664 00000 n +0000200591 00000 n +0000210585 00000 n +0000210708 00000 n +0000210770 00000 n +0000209835 00000 n +0000209985 00000 n +0000210135 00000 n +0000210285 00000 n +0000210435 00000 n +0000213393 00000 n +0000213043 00000 n +0000210980 00000 n +0000213332 00000 n +0000213182 00000 n +0000223497 00000 n +0000222489 00000 n +0000213490 00000 n +0000223251 00000 n +0000740148 00000 n +0000734812 00000 n +0000739985 00000 n +0000223374 00000 n +0000223436 00000 n +0000222652 00000 n +0000222801 00000 n +0000222951 00000 n +0000223101 00000 n +0000854165 00000 n +0000224815 00000 n +0000224635 00000 n +0000223659 00000 n +0000224754 00000 n +0000235263 00000 n +0000234254 00000 n +0000224912 00000 n +0000235016 00000 n +0000235139 00000 n +0000235201 00000 n +0000234417 00000 n +0000234567 00000 n +0000234717 00000 n +0000234867 00000 n +0000236400 00000 n +0000236220 00000 n +0000235425 00000 n +0000236339 00000 n +0000245225 00000 n +0000244532 00000 n +0000236484 00000 n +0000244978 00000 n +0000245101 00000 n +0000245163 00000 n +0000244679 00000 n +0000244829 00000 n +0000253215 00000 n +0000252525 00000 n +0000245387 00000 n +0000252971 00000 n +0000253092 00000 n +0000253153 00000 n +0000252672 00000 n +0000252820 00000 n +0000261794 00000 n +0000261100 00000 n +0000253377 00000 n +0000261547 00000 n +0000734538 00000 n +0000731526 00000 n +0000734377 00000 n +0000261670 00000 n +0000261732 00000 n +0000261247 00000 n +0000261397 00000 n +0000854283 00000 n +0000270505 00000 n +0000269815 00000 n +0000261968 00000 n +0000270261 00000 n +0000270382 00000 n +0000270444 00000 n +0000269962 00000 n +0000270110 00000 n +0000278585 00000 n +0000277893 00000 n +0000270667 00000 n +0000278338 00000 n +0000731188 00000 n +0000728850 00000 n +0000731027 00000 n +0000278461 00000 n +0000278523 00000 n +0000278040 00000 n +0000278188 00000 n +0000290014 00000 n +0000288984 00000 n +0000278747 00000 n +0000289585 00000 n +0000289706 00000 n +0000289767 00000 n +0000289829 00000 n +0000289891 00000 n +0000289953 00000 n +0000289139 00000 n +0000289289 00000 n +0000289438 00000 n +0000300221 00000 n +0000298915 00000 n +0000290188 00000 n +0000300159 00000 n +0000299102 00000 n +0000299251 00000 n +0000299401 00000 n +0000299551 00000 n +0000299704 00000 n +0000299857 00000 n +0000300009 00000 n +0000309943 00000 n +0000309581 00000 n +0000300331 00000 n +0000309700 00000 n +0000309821 00000 n +0000309882 00000 n +0000321999 00000 n +0000320855 00000 n +0000310117 00000 n +0000321937 00000 n +0000321034 00000 n +0000321184 00000 n +0000321335 00000 n +0000321486 00000 n +0000321637 00000 n +0000321787 00000 n +0000854401 00000 n +0000328039 00000 n +0000327531 00000 n +0000322135 00000 n +0000327978 00000 n +0000327678 00000 n +0000327829 00000 n +0000328795 00000 n +0000328553 00000 n +0000328149 00000 n +0000328672 00000 n +0000337710 00000 n +0000336857 00000 n +0000328879 00000 n +0000337465 00000 n +0000337587 00000 n +0000337649 00000 n +0000337012 00000 n +0000337163 00000 n +0000337314 00000 n +0000340401 00000 n +0000340049 00000 n +0000337859 00000 n +0000340339 00000 n +0000340188 00000 n +0000350892 00000 n +0000350201 00000 n +0000340498 00000 n +0000350649 00000 n +0000350771 00000 n +0000350833 00000 n +0000350348 00000 n +0000350499 00000 n +0000356853 00000 n +0000356255 00000 n +0000351054 00000 n +0000356545 00000 n +0000356394 00000 n +0000356607 00000 n +0000356667 00000 n +0000356729 00000 n +0000356791 00000 n +0000854519 00000 n +0000368495 00000 n +0000367741 00000 n +0000356976 00000 n +0000368190 00000 n +0000368312 00000 n +0000368374 00000 n +0000368434 00000 n +0000367888 00000 n +0000368039 00000 n +0000375948 00000 n +0000375767 00000 n +0000368682 00000 n +0000375886 00000 n +0000386830 00000 n +0000386234 00000 n +0000376058 00000 n +0000386524 00000 n +0000386646 00000 n +0000386708 00000 n +0000386769 00000 n +0000386373 00000 n +0000395193 00000 n +0000394841 00000 n +0000387017 00000 n +0000395131 00000 n +0000394980 00000 n +0000396022 00000 n +0000395781 00000 n +0000395303 00000 n +0000395900 00000 n +0000400950 00000 n +0000400459 00000 n +0000396106 00000 n +0000400578 00000 n +0000400702 00000 n +0000400764 00000 n +0000400826 00000 n +0000400888 00000 n +0000854637 00000 n +0000407517 00000 n +0000407032 00000 n +0000401073 00000 n +0000407151 00000 n +0000407273 00000 n +0000407334 00000 n +0000407395 00000 n +0000407456 00000 n +0000411122 00000 n +0000410693 00000 n +0000407666 00000 n +0000410812 00000 n +0000410936 00000 n +0000410998 00000 n +0000411060 00000 n +0000413902 00000 n +0000413600 00000 n +0000411271 00000 n +0000413719 00000 n +0000413841 00000 n +0000422279 00000 n +0000421974 00000 n +0000414012 00000 n +0000422093 00000 n +0000422217 00000 n +0000426430 00000 n +0000425959 00000 n +0000422415 00000 n +0000426247 00000 n +0000426098 00000 n +0000426308 00000 n +0000426369 00000 n +0000433229 00000 n +0000432631 00000 n +0000426553 00000 n +0000432920 00000 n +0000433044 00000 n +0000432770 00000 n +0000433106 00000 n +0000433168 00000 n +0000854755 00000 n +0000437751 00000 n +0000437156 00000 n +0000433365 00000 n +0000437446 00000 n +0000437568 00000 n +0000437295 00000 n +0000437629 00000 n +0000437690 00000 n +0000443372 00000 n +0000442740 00000 n +0000437874 00000 n +0000443186 00000 n +0000443310 00000 n +0000442887 00000 n +0000443036 00000 n +0000447326 00000 n +0000446854 00000 n +0000443495 00000 n +0000447143 00000 n +0000447265 00000 n +0000446993 00000 n +0000455251 00000 n +0000454373 00000 n +0000447449 00000 n +0000454817 00000 n +0000454941 00000 n +0000454520 00000 n +0000454669 00000 n +0000455003 00000 n +0000455065 00000 n +0000455127 00000 n +0000455189 00000 n +0000464468 00000 n +0000463681 00000 n +0000455387 00000 n +0000464285 00000 n +0000464407 00000 n +0000463836 00000 n +0000463986 00000 n +0000464135 00000 n +0000468742 00000 n +0000468189 00000 n +0000464604 00000 n +0000468308 00000 n +0000468370 00000 n +0000468432 00000 n +0000468494 00000 n +0000468556 00000 n +0000468618 00000 n +0000468680 00000 n +0000854873 00000 n +0000478371 00000 n +0000477498 00000 n +0000468852 00000 n +0000477944 00000 n +0000478066 00000 n +0000477645 00000 n +0000477796 00000 n +0000478127 00000 n +0000478188 00000 n +0000478249 00000 n +0000478310 00000 n +0000480495 00000 n +0000480190 00000 n +0000478494 00000 n +0000480309 00000 n +0000480371 00000 n +0000480433 00000 n +0000485647 00000 n +0000485018 00000 n +0000480579 00000 n +0000485464 00000 n +0000485586 00000 n +0000485165 00000 n +0000485313 00000 n +0000492155 00000 n +0000491400 00000 n +0000485770 00000 n +0000491845 00000 n +0000491969 00000 n +0000491547 00000 n +0000491695 00000 n +0000492031 00000 n +0000492093 00000 n +0000497586 00000 n +0000497115 00000 n +0000492278 00000 n +0000497403 00000 n +0000497525 00000 n +0000497254 00000 n +0000505854 00000 n +0000505379 00000 n +0000497722 00000 n +0000505668 00000 n +0000505792 00000 n +0000505518 00000 n +0000854991 00000 n +0000507547 00000 n +0000507184 00000 n +0000505990 00000 n +0000507303 00000 n +0000507364 00000 n +0000507425 00000 n +0000507486 00000 n +0000512114 00000 n +0000511639 00000 n +0000507631 00000 n +0000511928 00000 n +0000512052 00000 n +0000511778 00000 n +0000516695 00000 n +0000516223 00000 n +0000512237 00000 n +0000516512 00000 n +0000516634 00000 n +0000516362 00000 n +0000523015 00000 n +0000522539 00000 n +0000516818 00000 n +0000522829 00000 n +0000522953 00000 n +0000522678 00000 n +0000531716 00000 n +0000531243 00000 n +0000523164 00000 n +0000531533 00000 n +0000531655 00000 n +0000531382 00000 n +0000540413 00000 n +0000539938 00000 n +0000531852 00000 n +0000540227 00000 n +0000540351 00000 n +0000540077 00000 n +0000855109 00000 n +0000541398 00000 n +0000541157 00000 n +0000540549 00000 n +0000541276 00000 n +0000550821 00000 n +0000550034 00000 n +0000541482 00000 n +0000550636 00000 n +0000550759 00000 n +0000550189 00000 n +0000550337 00000 n +0000550487 00000 n +0000555989 00000 n +0000555809 00000 n +0000550995 00000 n +0000555928 00000 n +0000565448 00000 n +0000564661 00000 n +0000556099 00000 n +0000565263 00000 n +0000565386 00000 n +0000564816 00000 n +0000564964 00000 n +0000565114 00000 n +0000570616 00000 n +0000570436 00000 n +0000565622 00000 n +0000570555 00000 n +0000580096 00000 n +0000579309 00000 n +0000570726 00000 n +0000579911 00000 n +0000580034 00000 n +0000579464 00000 n +0000579612 00000 n +0000579762 00000 n +0000855227 00000 n +0000585264 00000 n +0000585084 00000 n +0000580270 00000 n +0000585203 00000 n +0000594762 00000 n +0000593975 00000 n +0000585374 00000 n +0000594576 00000 n +0000594700 00000 n +0000594130 00000 n +0000594278 00000 n +0000594427 00000 n +0000599930 00000 n +0000599750 00000 n +0000594936 00000 n +0000599869 00000 n +0000609601 00000 n +0000608814 00000 n +0000600040 00000 n +0000609415 00000 n +0000726967 00000 n +0000724328 00000 n +0000726802 00000 n +0000609539 00000 n +0000608969 00000 n +0000609117 00000 n +0000609266 00000 n +0000615281 00000 n +0000615101 00000 n +0000609788 00000 n +0000615220 00000 n +0000624779 00000 n +0000623992 00000 n +0000615391 00000 n +0000624594 00000 n +0000624717 00000 n +0000624147 00000 n +0000624295 00000 n +0000624445 00000 n +0000855345 00000 n +0000630447 00000 n +0000630267 00000 n +0000624953 00000 n +0000630386 00000 n +0000633852 00000 n +0000633609 00000 n +0000630557 00000 n +0000633728 00000 n +0000643525 00000 n +0000642438 00000 n +0000633949 00000 n +0000643221 00000 n +0000643342 00000 n +0000642604 00000 n +0000643403 00000 n +0000642754 00000 n +0000642910 00000 n +0000643066 00000 n +0000723107 00000 n +0000720503 00000 n +0000722944 00000 n +0000643463 00000 n +0000720081 00000 n +0000715465 00000 n +0000719917 00000 n +0000713800 00000 n +0000705573 00000 n +0000647943 00000 n +0000647581 00000 n +0000643701 00000 n +0000647879 00000 n +0000647724 00000 n +0000705196 00000 n +0000655041 00000 n +0000654242 00000 n +0000648054 00000 n +0000654853 00000 n +0000654978 00000 n +0000654403 00000 n +0000654552 00000 n +0000654703 00000 n +0000663223 00000 n +0000662512 00000 n +0000655178 00000 n +0000662969 00000 n +0000663096 00000 n +0000663160 00000 n +0000662665 00000 n +0000662817 00000 n +0000855465 00000 n +0000666467 00000 n +0000665983 00000 n +0000663360 00000 n +0000666279 00000 n +0000666404 00000 n +0000666127 00000 n +0000674833 00000 n +0000674252 00000 n +0000666591 00000 n +0000674706 00000 n +0000674405 00000 n +0000674555 00000 n +0000679703 00000 n +0000679767 00000 n +0000679831 00000 n +0000679517 00000 n +0000674931 00000 n +0000679640 00000 n +0000684933 00000 n +0000684619 00000 n +0000679929 00000 n +0000684742 00000 n +0000684869 00000 n +0000687117 00000 n +0000686806 00000 n +0000685044 00000 n +0000686929 00000 n +0000687054 00000 n +0000689594 00000 n +0000689280 00000 n +0000687228 00000 n +0000689403 00000 n +0000689530 00000 n +0000855590 00000 n +0000692382 00000 n +0000692071 00000 n +0000689705 00000 n +0000692194 00000 n +0000692319 00000 n +0000695099 00000 n +0000694785 00000 n +0000692493 00000 n +0000694908 00000 n +0000695035 00000 n +0000705636 00000 n +0000704636 00000 n +0000695210 00000 n +0000704759 00000 n +0000704822 00000 n +0000705070 00000 n +0000705133 00000 n +0000705259 00000 n +0000705322 00000 n +0000705385 00000 n +0000705448 00000 n +0000705511 00000 n +0000714433 00000 n +0000713613 00000 n +0000705747 00000 n +0000713736 00000 n +0000714053 00000 n +0000714117 00000 n +0000714305 00000 n +0000714369 00000 n +0000714518 00000 n +0000720308 00000 n +0000723307 00000 n +0000723332 00000 n +0000727167 00000 n +0000727192 00000 n +0000731400 00000 n +0000734751 00000 n +0000740371 00000 n +0000740543 00000 n +0000749862 00000 n +0000753127 00000 n +0000765420 00000 n +0000769946 00000 n +0000781425 00000 n +0000781750 00000 n +0000799228 00000 n +0000817998 00000 n +0000833379 00000 n +0000840990 00000 n +0000853446 00000 n +0000855706 00000 n +0000855826 00000 n +0000855946 00000 n +0000856052 00000 n +0000856134 00000 n +0000862478 00000 n +0000869436 00000 n +0000869477 00000 n +0000869517 00000 n +0000869853 00000 n trailer << -/Size 1082 -/Root 1080 0 R -/Info 1081 0 R +/Size 1130 +/Root 1128 0 R +/Info 1129 0 R >> startxref -847661 +870318 %%EOF diff --git a/src/comm/psb_dgather.f90 b/src/comm/psb_dgather.f90 index 31a91048..ef3610b5 100644 --- a/src/comm/psb_dgather.f90 +++ b/src/comm/psb_dgather.f90 @@ -61,7 +61,7 @@ subroutine psb_dgatherm(globx, locx, desc_a, info, iroot,& ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, n, iix, jjx, temp(2), root, iiroot, ilocx, iglobx, jlocx,& & jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, ilx, i, j, idx real(kind(1.d0)),pointer :: tmpx(:) @@ -72,10 +72,10 @@ subroutine psb_dgatherm(globx, locx, desc_a, info, iroot,& info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -147,9 +147,9 @@ subroutine psb_dgatherm(globx, locx, desc_a, info, iroot,& end if if (myrow == iiroot) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) end if ! there should be a global check on k here!!! @@ -186,7 +186,7 @@ subroutine psb_dgatherm(globx, locx, desc_a, info, iroot,& end do end do - call dgsum2d(icontxt,'a',' ',m,k,globx(1,jglobx),size(globx,1),root,mycol) + call dgsum2d(ictxt,'a',' ',m,k,globx(1,jglobx),size(globx,1),root,mycol) call psb_erractionrestore(err_act) return @@ -195,7 +195,7 @@ subroutine psb_dgatherm(globx, locx, desc_a, info, iroot,& call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -265,7 +265,7 @@ subroutine psb_dgatherv(globx, locx, desc_a, info, iroot,& ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, n, iix, jjx, temp(2), root, iiroot, ilocx, iglobx, jlocx,& & jglobx, lda_locx, lda_globx, lock, maxk, globk, m, k, jlx, ilx, i, j, idx real(kind(1.d0)),pointer :: tmpx(:) @@ -276,10 +276,10 @@ subroutine psb_dgatherv(globx, locx, desc_a, info, iroot,& info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -329,9 +329,9 @@ subroutine psb_dgatherv(globx, locx, desc_a, info, iroot,& k = 1 if (myrow == root) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, root, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, root, 0) end if ! there should be a global check on k here!!! @@ -366,7 +366,7 @@ subroutine psb_dgatherv(globx, locx, desc_a, info, iroot,& i=i+2 end do - call dgsum2d(icontxt,'a',' ',m,k,globx,size(globx),root,mycol) + call dgsum2d(ictxt,'a',' ',m,k,globx,size(globx),root,mycol) call psb_erractionrestore(err_act) return @@ -375,7 +375,7 @@ subroutine psb_dgatherv(globx, locx, desc_a, info, iroot,& call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_dhalo.f90 b/src/comm/psb_dhalo.f90 index e81f49d1..12b4b6bb 100644 --- a/src/comm/psb_dhalo.f90 +++ b/src/comm/psb_dhalo.f90 @@ -62,7 +62,7 @@ subroutine psb_dhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) character, intent(in), optional :: tran ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, k, maxk, nrow, imode, i,& & err, liwork, ncol real(kind(1.d0)),pointer :: iwork(:), xp(:,:) @@ -74,10 +74,10 @@ subroutine psb_dhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -137,7 +137,7 @@ subroutine psb_dhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 if(present(alpha)) then @@ -203,7 +203,7 @@ subroutine psb_dhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -273,7 +273,7 @@ subroutine psb_dhalov(x,desc_a,info,alpha,work,tran,mode) character, intent(in), optional :: tran ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, k, maxk, nrow, imode, i,& & err, liwork, ncol real(kind(1.d0)),pointer :: iwork(:) @@ -285,10 +285,10 @@ subroutine psb_dhalov(x,desc_a,info,alpha,work,tran,mode) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -332,7 +332,7 @@ subroutine psb_dhalov(x,desc_a,info,alpha,work,tran,mode) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 if(present(alpha)) then @@ -389,7 +389,7 @@ subroutine psb_dhalov(x,desc_a,info,alpha,work,tran,mode) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_dovrl.f90 b/src/comm/psb_dovrl.f90 index 8c0cdbd8..ba5b4f0c 100644 --- a/src/comm/psb_dovrl.f90 +++ b/src/comm/psb_dovrl.f90 @@ -58,7 +58,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update) integer, intent(in), optional :: update,jx,ik ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, nrow, ncol, k, maxk, iupdate,& & imode, err, liwork, i real(kind(1.d0)),pointer :: iwork(:), xp(:,:) @@ -70,10 +70,10 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -132,7 +132,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 ! check for presence/size of a work area @@ -208,7 +208,7 @@ subroutine psb_dovrlm(x,desc_a,info,jx,ik,work,update) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -275,7 +275,7 @@ subroutine psb_dovrlv(x,desc_a,info,work,update) integer, intent(in), optional :: update ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, nrow, ncol, k, maxk, iupdate,& & imode, err, liwork, i real(kind(1.d0)),pointer :: iwork(:) @@ -287,10 +287,10 @@ subroutine psb_dovrlv(x,desc_a,info,work,update) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -335,7 +335,7 @@ subroutine psb_dovrlv(x,desc_a,info,work,update) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 ! check for presence/size of a work area @@ -410,7 +410,7 @@ subroutine psb_dovrlv(x,desc_a,info,work,update) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_dscatter.f90 b/src/comm/psb_dscatter.f90 index 13a97bcc..b51f50d2 100644 --- a/src/comm/psb_dscatter.f90 +++ b/src/comm/psb_dscatter.f90 @@ -65,7 +65,7 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, iroot,& ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), i, j, idx, nrow, iiroot, iglobx, jglobx,& & ilocx, jlocx, lda_locx, lda_globx, lock, globk, icomm, k, maxk, root, ilx,& & jlx, myrank, rootrank, c, pos @@ -79,10 +79,10 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, iroot,& info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -153,8 +153,8 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, iroot,& k = maxk end if - call blacs_get(icontxt,10,icomm) - myrank = blacs_pnum(icontxt,myrow,mycol) + call blacs_get(ictxt,10,icomm) + myrank = blacs_pnum(ictxt,myrow,mycol) lda_globx = size(globx) lda_locx = size(locx) @@ -163,9 +163,9 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, iroot,& n = desc_a%matrix_data(psb_n_) if (myrow == iiroot) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) end if ! there should be a global check on k here!!! @@ -196,7 +196,7 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, iroot,& end do end do else - rootrank = blacs_pnum(icontxt,root,mycol) + rootrank = blacs_pnum(ictxt,root,mycol) end if ! root has to gather size information @@ -258,7 +258,7 @@ subroutine psb_dscatterm(globx, locx, desc_a, info, iroot,& call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -326,7 +326,7 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, iroot) ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), i, j, idx, nrow, iiroot, iglobx, jglobx,& & ilocx, jlocx, lda_locx, lda_globx, lock, globk, root, k, maxk, icomm, myrank,& & rootrank, c, pos, ilx, jlx @@ -340,10 +340,10 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, iroot) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -367,8 +367,8 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, iroot) root = -1 end if - call blacs_get(icontxt,10,icomm) - myrank = blacs_pnum(icontxt,myrow,mycol) + call blacs_get(ictxt,10,icomm) + myrank = blacs_pnum(ictxt,myrow,mycol) lda_globx = size(globx) lda_locx = size(locx) @@ -379,9 +379,9 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, iroot) k = 1 if (myrow == iiroot) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) end if ! there should be a global check on k here!!! @@ -410,7 +410,7 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, iroot) locx(i)=globx(idx) end do else - rootrank = blacs_pnum(icontxt,root,mycol) + rootrank = blacs_pnum(ictxt,root,mycol) end if ! root has to gather size information @@ -454,7 +454,7 @@ subroutine psb_dscatterv(globx, locx, desc_a, info, iroot) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_ihalo.f90 b/src/comm/psb_ihalo.f90 index 7ab1e1ce..c973c59e 100644 --- a/src/comm/psb_ihalo.f90 +++ b/src/comm/psb_ihalo.f90 @@ -63,7 +63,7 @@ subroutine psb_ihalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) character, intent(in), optional :: tran ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, nrow, ncol, k, maxk, liwork,& & imode, err integer, pointer :: xp(:,:), iwork(:) @@ -75,10 +75,10 @@ subroutine psb_ihalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -138,7 +138,7 @@ subroutine psb_ihalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 @@ -199,7 +199,7 @@ subroutine psb_ihalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -269,7 +269,7 @@ subroutine psb_ihalov(x,desc_a,info,alpha,work,tran,mode) character, intent(in), optional :: tran ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, nrow, ncol, k, maxk, imode,& & err, liwork integer,pointer :: iwork(:) @@ -281,10 +281,10 @@ subroutine psb_ihalov(x,desc_a,info,alpha,work,tran,mode) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -330,7 +330,7 @@ subroutine psb_ihalov(x,desc_a,info,alpha,work,tran,mode) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 !!$ if(present(alpha)) then @@ -386,7 +386,7 @@ subroutine psb_ihalov(x,desc_a,info,alpha,work,tran,mode) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_zgather.f90 b/src/comm/psb_zgather.f90 index 95c5519b..0b5e74a3 100644 --- a/src/comm/psb_zgather.f90 +++ b/src/comm/psb_zgather.f90 @@ -62,7 +62,7 @@ subroutine psb_zgatherm(globx, locx, desc_a, info, iroot,& ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, n, iix, jjx, temp(2), root, iiroot, ilocx, iglobx, jlocx,& & jglobx, lda_locx, lda_globx, m, lock, globk, maxk, k, jlx, ilx, i, j, idx complex(kind(1.d0)),pointer :: tmpx(:) @@ -73,10 +73,10 @@ subroutine psb_zgatherm(globx, locx, desc_a, info, iroot,& info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -148,9 +148,9 @@ subroutine psb_zgatherm(globx, locx, desc_a, info, iroot,& end if if (myrow == iiroot) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) end if ! there should be a global check on k here!!! @@ -187,7 +187,7 @@ subroutine psb_zgatherm(globx, locx, desc_a, info, iroot,& end do end do - call gsum2d(icontxt,'a',globx(:,jglobx),rrt=root) + call gsum2d(ictxt,'a',globx(:,jglobx),rrt=root) call psb_erractionrestore(err_act) return @@ -196,7 +196,7 @@ subroutine psb_zgatherm(globx, locx, desc_a, info, iroot,& call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -267,7 +267,7 @@ subroutine psb_zgatherv(globx, locx, desc_a, info, iroot,& ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, n, iix, jjx, temp(2), root, iiroot, ilocx, iglobx, jlocx,& & jglobx, lda_locx, lda_globx, lock, maxk, globk, m, k, jlx, ilx, i, j, idx complex(kind(1.d0)),pointer :: tmpx(:) @@ -278,10 +278,10 @@ subroutine psb_zgatherv(globx, locx, desc_a, info, iroot,& info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -331,9 +331,9 @@ subroutine psb_zgatherv(globx, locx, desc_a, info, iroot,& k = 1 if (myrow == root) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, root, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, root, 0) end if ! there should be a global check on k here!!! @@ -368,7 +368,7 @@ subroutine psb_zgatherv(globx, locx, desc_a, info, iroot,& i=i+2 end do - call dgsum2d(icontxt,'a',' ',m,k,globx,size(globx),root,mycol) + call dgsum2d(ictxt,'a',' ',m,k,globx,size(globx),root,mycol) call psb_erractionrestore(err_act) return @@ -377,7 +377,7 @@ subroutine psb_zgatherv(globx, locx, desc_a, info, iroot,& call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_zhalo.f90 b/src/comm/psb_zhalo.f90 index c0253595..6997c7c8 100644 --- a/src/comm/psb_zhalo.f90 +++ b/src/comm/psb_zhalo.f90 @@ -62,7 +62,7 @@ subroutine psb_zhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) character, intent(in), optional :: tran ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, k, maxk, nrow, imode, i,& & err, liwork, ncol complex(kind(1.d0)),pointer :: iwork(:), xp(:,:) @@ -74,10 +74,10 @@ subroutine psb_zhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -137,7 +137,7 @@ subroutine psb_zhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 if(present(alpha)) then @@ -197,7 +197,7 @@ subroutine psb_zhalom(x,desc_a,info,alpha,jx,ik,work,tran,mode) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -267,7 +267,7 @@ subroutine psb_zhalov(x,desc_a,info,alpha,work,tran,mode) character, intent(in), optional :: tran ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, k, maxk, nrow, imode, i,& & err, liwork, ncol complex(kind(1.d0)),pointer :: iwork(:) @@ -279,10 +279,10 @@ subroutine psb_zhalov(x,desc_a,info,alpha,work,tran,mode) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -326,7 +326,7 @@ subroutine psb_zhalov(x,desc_a,info,alpha,work,tran,mode) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 if(present(alpha)) then @@ -383,7 +383,7 @@ subroutine psb_zhalov(x,desc_a,info,alpha,work,tran,mode) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_zovrl.f90 b/src/comm/psb_zovrl.f90 index 4a72e138..aa9b8d70 100644 --- a/src/comm/psb_zovrl.f90 +++ b/src/comm/psb_zovrl.f90 @@ -58,7 +58,7 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update) integer, intent(in), optional :: update,jx,ik ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, nrow, ncol, k, maxk, iupdate,& & imode, err, liwork, i complex(kind(1.d0)),pointer :: iwork(:), xp(:,:) @@ -70,10 +70,10 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -132,7 +132,7 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 ! check for presence/size of a work area @@ -208,7 +208,7 @@ subroutine psb_zovrlm(x,desc_a,info,jx,ik,work,update) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -275,7 +275,7 @@ subroutine psb_zovrlv(x,desc_a,info,work,update) integer, intent(in), optional :: update ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), ix, ijx, nrow, ncol, k, maxk, iupdate,& & imode, err, liwork, i complex(kind(1.d0)),pointer :: iwork(:) @@ -287,10 +287,10 @@ subroutine psb_zovrlv(x,desc_a,info,work,update) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -335,7 +335,7 @@ subroutine psb_zovrlv(x,desc_a,info,work,update) end if err=info - call psb_errcomm(icontxt,err) + call psb_errcomm(ictxt,err) if(err.ne.0) goto 9999 ! check for presence/size of a work area @@ -411,7 +411,7 @@ subroutine psb_zovrlv(x,desc_a,info,work,update) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/comm/psb_zscatter.f90 b/src/comm/psb_zscatter.f90 index e60fbde1..a1635341 100644 --- a/src/comm/psb_zscatter.f90 +++ b/src/comm/psb_zscatter.f90 @@ -65,7 +65,7 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, iroot,& ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), i, j, idx, nrow, iiroot, iglobx, jglobx,& & ilocx, jlocx, lda_locx, lda_globx, lock, globk, icomm, k, maxk, root, ilx,& & jlx, myrank, rootrank, c, pos @@ -79,10 +79,10 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, iroot,& info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -153,8 +153,8 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, iroot,& k = maxk end if - call blacs_get(icontxt,10,icomm) - myrank = blacs_pnum(icontxt,myrow,mycol) + call blacs_get(ictxt,10,icomm) + myrank = blacs_pnum(ictxt,myrow,mycol) lda_globx = size(globx) lda_locx = size(locx) @@ -163,9 +163,9 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, iroot,& n = desc_a%matrix_data(psb_n_) if (myrow == iiroot) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) end if ! there should be a global check on k here!!! @@ -196,7 +196,7 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, iroot,& end do end do else - rootrank = blacs_pnum(icontxt,root,mycol) + rootrank = blacs_pnum(ictxt,root,mycol) end if ! root has to gather size information @@ -258,7 +258,7 @@ subroutine psb_zscatterm(globx, locx, desc_a, info, iroot,& call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -326,7 +326,7 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, iroot) ! locals - integer :: int_err(5), icontxt, nprow, npcol, myrow, mycol,& + integer :: int_err(5), ictxt, nprow, npcol, myrow, mycol,& & err_act, m, n, iix, jjx, temp(2), i, j, idx, nrow, iiroot, iglobx, jglobx,& & ilocx, jlocx, lda_locx, lda_globx, lock, globk, root, k, maxk, icomm, myrank,& & rootrank, c, pos, ilx, jlx @@ -340,10 +340,10 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, iroot) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -367,8 +367,8 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, iroot) root = -1 end if - call blacs_get(icontxt,10,icomm) - myrank = blacs_pnum(icontxt,myrow,mycol) + call blacs_get(ictxt,10,icomm) + myrank = blacs_pnum(ictxt,myrow,mycol) lda_globx = size(globx) lda_locx = size(locx) @@ -379,9 +379,9 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, iroot) k = 1 if (myrow == iiroot) then - call igebs2d(icontxt, 'all', ' ', 1, 1, k, 1) + call igebs2d(ictxt, 'all', ' ', 1, 1, k, 1) else - call igebr2d(icontxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) + call igebr2d(ictxt, 'all', ' ', 1, 1, k, 1, iiroot, 0) end if ! there should be a global check on k here!!! @@ -410,7 +410,7 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, iroot) locx(i)=globx(idx) end do else - rootrank = blacs_pnum(icontxt,root,mycol) + rootrank = blacs_pnum(ictxt,root,mycol) end if ! root has to gather size information @@ -454,7 +454,7 @@ subroutine psb_zscatterv(globx, locx, desc_a, info, iroot) call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/ctof_blacs.h b/src/internals/ctof_blacs.h index a62d529b..cf5f2288 100644 --- a/src/internals/ctof_blacs.h +++ b/src/internals/ctof_blacs.h @@ -47,30 +47,30 @@ static int i1, i2, i3, i4, i5, i6, i7; blacs_pinfo_(mypnum, nprocs) #define Cblacs_setup(mypnum, nprocs) \ blacs_setup_(mypnum, nprocs) -#define Cblacs_get(icontxt, what, val) \ - {i1 = icontxt; i2 = what; \ +#define Cblacs_get(ictxt, what, val) \ + {i1 = ictxt; i2 = what; \ blacs_get_(&i1, &i2,val);} -#define Cblacs_set(icontxt, what, val) \ - {i1 = icontxt; i2 = what; \ +#define Cblacs_set(ictxt, what, val) \ + {i1 = ictxt; i2 = what; \ blacs_set_(&i1, &i2, &val);} -#define Cblacs_gridinit(icontxt, order, nprow, npcol) \ +#define Cblacs_gridinit(ictxt, order, nprow, npcol) \ {i1 = nprow; i2 = npcol; \ - blacs_gridinit_(icontxt, order, &i1, &i2);} -#define Cblacs_gridmap(icontxt, pmap, ldpmap, nprow, npcol) \ + blacs_gridinit_(ictxt, order, &i1, &i2);} +#define Cblacs_gridmap(ictxt, pmap, ldpmap, nprow, npcol) \ {i1 = ldpmap; i2 = nprow; i3 = npcol; \ - blacs_gridmap_(icontxt, pmap, &i1, &i2, &i3);} + blacs_gridmap_(ictxt, pmap, &i1, &i2, &i3);} /* Support routines: Destruction */ -#define Cblacs_freebuff(icontxt, wait) \ - {i1 = icontxt; i2 = wait; \ +#define Cblacs_freebuff(ictxt, wait) \ + {i1 = ictxt; i2 = wait; \ blacs_freebuff_(&i1, &i2);} -#define Cblacs_gridexit(icontxt) \ - {i1 = icontxt; \ +#define Cblacs_gridexit(ictxt) \ + {i1 = ictxt; \ blacs_gridexit_(&i1);} -#define Cblacs_abort(icontxt, errornum) \ - {i1 = icontxt; i2 = errornum; \ +#define Cblacs_abort(ictxt, errornum) \ + {i1 = ictxt; i2 = errornum; \ blacs_abort_(&i1, &i2);} #define Cblacs_exit(doneflag) \ {i1 = doneflag; \ @@ -79,17 +79,17 @@ static int i1, i2, i3, i4, i5, i6, i7; /* Support routines: Informational and Miscellaneous */ -#define Cblacs_gridinfo(icontxt,nprow,npcol,myprow,mypcol) \ - {i1 = icontxt; \ +#define Cblacs_gridinfo(ictxt,nprow,npcol,myprow,mypcol) \ + {i1 = ictxt; \ blacs_gridinfo_(&i1, nprow, npcol, myprow, mypcol);} -#define Cblacs_pnum(icontxt, prow, pcol) \ - {i1 = icontxt; i2 = prow; i3 = pcol; \ +#define Cblacs_pnum(ictxt, prow, pcol) \ + {i1 = ictxt; i2 = prow; i3 = pcol; \ blacs_pnum_(&i1, &i2, &i3);} -#define Cblacs_pcoord(icontxt, pnum, prow, pcol) \ - {i1 = icontxt; i2 = pnum; \ +#define Cblacs_pcoord(ictxt, pnum, prow, pcol) \ + {i1 = ictxt; i2 = pnum; \ blacs_pcoord_(&i1, &i2, prow, pcol);} -#define Cblacs_barrier(icontxt, scope) \ - {i1 = icontxt; \ +#define Cblacs_barrier(ictxt, scope) \ + {i1 = ictxt; \ blacs_barrier_(&i1, scope);} /* Support routines: @@ -102,242 +102,242 @@ static int i1, i2, i3, i4, i5, i6, i7; dcputime_() #define Cdwalltime() \ dwalltime_() -#define Cksendid(icontxt, rdest, cdest) \ - {i1 = icontxt; i2 = rdest; i3 = cdest; \ +#define Cksendid(ictxt, rdest, cdest) \ + {i1 = ictxt; i2 = rdest; i3 = cdest; \ ksendid_(&i1, &i2, &i3);} -#define Ckrecvid(icontxt, rsrc, csrc) \ - {i1 = icontxt; i2 = rsrc; i3 = csrc; \ +#define Ckrecvid(ictxt, rsrc, csrc) \ + {i1 = ictxt; i2 = rsrc; i3 = csrc; \ krecvid_(&i1, &i2, &i3);} -#define Ckbsid(icontxt, scope) \ - {i1 = icontxt; \ +#define Ckbsid(ictxt, scope) \ + {i1 = ictxt; \ kbsid_(&i1, scope);} -#define Ckbrid(icontxt, scope, rsrc, csrc) \ - {i1 = icontxt; i2 = rsrc; i3 = csrc; \ +#define Ckbrid(ictxt, scope, rsrc, csrc) \ + {i1 = ictxt; i2 = rsrc; i3 = csrc; \ kbrid_(&i1, scope, &i2, &i3);} /* Point to Point : Integer */ -#define Cigesd2d(icontxt, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cigesd2d(ictxt, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ igesd2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Cigerv2d(icontxt, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cigerv2d(ictxt, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ igerv2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Citrsd2d(icontxt, uplo, diag, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Citrsd2d(ictxt, uplo, diag, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ itrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} -#define Citrrv2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Citrrv2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ itrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Point to Point : Single precision real */ -#define Csgesd2d(icontxt, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Csgesd2d(ictxt, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ sgesd2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Csgerv2d(icontxt, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Csgerv2d(ictxt, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ sgerv2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Cstrsd2d(icontxt, uplo, diag, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cstrsd2d(ictxt, uplo, diag, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ strsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} -#define Cstrrv2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cstrrv2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ strsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Point to Point : Double precision real */ -#define Cdgesd2d(icontxt, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cdgesd2d(ictxt, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ dgesd2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Cdgerv2d(icontxt, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cdgerv2d(ictxt, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ dgerv2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Cdtrsd2d(icontxt, uplo, diag, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cdtrsd2d(ictxt, uplo, diag, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ dtrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} -#define Cdtrrv2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cdtrrv2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ dtrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Point to Point : Single precision complex */ -#define Ccgesd2d(icontxt, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Ccgesd2d(ictxt, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ cgesd2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Ccgerv2d(icontxt, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Ccgerv2d(ictxt, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ cgerv2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Cctrsd2d(icontxt, uplo, diag, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cctrsd2d(ictxt, uplo, diag, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ ctrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} -#define Cctrrv2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cctrrv2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ ctrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Point to Point : Double precision complex */ -#define Czgesd2d(icontxt, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Czgesd2d(ictxt, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ zgesd2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Czgerv2d(icontxt, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Czgerv2d(ictxt, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ zgerv2d_(&i1, &i2, &i3, A, &i4, &i5, &i6);} -#define Cztrsd2d(icontxt, uplo, diag, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cztrsd2d(ictxt, uplo, diag, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ ztrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} -#define Cztrrv2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cztrrv2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ ztrsd2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Broadcasts : Integer */ -#define Cigebs2d(icontxt, scope, top, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Cigebs2d(ictxt, scope, top, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ igebs2d_(&i1, scope, top, &i2, &i3, A, &i4);} -#define Cigebr2d(icontxt, scope, top, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cigebr2d(ictxt, scope, top, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ igebr2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Citrbs2d(icontxt, scope, top, uplo, diag, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Citrbs2d(ictxt, scope, top, uplo, diag, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ itrbs2d_(&i1, scope, top, uplo, diag, &i2, &i3, A, &i4);} -#define Citrbr2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Citrbr2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ igebr2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Broadcasts : Single precision real */ -#define Csgebs2d(icontxt, scope, top, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Csgebs2d(ictxt, scope, top, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ sgebs2d_(&i1, scope, top, &i2, &i3, A, &i4);} -#define Csgebr2d(icontxt, scope, top, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Csgebr2d(ictxt, scope, top, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ sgebr2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Cstrbs2d(icontxt, scope, top, uplo, diag, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Cstrbs2d(ictxt, scope, top, uplo, diag, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ strbs2d_(&i1, scope, top, uplo, diag, &i2, &i3, A, &i4);} -#define Cstrbr2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cstrbr2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ sgebr2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Broadcasts : Double precision real */ -#define Cdgebs2d(icontxt, scope, top, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Cdgebs2d(ictxt, scope, top, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ dgebs2d_(&i1, scope, top, &i2, &i3, A, &i4);} -#define Cdgebr2d(icontxt, scope, top, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cdgebr2d(ictxt, scope, top, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ dgebr2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Cdtrbs2d(icontxt, scope, top, uplo, diag, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Cdtrbs2d(ictxt, scope, top, uplo, diag, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ dtrbs2d_(&i1, scope, top, uplo, diag, &i2, &i3, A, &i4);} -#define Cdtrbr2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cdtrbr2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ dgebr2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Broadcasts : Single precision complex */ -#define Ccgebs2d(icontxt, scope, top, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Ccgebs2d(ictxt, scope, top, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ cgebs2d_(&i1, scope, top, &i2, &i3, A, &i4);} -#define Ccgebr2d(icontxt, scope, top, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Ccgebr2d(ictxt, scope, top, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ cgebr2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Cctrbs2d(icontxt, scope, top, uplo, diag, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Cctrbs2d(ictxt, scope, top, uplo, diag, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ ctrbs2d_(&i1, scope, top, uplo, diag, &i2, &i3, A, &i4);} -#define Cctrbr2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cctrbr2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ cgebr2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Broadcasts : Double precision complex */ -#define Czgebs2d(icontxt, scope, top, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Czgebs2d(ictxt, scope, top, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ zgebs2d_(&i1, scope, top, &i2, &i3, A, &i4);} -#define Czgebr2d(icontxt, scope, top, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Czgebr2d(ictxt, scope, top, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ zgebr2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Cztrbs2d(icontxt, scope, top, uplo, diag, m, n, A, lda) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; \ +#define Cztrbs2d(ictxt, scope, top, uplo, diag, m, n, A, lda) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; \ ztrbs2d_(&i1, scope, top, uplo, diag, &i2, &i3, A, &i4);} -#define Cztrbr2d(icontxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ +#define Cztrbr2d(ictxt, uplo, diag, m, n, A, lda, rsrc, csrc) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rsrc; i6 = csrc; \ zgebr2d_(&i1, uplo, diag, &i2, &i3, A, &i4, &i5, &i6);} /* Combines: Integer */ -#define Cigsum2d(icontxt, scope, top, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cigsum2d(ictxt, scope, top, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ igsum2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Cigamx2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Cigamx2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ igamx2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} -#define Cigamn2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Cigamn2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ igamn2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} /* Combines: Single precision real */ -#define Csgsum2d(icontxt, scope, top, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Csgsum2d(ictxt, scope, top, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ sgsum2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Csgamx2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Csgamx2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ sgamx2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} -#define Csgamn2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Csgamn2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ sgamn2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} /* Combines: Double precision real */ -#define Cdgsum2d(icontxt, scope, top, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Cdgsum2d(ictxt, scope, top, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ dgsum2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Cdgamx2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Cdgamx2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ dgamx2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} -#define Cdgamn2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Cdgamn2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ dgamn2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} /* Combines: Single precision complex */ -#define Ccgsum2d(icontxt, scope, top, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Ccgsum2d(ictxt, scope, top, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ cgsum2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Ccgamx2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Ccgamx2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ cgamx2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} -#define Ccgamn2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Ccgamn2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ cgamn2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} /* Combines: Double precision complex */ -#define Czgsum2d(icontxt, scope, top, m, n, A, lda, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ +#define Czgsum2d(ictxt, scope, top, m, n, A, lda, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = rdest; i6 = cdest; \ zgsum2d_(&i1, scope, top, &i2, &i3, A, &i4, &i5, &i6);} -#define Czgamx2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Czgamx2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ zgamx2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} -#define Czgamn2d(icontxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ - {i1 = icontxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ +#define Czgamn2d(ictxt, scope, top, m, n, A, lda, RA, CA, RCflag, rdest, cdest) \ + {i1 = ictxt; i2 = m; i3 = n; i4 = lda; i5 = RCflag; i6 = rdest; i7 = cdest; \ zgamn2d_(&i1, scope, top, &i2, &i3, A, &i4, RA, CA, &i5, &i6, &i7);} diff --git a/src/internals/psi_compute_size.f90 b/src/internals/psi_compute_size.f90 index bd5800ed..1057532e 100644 --- a/src/internals/psi_compute_size.f90 +++ b/src/internals/psi_compute_size.f90 @@ -41,7 +41,7 @@ subroutine psi_compute_size(desc_data,& integer :: desc_data(:), index_in(:) ! ....local scalars.... integer :: i,npcol,nprow,mycol,myrow,proc,counter, max_index - integer :: icontxt, err, err_act, np + integer :: ictxt, err, err_act, np ! ...local array... integer :: exch(2) integer :: int_err(5) @@ -55,9 +55,9 @@ subroutine psi_compute_size(desc_data,& call psb_get_erraction(err_act) info = 0 - icontxt = desc_data(psb_ctxt_) + ictxt = desc_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -113,7 +113,7 @@ subroutine psi_compute_size(desc_data,& enddo ! computing max global value of dl_lda - call igamx2d(icontxt, psb_all_, psb_topdef_, 1, ione, dl_lda, & + call igamx2d(ictxt, psb_all_, psb_topdef_, 1, ione, dl_lda, & &1, counter, counter, -ione ,-ione,-ione) if (debug) then @@ -126,7 +126,7 @@ subroutine psi_compute_size(desc_data,& 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_crea_index.f90 b/src/internals/psi_crea_index.f90 index 6aa89738..b9a4b76a 100644 --- a/src/internals/psi_crea_index.f90 +++ b/src/internals/psi_crea_index.f90 @@ -44,7 +44,7 @@ subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,info) ! ....local scalars... integer :: me,npcol,mycol,nprow,i,j,k,& & mode, int_err(5), err, err_act, np,& - & dl_lda, icontxt, proc, nerv, nesd + & dl_lda, ictxt, proc, nerv, nesd ! ...parameters... integer, pointer :: dep_list(:,:), length_dl(:) integer,parameter :: root=0,no_comm=-1 @@ -88,8 +88,8 @@ subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,info) name='psi_crea_index' call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,np,npcol,me,mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,np,npcol,me,mycol) if (np == -1) then info = 2010 call psb_errpush(info,name) @@ -159,7 +159,7 @@ subroutine psi_crea_index(desc_a,index_in,index_out,glob_idx,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_desc_index.f90 b/src/internals/psi_desc_index.f90 index 1f5ec3ce..093ed5e2 100644 --- a/src/internals/psi_desc_index.f90 +++ b/src/internals/psi_desc_index.f90 @@ -47,7 +47,7 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& !c ....local scalars... integer :: j,me,np,npcol,mycol,i,proc,dim !c ...parameters... - integer :: icontxt + integer :: ictxt integer :: no_comm,err parameter (no_comm=-1) !c ...local arrays.. @@ -67,8 +67,8 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& !c if mode == 1 then we can use glob_to_loc array !c else we can't utilize it - icontxt=desc_data(psb_ctxt_) - call blacs_gridinfo(icontxt,np,npcol,me,mycol) + ictxt=desc_data(psb_ctxt_) + call blacs_gridinfo(ictxt,np,npcol,me,mycol) if (np == -1) then info = 2010 call psb_errpush(info,name) @@ -82,10 +82,10 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& if (debug) then write(0,*) me,'start desc_index' - call blacs_barrier(icontxt,'all') + call blacs_barrier(ictxt,'all') endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) !c !c first, find out the total sizes to be exchanged. !c note: things marked here as sndbuf/rcvbuf (for mpi) corresponds to things @@ -136,7 +136,7 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& end if if (debug) then write(0,*) me,'computed sizes ',iszr,iszs - call blacs_barrier(icontxt,'all') + call blacs_barrier(ictxt,'all') endif ntot = (3*(max(count(sdsz>0),count(rvsz>0)))+ iszs + iszr) + 1 @@ -153,7 +153,7 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& if (debug) then write(0,*) me,'computed allocated workspace ',iszr,iszs - call blacs_barrier(icontxt,'all') + call blacs_barrier(ictxt,'all') endif allocate(sndbuf(iszs),rcvbuf(iszr),stat=info) if(info /= 0) then @@ -190,7 +190,7 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& if (debug) then write(0,*) me,' prepared send buffer ' - call blacs_barrier(icontxt,'all') + call blacs_barrier(ictxt,'all') endif !c !c now have to regenerate bsdindx @@ -245,7 +245,7 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& if (debug) then write(0,*) me,'end desc_index' - call blacs_barrier(icontxt,'all') + call blacs_barrier(ictxt,'all') endif call psb_erractionrestore(err_act) @@ -254,7 +254,7 @@ subroutine psi_desc_index(desc_data,index_in,dep_list,& 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_dswapdata.f90 b/src/internals/psi_dswapdata.f90 index ecddc376..5acc778d 100644 --- a/src/internals/psi_dswapdata.f90 +++ b/src/internals/psi_dswapdata.f90 @@ -43,7 +43,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -99,8 +99,8 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) name='psi_dswap_data' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -112,7 +112,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -152,7 +152,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -240,20 +240,20 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call dgesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I receive rcv_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive rcv_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+nerv+psb_elem_send_ snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call dgesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+nerv+psb_elem_send_ @@ -297,7 +297,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) rcv_pt = brvidx(proc_to_comm) call mpi_irecv(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& @@ -328,7 +328,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -435,7 +435,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call dgesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -451,7 +451,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then rcv_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& @@ -484,7 +484,7 @@ subroutine psi_dswapdatam(flag,n,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -536,7 +536,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -593,8 +593,8 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) name='psi_dswap_datav' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -606,7 +606,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& @@ -648,7 +648,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -735,20 +735,20 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call dgesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I receive rcv_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive rcv_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+nerv+psb_elem_send_ snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call dgesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+nerv+psb_elem_send_ @@ -792,7 +792,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) rcv_pt = brvidx(proc_to_comm) call mpi_irecv(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& @@ -822,7 +822,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) & y,sndbuf(snd_pt:snd_pt+nesd-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -930,7 +930,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call dgesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -946,7 +946,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then rcv_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nerv,d_idx(idx_pt:idx_pt+nerv-1),& @@ -979,7 +979,7 @@ subroutine psi_dswapdatav(flag,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_dswaptran.f90 b/src/internals/psi_dswaptran.f90 index f9d4e784..60ed5e9a 100644 --- a/src/internals/psi_dswaptran.f90 +++ b/src/internals/psi_dswaptran.f90 @@ -43,7 +43,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -100,8 +100,8 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) name='psi_dswaptranm' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -113,7 +113,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -153,7 +153,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -241,20 +241,20 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call dgesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I receive snd_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive snd_pt = bsdidx(proc_to_comm) - call dgerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call dgesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+psb_elem_recv_ @@ -299,7 +299,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) snd_pt = brvidx(proc_to_comm) call mpi_irecv(sndbuf(rcv_pt),sdsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& @@ -329,7 +329,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -436,7 +436,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call dgesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -452,7 +452,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then snd_pt = bsdidx(proc_to_comm) - call dgerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) idx_pt = point_to_proc+nerv+psb_elem_send_ call psi_sct(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & sndbuf(snd_pt:snd_pt+n*nesd-1),beta,y) @@ -484,7 +484,7 @@ subroutine psi_dswaptranm(flag,n,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -541,7 +541,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -598,8 +598,8 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) name='psi_dswaptranv' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -611,7 +611,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -652,7 +652,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -739,20 +739,20 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call dgesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I receive snd_pt = brvidx(proc_to_comm) - call dgerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive snd_pt = bsdidx(proc_to_comm) - call dgerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call dgesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+psb_elem_recv_ @@ -797,7 +797,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) snd_pt = brvidx(proc_to_comm) call mpi_irecv(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& @@ -827,7 +827,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_precision,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -934,7 +934,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call dgesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call dgesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -950,7 +950,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then snd_pt = bsdidx(proc_to_comm) - call dgerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call dgerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nesd,d_idx(idx_pt:idx_pt+nesd-1),& @@ -983,7 +983,7 @@ subroutine psi_dswaptranv(flag,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_extrct_dl.f b/src/internals/psi_extrct_dl.f index eca2b303..ec87ca32 100644 --- a/src/internals/psi_extrct_dl.f +++ b/src/internals/psi_extrct_dl.f @@ -135,7 +135,7 @@ c .....local arrays.... c .....local scalars... integer i,nprow,npcol,me,mycol,pointer_dep_list,proc,j,err_act - integer icontxt, err, icomm + integer ictxt, err, icomm logical debug parameter (debug=.false.) character name*20 @@ -143,10 +143,10 @@ c .....local scalars... call fcpsb_get_erraction(err_act) info = 0 - icontxt = desc_data(psb_ctxt_) + ictxt = desc_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) do i=0,np length_dl(i) = 0 enddo @@ -244,14 +244,14 @@ c ... check for errors... 998 continue if (debug) write(0,*) 'extract: info ',info err = info -c$$$ call igamx2d(icontxt, all, topdef, ione, ione, err, ione, +c$$$ call igamx2d(ictxt, all, topdef, ione, ione, err, ione, c$$$ + i, i, -ione ,-ione,-ione) if (err.ne.0) goto 9999 if (.true.) then - call igsum2d(icontxt,'all',' ',np+1,1,length_dl,np+1,-1,-1) - call blacs_get(icontxt,10,icomm ) + call igsum2d(ictxt,'all',' ',np+1,1,length_dl,np+1,-1,-1) + call blacs_get(ictxt,10,icomm ) allocate(itmp(dl_lda),stat=info) if (info /= 0) goto 9999 itmp(1:dl_lda) = dep_list(1:dl_lda,me) @@ -266,11 +266,11 @@ c$$$ + i, i, -ione ,-ione,-ione) if (proc.ne.psb_root_) then if (debug) write(0,*) 'receiving from: ',proc c ...receive from proc length of its dependence list.... - call igerv2d(icontxt,1,1,length_dl(proc),1, + call igerv2d(ictxt,1,1,length_dl(proc),1, + proc,mycol) c ...receive from proc its dependence list.... - call igerv2d(icontxt,length_dl(proc),1, + call igerv2d(ictxt,length_dl(proc),1, + dep_list(1,proc),length_dl(proc),proc,mycol) endif @@ -278,10 +278,10 @@ c ...receive from proc its dependence list.... else if (me.ne.psb_root_) then c ...send to root dependence list length..... if (debug) write(0,*) 'sending to: ',me,psb_root_ - call igesd2d(icontxt,1,1,length_dl(me),1,psb_root_,mycol) + call igesd2d(ictxt,1,1,length_dl(me),1,psb_root_,mycol) if (debug) write(0,*) 'sending to: ',me,psb_root_ c ...send to root dependence list.... - call igesd2d(icontxt,length_dl(me),1,dep_list(1,me), + call igesd2d(ictxt,length_dl(me),1,dep_list(1,me), + length_dl(me),psb_root_,mycol) endif @@ -292,7 +292,7 @@ c ...send to root dependence list.... 9999 continue call fcpsb_errpush(info,name,int_err) if(err_act.eq.act_abort) then - call fcpsb_perror(icontxt) + call fcpsb_perror(ictxt) endif return diff --git a/src/internals/psi_iswapdata.f90 b/src/internals/psi_iswapdata.f90 index 94750b46..a6261259 100644 --- a/src/internals/psi_iswapdata.f90 +++ b/src/internals/psi_iswapdata.f90 @@ -43,7 +43,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -99,8 +99,8 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) name='psi_dswap_data' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -112,7 +112,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -152,7 +152,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -240,20 +240,20 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call igesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I receive rcv_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive rcv_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+nerv+psb_elem_send_ snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call igesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+nerv+psb_elem_send_ @@ -297,7 +297,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) rcv_pt = brvidx(proc_to_comm) call mpi_irecv(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& @@ -328,7 +328,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -435,7 +435,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call igesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -451,7 +451,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then rcv_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& @@ -484,7 +484,7 @@ subroutine psi_iswapdatam(flag,n,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -536,7 +536,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -593,8 +593,8 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) name='psi_dswap_datav' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -606,7 +606,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& @@ -648,7 +648,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -735,20 +735,20 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call igesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I receive rcv_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive rcv_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+nerv+psb_elem_send_ snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call igesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+nerv+psb_elem_send_ @@ -792,7 +792,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) rcv_pt = brvidx(proc_to_comm) call mpi_irecv(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& @@ -822,7 +822,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) & y,sndbuf(snd_pt:snd_pt+nesd-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -930,7 +930,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call igesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -946,7 +946,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then rcv_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nerv,d_idx(idx_pt:idx_pt+nerv-1),& @@ -979,7 +979,7 @@ subroutine psi_iswapdatav(flag,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_iswaptran.f90 b/src/internals/psi_iswaptran.f90 index ece45650..599149b4 100644 --- a/src/internals/psi_iswaptran.f90 +++ b/src/internals/psi_iswaptran.f90 @@ -43,7 +43,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -100,8 +100,8 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) name='psi_dswaptranm' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -113,7 +113,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -153,7 +153,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -241,20 +241,20 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call igesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I receive snd_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive snd_pt = bsdidx(proc_to_comm) - call igerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call igesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+psb_elem_recv_ @@ -299,7 +299,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) snd_pt = brvidx(proc_to_comm) call mpi_irecv(sndbuf(rcv_pt),sdsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& @@ -329,7 +329,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -436,7 +436,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call igesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -452,7 +452,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then snd_pt = bsdidx(proc_to_comm) - call igerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) idx_pt = point_to_proc+nerv+psb_elem_send_ call psi_sct(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & sndbuf(snd_pt:snd_pt+n*nesd-1),beta,y) @@ -484,7 +484,7 @@ subroutine psi_iswaptranm(flag,n,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -538,7 +538,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -595,8 +595,8 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) name='psi_dswaptranv' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -608,7 +608,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -649,7 +649,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -736,20 +736,20 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call igesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I receive snd_pt = brvidx(proc_to_comm) - call igerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive snd_pt = bsdidx(proc_to_comm) - call igerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call igesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+psb_elem_recv_ @@ -794,7 +794,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) snd_pt = brvidx(proc_to_comm) call mpi_irecv(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& @@ -824,7 +824,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_integer,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -931,7 +931,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call igesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call igesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -947,7 +947,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then snd_pt = bsdidx(proc_to_comm) - call igerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call igerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nesd,d_idx(idx_pt:idx_pt+nesd-1),& @@ -980,7 +980,7 @@ subroutine psi_iswaptranv(flag,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_zswapdata.f90 b/src/internals/psi_zswapdata.f90 index bdacc882..fc7e3b93 100644 --- a/src/internals/psi_zswapdata.f90 +++ b/src/internals/psi_zswapdata.f90 @@ -43,7 +43,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -115,8 +115,8 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) name='psi_zswap_data' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -128,7 +128,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -168,7 +168,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -256,20 +256,20 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call zgesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I receive rcv_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive rcv_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+nerv+psb_elem_send_ snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call zgesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+nerv+psb_elem_send_ @@ -313,7 +313,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) rcv_pt = brvidx(proc_to_comm) call mpi_irecv(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& @@ -344,7 +344,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -451,7 +451,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd*n-1)) - call zgesd2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgesd2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -467,7 +467,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then rcv_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgerv2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& @@ -500,7 +500,7 @@ subroutine psi_zswapdatam(flag,n,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -552,7 +552,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -625,8 +625,8 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) name='psi_zswap_datav' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -638,7 +638,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& @@ -680,7 +680,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -767,20 +767,20 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call zgesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I receive rcv_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive rcv_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+nerv+psb_elem_send_ snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call zgesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+nerv+psb_elem_send_ @@ -824,7 +824,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) rcv_pt = brvidx(proc_to_comm) call mpi_irecv(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& @@ -854,7 +854,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) & y,sndbuf(snd_pt:snd_pt+nesd-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -962,7 +962,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) snd_pt = bsdidx(proc_to_comm) call psi_gth(nesd,d_idx(idx_pt:idx_pt+nesd-1),& & y,sndbuf(snd_pt:snd_pt+nesd-1)) - call zgesd2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgesd2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -978,7 +978,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then rcv_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgerv2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nerv,d_idx(idx_pt:idx_pt+nerv-1),& @@ -1011,7 +1011,7 @@ subroutine psi_zswapdatav(flag,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/internals/psi_zswaptran.f90 b/src/internals/psi_zswaptran.f90 index 6fbfccf3..a70e478a 100644 --- a/src/internals/psi_zswaptran.f90 +++ b/src/internals/psi_zswaptran.f90 @@ -43,7 +43,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -116,8 +116,8 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) name='psi_zswaptranm' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -129,7 +129,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -169,7 +169,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -257,20 +257,20 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call zgesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I receive snd_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive snd_pt = bsdidx(proc_to_comm) - call zgerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call zgesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+psb_elem_recv_ @@ -315,7 +315,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) snd_pt = brvidx(proc_to_comm) call mpi_irecv(sndbuf(rcv_pt),sdsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& @@ -345,7 +345,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -452,7 +452,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,n,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv*n-1)) - call zgesd2d(icontxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgesd2d(ictxt,nerv,n,rcvbuf(rcv_pt),nerv,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -468,7 +468,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then snd_pt = bsdidx(proc_to_comm) - call zgerv2d(icontxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgerv2d(ictxt,nesd,n,sndbuf(snd_pt),nesd,proc_to_comm,0) idx_pt = point_to_proc+nerv+psb_elem_send_ call psi_sct(nesd,n,d_idx(idx_pt:idx_pt+nesd-1),& & sndbuf(snd_pt:snd_pt+n*nesd-1),beta,y) @@ -500,7 +500,7 @@ subroutine psi_zswaptranm(flag,n,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -557,7 +557,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) integer, optional :: data ! locals - integer :: icontxt, nprow, npcol, myrow,& + integer :: ictxt, nprow, npcol, myrow,& & mycol, point_to_proc, nesd, nerv,& & proc_to_comm, p2ptag, icomm, p2pstat(mpi_status_size),& & idxs, idxr, iret, errlen, ifcomm, rank,& @@ -630,8 +630,8 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) name='psi_zswaptranv' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,myrow,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,myrow,mycol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -643,7 +643,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) goto 9999 endif - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) allocate(sdsz(0:nprow-1), rvsz(0:nprow-1), bsdidx(0:nprow-1),& & brvidx(0:nprow-1), rvhd(0:nprow-1), prcid(0:nprow-1),& @@ -684,7 +684,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) nerv = d_idx(point_to_proc+psb_n_elem_recv_) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) - prcid(proc_to_comm) = blacs_pnum(icontxt,proc_to_comm,mycol) + prcid(proc_to_comm) = blacs_pnum(ictxt,proc_to_comm,mycol) ptp(proc_to_comm) = point_to_proc brvidx(proc_to_comm) = idxr @@ -771,20 +771,20 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call zgesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) ! Then I receive snd_pt = brvidx(proc_to_comm) - call zgerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) else if (proc_to_comm .gt. myrow) then ! First I receive snd_pt = bsdidx(proc_to_comm) - call zgerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) ! Then I send idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call zgesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) else if (proc_to_comm .eq. myrow) then ! I send to myself idx_pt = point_to_proc+psb_elem_recv_ @@ -829,7 +829,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) nesd = d_idx(point_to_proc+nerv+psb_n_elem_send_) if(proc_to_comm.ne.myrow) then - p2ptag = krecvid(icontxt,proc_to_comm,myrow) + p2ptag = krecvid(ictxt,proc_to_comm,myrow) snd_pt = brvidx(proc_to_comm) call mpi_irecv(sndbuf(snd_pt),sdsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& @@ -859,7 +859,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) if(proc_to_comm .ne. myrow) then - p2ptag=ksendid(icontxt,proc_to_comm,myrow) + p2ptag=ksendid(ictxt,proc_to_comm,myrow) call mpi_send(rcvbuf(rcv_pt),rvsz(proc_to_comm),& & mpi_double_complex,prcid(proc_to_comm),& & p2ptag,icomm,iret) @@ -966,7 +966,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) rcv_pt = brvidx(proc_to_comm) call psi_gth(nerv,d_idx(idx_pt:idx_pt+nerv-1),& & y,rcvbuf(rcv_pt:rcv_pt+nerv-1)) - call zgesd2d(icontxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) + call zgesd2d(ictxt,nerv,1,rcvbuf(rcv_pt),nerv,proc_to_comm,0) point_to_proc = point_to_proc+nerv+nesd+3 proc_to_comm = d_idx(point_to_proc+psb_proc_id_) @@ -982,7 +982,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) if(proc_to_comm.ne.myrow) then snd_pt = bsdidx(proc_to_comm) - call zgerv2d(icontxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) + call zgerv2d(ictxt,nesd,1,sndbuf(snd_pt),nesd,proc_to_comm,0) idx_pt = point_to_proc+psb_elem_recv_ rcv_pt = brvidx(proc_to_comm) call psi_sct(nesd,d_idx(idx_pt:idx_pt+nesd-1),& @@ -1015,7 +1015,7 @@ subroutine psi_zswaptranv(flag,beta,y,desc_a,work,info,data) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/methd/extra_env.f90 b/src/methd/extra_env.f90 index cf13f79c..d6728532 100644 --- a/src/methd/extra_env.f90 +++ b/src/methd/extra_env.f90 @@ -1,11 +1,11 @@ -subroutine psb_set_coher(icontxt,isvch) - integer :: icontxt, isvch +subroutine psb_set_coher(ictxt,isvch) + integer :: ictxt, isvch ! Ensure global coherence for convergence checks. - Call blacs_get(icontxt,16,isvch) - Call blacs_set(icontxt,16,1) + Call blacs_get(ictxt,16,isvch) + Call blacs_set(ictxt,16,1) end subroutine psb_set_coher -subroutine psb_restore_coher(icontxt,isvch) - integer :: icontxt, isvch +subroutine psb_restore_coher(ictxt,isvch) + integer :: ictxt, isvch ! Ensure global coherence for convergence checks. - Call blacs_set(icontxt,16,isvch) + Call blacs_set(ictxt,16,isvch) end subroutine psb_restore_coher diff --git a/src/methd/extra_env_essl.f90 b/src/methd/extra_env_essl.f90 index 661b5628..18b5bdfa 100644 --- a/src/methd/extra_env_essl.f90 +++ b/src/methd/extra_env_essl.f90 @@ -1,13 +1,13 @@ -subroutine psb_set_coher(icontxt,isvch) - integer :: icontxt, isvch +subroutine psb_set_coher(ictxt,isvch) + integer :: ictxt, isvch ! Ensure global coherence for convergence checks. ! Do nothing: ESSL does coherence by default, ! and does not handle req=16 -!!$ Call blacs_get(icontxt,16,isvch) -!!$ Call blacs_set(icontxt,16,1) +!!$ Call blacs_get(ictxt,16,isvch) +!!$ Call blacs_set(ictxt,16,1) end subroutine psb_set_coher -subroutine psb_restore_coher(icontxt,isvch) - integer :: icontxt, isvch +subroutine psb_restore_coher(ictxt,isvch) + integer :: ictxt, isvch ! Ensure global coherence for convergence checks. -!!$ Call blacs_set(icontxt,16,isvch) +!!$ Call blacs_set(ictxt,16,isvch) end subroutine psb_restore_coher diff --git a/src/methd/psb_dbicg.f90 b/src/methd/psb_dbicg.f90 index 54a24bfb..0d9983e6 100644 --- a/src/methd/psb_dbicg.f90 +++ b/src/methd/psb_dbicg.f90 @@ -108,7 +108,7 @@ subroutine psb_dbicg(a,prec,b,x,eps,desc_a,info,& logical, parameter :: debug = .false. logical, parameter :: exchange=.true., noexchange=.false. integer, parameter :: irmax = 8 - integer :: itx, i, isvch, ich, icontxt + integer :: itx, i, isvch, ich, ictxt logical :: do_renum_left real(kind(1.d0)) :: alpha, beta, rho, rho_old, rni, xni, bni, ani,& & sigma, omega, tau,bn2 @@ -119,8 +119,8 @@ subroutine psb_dbicg(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) if (debug) write(*,*) 'entering psb_dbicg' - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprows,npcols,me,mecol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprows,npcols,me,mecol) if (debug) write(*,*) 'psb_dbicg: from gridinfo',nprows,npcols,me mglob = desc_a%matrix_data(psb_m_) @@ -128,7 +128,7 @@ subroutine psb_dbicg(a,prec,b,x,eps,desc_a,info,& n_col = desc_a%matrix_data(psb_n_col_) ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) if (present(istop)) then @@ -344,7 +344,7 @@ subroutine psb_dbicg(a,prec,b,x,eps,desc_a,info,& call psb_gefree(wwrk,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) if(info/=0) then call psb_errpush(info,name) diff --git a/src/methd/psb_dcg.f90 b/src/methd/psb_dcg.f90 index 6533bdf3..f4a607ce 100644 --- a/src/methd/psb_dcg.f90 +++ b/src/methd/psb_dcg.f90 @@ -103,7 +103,7 @@ Subroutine psb_dcg(a,prec,b,x,eps,desc_a,info,& real(kind(1.d0)) ::alpha, beta, rho, rho_old, rni, xni, bni, ani,bn2,& & sigma integer :: litmax, liter, istop_, naux, m, mglob, it, itx, itrace_,& - & nprows,npcols,me,mecol, n_col, isvch, ich, icontxt, n_row,err_act, int_err(5) + & nprows,npcols,me,mecol, n_col, isvch, ich, ictxt, n_row,err_act, int_err(5) character ::diagl, diagu logical, parameter :: exchange=.true., noexchange=.false. character(len=20) :: name,ch_err @@ -113,8 +113,8 @@ Subroutine psb_dcg(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprows,npcols,me,mecol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprows,npcols,me,mecol) mglob = desc_a%matrix_data(psb_m_) n_row = desc_a%matrix_data(psb_n_row_) @@ -178,7 +178,7 @@ Subroutine psb_dcg(a,prec,b,x,eps,desc_a,info,& itx=0 ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) restart: do !!$ @@ -274,7 +274,7 @@ Subroutine psb_dcg(a,prec,b,x,eps,desc_a,info,& call psb_gefree(wwrk,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) if (info.ne.0) then call psb_errpush(info,name) diff --git a/src/methd/psb_dcgs.f90 b/src/methd/psb_dcgs.f90 index 9b4375b2..e4ca086c 100644 --- a/src/methd/psb_dcgs.f90 +++ b/src/methd/psb_dcgs.f90 @@ -105,7 +105,7 @@ Subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,& Character ::diagl, diagu Logical, Parameter :: exchange=.True., noexchange=.False. Integer, Parameter :: irmax = 8 - Integer :: itx, i, isvch, ich, icontxt + Integer :: itx, i, isvch, ich, ictxt Logical :: do_renum_left Logical, Parameter :: debug = .false. Real(Kind(1.d0)) :: alpha, beta, rho, rho_old, rni, xni, bni, ani,bn2,& @@ -117,8 +117,8 @@ Subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) If (debug) Write(*,*) 'entering psb_dcgs' - icontxt = desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprows,npcols,me,mecol) + ictxt = desc_a%matrix_data(psb_ctxt_) + Call blacs_gridinfo(ictxt,nprows,npcols,me,mecol) If (debug) Write(*,*) 'psb_dcgs: from gridinfo',nprows,npcols,me mglob = desc_a%matrix_data(psb_m_) @@ -186,7 +186,7 @@ Subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,& End If ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) diagl = 'u' diagu = 'u' @@ -335,7 +335,7 @@ Subroutine psb_dcgs(a,prec,b,x,eps,desc_a,info,& Call psb_gefree(wwrk,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) if(info/=0) then call psb_errpush(info,name) diff --git a/src/methd/psb_dcgstab.f90 b/src/methd/psb_dcgstab.f90 index 0a335280..64626d2a 100644 --- a/src/methd/psb_dcgstab.f90 +++ b/src/methd/psb_dcgstab.f90 @@ -106,7 +106,7 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,& Logical, Parameter :: debug = .false. Logical, Parameter :: exchange=.True., noexchange=.False., debug1 = .False. Integer, Parameter :: irmax = 8 - Integer :: itx, i, isvch, ich, icontxt, err_act, int_err(5),ii + Integer :: itx, i, isvch, ich, ictxt, err_act, int_err(5),ii Integer :: istop_ Logical :: do_renum_left Real(Kind(1.d0)) :: alpha, beta, rho, rho_old, rni, xni, bni, ani,& @@ -120,8 +120,8 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) If (debug) Write(*,*) 'Entering PSB_DCGSTAB',present(istop) - icontxt = desc_a%matrix_data(psb_ctxt_) - CALL blacs_gridinfo(icontxt,nprows,npcols,myrow,mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) + CALL blacs_gridinfo(ictxt,nprows,npcols,myrow,mycol) if (debug) write(*,*) 'PSB_DCGSTAB: From GRIDINFO',nprows,npcols,myrow mglob = desc_a%matrix_data(psb_m_) @@ -191,7 +191,7 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,& diagu = 'U' ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) itx = 0 @@ -278,9 +278,9 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,& If (debug) Write(*,*) 'Iteration: ',itx rho_old = rho rho = psb_gedot(q,r,desc_a,info) -!!$ call blacs_barrier(icontxt,'All') ! to be removed +!!$ call blacs_barrier(ictxt,'All') ! to be removed !!$ write(0,'(i2," rho old ",2(f,2x))')myrow,rho,rho_old -!!$ call blacs_barrier(icontxt,'All') ! to be removed +!!$ call blacs_barrier(ictxt,'All') ! to be removed If (rho==dzero) Then If (debug) Write(0,*) 'Bi-CGSTAB Itxation breakdown R',rho Exit iteration @@ -388,7 +388,7 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,& Deallocate(aux) Call psb_gefree(wwrk,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) !!$ imerr = MPE_Log_event( istpe, 0, "ed CGSTAB" ) if(info/=0) then call psb_errpush(info,name) @@ -401,7 +401,7 @@ Subroutine psb_dcgstab(a,prec,b,x,eps,desc_a,info,& 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/methd/psb_dcgstabl.f90 b/src/methd/psb_dcgstabl.f90 index e20bbb65..ca87a7df 100644 --- a/src/methd/psb_dcgstabl.f90 +++ b/src/methd/psb_dcgstabl.f90 @@ -114,7 +114,7 @@ Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,& Character ::diagl, diagu Logical, Parameter :: exchange=.True., noexchange=.False. Integer, Parameter :: irmax = 8 - Integer :: itx, i, isvch, ich, icontxt,istop_,j, int_err(5) + Integer :: itx, i, isvch, ich, ictxt,istop_,j, int_err(5) Logical :: do_renum_left Logical, Parameter :: debug = .False. Real(Kind(1.d0)) :: alpha, beta, rho, rho_old, rni, xni, bni, ani,bn2,& @@ -126,8 +126,8 @@ Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) If (debug) Write(0,*) 'entering psb_dbicgstabl' - icontxt = desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprows,npcols,me,mecol) + ictxt = desc_a%matrix_data(psb_ctxt_) + Call blacs_gridinfo(ictxt,nprows,npcols,me,mecol) If (debug) Write(0,*) 'psb_dbicgstabl: from gridinfo',nprows,npcols,me @@ -207,7 +207,7 @@ Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,& rt0 => wwrk(:,10) ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) if (istop_ == 1) then ani = psb_spnrmi(a,desc_a,info) @@ -394,7 +394,7 @@ Subroutine psb_dcgstabl(a,prec,b,x,eps,desc_a,info,& Call psb_gefree(rh,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) if(info/=0) then call psb_errpush(info,name) diff --git a/src/methd/psb_dgmresr.f90 b/src/methd/psb_dgmresr.f90 index e895508b..8592a7ad 100644 --- a/src/methd/psb_dgmresr.f90 +++ b/src/methd/psb_dgmresr.f90 @@ -116,7 +116,7 @@ Subroutine psb_dgmresr(a,prec,b,x,eps,desc_a,info,& Character ::diagl, diagu Logical, Parameter :: exchange=.True., noexchange=.False. Integer, Parameter :: irmax = 8 - Integer :: itx, i, isvch, ich, icontxt,istop_, err_act + Integer :: itx, i, isvch, ich, ictxt,istop_, err_act Logical :: do_renum_left,inner_stop Logical, Parameter :: debug = .false. Real(Kind(1.d0)) :: alpha, beta, rho, rho_old, rni, xni, bni, ani,bn2,& @@ -129,8 +129,8 @@ Subroutine psb_dgmresr(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) If (debug) Write(0,*) 'entering psb_dgmres' - icontxt = desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprows,npcols,me,mecol) + ictxt = desc_a%matrix_data(psb_ctxt_) + Call blacs_gridinfo(ictxt,nprows,npcols,me,mecol) If (debug) Write(0,*) 'psb_dgmres: from gridinfo',nprows,npcols,me @@ -195,7 +195,7 @@ Subroutine psb_dgmresr(a,prec,b,x,eps,desc_a,info,& &size(w),size(w,1), size(v(:,1)) ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) if (istop_ == 1) then ani = psb_spnrmi(a,desc_a,info) @@ -338,7 +338,7 @@ Subroutine psb_dgmresr(a,prec,b,x,eps,desc_a,info,& Call psb_gefree(w,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) if (info /= 0) then info=4011 diff --git a/src/methd/psb_zcgs.f90 b/src/methd/psb_zcgs.f90 index fc3a1a24..a95c471e 100644 --- a/src/methd/psb_zcgs.f90 +++ b/src/methd/psb_zcgs.f90 @@ -105,7 +105,7 @@ Subroutine psb_zcgs(a,prec,b,x,eps,desc_a,info,& Character ::diagl, diagu Logical, Parameter :: exchange=.True., noexchange=.False. Integer, Parameter :: irmax = 8 - Integer :: itx, i, isvch, ich, icontxt + Integer :: itx, i, isvch, ich, ictxt Logical :: do_renum_left Logical, Parameter :: debug = .false. Real(Kind(1.d0)) :: rni, xni, bni, ani,bn2 @@ -117,8 +117,8 @@ Subroutine psb_zcgs(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) If (debug) Write(*,*) 'entering psb_zcgs' - icontxt = desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprows,npcols,me,mecol) + ictxt = desc_a%matrix_data(psb_ctxt_) + Call blacs_gridinfo(ictxt,nprows,npcols,me,mecol) If (debug) Write(*,*) 'psb_zcgs: from gridinfo',nprows,npcols,me mglob = desc_a%matrix_data(psb_m_) @@ -186,7 +186,7 @@ Subroutine psb_zcgs(a,prec,b,x,eps,desc_a,info,& End If ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) diagl = 'u' diagu = 'u' @@ -331,7 +331,7 @@ Subroutine psb_zcgs(a,prec,b,x,eps,desc_a,info,& Call psb_gefree(wwrk,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) if(info/=0) then call psb_errpush(info,name) diff --git a/src/methd/psb_zcgstab.f90 b/src/methd/psb_zcgstab.f90 index 9adf9546..a1066411 100644 --- a/src/methd/psb_zcgstab.f90 +++ b/src/methd/psb_zcgstab.f90 @@ -106,7 +106,7 @@ Subroutine psb_zcgstab(a,prec,b,x,eps,desc_a,info,& Logical, Parameter :: debug = .false. Logical, Parameter :: exchange=.True., noexchange=.False., debug1 = .False. Integer, Parameter :: irmax = 8 - Integer :: itx, i, isvch, ich, icontxt, err_act, int_err(5),ii + Integer :: itx, i, isvch, ich, ictxt, err_act, int_err(5),ii Integer :: istop_ Logical :: do_renum_left complex(Kind(1.d0)) :: alpha, beta, rho, rho_old, sigma, omega, tau @@ -120,8 +120,8 @@ Subroutine psb_zcgstab(a,prec,b,x,eps,desc_a,info,& call psb_erractionsave(err_act) If (debug) Write(*,*) 'Entering PSB_ZCGSTAB',present(istop) - icontxt = desc_a%matrix_data(psb_ctxt_) - CALL blacs_gridinfo(icontxt,nprows,npcols,myrow,mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) + CALL blacs_gridinfo(ictxt,nprows,npcols,myrow,mycol) if (debug) write(*,*) 'PSB_ZCGSTAB: From GRIDINFO',nprows,npcols,myrow mglob = desc_a%matrix_data(psb_m_) @@ -182,7 +182,7 @@ Subroutine psb_zcgstab(a,prec,b,x,eps,desc_a,info,& diagu = 'U' ! Ensure global coherence for convergence checks. - call psb_set_coher(icontxt,isvch) + call psb_set_coher(ictxt,isvch) itx = 0 @@ -373,7 +373,7 @@ Subroutine psb_zcgstab(a,prec,b,x,eps,desc_a,info,& Call psb_gefree(wwrk,desc_a,info) ! restore external global coherence behaviour - call psb_restore_coher(icontxt,isvch) + call psb_restore_coher(ictxt,isvch) !!$ imerr = MPE_Log_event( istpe, 0, "ed CGSTAB" ) if(info/=0) then @@ -387,7 +387,7 @@ Subroutine psb_zcgstab(a,prec,b,x,eps,desc_a,info,& 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/modules/error.f90 b/src/modules/error.f90 index 8901e5a8..70782b36 100644 --- a/src/modules/error.f90 +++ b/src/modules/error.f90 @@ -32,12 +32,12 @@ ! Wrapper subroutines to provide error tools to F77 and C code ! -subroutine FCpsb_errcomm(icontxt, err) +subroutine FCpsb_errcomm(ictxt, err) use psb_error_mod - integer, intent(in) :: icontxt + integer, intent(in) :: ictxt integer, intent(inout):: err - call psb_errcomm(icontxt, err) + call psb_errcomm(ictxt, err) end subroutine FCpsb_errcomm @@ -67,13 +67,13 @@ end subroutine FCpsb_serror -subroutine FCpsb_perror(icontxt) +subroutine FCpsb_perror(ictxt) use psb_error_mod implicit none - integer, intent(in) :: icontxt + integer, intent(in) :: ictxt - call psb_error(icontxt) + call psb_error(ictxt) end subroutine FCpsb_perror diff --git a/src/modules/psb_blacs_mod.f90 b/src/modules/psb_blacs_mod.f90 index f8786d8b..0fd1388f 100644 --- a/src/modules/psb_blacs_mod.f90 +++ b/src/modules/psb_blacs_mod.f90 @@ -77,16 +77,16 @@ module psb_blacs_mod contains - subroutine igebs2ds(icontxt,scope,dat,top) - integer, intent(in) :: icontxt,dat + subroutine igebs2ds(ictxt,scope,dat,top) + integer, intent(in) :: ictxt,dat character, intent(in) :: scope character, intent(in), optional :: top character :: top_ interface - subroutine igebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine igebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld integer, intent(in) :: v character, intent(in) :: scope, top end subroutine igebs2d @@ -98,19 +98,19 @@ contains top_ = ' ' endif - call igebs2d(icontxt,scope,top_,1,1,dat,1) + call igebs2d(ictxt,scope,top_,1,1,dat,1) end subroutine igebs2ds - subroutine igebs2dv(icontxt,scope,dat,top) - integer, intent(in) :: icontxt,dat(:) + subroutine igebs2dv(ictxt,scope,dat,top) + integer, intent(in) :: ictxt,dat(:) character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine igebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine igebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld integer, intent(in) :: v(*) character, intent(in) :: scope, top end subroutine igebs2d @@ -124,18 +124,18 @@ contains top_ = ' ' endif - call igebs2d(icontxt,scope,top_,size(dat,1),1,dat,size(dat,1)) + call igebs2d(ictxt,scope,top_,size(dat,1),1,dat,size(dat,1)) end subroutine igebs2dv - subroutine igebs2dm(icontxt,scope,dat,top) - integer, intent(in) :: icontxt,dat(:,:) + subroutine igebs2dm(ictxt,scope,dat,top) + integer, intent(in) :: ictxt,dat(:,:) character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine igebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine igebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld integer, intent(in) :: v(ld,*) character, intent(in) :: scope, top end subroutine igebs2d @@ -148,21 +148,21 @@ contains top_ = ' ' endif - call igebs2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1)) + call igebs2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1)) end subroutine igebs2dm - subroutine dgebs2ds(icontxt,scope,dat,top) - integer, intent(in) :: icontxt + subroutine dgebs2ds(ictxt,scope,dat,top) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(in) :: dat character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine dgebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(in) :: v character, intent(in) :: scope, top end subroutine dgebs2d @@ -175,19 +175,19 @@ contains top_ = ' ' endif - call dgebs2d(icontxt,scope,top_,1,1,dat,1) + call dgebs2d(ictxt,scope,top_,1,1,dat,1) end subroutine dgebs2ds - subroutine dgebs2dv(icontxt,scope,dat,top) - integer, intent(in) :: icontxt + subroutine dgebs2dv(ictxt,scope,dat,top) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(in) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine dgebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(in) :: v(*) character, intent(in) :: scope, top end subroutine dgebs2d @@ -201,20 +201,20 @@ contains top_ = ' ' endif - call dgebs2d(icontxt,scope,top_,size(dat),1,dat,size(dat)) + call dgebs2d(ictxt,scope,top_,size(dat),1,dat,size(dat)) end subroutine dgebs2dv - subroutine dgebs2dm(icontxt,scope,dat,top) - integer, intent(in) :: icontxt + subroutine dgebs2dm(ictxt,scope,dat,top) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(in) :: dat(:,:) character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine dgebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(in) :: v(ld,*) character, intent(in) :: scope, top end subroutine dgebs2d @@ -228,21 +228,21 @@ contains top_ = ' ' endif - call dgebs2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1)) + call dgebs2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1)) end subroutine dgebs2dm - subroutine zgebs2ds(icontxt,scope,dat,top) - integer, intent(in) :: icontxt + subroutine zgebs2ds(ictxt,scope,dat,top) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(in) :: dat character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine zgebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(in) :: v character, intent(in) :: scope, top end subroutine zgebs2d @@ -255,19 +255,19 @@ contains top_ = ' ' endif - call zgebs2d(icontxt,scope,top_,1,1,dat,1) + call zgebs2d(ictxt,scope,top_,1,1,dat,1) end subroutine zgebs2ds - subroutine zgebs2dv(icontxt,scope,dat,top) - integer, intent(in) :: icontxt + subroutine zgebs2dv(ictxt,scope,dat,top) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(in) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine zgebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(in) :: v(*) character, intent(in) :: scope, top end subroutine zgebs2d @@ -281,20 +281,20 @@ contains top_ = ' ' endif - call zgebs2d(icontxt,scope,top_,size(dat),1,dat,size(dat)) + call zgebs2d(ictxt,scope,top_,size(dat),1,dat,size(dat)) end subroutine zgebs2dv - subroutine zgebs2dm(icontxt,scope,dat,top) - integer, intent(in) :: icontxt + subroutine zgebs2dm(ictxt,scope,dat,top) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(in) :: dat(:,:) character, intent(in) :: scope character, intent(in), optional :: top interface - subroutine zgebs2d(icontxt,scope,top,m,n,v,ld) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgebs2d(ictxt,scope,top,m,n,v,ld) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(in) :: v(ld,*) character, intent(in) :: scope, top end subroutine zgebs2d @@ -308,7 +308,7 @@ contains top_ = ' ' endif - call zgebs2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1)) + call zgebs2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1)) end subroutine zgebs2dm @@ -316,16 +316,16 @@ contains - subroutine dgebr2ds(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgebr2ds(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine dgebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -335,7 +335,7 @@ contains integer :: rrt_, crt_ integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -364,20 +364,20 @@ contains crt_ = crt endif - call dgebr2d(icontxt,scope,top_,1,1,dat,1,rrt_,crt_) + call dgebr2d(ictxt,scope,top_,1,1,dat,1,rrt_,crt_) end subroutine dgebr2ds - subroutine dgebr2dv(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgebr2dv(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine dgebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -388,7 +388,7 @@ contains integer :: nrows,ncols,myrow,mycol integer :: rrt_, crt_ - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -417,12 +417,12 @@ contains crt_ = crt endif - call dgebr2d(icontxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) + call dgebr2d(ictxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) end subroutine dgebr2dv - subroutine dgebr2dm(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgebr2dm(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope @@ -430,8 +430,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine dgebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(ld,*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -442,7 +442,7 @@ contains integer :: nrows,ncols,myrow,mycol integer :: rrt_, crt_ - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -471,23 +471,23 @@ contains crt_ = crt endif - call dgebr2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) + call dgebr2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) end subroutine dgebr2dm - subroutine zgebr2ds(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgebr2ds(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine zgebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -497,7 +497,7 @@ contains integer :: rrt_, crt_ integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -525,20 +525,20 @@ contains crt_ = crt endif - call zgebr2d(icontxt,scope,top_,1,1,dat,1,rrt_,crt_) + call zgebr2d(ictxt,scope,top_,1,1,dat,1,rrt_,crt_) end subroutine zgebr2ds - subroutine zgebr2dv(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgebr2dv(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine zgebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -549,7 +549,7 @@ contains integer :: nrows,ncols,myrow,mycol integer :: rrt_, crt_ - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -578,12 +578,12 @@ contains crt_ = crt endif - call zgebr2d(icontxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) + call zgebr2d(ictxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) end subroutine zgebr2dv - subroutine zgebr2dm(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgebr2dm(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope @@ -591,8 +591,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine zgebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(ld,*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -603,7 +603,7 @@ contains integer :: nrows,ncols,myrow,mycol integer :: rrt_, crt_ - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -632,22 +632,22 @@ contains crt_ = crt endif - call zgebr2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) + call zgebr2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) end subroutine zgebr2dm - subroutine igebr2ds(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine igebr2ds(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine igebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -657,7 +657,7 @@ contains integer :: rrt_, crt_ integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -685,20 +685,20 @@ contains crt_ = crt endif - call igebr2d(icontxt,scope,top_,1,1,dat,1,rrt_,crt_) + call igebr2d(ictxt,scope,top_,1,1,dat,1,rrt_,crt_) end subroutine igebr2ds - subroutine igebr2dv(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine igebr2dv(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine igebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -709,7 +709,7 @@ contains integer :: nrows,ncols,myrow,mycol integer :: rrt_, crt_ - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -738,12 +738,12 @@ contains crt_ = crt endif - call igebr2d(icontxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) + call igebr2d(ictxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) end subroutine igebr2dv - subroutine igebr2dm(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine igebr2dm(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:,:) character, intent(in) :: scope @@ -751,8 +751,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine igebr2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igebr2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(ld,*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -763,7 +763,7 @@ contains integer :: nrows,ncols,myrow,mycol integer :: rrt_, crt_ - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -792,344 +792,344 @@ contains crt_ = crt endif - call igebr2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) + call igebr2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) end subroutine igebr2dm - subroutine dgesd2ds(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine dgesd2ds(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(in) :: dat integer, intent(in) :: rdst,cdst interface - subroutine dgesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(in) :: v integer, intent(in) :: rd,cd end subroutine dgesd2d end interface - call dgesd2d(icontxt,1,1,dat,1,rdst,cdst) + call dgesd2d(ictxt,1,1,dat,1,rdst,cdst) end subroutine dgesd2ds - subroutine dgesd2dv(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine dgesd2dv(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(in) :: dat(:) integer, intent(in) :: rdst,cdst interface - subroutine dgesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(in) :: v(*) integer, intent(in) :: rd,cd end subroutine dgesd2d end interface - call dgesd2d(icontxt,size(dat),1,dat,size(dat),rdst,cdst) + call dgesd2d(ictxt,size(dat),1,dat,size(dat),rdst,cdst) end subroutine dgesd2dv - subroutine dgesd2dm(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine dgesd2dm(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(in) :: dat(:,:) integer, intent(in) :: rdst,cdst interface - subroutine dgesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(in) :: v(ld,*) integer, intent(in) :: rd,cd end subroutine dgesd2d end interface - call dgesd2d(icontxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) + call dgesd2d(ictxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) end subroutine dgesd2dm - subroutine igesd2ds(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine igesd2ds(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt integer, intent(in) :: dat integer, intent(in) :: rdst,cdst interface - subroutine igesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine igesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld integer, intent(in) :: v integer, intent(in) :: rd,cd end subroutine igesd2d end interface - call igesd2d(icontxt,1,1,dat,1,rdst,cdst) + call igesd2d(ictxt,1,1,dat,1,rdst,cdst) end subroutine igesd2ds - subroutine igesd2dv(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine igesd2dv(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt integer, intent(in) :: dat(:) integer, intent(in) :: rdst,cdst interface - subroutine igesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine igesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld integer, intent(in) :: v(*) integer, intent(in) :: rd,cd end subroutine igesd2d end interface - call igesd2d(icontxt,size(dat),1,dat,size(dat),rdst,cdst) + call igesd2d(ictxt,size(dat),1,dat,size(dat),rdst,cdst) end subroutine igesd2dv - subroutine igesd2dm(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine igesd2dm(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt integer, intent(in) :: dat(:,:) integer, intent(in) :: rdst,cdst interface - subroutine igesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine igesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld integer, intent(in) :: v(ld,*) integer, intent(in) :: rd,cd end subroutine igesd2d end interface - call igesd2d(icontxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) + call igesd2d(ictxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) end subroutine igesd2dm - subroutine zgesd2ds(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine zgesd2ds(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(in) :: dat integer, intent(in) :: rdst,cdst interface - subroutine zgesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(in) :: v integer, intent(in) :: rd,cd end subroutine zgesd2d end interface - call zgesd2d(icontxt,1,1,dat,1,rdst,cdst) + call zgesd2d(ictxt,1,1,dat,1,rdst,cdst) end subroutine zgesd2ds - subroutine zgesd2dv(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine zgesd2dv(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(in) :: dat(:) integer, intent(in) :: rdst,cdst interface - subroutine zgesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(in) :: v(*) integer, intent(in) :: rd,cd end subroutine zgesd2d end interface - call zgesd2d(icontxt,size(dat),1,dat,size(dat),rdst,cdst) + call zgesd2d(ictxt,size(dat),1,dat,size(dat),rdst,cdst) end subroutine zgesd2dv - subroutine zgesd2dm(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine zgesd2dm(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(in) :: dat(:,:) integer, intent(in) :: rdst,cdst interface - subroutine zgesd2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgesd2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(in) :: v(ld,*) integer, intent(in) :: rd,cd end subroutine zgesd2d end interface - call zgesd2d(icontxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) + call zgesd2d(ictxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) end subroutine zgesd2dm - subroutine dgerv2ds(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine dgerv2ds(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat integer, intent(in) :: rdst,cdst interface - subroutine dgerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v integer, intent(in) :: rd,cd end subroutine dgerv2d end interface - call dgerv2d(icontxt,1,1,dat,1,rdst,cdst) + call dgerv2d(ictxt,1,1,dat,1,rdst,cdst) end subroutine dgerv2ds - subroutine dgerv2dv(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine dgerv2dv(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:) integer, intent(in) :: rdst,cdst interface - subroutine dgerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(*) integer, intent(in) :: rd,cd end subroutine dgerv2d end interface - call dgerv2d(icontxt,size(dat),1,dat,size(dat),rdst,cdst) + call dgerv2d(ictxt,size(dat),1,dat,size(dat),rdst,cdst) end subroutine dgerv2dv - subroutine dgerv2dm(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine dgerv2dm(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:,:) integer, intent(in) :: rdst,cdst interface - subroutine dgerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(ld,*) integer, intent(in) :: rd,cd end subroutine dgerv2d end interface - call dgerv2d(icontxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) + call dgerv2d(ictxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) end subroutine dgerv2dm - subroutine igerv2ds(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine igerv2ds(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt integer, intent(inout) :: dat integer, intent(in) :: rdst,cdst interface - subroutine igerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine igerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v integer, intent(in) :: rd,cd end subroutine igerv2d end interface - call igerv2d(icontxt,1,1,dat,1,rdst,cdst) + call igerv2d(ictxt,1,1,dat,1,rdst,cdst) end subroutine igerv2ds - subroutine igerv2dv(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine igerv2dv(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:) integer, intent(in) :: rdst,cdst interface - subroutine igerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine igerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(*) integer, intent(in) :: rd,cd end subroutine igerv2d end interface - call igerv2d(icontxt,size(dat),1,dat,size(dat),rdst,cdst) + call igerv2d(ictxt,size(dat),1,dat,size(dat),rdst,cdst) end subroutine igerv2dv - subroutine igerv2dm(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine igerv2dm(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:,:) integer, intent(in) :: rdst,cdst interface - subroutine igerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine igerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(ld,*) integer, intent(in) :: rd,cd end subroutine igerv2d end interface - call igerv2d(icontxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) + call igerv2d(ictxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) end subroutine igerv2dm - subroutine zgerv2ds(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine zgerv2ds(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat integer, intent(in) :: rdst,cdst interface - subroutine zgerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v integer, intent(in) :: rd,cd end subroutine zgerv2d end interface - call zgerv2d(icontxt,1,1,dat,1,rdst,cdst) + call zgerv2d(ictxt,1,1,dat,1,rdst,cdst) end subroutine zgerv2ds - subroutine zgerv2dv(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine zgerv2dv(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:) integer, intent(in) :: rdst,cdst interface - subroutine zgerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(*) integer, intent(in) :: rd,cd end subroutine zgerv2d end interface - call zgerv2d(icontxt,size(dat),1,dat,size(dat),rdst,cdst) + call zgerv2d(ictxt,size(dat),1,dat,size(dat),rdst,cdst) end subroutine zgerv2dv - subroutine zgerv2dm(icontxt,dat,rdst,cdst) - integer, intent(in) :: icontxt + subroutine zgerv2dm(ictxt,dat,rdst,cdst) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:,:) integer, intent(in) :: rdst,cdst interface - subroutine zgerv2d(icontxt,m,n,v,ld,rd,cd) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgerv2d(ictxt,m,n,v,ld,rd,cd) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(ld,*) integer, intent(in) :: rd,cd end subroutine zgerv2d end interface - call zgerv2d(icontxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) + call zgerv2d(ictxt,size(dat,1),size(dat,2),dat,size(dat,1),rdst,cdst) end subroutine zgerv2dm - subroutine dgsum2ds(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgsum2ds(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine dgsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1140,7 +1140,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1169,20 +1169,20 @@ contains crt_ = crt endif - call dgsum2d(icontxt,scope,top_,1,1,dat,1,rrt_,crt_) + call dgsum2d(ictxt,scope,top_,1,1,dat,1,rrt_,crt_) end subroutine dgsum2ds - subroutine dgsum2dv(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgsum2dv(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine dgsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1194,7 +1194,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1223,12 +1223,12 @@ contains crt_ = crt endif - call dgsum2d(icontxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) + call dgsum2d(ictxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) end subroutine dgsum2dv - subroutine dgsum2dm(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgsum2dm(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope @@ -1236,8 +1236,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine dgsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(ld,*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1249,7 +1249,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1278,22 +1278,22 @@ contains crt_ = crt endif - call dgsum2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) + call dgsum2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) end subroutine dgsum2dm - subroutine igsum2ds(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine igsum2ds(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine igsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1304,7 +1304,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1333,20 +1333,20 @@ contains crt_ = crt endif - call igsum2d(icontxt,scope,top_,1,1,dat,1,rrt_,crt_) + call igsum2d(ictxt,scope,top_,1,1,dat,1,rrt_,crt_) end subroutine igsum2ds - subroutine igsum2dv(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine igsum2dv(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine igsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1358,7 +1358,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1387,12 +1387,12 @@ contains crt_ = crt endif - call igsum2d(icontxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) + call igsum2d(ictxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) end subroutine igsum2dv - subroutine igsum2dm(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine igsum2dm(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:,:) character, intent(in) :: scope @@ -1400,8 +1400,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine igsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(ld,*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1413,7 +1413,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1442,22 +1442,22 @@ contains crt_ = crt endif - call igsum2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) + call igsum2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) end subroutine igsum2dm - subroutine zgsum2ds(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgsum2ds(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine zgsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1468,7 +1468,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1497,20 +1497,20 @@ contains crt_ = crt endif - call zgsum2d(icontxt,scope,top_,1,1,dat,1,rrt_,crt_) + call zgsum2d(ictxt,scope,top_,1,1,dat,1,rrt_,crt_) end subroutine zgsum2ds - subroutine zgsum2dv(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgsum2dv(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top integer, intent(in), optional :: rrt,crt interface - subroutine zgsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1522,7 +1522,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1551,12 +1551,12 @@ contains crt_ = crt endif - call zgsum2d(icontxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) + call zgsum2d(ictxt,scope,top_,size(dat),1,dat,size(dat),rrt_,crt_) end subroutine zgsum2dv - subroutine zgsum2dm(icontxt,scope,dat,top,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgsum2dm(ictxt,scope,dat,top,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope @@ -1564,8 +1564,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine zgsum2d(icontxt,scope,top,m,n,v,ld,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgsum2d(ictxt,scope,top,m,n,v,ld,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(ld,*) character, intent(in) :: scope, top integer, intent(in) :: rrt,crt @@ -1577,7 +1577,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1606,15 +1606,15 @@ contains crt_ = crt endif - call zgsum2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) + call zgsum2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),rrt_,crt_) end subroutine zgsum2dm - subroutine dgamx2ds(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgamx2ds(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top @@ -1622,8 +1622,8 @@ contains integer, intent(inout), optional :: ria,cia interface - subroutine dgamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -1636,7 +1636,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1666,17 +1666,17 @@ contains endif if (present(ria).or.present(cia)) then - call dgamx2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) + call dgamx2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) if (present(ria)) ria=ria_(1) if (present(cia)) cia=cia_(1) else - call dgamx2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) + call dgamx2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) endif end subroutine dgamx2ds - subroutine dgamx2dv(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgamx2dv(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top @@ -1684,8 +1684,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine dgamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -1699,7 +1699,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1729,18 +1729,18 @@ contains endif if (present(ria).and.present(cia)) then - call dgamx2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call dgamx2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria,cia,min(size(ria),size(cia)),rrt_,crt_) else ldia_ = -1 - call dgamx2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call dgamx2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine dgamx2dv - subroutine dgamx2dm(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgamx2dm(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope integer, intent(inout), optional :: ria(:,:),cia(:,:) @@ -1748,8 +1748,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine dgamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld,ldia + subroutine dgamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld,ldia real(kind(1.d0)), intent(inout) :: v(ld,*) integer, intent(inout) :: ria(ldia,*),cia(ldia,*) character, intent(in) :: scope, top @@ -1763,7 +1763,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1793,11 +1793,11 @@ contains endif if (present(ria).and.present(cia)) then - call dgamx2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call dgamx2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria,cia,min(size(ria,1),size(cia,1)),rrt_,crt_) else ldia_ = -1 - call dgamx2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call dgamx2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria_,cia_,ldia_,rrt_,crt_) end if @@ -1805,8 +1805,8 @@ contains - subroutine igamx2ds(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine igamx2ds(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top @@ -1814,8 +1814,8 @@ contains integer, intent(inout), optional :: ria,cia interface - subroutine igamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -1828,7 +1828,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1858,17 +1858,17 @@ contains endif if (present(ria).or.present(cia)) then - call igamx2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) + call igamx2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) if (present(ria)) ria=ria_(1) if (present(cia)) cia=cia_(1) else - call igamx2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) + call igamx2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) endif end subroutine igamx2ds - subroutine igamx2dv(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine igamx2dv(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top @@ -1876,8 +1876,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine igamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -1891,7 +1891,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1921,18 +1921,18 @@ contains endif if (present(ria).and.present(cia)) then - call igamx2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call igamx2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria,cia,min(size(ria),size(cia)),rrt_,crt_) else ldia_ = -1 - call igamx2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call igamx2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine igamx2dv - subroutine igamx2dm(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine igamx2dm(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:,:) character, intent(in) :: scope integer, intent(inout), optional :: ria(:,:),cia(:,:) @@ -1940,8 +1940,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine igamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld,ldia + subroutine igamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld,ldia integer, intent(inout) :: v(ld,*) integer, intent(inout) :: ria(ldia,*),cia(ldia,*) character, intent(in) :: scope, top @@ -1955,7 +1955,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -1985,11 +1985,11 @@ contains endif if (present(ria).and.present(cia)) then - call igamx2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call igamx2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria,cia,min(size(ria,1),size(cia,1)),rrt_,crt_) else ldia_ = -1 - call igamx2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call igamx2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria_,cia_,ldia_,rrt_,crt_) end if @@ -1997,8 +1997,8 @@ contains - subroutine zgamx2ds(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgamx2ds(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top @@ -2006,8 +2006,8 @@ contains integer, intent(inout), optional :: ria,cia interface - subroutine zgamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2020,7 +2020,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2050,17 +2050,17 @@ contains endif if (present(ria).or.present(cia)) then - call zgamx2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) + call zgamx2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) if (present(ria)) ria=ria_(1) if (present(cia)) cia=cia_(1) else - call zgamx2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) + call zgamx2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) endif end subroutine zgamx2ds - subroutine zgamx2dv(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgamx2dv(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top @@ -2068,8 +2068,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine zgamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2083,7 +2083,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2113,18 +2113,18 @@ contains endif if (present(ria).and.present(cia)) then - call zgamx2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call zgamx2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria,cia,min(size(ria),size(cia)),rrt_,crt_) else ldia_ = -1 - call zgamx2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call zgamx2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine zgamx2dv - subroutine zgamx2dm(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgamx2dm(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope integer, intent(inout), optional :: ria(:,:),cia(:,:) @@ -2132,8 +2132,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine zgamx2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld,ldia + subroutine zgamx2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld,ldia complex(kind(1.d0)), intent(inout) :: v(ld,*) integer, intent(inout) :: ria(ldia,*),cia(ldia,*) character, intent(in) :: scope, top @@ -2147,7 +2147,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2177,19 +2177,19 @@ contains endif if (present(ria).and.present(cia)) then - call zgamx2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call zgamx2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria,cia,min(size(ria,1),size(cia,1)),rrt_,crt_) else ldia_ = -1 - call zgamx2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call zgamx2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine zgamx2dm - subroutine dgamn2ds(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgamn2ds(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top @@ -2197,8 +2197,8 @@ contains integer, intent(inout), optional :: ria,cia interface - subroutine dgamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2211,7 +2211,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2241,17 +2241,17 @@ contains endif if (present(ria).or.present(cia)) then - call dgamn2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) + call dgamn2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) if (present(ria)) ria=ria_(1) if (present(cia)) cia=cia_(1) else - call dgamn2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) + call dgamn2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) endif end subroutine dgamn2ds - subroutine dgamn2dv(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgamn2dv(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top @@ -2259,8 +2259,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine dgamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine dgamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld real(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2274,7 +2274,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2304,18 +2304,18 @@ contains endif if (present(ria).and.present(cia)) then - call dgamn2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call dgamn2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria,cia,min(size(ria),size(cia)),rrt_,crt_) else ldia_ = -1 - call dgamn2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call dgamn2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine dgamn2dv - subroutine dgamn2dm(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine dgamn2dm(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt real(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope integer, intent(inout), optional :: ria(:,:),cia(:,:) @@ -2323,8 +2323,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine dgamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld,ldia + subroutine dgamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld,ldia real(kind(1.d0)), intent(inout) :: v(ld,*) integer, intent(inout) :: ria(ldia,*),cia(ldia,*) character, intent(in) :: scope, top @@ -2338,7 +2338,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2368,11 +2368,11 @@ contains endif if (present(ria).and.present(cia)) then - call dgamn2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call dgamn2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria,cia,min(size(ria,1),size(cia,1)),rrt_,crt_) else ldia_ = -1 - call dgamn2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call dgamn2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria_,cia_,ldia_,rrt_,crt_) end if @@ -2380,8 +2380,8 @@ contains - subroutine igamn2ds(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine igamn2ds(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top @@ -2389,8 +2389,8 @@ contains integer, intent(inout), optional :: ria,cia interface - subroutine igamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2403,7 +2403,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2433,17 +2433,17 @@ contains endif if (present(ria).or.present(cia)) then - call igamn2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) + call igamn2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) if (present(ria)) ria=ria_(1) if (present(cia)) cia=cia_(1) else - call igamn2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) + call igamn2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) endif end subroutine igamn2ds - subroutine igamn2dv(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine igamn2dv(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top @@ -2451,8 +2451,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine igamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine igamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld integer, intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2466,7 +2466,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2496,18 +2496,18 @@ contains endif if (present(ria).and.present(cia)) then - call igamn2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call igamn2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria,cia,min(size(ria),size(cia)),rrt_,crt_) else ldia_ = -1 - call igamn2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call igamn2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine igamn2dv - subroutine igamn2dm(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine igamn2dm(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt integer, intent(inout) :: dat(:,:) character, intent(in) :: scope integer, intent(inout), optional :: ria(:,:),cia(:,:) @@ -2515,8 +2515,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine igamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld,ldia + subroutine igamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld,ldia integer, intent(inout) :: v(ld,*) integer, intent(inout) :: ria(ldia,*),cia(ldia,*) character, intent(in) :: scope, top @@ -2530,7 +2530,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2560,11 +2560,11 @@ contains endif if (present(ria).and.present(cia)) then - call igamn2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call igamn2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria,cia,min(size(ria,1),size(cia,1)),rrt_,crt_) else ldia_ = -1 - call igamn2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call igamn2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria_,cia_,ldia_,rrt_,crt_) end if @@ -2572,8 +2572,8 @@ contains - subroutine zgamn2ds(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgamn2ds(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat character, intent(in) :: scope character, intent(in), optional :: top @@ -2581,8 +2581,8 @@ contains integer, intent(inout), optional :: ria,cia interface - subroutine zgamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2595,7 +2595,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2625,17 +2625,17 @@ contains endif if (present(ria).or.present(cia)) then - call zgamn2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) + call zgamn2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,1,rrt_,crt_) if (present(ria)) ria=ria_(1) if (present(cia)) cia=cia_(1) else - call zgamn2d(icontxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) + call zgamn2d(ictxt,scope,top_,1,1,dat,1,ria_,cia_,-1,rrt_,crt_) endif end subroutine zgamn2ds - subroutine zgamn2dv(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgamn2dv(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:) character, intent(in) :: scope character, intent(in), optional :: top @@ -2643,8 +2643,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine zgamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld + subroutine zgamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld complex(kind(1.d0)), intent(inout) :: v(*) character, intent(in) :: scope, top integer, intent(inout) :: ria(*),cia(*) @@ -2658,7 +2658,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2687,18 +2687,18 @@ contains endif if (present(ria).and.present(cia)) then - call zgamn2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call zgamn2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria,cia,min(size(ria),size(cia)),rrt_,crt_) else ldia_ = -1 - call zgamn2d(icontxt,scope,top_,size(dat),1,dat,size(dat),& + call zgamn2d(ictxt,scope,top_,size(dat),1,dat,size(dat),& & ria_,cia_,ldia_,rrt_,crt_) end if end subroutine zgamn2dv - subroutine zgamn2dm(icontxt,scope,dat,top,ria,cia,rrt,crt) - integer, intent(in) :: icontxt + subroutine zgamn2dm(ictxt,scope,dat,top,ria,cia,rrt,crt) + integer, intent(in) :: ictxt complex(kind(1.d0)), intent(inout) :: dat(:,:) character, intent(in) :: scope integer, intent(inout), optional :: ria(:,:),cia(:,:) @@ -2706,8 +2706,8 @@ contains integer, intent(in), optional :: rrt,crt interface - subroutine zgamn2d(icontxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) - integer, intent(in) :: icontxt,m,n,ld,ldia + subroutine zgamn2d(ictxt,scope,top,m,n,v,ld,ria,cia,ldia,rrt,crt) + integer, intent(in) :: ictxt,m,n,ld,ldia complex(kind(1.d0)), intent(inout) :: v(ld,*) integer, intent(inout) :: ria(ldia,*),cia(ldia,*) character, intent(in) :: scope, top @@ -2721,7 +2721,7 @@ contains integer :: nrows,ncols,myrow,mycol - call blacs_gridinfo(icontxt,nrows,ncols,myrow,mycol) + call blacs_gridinfo(ictxt,nrows,ncols,myrow,mycol) select case(scope) case('R','r') rrt_ = myrow @@ -2751,11 +2751,11 @@ contains endif if (present(ria).and.present(cia)) then - call zgamn2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call zgamn2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria,cia,min(size(ria,1),size(cia,1)),rrt_,crt_) else ldia_ = -1 - call zgamn2d(icontxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& + call zgamn2d(ictxt,scope,top_,size(dat,1),size(dat,2),dat,size(dat,1),& & ria_,cia_,ldia_,rrt_,crt_) end if diff --git a/src/modules/psb_error_mod.f90 b/src/modules/psb_error_mod.f90 index 2f76627a..7b69a38e 100644 --- a/src/modules/psb_error_mod.f90 +++ b/src/modules/psb_error_mod.f90 @@ -104,13 +104,13 @@ contains ! checks wether an error has occurred on one of the porecesses in the execution pool - subroutine psb_errcomm(icontxt, err) - integer, intent(in) :: icontxt + subroutine psb_errcomm(ictxt, err) + integer, intent(in) :: ictxt integer, intent(inout):: err integer :: temp(2) integer, parameter :: ione=1 - call igamx2d(icontxt, 'A', ' ', ione, ione, err, ione,& + call igamx2d(ictxt, 'A', ' ', ione, ione, err, ione,& &temp ,temp,-ione ,-ione,-ione) end subroutine psb_errcomm @@ -192,16 +192,16 @@ contains ! handles the occurence of an error in a parallel routine - subroutine psb_perror(icontxt) + subroutine psb_perror(ictxt) - integer, intent(in) :: icontxt + integer, intent(in) :: ictxt integer :: err_c character(len=20) :: r_name, a_e_d integer :: i_e_d(5) integer :: nprow, npcol, me, mypcol, temp(2) integer, parameter :: ione=1, izero=0 - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if(error_status.gt.0) then if(verbosity_level.gt.1) then @@ -212,7 +212,7 @@ contains call psb_errmsg(err_c, r_name, i_e_d, a_e_d,me) ! write(0,'(50("="))') end do - call blacs_abort(icontxt,-1) + call blacs_abort(ictxt,-1) else call psb_errpop(err_c, r_name, i_e_d, a_e_d) @@ -220,12 +220,12 @@ contains do while (error_stack%n_elems.gt.0) call psb_errpop(err_c, r_name, i_e_d, a_e_d) end do - call blacs_abort(icontxt,-1) + call blacs_abort(ictxt,-1) end if end if if(error_status.gt.izero) then - call blacs_abort(icontxt,err_c) + call blacs_abort(ictxt,err_c) end if @@ -384,6 +384,8 @@ contains write (0,'("computational error. code: ",i0)')err_c case(2010) write (0,'("BLACS error. Number of processes=-1")') + case(2011) + write (0,'("Initialization error: not enough processes available in the parallel environment")') case(2025) write (0,'("Cannot allocate ",i0," bytes")')i_e_d(1) case(2030) diff --git a/src/modules/psb_tools_mod.f90 b/src/modules/psb_tools_mod.f90 index 6a0a729d..0efd7f8d 100644 --- a/src/modules/psb_tools_mod.f90 +++ b/src/modules/psb_tools_mod.f90 @@ -358,16 +358,16 @@ Module psb_tools_mod interface psb_cdall - subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) + subroutine psb_cdall(m, n, parts, ictxt, desc_a, info) use psb_descriptor_type include 'parts.fh' - Integer, intent(in) :: m,n,icontxt + Integer, intent(in) :: m,n,ictxt Type(psb_desc_type), intent(out) :: desc_a integer, intent(out) :: info end subroutine psb_cdall - subroutine psb_cdalv(m, v, icontxt, desc_a, info, flag) + subroutine psb_cdalv(m, v, ictxt, desc_a, info, flag) use psb_descriptor_type - Integer, intent(in) :: m,icontxt, v(:) + Integer, intent(in) :: m,ictxt, v(:) integer, intent(in), optional :: flag integer, intent(out) :: info Type(psb_desc_type), intent(out) :: desc_a @@ -615,22 +615,45 @@ Module psb_tools_mod interface psb_cdrep - subroutine psb_cdrep(m, icontxt, desc_a,info) + subroutine psb_cdrep(m, ictxt, desc_a,info) use psb_descriptor_type - Integer, intent(in) :: m,icontxt + Integer, intent(in) :: m,ictxt Type(psb_desc_type), intent(out) :: desc_a integer, intent(out) :: info end subroutine psb_cdrep end interface interface psb_cddec - subroutine psb_cddec(nloc, icontxt, desc_a,info) + subroutine psb_cddec(nloc, ictxt, desc_a,info) use psb_descriptor_type - Integer, intent(in) :: nloc,icontxt + Integer, intent(in) :: nloc,ictxt Type(psb_desc_type), intent(out) :: desc_a integer, intent(out) :: info end subroutine psb_cddec end interface + interface psb_init + subroutine psb_init(ictxt,np) + integer, intent(out) :: ictxt + integer, intent(in), optional :: np + end subroutine psb_init + end interface + interface psb_exit + subroutine psb_exit(ictxt) + integer, intent(in) :: ictxt + end subroutine psb_exit + end interface + interface psb_info + subroutine psb_info(ictxt,iam,np) + integer, intent(in) :: ictxt + integer, intent(out) :: iam, np + end subroutine psb_info + end interface + + interface psb_barrier + subroutine psb_barrier(ictxt) + integer, intent(in) :: ictxt + end subroutine psb_barrier + end interface end module psb_tools_mod diff --git a/src/prec/psb_dasmatbld.f90 b/src/prec/psb_dasmatbld.f90 index c1ef0d59..c2fbe316 100644 --- a/src/prec/psb_dasmatbld.f90 +++ b/src/prec/psb_dasmatbld.f90 @@ -79,7 +79,7 @@ Subroutine psb_dasmatbld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) ! .. Local Scalars .. Integer :: k, tot_elem,proc,& & point,nprow,npcol, me, mycol, start,m,nnzero,& - & icontxt, lovr, n_col, linp,ier,n,int_err(5),& + & ictxt, lovr, n_col, linp,ier,n,int_err(5),& & tot_recv, ircode, n_row, nztot,nhalo, nrow_a,err_act Logical,Parameter :: debug=.false., debugprt=.false. character(len=20) :: name, ch_err @@ -89,7 +89,7 @@ Subroutine psb_dasmatbld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) call psb_erractionsave(err_act) If(debug) Write(0,*)'IN DASMATBLD ', upd - icontxt=desc_data%matrix_data(psb_ctxt_) + ictxt=desc_data%matrix_data(psb_ctxt_) tot_recv=0 nrow_a = desc_data%matrix_data(psb_n_row_) @@ -133,7 +133,7 @@ Subroutine psb_dasmatbld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) ! ! - icontxt=desc_data%matrix_data(psb_ctxt_) + ictxt=desc_data%matrix_data(psb_ctxt_) if (novr < 0) then info=3 @@ -171,9 +171,9 @@ Subroutine psb_dasmatbld(ptype,novr,a,blk,desc_data,upd,desc_p,info,outfmt) return endif - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) - Call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + Call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) If(debug)Write(0,*)'BEGIN dasmatbld',me,upd,novr t1 = mpi_wtime() diff --git a/src/prec/psb_dbaseprc_aply.f90 b/src/prec/psb_dbaseprc_aply.f90 index 9c35dee7..08da46fc 100644 --- a/src/prec/psb_dbaseprc_aply.f90 +++ b/src/prec/psb_dbaseprc_aply.f90 @@ -60,7 +60,7 @@ subroutine psb_dbaseprc_aply(prec,x,beta,y,desc_data,trans,work,info) integer :: n_row,n_col, int_err(5) real(kind(1.d0)), pointer :: ww(:), aux(:), tx(:),ty(:) character ::diagl, diagu - integer :: icontxt,nprow,npcol,me,mycol,i, isz, nrg, err_act + integer :: ictxt,nprow,npcol,me,mycol,i, isz, nrg, err_act real(kind(1.d0)) :: t1, t2, t3, t4, t5, t6, t7, mpi_wtime logical,parameter :: debug=.false., debugprt=.false. external mpi_wtime @@ -84,8 +84,8 @@ subroutine psb_dbaseprc_aply(prec,x,beta,y,desc_data,trans,work,info) info = 0 call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) diagl='U' diagu='U' diff --git a/src/prec/psb_dbaseprc_bld.f90 b/src/prec/psb_dbaseprc_bld.f90 index 8e70aac6..b6ef7594 100644 --- a/src/prec/psb_dbaseprc_bld.f90 +++ b/src/prec/psb_dbaseprc_bld.f90 @@ -110,7 +110,7 @@ subroutine psb_dbaseprc_bld(a,desc_a,p,info,upd) end interface ! Local scalars - Integer :: err, nnzero, n_row, n_col,I,j,k,icontxt,& + Integer :: err, nnzero, n_row, n_col,I,j,k,ictxt,& & me,mycol,nprow,npcol,mglob,lw, mtype, nrg, nzg, err_act real(kind(1.d0)) :: temp, real_err(5) real(kind(1.d0)),pointer :: gd(:), work(:) @@ -130,12 +130,12 @@ subroutine psb_dbaseprc_bld(a,desc_a,p,info,upd) if (debug) write(0,*) 'Entering baseprc_bld' info = 0 int_err(1) = 0 - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) mglob = desc_a%matrix_data(psb_m_) if (debug) write(0,*) 'Preconditioner Blacs_gridinfo' - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) if (present(upd)) then if (debug) write(0,*) 'UPD ', upd @@ -195,14 +195,14 @@ subroutine psb_dbaseprc_bld(a,desc_a,p,info,upd) & f_ilu_n_,is_legal_ml_fact) if (debug) write(0,*)me, ': Calling PSB_ILU_BLD' - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') select case(p%iprcparm(f_type_)) case(f_ilu_n_,f_ilu_e_) call psb_ilu_bld(a,desc_a,p,iupd,info) if(debug) write(0,*)me,': out of psb_ilu_bld' - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') if(info /= 0) then info=4010 ch_err='psb_ilu_bld' diff --git a/src/prec/psb_dbjac_aply.f90 b/src/prec/psb_dbjac_aply.f90 index ad1565b6..3e2f37ba 100644 --- a/src/prec/psb_dbjac_aply.f90 +++ b/src/prec/psb_dbjac_aply.f90 @@ -62,7 +62,7 @@ subroutine psb_dbjac_aply(prec,x,beta,y,desc_data,trans,work,info) integer :: n_row,n_col real(kind(1.d0)), pointer :: ww(:), aux(:), tx(:),ty(:),tb(:) character ::diagl, diagu - integer :: icontxt,nprow,npcol,me,mycol,i, isz, nrg, err_act, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,i, isz, nrg, err_act, int_err(5) real(kind(1.d0)) :: t1, t2, t3, t4, t5, t6, t7, mpi_wtime logical,parameter :: debug=.false., debugprt=.false. external mpi_wtime @@ -72,8 +72,8 @@ subroutine psb_dbjac_aply(prec,x,beta,y,desc_data,trans,work,info) info = 0 call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) diagl='U' diagu='U' diff --git a/src/prec/psb_dbldaggrmat.f90 b/src/prec/psb_dbldaggrmat.f90 index d7db39eb..8b9191f4 100644 --- a/src/prec/psb_dbldaggrmat.f90 +++ b/src/prec/psb_dbldaggrmat.f90 @@ -52,15 +52,15 @@ subroutine psb_dbldaggrmat(a,desc_a,ac,p,desc_p,info) integer, intent(out) :: info logical, parameter :: aggr_dump=.false. - integer ::icontxt,nprow,npcol,me,mycol, err_act + integer ::ictxt,nprow,npcol,me,mycol, err_act character(len=20) :: name, ch_err name='psb_dbldaggrmat' if(psb_get_errstatus().ne.0) return info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) select case (p%iprcparm(smth_kind_)) case (no_smth_) @@ -112,7 +112,7 @@ contains type(psb_dspmat_type), pointer :: bg type(psb_dspmat_type) :: b, tmp integer, pointer :: nzbr(:), idisp(:) - integer :: icontxt, nrow, nglob, ncol, ntaggr, nzbg, ip, ndx,& + integer :: ictxt, nrow, nglob, ncol, ntaggr, nzbg, ip, ndx,& & naggr, np, myprow, mypcol, nprows, npcols,nzt,irs,jl,nzl,nlr,& & icomm,naggrm1, mtype, i, j, err_act name='raw_aggregate' @@ -123,8 +123,8 @@ contains bg => ac call psb_nullify_sp(b) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprows,npcols,myprow,mypcol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprows,npcols,myprow,mypcol) np = nprows*npcols nglob = desc_a%matrix_data(psb_m_) nrow = desc_a%matrix_data(psb_n_row_) @@ -244,11 +244,11 @@ contains if (p%iprcparm(coarse_mat_) == mat_repl_) then - call psb_cdrep(ntaggr,icontxt,desc_p,info) + call psb_cdrep(ntaggr,ictxt,desc_p,info) nzbr(:) = 0 nzbr(myprow+1) = irs - call igsum2d(icontxt,'All',' ',np,1,nzbr,np,-1,-1) + call igsum2d(ictxt,'All',' ',np,1,nzbr,np,-1,-1) nzbg = sum(nzbr) call psb_sp_all(ntaggr,ntaggr,bg,nzbg,info) if(info /= 0) then @@ -256,7 +256,7 @@ contains goto 9999 end if - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) do ip=1,np idisp(ip) = sum(nzbr(1:ip-1)) enddo @@ -293,7 +293,7 @@ contains else if (p%iprcparm(coarse_mat_) == mat_distr_) then - call psb_cddec(naggr,icontxt,desc_p,info) + call psb_cddec(naggr,ictxt,desc_p,info) call psb_sp_clone(b,bg,info) if(info /= 0) then call psb_errpush(4010,name,a_err='spclone') @@ -342,7 +342,7 @@ contains type(psb_dspmat_type), pointer :: bg type(psb_dspmat_type) :: b integer, pointer :: nzbr(:), idisp(:), ivall(:) - integer :: icontxt, nrow, nglob, ncol, ntaggr, nzbg, ip, ndx,& + integer :: ictxt, nrow, nglob, ncol, ntaggr, nzbg, ip, ndx,& & naggr, np, myprow, mypcol, nprows, npcols,& & icomm, naggrm1,naggrp1,mtype,i,j,err_act,k,nzl,itemp(1),jtemp(1) type(psb_dspmat_type), pointer :: am1,am2 @@ -360,8 +360,8 @@ contains info=0 call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprows,npcols,myprow,mypcol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprows,npcols,myprow,mypcol) bg => ac call psb_nullify_sp(b) @@ -522,7 +522,7 @@ contains anorm = max(anorm,tmp/dg) enddo - call dgamx2d(icontxt,'All',' ',1,1,anorm,1,itemp,jtemp,-1,-1,-1) + call dgamx2d(ictxt,'All',' ',1,1,anorm,1,itemp,jtemp,-1,-1,-1) else anorm = psb_spnrmi(am3,desc_a,info) endif @@ -730,7 +730,7 @@ contains i = i + 1 end do end do - call psb_cdall(ntaggr,ivall,icontxt,desc_p,info,flag=1) + call psb_cdall(ntaggr,ivall,ictxt,desc_p,info,flag=1) if(info /= 0) then call psb_errpush(4010,name,a_err='psb_cdall') goto 9999 @@ -804,7 +804,7 @@ contains call psb_errpush(4010,name,a_err='psb_ipcoo2csr') goto 9999 end if - call igsum2d(icontxt,'All',' ',1,1,k,1,-1,-1) + call igsum2d(ictxt,'All',' ',1,1,k,1,-1,-1) if (k == 0) then ! If the off diagonal part is emtpy, there's no point @@ -852,15 +852,15 @@ contains nzbr(:) = 0 nzbr(myprow+1) = b%infoa(psb_nnz_) - call psb_cdrep(ntaggr,icontxt,desc_p,info) + call psb_cdrep(ntaggr,ictxt,desc_p,info) - call igsum2d(icontxt,'All',' ',np,1,nzbr,np,-1,-1) + call igsum2d(ictxt,'All',' ',np,1,nzbr,np,-1,-1) nzbg = sum(nzbr) call psb_sp_all(ntaggr,ntaggr,bg,nzbg,info) if(info /= 0) goto 9999 - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) do ip=1,np idisp(ip) = sum(nzbr(1:ip-1)) enddo @@ -906,7 +906,7 @@ contains call psb_errpush(4010,name,a_err='spclone') goto 9999 end if - call psb_cddec(naggr,icontxt,desc_p,info) + call psb_cddec(naggr,ictxt,desc_p,info) call psb_sp_free(b,info) if(info /= 0) then @@ -921,10 +921,10 @@ contains nzbr(:) = 0 nzbr(myprow+1) = b%infoa(psb_nnz_) - call psb_cdrep(ntaggr,icontxt,desc_p,info) + call psb_cdrep(ntaggr,ictxt,desc_p,info) - call igsum2d(icontxt,'All',' ',np,1,nzbr,np,-1,-1) + call igsum2d(ictxt,'All',' ',np,1,nzbr,np,-1,-1) nzbg = sum(nzbr) call psb_sp_all(ntaggr,ntaggr,bg,nzbg,info) if(info /= 0) then @@ -932,7 +932,7 @@ contains goto 9999 end if - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) do ip=1,np idisp(ip) = sum(nzbr(1:ip-1)) enddo diff --git a/src/prec/psb_ddiagsc_bld.f90 b/src/prec/psb_ddiagsc_bld.f90 index e7f68b15..ff3d8c3c 100644 --- a/src/prec/psb_ddiagsc_bld.f90 +++ b/src/prec/psb_ddiagsc_bld.f90 @@ -55,7 +55,7 @@ subroutine psb_ddiagsc_bld(a,desc_a,p,upd,info) ! Local scalars - Integer :: err, nnzero, n_row, n_col,I,j,k,icontxt,& + Integer :: err, nnzero, n_row, n_col,I,j,k,ictxt,& & me,mycol,nprow,npcol,mglob,lw, mtype, nrg, nzg, err_act real(kind(1.d0)) :: temp, real_err(5) real(kind(1.d0)),pointer :: gd(:), work(:) @@ -75,12 +75,12 @@ subroutine psb_ddiagsc_bld(a,desc_a,p,upd,info) if (debug) write(0,*) 'Entering diagsc_bld' info = 0 int_err(1) = 0 - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) mglob = desc_a%matrix_data(psb_m_) if (debug) write(0,*) 'Preconditioner Blacs_gridinfo' - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) if (debug) write(0,*) 'Precond: Diagonal scaling' ! diagonal scaling diff --git a/src/prec/psb_dgenaggrmap.f90 b/src/prec/psb_dgenaggrmap.f90 index 9066ca45..0bf9857a 100644 --- a/src/prec/psb_dgenaggrmap.f90 +++ b/src/prec/psb_dgenaggrmap.f90 @@ -51,7 +51,7 @@ subroutine psb_dgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) logical :: recovery logical, parameter :: debug=.false. - integer ::icontxt,nprow,npcol,me,mycol,err_act + integer ::ictxt,nprow,npcol,me,mycol,err_act integer :: nrow, ncol, n_ne integer, parameter :: one=1, two=2 character(len=20) :: name, ch_err @@ -65,8 +65,8 @@ subroutine psb_dgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) ! so that we only have local decoupled aggregation. This might ! change in the future. ! - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) nrow = desc_a%matrix_data(psb_n_row_) ncol = desc_a%matrix_data(psb_n_col_) @@ -279,7 +279,7 @@ subroutine psb_dgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) nlaggr(:) = 0 nlaggr(me+1) = naggr - call igsum2d(icontxt,'All',' ',nprow,1,nlaggr,nprow,-1,-1) + call igsum2d(ictxt,'All',' ',nprow,1,nlaggr,nprow,-1,-1) call psb_erractionrestore(err_act) return diff --git a/src/prec/psb_dilu_bld.f90 b/src/prec/psb_dilu_bld.f90 index bbdcc106..db622fd3 100644 --- a/src/prec/psb_dilu_bld.f90 +++ b/src/prec/psb_dilu_bld.f90 @@ -81,7 +81,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) integer istpb, istpe, ifctb, ifcte, err_act, irank, icomm, nztota, nztotb,& & nztmp, nzl, nnr, ir, mglob, mtype, n_row, nrow_a,n_col, nhalo,lovr, & & ind, iind, pi,nr,ns - integer ::icontxt,nprow,npcol,me,mycol + integer ::ictxt,nprow,npcol,me,mycol character(len=20) :: name, ch_err interface psb_ilu_fct @@ -132,8 +132,8 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) name='psb_ilu_bld' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) m = a%m if (m < 0) then @@ -153,17 +153,17 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) goto 9999 endif - ! call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ! call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) call psb_nullify_sp(blck) call psb_nullify_sp(atmp) t1= mpi_wtime() if(debug) write(0,*)me,': calling psb_asmatbld',p%iprcparm(p_type_),p%iprcparm(n_ovr_) - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') call psb_asmatbld(p%iprcparm(p_type_),p%iprcparm(n_ovr_),a,& & blck,desc_a,upd,p%desc_data,info) if(info/=0) then @@ -174,7 +174,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) end if t2= mpi_wtime() if (debug) write(0,*)me,': out of psb_asmatbld' - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') if (associated(p%av)) then if (size(p%av) < bp_ilu_avsz) then @@ -195,7 +195,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) goto 9999 end if if (debug) write(0,*)me,': out spinfo',nztota - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') n_col = desc_a%matrix_data(psb_n_col_) nhalo = n_col-nrow_a @@ -231,7 +231,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) if (debug) then write(0,*) me,'Done psb_asmatbld' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif @@ -264,7 +264,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) t3 = mpi_wtime() if (debugprt) then - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') open(40+me) call psb_csprt(40+me,atmp,head='% Local matrix') close(40+me) @@ -301,7 +301,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) if (debugprt) then open(40+me) - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') call psb_csprt(40+me,a,iv=p%desc_data%loc_to_glob,& & head='% Local matrix') if (p%iprcparm(p_type_)==asm_) then @@ -313,7 +313,7 @@ subroutine psb_dilu_bld(a,desc_a,p,upd,info) t5= mpi_wtime() if (debug) write(0,*) me,' Going for dilu_fct' - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') call psb_ilu_fct(a,p%av(l_pr_),p%av(u_pr_),p%d,info,blck=blck) if(info/=0) then info=4010 diff --git a/src/prec/psb_dmlprc_aply.f90 b/src/prec/psb_dmlprc_aply.f90 index 0feb6b71..b8bceead 100644 --- a/src/prec/psb_dmlprc_aply.f90 +++ b/src/prec/psb_dmlprc_aply.f90 @@ -63,7 +63,7 @@ subroutine psb_dmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) real(kind(1.d0)), allocatable :: tx(:),ty(:),t2l(:),w2l(:),& & x2l(:),b2l(:),tz(:),tty(:) character ::diagl, diagu - integer :: icontxt,nprow,npcol,me,mycol,i, isz, nrg,nr2l,err_act, iptype, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,i, isz, nrg,nr2l,err_act, iptype, int_err(5) real(kind(1.d0)) :: omega real(kind(1.d0)) :: t1, t2, t3, t4, t5, t6, t7, mpi_wtime logical, parameter :: debug=.false., debugprt=.false. @@ -90,8 +90,8 @@ subroutine psb_dmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) omega=baseprecv(2)%dprcparm(smooth_omega_) ismth=baseprecv(2)%iprcparm(smth_kind_) @@ -161,7 +161,7 @@ subroutine psb_dmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) end if if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) @@ -264,7 +264,7 @@ subroutine psb_dmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) end if if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) @@ -367,7 +367,7 @@ subroutine psb_dmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) end if if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) @@ -458,7 +458,7 @@ subroutine psb_dmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) diff --git a/src/prec/psb_dmlprc_bld.f90 b/src/prec/psb_dmlprc_bld.f90 index 7c651ebe..d0a3456c 100644 --- a/src/prec/psb_dmlprc_bld.f90 +++ b/src/prec/psb_dmlprc_bld.f90 @@ -96,7 +96,7 @@ subroutine psb_dmlprc_bld(a,desc_a,p,info) end subroutine psb_dbldaggrmat end interface - integer :: icontxt, nprow, npcol, me, mycol + integer :: ictxt, nprow, npcol, me, mycol name='psb_mlprec_bld' if(psb_get_errstatus().ne.0) return diff --git a/src/prec/psb_dprc_aply.f90 b/src/prec/psb_dprc_aply.f90 index 310c5f67..a292c1cd 100644 --- a/src/prec/psb_dprc_aply.f90 +++ b/src/prec/psb_dprc_aply.f90 @@ -54,7 +54,7 @@ subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans, work) ! Local variables character :: trans_ real(kind(1.d0)), pointer :: work_(:) - integer :: icontxt,nprow,npcol,me,mycol,err_act, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,err_act, int_err(5) logical,parameter :: debug=.false., debugprt=.false. external mpi_wtime character(len=20) :: name, ch_err @@ -91,8 +91,8 @@ subroutine psb_dprc_aply(prec,x,y,desc_data,info,trans, work) info = 0 call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) if (present(trans)) then trans_=trans @@ -218,7 +218,7 @@ subroutine psb_dprc_aply1(prec,x,desc_data,info,trans) ! Local variables character :: trans_ - integer :: icontxt,nprow,npcol,me,mycol,i, isz, err_act, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,i, isz, err_act, int_err(5) real(kind(1.d0)), pointer :: WW(:), w1(:) character(len=20) :: name, ch_err name='psb_dprec1' @@ -226,8 +226,8 @@ subroutine psb_dprc_aply1(prec,x,desc_data,info,trans) call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) if (present(trans)) then trans_=trans else diff --git a/src/prec/psb_dprecbld.f90 b/src/prec/psb_dprecbld.f90 index 7c791cf0..abfe8747 100644 --- a/src/prec/psb_dprecbld.f90 +++ b/src/prec/psb_dprecbld.f90 @@ -82,7 +82,7 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd) end interface ! Local scalars - Integer :: err, nnzero, I,j,k,icontxt,& + Integer :: err, nnzero, I,j,k,ictxt,& & me,mycol,nprow,npcol,lw, mtype, nrg, nzg, err_act real(kind(1.d0)) :: temp, real_err(5) integer :: int_err(5) @@ -101,10 +101,10 @@ subroutine psb_dprecbld(a,desc_a,p,info,upd) if (debug) write(0,*) 'Entering precbld',P%prec,desc_a%matrix_data(:) info = 0 int_err(1) = 0 - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) if (debug) write(0,*) 'Preconditioner Blacs_gridinfo' - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) if (present(upd)) then if (debug) write(0,*) 'UPD ', upd diff --git a/src/prec/psb_dprecfree.f90 b/src/prec/psb_dprecfree.f90 index 6d6b2986..d447a217 100644 --- a/src/prec/psb_dprecfree.f90 +++ b/src/prec/psb_dprecfree.f90 @@ -52,7 +52,7 @@ subroutine psb_dprecfree(p,info) integer :: int_err(5) integer :: temp(1), me real(kind(1.d0)) :: real_err(5) - integer :: icontxt,err_act,i + integer :: ictxt,err_act,i character(len=20) :: name, ch_err if(psb_get_errstatus().ne.0) return diff --git a/src/prec/psb_dslu_bld.f90 b/src/prec/psb_dslu_bld.f90 index 165d7f4e..bf47720e 100644 --- a/src/prec/psb_dslu_bld.f90 +++ b/src/prec/psb_dslu_bld.f90 @@ -51,7 +51,7 @@ subroutine psb_dslu_bld(a,desc_a,p,info) type(psb_dspmat_type) :: blck, atmp character(len=5) :: fmt character :: upd='F' - integer :: i,j,nza,nzb,nzt,icontxt, me,mycol,nprow,npcol,err_act + integer :: i,j,nza,nzb,nzt,ictxt, me,mycol,nprow,npcol,err_act logical, parameter :: debug=.false. character(len=20) :: name, ch_err @@ -76,8 +76,8 @@ subroutine psb_dslu_bld(a,desc_a,p,info) name='psb_slu_bld' call psb_erractionsave(err_act) - icontxt = desc_A%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + ictxt = desc_A%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) fmt = 'COO' @@ -87,7 +87,7 @@ subroutine psb_dslu_bld(a,desc_a,p,info) atmp%fida='COO' if (Debug) then write(0,*) me, 'SPLUBLD: Calling csdp' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif call psb_csdp(a,atmp,info) @@ -100,7 +100,7 @@ subroutine psb_dslu_bld(a,desc_a,p,info) nza = atmp%infoa(psb_nnz_) if (Debug) then write(0,*) me, 'SPLUBLD: Done csdp',info,nza,atmp%m,atmp%k - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif call psb_asmatbld(p%iprcparm(p_type_),p%iprcparm(n_ovr_),a,& & blck,desc_a,upd,p%desc_data,info,outfmt=fmt) @@ -114,7 +114,7 @@ subroutine psb_dslu_bld(a,desc_a,p,info) nzb = blck%infoa(psb_nnz_) if (Debug) then write(0,*) me, 'SPLUBLD: Done asmatbld',info,nzb,blck%fida - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif if (nzb > 0 ) then if (size(atmp%aspk) 0 ) then if (size(atmp%aspk) ac call psb_nullify_sp(b) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprows,npcols,myprow,mypcol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprows,npcols,myprow,mypcol) np = nprows*npcols nglob = desc_a%matrix_data(psb_m_) nrow = desc_a%matrix_data(psb_n_row_) @@ -244,11 +244,11 @@ contains if (p%iprcparm(coarse_mat_) == mat_repl_) then - call psb_cdrep(ntaggr,icontxt,desc_p,info) + call psb_cdrep(ntaggr,ictxt,desc_p,info) nzbr(:) = 0 nzbr(myprow+1) = irs - call igsum2d(icontxt,'All',' ',np,1,nzbr,np,-1,-1) + call igsum2d(ictxt,'All',' ',np,1,nzbr,np,-1,-1) nzbg = sum(nzbr) call psb_sp_all(ntaggr,ntaggr,bg,nzbg,info) if(info /= 0) then @@ -256,7 +256,7 @@ contains goto 9999 end if - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) do ip=1,np idisp(ip) = sum(nzbr(1:ip-1)) enddo @@ -293,7 +293,7 @@ contains else if (p%iprcparm(coarse_mat_) == mat_distr_) then - call psb_cddec(naggr,icontxt,desc_p,info) + call psb_cddec(naggr,ictxt,desc_p,info) call psb_sp_clone(b,bg,info) if(info /= 0) then call psb_errpush(4010,name,a_err='spclone') @@ -342,7 +342,7 @@ contains type(psb_zspmat_type), pointer :: bg type(psb_zspmat_type) :: b integer, pointer :: nzbr(:), idisp(:), ivall(:) - integer :: icontxt, nrow, nglob, ncol, ntaggr, nzbg, ip, ndx,& + integer :: ictxt, nrow, nglob, ncol, ntaggr, nzbg, ip, ndx,& & naggr, np, myprow, mypcol, nprows, npcols,& & icomm, naggrm1,naggrp1,mtype,i,j,err_act,k,nzl,itemp(1),jtemp(1) type(psb_zspmat_type), pointer :: am1,am2 @@ -360,8 +360,8 @@ contains info=0 call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprows,npcols,myprow,mypcol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprows,npcols,myprow,mypcol) bg => ac call psb_nullify_sp(b) @@ -522,7 +522,7 @@ contains anorm = max(anorm,tmp/dg) enddo - call dgamx2d(icontxt,'All',' ',1,1,anorm,1,itemp,jtemp,-1,-1,-1) + call dgamx2d(ictxt,'All',' ',1,1,anorm,1,itemp,jtemp,-1,-1,-1) else anorm = psb_spnrmi(am3,desc_a,info) endif @@ -730,7 +730,7 @@ contains i = i + 1 end do end do - call psb_cdall(ntaggr,ivall,icontxt,desc_p,info,flag=1) + call psb_cdall(ntaggr,ivall,ictxt,desc_p,info,flag=1) if(info /= 0) then call psb_errpush(4010,name,a_err='psb_cdall') goto 9999 @@ -804,7 +804,7 @@ contains call psb_errpush(4010,name,a_err='psb_ipcoo2csr') goto 9999 end if - call igsum2d(icontxt,'All',' ',1,1,k,1,-1,-1) + call igsum2d(ictxt,'All',' ',1,1,k,1,-1,-1) if (k == 0) then ! If the off diagonal part is emtpy, there's no point @@ -852,15 +852,15 @@ contains nzbr(:) = 0 nzbr(myprow+1) = b%infoa(psb_nnz_) - call psb_cdrep(ntaggr,icontxt,desc_p,info) + call psb_cdrep(ntaggr,ictxt,desc_p,info) - call igsum2d(icontxt,'All',' ',np,1,nzbr,np,-1,-1) + call igsum2d(ictxt,'All',' ',np,1,nzbr,np,-1,-1) nzbg = sum(nzbr) call psb_sp_all(ntaggr,ntaggr,bg,nzbg,info) if(info /= 0) goto 9999 - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) do ip=1,np idisp(ip) = sum(nzbr(1:ip-1)) enddo @@ -906,7 +906,7 @@ contains call psb_errpush(4010,name,a_err='spclone') goto 9999 end if - call psb_cddec(naggr,icontxt,desc_p,info) + call psb_cddec(naggr,ictxt,desc_p,info) call psb_sp_free(b,info) if(info /= 0) then @@ -921,10 +921,10 @@ contains nzbr(:) = 0 nzbr(myprow+1) = b%infoa(psb_nnz_) - call psb_cdrep(ntaggr,icontxt,desc_p,info) + call psb_cdrep(ntaggr,ictxt,desc_p,info) - call igsum2d(icontxt,'All',' ',np,1,nzbr,np,-1,-1) + call igsum2d(ictxt,'All',' ',np,1,nzbr,np,-1,-1) nzbg = sum(nzbr) call psb_sp_all(ntaggr,ntaggr,bg,nzbg,info) if(info /= 0) then @@ -932,7 +932,7 @@ contains goto 9999 end if - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) do ip=1,np idisp(ip) = sum(nzbr(1:ip-1)) enddo diff --git a/src/prec/psb_zdiagsc_bld.f90 b/src/prec/psb_zdiagsc_bld.f90 index e5f8364f..a7db771d 100644 --- a/src/prec/psb_zdiagsc_bld.f90 +++ b/src/prec/psb_zdiagsc_bld.f90 @@ -55,7 +55,7 @@ subroutine psb_zdiagsc_bld(a,desc_a,p,upd,info) ! Local scalars - Integer :: err, nnzero, n_row, n_col,I,j,k,icontxt,& + Integer :: err, nnzero, n_row, n_col,I,j,k,ictxt,& & me,mycol,nprow,npcol,mglob,lw, mtype, nrg, nzg, err_act real(kind(1.d0)) :: temp, real_err(5) complex(kind(1.d0)),pointer :: gd(:), work(:) @@ -75,12 +75,12 @@ subroutine psb_zdiagsc_bld(a,desc_a,p,upd,info) if (debug) write(0,*) 'Entering diagsc_bld' info = 0 int_err(1) = 0 - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) mglob = desc_a%matrix_data(psb_m_) if (debug) write(0,*) 'Preconditioner Blacs_gridinfo' - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) if (debug) write(0,*) 'Precond: Diagonal scaling' ! diagonal scaling diff --git a/src/prec/psb_zgenaggrmap.f90 b/src/prec/psb_zgenaggrmap.f90 index ae78d6af..6c7bc67c 100644 --- a/src/prec/psb_zgenaggrmap.f90 +++ b/src/prec/psb_zgenaggrmap.f90 @@ -51,7 +51,7 @@ subroutine psb_zgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) logical :: recovery logical, parameter :: debug=.false. - integer ::icontxt,nprow,npcol,me,mycol,err_act + integer ::ictxt,nprow,npcol,me,mycol,err_act integer :: nrow, ncol, n_ne integer, parameter :: one=1, two=2 character(len=20) :: name, ch_err @@ -65,8 +65,8 @@ subroutine psb_zgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) ! so that we only have local decoupled aggregation. This might ! change in the future. ! - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) nrow = desc_a%matrix_data(psb_n_row_) ncol = desc_a%matrix_data(psb_n_col_) @@ -279,7 +279,7 @@ subroutine psb_zgenaggrmap(aggr_type,a,desc_a,nlaggr,ilaggr,info) nlaggr(:) = 0 nlaggr(me+1) = naggr - call igsum2d(icontxt,'All',' ',nprow,1,nlaggr,nprow,-1,-1) + call igsum2d(ictxt,'All',' ',nprow,1,nlaggr,nprow,-1,-1) call psb_erractionrestore(err_act) return diff --git a/src/prec/psb_zilu_bld.f90 b/src/prec/psb_zilu_bld.f90 index d06dab44..c203064a 100644 --- a/src/prec/psb_zilu_bld.f90 +++ b/src/prec/psb_zilu_bld.f90 @@ -80,7 +80,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) integer istpb, istpe, ifctb, ifcte, err_act, irank, icomm, nztota, nztotb,& & nztmp, nzl, nnr, ir, mglob, mtype, n_row, nrow_a,n_col, nhalo,lovr, & & ind, iind, pi,nr,ns - integer ::icontxt,nprow,npcol,me,mycol + integer ::ictxt,nprow,npcol,me,mycol character(len=20) :: name, ch_err interface psb_ilu_fct @@ -131,8 +131,8 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) name='psb_ilu_bld' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) m = a%m if (m < 0) then @@ -152,17 +152,17 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) goto 9999 endif - ! call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ! call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) call psb_nullify_sp(blck) call psb_nullify_sp(atmp) t1= mpi_wtime() if(debug) write(0,*)me,': calling psb_asmatbld',p%iprcparm(p_type_),p%iprcparm(n_ovr_) - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') call psb_asmatbld(p%iprcparm(p_type_),p%iprcparm(n_ovr_),a,& & blck,desc_a,upd,p%desc_data,info) if(info/=0) then @@ -173,7 +173,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) end if t2= mpi_wtime() if (debug) write(0,*)me,': out of psb_asmatbld' - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') if (associated(p%av)) then if (size(p%av) < bp_ilu_avsz) then @@ -194,7 +194,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) goto 9999 end if if (debug) write(0,*)me,': out spinfo',nztota - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') n_col = desc_a%matrix_data(psb_n_col_) nhalo = n_col-nrow_a @@ -230,7 +230,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) if (debug) then write(0,*) me,'Done psb_asmatbld' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif @@ -263,7 +263,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) t3 = mpi_wtime() if (debugprt) then - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') open(40+me) call psb_csprt(40+me,atmp,head='% Local matrix') close(40+me) @@ -300,7 +300,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) if (debugprt) then open(40+me) - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') call psb_csprt(40+me,a,iv=p%desc_data%loc_to_glob,& & head='% Local matrix') if (p%iprcparm(p_type_)==asm_) then @@ -312,7 +312,7 @@ subroutine psb_zilu_bld(a,desc_a,p,upd,info) t5= mpi_wtime() if (debug) write(0,*) me,' Going for ilu_fct' - if (debug) call blacs_barrier(icontxt,'All') + if (debug) call blacs_barrier(ictxt,'All') call psb_ilu_fct(a,p%av(l_pr_),p%av(u_pr_),p%d,info,blck=blck) if(info/=0) then info=4010 diff --git a/src/prec/psb_zmlprc_aply.f90 b/src/prec/psb_zmlprc_aply.f90 index 8dfa629b..ef4faaff 100644 --- a/src/prec/psb_zmlprc_aply.f90 +++ b/src/prec/psb_zmlprc_aply.f90 @@ -63,7 +63,7 @@ subroutine psb_zmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) complex(kind(1.d0)), allocatable :: tx(:),ty(:),t2l(:),w2l(:),& & x2l(:),b2l(:),tz(:),tty(:) character ::diagl, diagu - integer :: icontxt,nprow,npcol,me,mycol,i, isz, nrg,nr2l,err_act, iptype, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,i, isz, nrg,nr2l,err_act, iptype, int_err(5) real(kind(1.d0)) :: omega real(kind(1.d0)) :: t1, t2, t3, t4, t5, t6, t7, mpi_wtime logical, parameter :: debug=.false., debugprt=.false. @@ -90,8 +90,8 @@ subroutine psb_zmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) omega=baseprecv(2)%dprcparm(smooth_omega_) ismth=baseprecv(2)%iprcparm(smth_kind_) @@ -161,7 +161,7 @@ subroutine psb_zmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) end if if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) @@ -264,7 +264,7 @@ subroutine psb_zmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) end if if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) @@ -367,7 +367,7 @@ subroutine psb_zmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) end if if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) @@ -458,7 +458,7 @@ subroutine psb_zmlprc_aply(baseprecv,x,beta,y,desc_data,trans,work,info) if (baseprecv(2)%iprcparm(coarse_mat_)==mat_repl_) Then - call gsum2d(icontxt,'All',t2l(1:nrg)) + call gsum2d(ictxt,'All',t2l(1:nrg)) else if (baseprecv(2)%iprcparm(coarse_mat_) /= mat_distr_) Then write(0,*) 'Unknown value for baseprecv(2)%iprcparm(coarse_mat_) ',& & baseprecv(2)%iprcparm(coarse_mat_) diff --git a/src/prec/psb_zmlprc_bld.f90 b/src/prec/psb_zmlprc_bld.f90 index 4672ee0b..20d6f777 100644 --- a/src/prec/psb_zmlprc_bld.f90 +++ b/src/prec/psb_zmlprc_bld.f90 @@ -96,7 +96,7 @@ subroutine psb_zmlprc_bld(a,desc_a,p,info) end subroutine psb_zbldaggrmat end interface - integer :: icontxt, nprow, npcol, me, mycol + integer :: ictxt, nprow, npcol, me, mycol name='psb_mlprec_bld' if(psb_get_errstatus().ne.0) return diff --git a/src/prec/psb_zprc_aply.f90 b/src/prec/psb_zprc_aply.f90 index 120777b6..0be4b8d9 100644 --- a/src/prec/psb_zprc_aply.f90 +++ b/src/prec/psb_zprc_aply.f90 @@ -54,7 +54,7 @@ subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans, work) ! Local variables character :: trans_ complex(kind(1.d0)), pointer :: work_(:) - integer :: icontxt,nprow,npcol,me,mycol,err_act, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,err_act, int_err(5) logical,parameter :: debug=.false., debugprt=.false. external mpi_wtime character(len=20) :: name, ch_err @@ -91,8 +91,8 @@ subroutine psb_zprc_aply(prec,x,y,desc_data,info,trans, work) info = 0 call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) if (present(trans)) then trans_=trans @@ -218,7 +218,7 @@ subroutine psb_zprc_aply1(prec,x,desc_data,info,trans) ! Local variables character :: trans_ - integer :: icontxt,nprow,npcol,me,mycol,i, isz, err_act, int_err(5) + integer :: ictxt,nprow,npcol,me,mycol,i, isz, err_act, int_err(5) complex(kind(1.d0)), pointer :: WW(:), w1(:) character(len=20) :: name, ch_err name='psb_zprec1' @@ -226,8 +226,8 @@ subroutine psb_zprc_aply1(prec,x,desc_data,info,trans) call psb_erractionsave(err_act) - icontxt=desc_data%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_data%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) if (present(trans)) then trans_=trans else diff --git a/src/prec/psb_zprecbld.f90 b/src/prec/psb_zprecbld.f90 index 257b444c..21007093 100644 --- a/src/prec/psb_zprecbld.f90 +++ b/src/prec/psb_zprecbld.f90 @@ -82,7 +82,7 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd) end interface ! Local scalars - Integer :: err, nnzero, I,j,k,icontxt,& + Integer :: err, nnzero, I,j,k,ictxt,& & me,mycol,nprow,npcol,lw, mtype, nrg, nzg, err_act real(kind(1.d0)) :: temp, real_err(5) integer :: int_err(5) @@ -101,10 +101,10 @@ subroutine psb_zprecbld(a,desc_a,p,info,upd) if (debug) write(0,*) 'Entering precbld',P%prec,desc_a%matrix_data(:) info = 0 int_err(1) = 0 - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) if (debug) write(0,*) 'Preconditioner Blacs_gridinfo' - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) if (present(upd)) then if (debug) write(0,*) 'UPD ', upd diff --git a/src/prec/psb_zprecfree.f90 b/src/prec/psb_zprecfree.f90 index 7a2cfa26..082eefc4 100644 --- a/src/prec/psb_zprecfree.f90 +++ b/src/prec/psb_zprecfree.f90 @@ -52,7 +52,7 @@ subroutine psb_zprecfree(p,info) integer :: int_err(5) integer :: temp(1), me real(kind(1.d0)) :: real_err(5) - integer :: icontxt,err_act,i + integer :: ictxt,err_act,i character(len=20) :: name, ch_err if(psb_get_errstatus().ne.0) return diff --git a/src/prec/psb_zslu_bld.f90 b/src/prec/psb_zslu_bld.f90 index f61b66fa..8f22ab2d 100644 --- a/src/prec/psb_zslu_bld.f90 +++ b/src/prec/psb_zslu_bld.f90 @@ -51,7 +51,7 @@ subroutine psb_zslu_bld(a,desc_a,p,info) type(psb_zspmat_type) :: blck, atmp character(len=5) :: fmt character :: upd='F' - integer :: i,j,nza,nzb,nzt,icontxt, me,mycol,nprow,npcol,err_act + integer :: i,j,nza,nzb,nzt,ictxt, me,mycol,nprow,npcol,err_act logical, parameter :: debug=.false. character(len=20) :: name, ch_err @@ -76,8 +76,8 @@ subroutine psb_zslu_bld(a,desc_a,p,info) name='psb_slu_bld' call psb_erractionsave(err_act) - icontxt = desc_A%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mycol) + ictxt = desc_A%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt, nprow, npcol, me, mycol) fmt = 'COO' @@ -87,7 +87,7 @@ subroutine psb_zslu_bld(a,desc_a,p,info) atmp%fida='COO' if (Debug) then write(0,*) me, 'ZSLUBLD: Calling csdp' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif call psb_csdp(a,atmp,info) @@ -100,7 +100,7 @@ subroutine psb_zslu_bld(a,desc_a,p,info) nza = atmp%infoa(psb_nnz_) if (Debug) then write(0,*) me, 'SPLUBLD: Done csdp',info,nza,atmp%m,atmp%k - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif call psb_asmatbld(p%iprcparm(p_type_),p%iprcparm(n_ovr_),a,& & blck,desc_a,upd,p%desc_data,info,outfmt=fmt) @@ -114,7 +114,7 @@ subroutine psb_zslu_bld(a,desc_a,p,info) nzb = blck%infoa(psb_nnz_) if (Debug) then write(0,*) me, 'SPLUBLD: Done asmatbld',info,nzb,blck%fida - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif if (nzb > 0 ) then if (size(atmp%aspk) 0 ) then if (size(atmp%aspk)). The communication descriptor. ! info - integer. Eventually returns an error code -subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) +subroutine psb_cdall(m, n, parts, ictxt, desc_a, info) use psb_error_mod use psb_descriptor_type use psb_realloc_mod @@ -50,7 +50,7 @@ subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) implicit None include 'parts.fh' !....Parameters... - Integer, intent(in) :: M,N,ICONTXT + Integer, intent(in) :: M,N,ictxt Type(psb_desc_type), intent(out) :: desc_a integer, intent(out) :: info @@ -70,7 +70,7 @@ subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) name = 'psb_cdall' call psb_erractionsave(err_act) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (debug) write(*,*) 'psb_cdall: ',nprow,npcol,myrow,mycol ! ....verify blacs grid correctness.. if (npcol /= 1) then @@ -105,9 +105,9 @@ subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) if (myrow.eq.psb_root_) then exch(1)=m exch(2)=n - call igebs2d(icontxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo) + call igebs2d(ictxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo) else - call igebr2d(icontxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo, psb_root_,& + call igebr2d(ictxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo, psb_root_,& & 0) if (exch(1) /= m) then err=550 @@ -314,8 +314,8 @@ subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) desc_a%matrix_data(psb_m_) = m desc_a%matrix_data(psb_n_) = n desc_a%matrix_data(psb_dec_type_) = psb_desc_bld_ - desc_a%matrix_data(psb_ctxt_) = icontxt - call blacs_get(icontxt,10,desc_a%matrix_data(psb_mpi_c_)) + desc_a%matrix_data(psb_ctxt_) = ictxt + call blacs_get(ictxt,10,desc_a%matrix_data(psb_mpi_c_)) call psb_erractionrestore(err_act) return @@ -323,7 +323,7 @@ subroutine psb_cdall(m, n, parts, icontxt, desc_a, info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_cdalv.f90 b/src/tools/psb_cdalv.f90 index c2409535..5b94addb 100644 --- a/src/tools/psb_cdalv.f90 +++ b/src/tools/psb_cdalv.f90 @@ -37,18 +37,18 @@ ! Parameters: ! m - integer. The number of rows. ! v - integer, dimension(:). The array containg the partitioning scheme. -! icontxt - integer. The communication context. +! ictxt - integer. The communication context. ! desc_a - type(). The communication descriptor. ! info - integer. Eventually returns an error code ! flag - integer. ??? -subroutine psb_cdalv(m, v, icontxt, desc_a, info, flag) +subroutine psb_cdalv(m, v, ictxt, desc_a, info, flag) use psb_descriptor_type use psb_serial_mod use psb_const_mod use psb_error_mod implicit None !....Parameters... - Integer, intent(in) :: m,icontxt, v(:) + Integer, intent(in) :: m,ictxt, v(:) integer, intent(in), optional :: flag integer, intent(out) :: info type(psb_desc_type), intent(out) :: desc_a @@ -68,7 +68,7 @@ subroutine psb_cdalv(m, v, icontxt, desc_a, info, flag) err=0 name = 'psb_cdalv' - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (debug) write(*,*) 'psb_cdall: ',nprow,npcol,myrow,mycol ! ....verify blacs grid correctness.. if (npcol /= 1) then @@ -104,9 +104,9 @@ subroutine psb_cdalv(m, v, icontxt, desc_a, info, flag) if (myrow.eq.psb_root_) then exch(1)=m exch(2)=n - call igebs2d(icontxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo) + call igebs2d(ictxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo) else - call igebr2d(icontxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo, psb_root_,& + call igebr2d(ictxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo, psb_root_,& & 0) if (exch(1) /= m) then info=550 @@ -282,8 +282,8 @@ subroutine psb_cdalv(m, v, icontxt, desc_a, info, flag) desc_a%matrix_data(psb_m_) = m desc_a%matrix_data(psb_n_) = n desc_a%matrix_data(psb_dec_type_) = psb_desc_bld_ - desc_a%matrix_data(psb_ctxt_) = icontxt - call blacs_get(icontxt,10,desc_a%matrix_data(psb_mpi_c_)) + desc_a%matrix_data(psb_ctxt_) = ictxt + call blacs_get(ictxt,10,desc_a%matrix_data(psb_mpi_c_)) call psb_erractionrestore(err_act) return @@ -291,7 +291,7 @@ subroutine psb_cdalv(m, v, icontxt, desc_a, info, flag) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_cdasb.f90 b/src/tools/psb_cdasb.f90 index 4cde5c5b..f0faad38 100644 --- a/src/tools/psb_cdasb.f90 +++ b/src/tools/psb_cdasb.f90 @@ -55,7 +55,7 @@ subroutine psb_cdasb(desc_a,info) integer :: i,err,nprow,npcol,me,mypcol,& & lovrlap,lhalo,nhalo,novrlap,max_size,max_halo,n_col,ldesc_halo,& & ldesc_ovrlap, dectype, err_act - integer :: icontxt,temp(1),n_row + integer :: ictxt,temp(1),n_row logical, parameter :: debug=.false., debugwrt=.false. character(len=20) :: name,ch_err @@ -65,13 +65,13 @@ subroutine psb_cdasb(desc_a,info) call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow == -1) then info = 2010 call psb_errpush(info,name) @@ -134,7 +134,7 @@ subroutine psb_cdasb(desc_a,info) itemp(1) = max_size itemp(2) = max_halo - call igamx2d(icontxt, psb_all_, psb_topdef_, itwo, ione, itemp,& + call igamx2d(ictxt, psb_all_, psb_topdef_, itwo, ione, itemp,& & itwo,temp ,temp,-ione ,-ione,-ione) max_size = itemp(1) max_halo = itemp(2) @@ -224,7 +224,7 @@ subroutine psb_cdasb(desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_cdcpy.f90 b/src/tools/psb_cdcpy.f90 index 257c432e..40fb768d 100644 --- a/src/tools/psb_cdcpy.f90 +++ b/src/tools/psb_cdcpy.f90 @@ -54,7 +54,7 @@ subroutine psb_cdcpy(desc_in, desc_out, info) !locals integer :: nprow,npcol,me,mypcol,& - & icontxt, isz, dectype, err_act, err + & ictxt, isz, dectype, err_act, err integer :: int_err(5),temp(1) real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false.,debugprt=.false. @@ -65,9 +65,9 @@ subroutine psb_cdcpy(desc_in, desc_out, info) call psb_erractionsave(err_act) name = 'psb_cdcpy' - icontxt=desc_in%matrix_data(psb_ctxt_) + ictxt=desc_in%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (debug) write(0,*) me,'Entered CDCPY' if (nprow.eq.-1) then info = 2010 @@ -234,7 +234,7 @@ subroutine psb_cdcpy(desc_in, desc_out, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_cddec.f90 b/src/tools/psb_cddec.f90 index b9657ef8..3efa5e13 100644 --- a/src/tools/psb_cddec.f90 +++ b/src/tools/psb_cddec.f90 @@ -28,7 +28,7 @@ !!$ POSSIBILITY OF SUCH DAMAGE. !!$ !!$ -subroutine psb_cddec(nloc, icontxt, desc_a, info) +subroutine psb_cddec(nloc, ictxt, desc_a, info) ! Purpose ! ======= @@ -43,7 +43,7 @@ subroutine psb_cddec(nloc, icontxt, desc_a, info) ! Number of local indices ! required. ! - ! ICONTXT : (Global Input)Integer BLACS context for an NPx1 grid + ! ictxt : (Global Input)Integer BLACS context for an NPx1 grid ! required. ! ! OUTPUT @@ -109,7 +109,7 @@ subroutine psb_cddec(nloc, icontxt, desc_a, info) use psb_error_mod implicit None !....Parameters... - Integer, intent(in) :: nloc,icontxt + Integer, intent(in) :: nloc,ictxt integer, intent(out) :: info Type(psb_desc_type), intent(out) :: desc_a @@ -129,7 +129,7 @@ subroutine psb_cddec(nloc, icontxt, desc_a, info) err=0 name = 'psb_cddec' - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (debug) write(*,*) 'psb_cdalll: ',nprow,npcol,me,mypcol ! ....verify blacs grid correctness.. if (npcol /= 1) then @@ -163,7 +163,7 @@ subroutine psb_cddec(nloc, icontxt, desc_a, info) nlv(:) = 0 nlv(me) = nloc - call igsum2d(icontxt,'All',' ',nprow,1,nlv,nprow,-1,-1) + call igsum2d(ictxt,'All',' ',nprow,1,nlv,nprow,-1,-1) m = sum(nlv) @@ -216,8 +216,8 @@ subroutine psb_cddec(nloc, icontxt, desc_a, info) desc_a%matrix_data(psb_n_row_) = nloc desc_a%matrix_data(psb_n_col_) = nloc desc_a%matrix_data(psb_dec_type_) = psb_desc_asb_ - desc_a%matrix_data(psb_ctxt_) = icontxt - call blacs_get(icontxt,10,desc_a%matrix_data(psb_mpi_c_)) + desc_a%matrix_data(psb_ctxt_) = ictxt + call blacs_get(ictxt,10,desc_a%matrix_data(psb_mpi_c_)) call psb_erractionrestore(err_act) return @@ -225,7 +225,7 @@ subroutine psb_cddec(nloc, icontxt, desc_a, info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_cdfree.f90 b/src/tools/psb_cdfree.f90 index 44d4c852..d089babb 100644 --- a/src/tools/psb_cdfree.f90 +++ b/src/tools/psb_cdfree.f90 @@ -49,7 +49,7 @@ subroutine psb_cdfree(desc_a,info) integer :: int_err(5) integer :: temp(1) real(kind(1.d0)) :: real_err(5) - integer :: icontxt,nprow,npcol,me,mypcol, err_act + integer :: ictxt,nprow,npcol,me,mypcol, err_act character(len=20) :: name, char_err if(psb_get_errstatus().ne.0) return @@ -64,9 +64,9 @@ subroutine psb_cdfree(desc_a,info) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) deallocate(desc_a%matrix_data) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -177,7 +177,7 @@ subroutine psb_cdfree(desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_cdins.f90 b/src/tools/psb_cdins.f90 index f43764b7..00a777a2 100644 --- a/src/tools/psb_cdins.f90 +++ b/src/tools/psb_cdins.f90 @@ -54,7 +54,7 @@ subroutine psb_cdins(nz,ia,ja,desc_a,info) !LOCALS..... - integer :: i,icontxt,nprocs ,glob_row,row,k,start_row,end_row,& + integer :: i,ictxt,nprocs ,glob_row,row,k,start_row,end_row,& & first_loc_row,j, ierror,locix,locjx,& & dectype,mglob, nnza, nglob,err integer,pointer :: tia1(:),tia2(:), temp(:) @@ -68,7 +68,7 @@ subroutine psb_cdins(nz,ia,ja,desc_a,info) name = 'psb_cdins' call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) mglob = desc_a%matrix_data(psb_m_) nglob = desc_a%matrix_data(psb_n_) @@ -76,7 +76,7 @@ subroutine psb_cdins(nz,ia,ja,desc_a,info) ncol = desc_a%matrix_data(psb_n_col_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (npcol.ne.1) then info = 2030 call psb_errpush(info,name) @@ -180,7 +180,7 @@ subroutine psb_cdins(nz,ia,ja,desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_cdren.f90 b/src/tools/psb_cdren.f90 index c4aec8c7..5ad56e8c 100644 --- a/src/tools/psb_cdren.f90 +++ b/src/tools/psb_cdren.f90 @@ -60,7 +60,7 @@ subroutine psb_cdren(trans,iperm,desc_a,info) !....locals.... integer :: i,j,err,nprow,npcol,myrow,mycol, n_col, kh, nh integer :: dectype - integer :: icontxt,temp(1),n_row, int_err(5), err_act + integer :: ictxt,temp(1),n_row, int_err(5), err_act real(kind(1.d0)) :: time(10), mpi_wtime, real_err(6) external mpi_wtime logical, parameter :: debug=.false. @@ -73,13 +73,13 @@ subroutine psb_cdren(trans,iperm,desc_a,info) time(1) = mpi_wtime() - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -213,7 +213,7 @@ subroutine psb_cdren(trans,iperm,desc_a,info) time(4) = mpi_wtime() time(4) = time(4) - time(3) if (debug) then - call dgamx2d(icontxt, psb_all_, psb_topdef_, ione, ione, time(4),& + call dgamx2d(ictxt, psb_all_, psb_topdef_, ione, ione, time(4),& & ione,temp ,temp,-ione ,-ione,-ione) write (*, *) ' comm structs assembly: ', time(4)*1.d-3 @@ -228,7 +228,7 @@ subroutine psb_cdren(trans,iperm,desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_cdrep.f90 b/src/tools/psb_cdrep.f90 index 13a87f6c..bfd7ef61 100644 --- a/src/tools/psb_cdrep.f90 +++ b/src/tools/psb_cdrep.f90 @@ -28,7 +28,7 @@ !!$ POSSIBILITY OF SUCH DAMAGE. !!$ !!$ -subroutine psb_cdrep(m, icontxt, desc_a, info) +subroutine psb_cdrep(m, ictxt, desc_a, info) ! Purpose ! ======= @@ -43,7 +43,7 @@ subroutine psb_cdrep(m, icontxt, desc_a, info) ! Total number of equations ! required. ! - ! ICONTXT : (Global Input)Integer BLACS context for an NPx1 grid + ! ictxt : (Global Input)Integer BLACS context for an NPx1 grid ! required. ! ! OUTPUT @@ -109,7 +109,7 @@ subroutine psb_cdrep(m, icontxt, desc_a, info) use psb_error_mod implicit None !....Parameters... - Integer, intent(in) :: m,icontxt + Integer, intent(in) :: m,ictxt integer, intent(out) :: info Type(psb_desc_type), intent(out) :: desc_a @@ -128,7 +128,7 @@ subroutine psb_cdrep(m, icontxt, desc_a, info) err=0 name = 'psb_cdrep' - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (debug) write(*,*) 'psb_cdrep: ',nprow,npcol,myrow,mycol ! ....verify blacs grid correctness.. if (npcol /= 1) then @@ -160,9 +160,9 @@ subroutine psb_cdrep(m, icontxt, desc_a, info) if (myrow.eq.psb_root_) then exch(1)=m exch(2)=n - call igebs2d(icontxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo) + call igebs2d(ictxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo) else - call igebr2d(icontxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo, psb_root_,& + call igebr2d(ictxt,psb_all_,psb_topdef_, itwo,ione, exch, itwo, psb_root_,& & 0) if (exch(1) /= m) then info=550 @@ -212,8 +212,8 @@ subroutine psb_cdrep(m, icontxt, desc_a, info) desc_a%matrix_data(psb_n_row_) = m desc_a%matrix_data(psb_n_col_) = n desc_a%matrix_data(psb_dec_type_) = psb_desc_repl_ - desc_a%matrix_data(psb_ctxt_) = icontxt - call blacs_get(icontxt,10,desc_a%matrix_data(psb_mpi_c_)) + desc_a%matrix_data(psb_ctxt_) = ictxt + call blacs_get(ictxt,10,desc_a%matrix_data(psb_mpi_c_)) call psb_erractionrestore(err_act) return @@ -221,7 +221,7 @@ subroutine psb_cdrep(m, icontxt, desc_a, info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_cdtransfer.f90 b/src/tools/psb_cdtransfer.f90 index 72a5d8d9..6166d696 100644 --- a/src/tools/psb_cdtransfer.f90 +++ b/src/tools/psb_cdtransfer.f90 @@ -54,7 +54,7 @@ subroutine psb_cdtransfer(desc_in, desc_out, info) !locals integer :: nprow,npcol,me,mypcol,& - & icontxt, isz, dectype, err_act, err + & ictxt, isz, dectype, err_act, err integer :: int_err(5),temp(1) real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false.,debugprt=.false. @@ -65,9 +65,9 @@ subroutine psb_cdtransfer(desc_in, desc_out, info) call psb_erractionsave(err_act) name = 'psb_cdtransfer' - icontxt=desc_in%matrix_data(psb_ctxt_) + ictxt=desc_in%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (debug) write(0,*) me,'Entered CDTRANSFER' if (nprow.eq.-1) then info = 2010 @@ -103,7 +103,7 @@ subroutine psb_cdtransfer(desc_in, desc_out, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_dallc.f90 b/src/tools/psb_dallc.f90 index d7f241aa..2bc65aec 100644 --- a/src/tools/psb_dallc.f90 +++ b/src/tools/psb_dallc.f90 @@ -56,7 +56,7 @@ subroutine psb_dalloc(x, desc_a, info, n) !locals integer :: nprow,npcol,myrow,mycol,err,n_col,n_row,i,j,jj,err_act - integer :: icontxt,dectype,n_ + integer :: ictxt,dectype,n_ integer :: int_err(5),temp(1),exch(3) real(kind(1.d0)) :: real_err(5) character(len=20) :: name, ch_err @@ -68,9 +68,9 @@ subroutine psb_dalloc(x, desc_a, info, n) int_err(1)=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -99,9 +99,9 @@ subroutine psb_dalloc(x, desc_a, info, n) !global check on n parameters if (myrow.eq.psb_root_) then exch(1)=n_ - call igebs2d(icontxt,psb_all_,psb_topdef_, ione,ione, exch, ione) + call igebs2d(ictxt,psb_all_,psb_topdef_, ione,ione, exch, ione) else - call igebr2d(icontxt,psb_all_,psb_topdef_, ione,ione, exch, ione, psb_root_, 0) + call igebr2d(ictxt,psb_all_,psb_topdef_, ione,ione, exch, ione, psb_root_, 0) if (exch(1).ne.n_) then info=550 int_err(1)=1 @@ -147,7 +147,7 @@ subroutine psb_dalloc(x, desc_a, info, n) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -209,7 +209,7 @@ subroutine psb_dallocv(x, desc_a,info,n) !locals integer :: nprow,npcol,myrow,mycol,err,n_col,n_row,dectype,i,err_act - integer :: icontxt, n_ + integer :: ictxt, n_ integer :: int_err(5),temp(1),exch real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false. @@ -220,9 +220,9 @@ subroutine psb_dallocv(x, desc_a,info,n) name='psb_dallcv' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -281,7 +281,7 @@ subroutine psb_dallocv(x, desc_a,info,n) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dasb.f90 b/src/tools/psb_dasb.f90 index 63e27a63..e09741d3 100644 --- a/src/tools/psb_dasb.f90 +++ b/src/tools/psb_dasb.f90 @@ -51,7 +51,7 @@ subroutine psb_dasb(x, desc_a, info) integer, intent(out) :: info ! local variables - integer :: err, icontxt,nprow,npcol,me,mypcol,temp,lwork,nrow,ncol, err_act + integer :: err, ictxt,nprow,npcol,me,mypcol,temp,lwork,nrow,ncol, err_act integer :: int_err(5), i1sz, i2sz, dectype, i,j double precision :: real_err(5) real(kind(1.d0)),parameter :: one=1 @@ -63,10 +63,10 @@ subroutine psb_dasb(x, desc_a, info) name='psb_dasb' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if ((.not.associated(desc_a%matrix_data))) then info=3110 @@ -95,7 +95,7 @@ subroutine psb_dasb(x, desc_a, info) endif ! check size - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) nrow=desc_a%matrix_data(psb_n_row_) ncol=desc_a%matrix_data(psb_n_col_) i1sz = size(x,dim=1) @@ -129,7 +129,7 @@ subroutine psb_dasb(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -187,7 +187,7 @@ subroutine psb_dasbv(x, desc_a, info) integer, intent(out) :: info ! local variables - integer :: err, icontxt,nprow,npcol,me,mypcol,temp,lwork + integer :: err, ictxt,nprow,npcol,me,mypcol,temp,lwork integer :: int_err(5), i1sz,nrow,ncol, dectype, i, err_act double precision :: real_err(5) real(kind(1.d0)),parameter :: one=1 @@ -198,10 +198,10 @@ subroutine psb_dasbv(x, desc_a, info) int_err(1) = 0 name = 'psb_dasbv' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then @@ -252,7 +252,7 @@ subroutine psb_dasbv(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_dcdovr.f90 b/src/tools/psb_dcdovr.f90 index 76f7b49d..889e61e9 100644 --- a/src/tools/psb_dcdovr.f90 +++ b/src/tools/psb_dcdovr.f90 @@ -92,7 +92,7 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) ! .. Local Scalars .. Integer :: i, j, k, nprow,npcol, me, mycol,m,nnzero,& - & icontxt, lovr, lelem,lworks,lworkr, n_col, int_err(5),& + & ictxt, lovr, lelem,lworks,lworkr, n_col, int_err(5),& & n_row,index_dim,elem_dim, l_tmp_ovr_idx,l_tmp_halo, nztot,nhalo Logical,Parameter :: debug=.false. character(len=20) :: name, ch_err @@ -101,9 +101,9 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) info = 0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + Call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) If(debug) Write(0,*)'in psb_cdovr',novr @@ -136,7 +136,7 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) return endif - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) !!$ call MPI_Comm_rank(icomm,irank,ierr) !!$ idscb = mpe_log_get_event_number() !!$ idsce = mpe_log_get_event_number() @@ -148,7 +148,7 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) !!$ endif If(debug) then Write(0,*)'BEGIN cdovr',me,nhalo - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif t1 = mpi_wtime() @@ -206,7 +206,7 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) desc_ov%glob_to_loc(:) = desc_a%glob_to_loc(:) If(debug) then Write(0,*)'Start cdovrbld',me,lworks,lworkr - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif ! ! The real work goes on in here.... @@ -222,7 +222,7 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) desc_ov%matrix_data(psb_dec_type_) = psb_desc_asb_ If(debug) then Write(0,*)'Done cdovrbld',me,lworks,lworkr - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif !!$ ierr = MPE_Log_event( idsce, 0, "st CDASB" ) @@ -232,7 +232,7 @@ Subroutine psb_dcdovr(a,desc_a,novr,desc_ov,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if Return diff --git a/src/tools/psb_dcdovrbld.f90 b/src/tools/psb_dcdovrbld.f90 index c0c27f0c..60a8406a 100644 --- a/src/tools/psb_dcdovrbld.f90 +++ b/src/tools/psb_dcdovrbld.f90 @@ -73,7 +73,7 @@ Subroutine psb_dcdovrbld(n_ovr,desc_p,desc_a,a,& Integer, Pointer :: tmp_halo(:),tmp_ovr_idx(:) Integer :: counter,counter_h, counter_o, counter_e,j,idx,gidx,proc,n_elem_recv,& - & n_elem_send,tot_recv,tot_elem,n_col,m,icontxt,np,npcol,myrow,mycol,dl_lda,lwork,& + & n_elem_send,tot_recv,tot_elem,n_col,m,ictxt,np,npcol,myrow,mycol,dl_lda,lwork,& & counter_t,n_elem,i_ovr,jj,n,i,proc_id,isz, mglob, glx,n_row, & & idxr, idxs, lx, iszs, iszr, err_act @@ -93,16 +93,16 @@ Subroutine psb_dcdovrbld(n_ovr,desc_p,desc_a,a,& call psb_erractionsave(err_act) If(debug) Write(0,*)'cdovrbld begin' - icontxt = desc_a%matrix_data(psb_ctxt_) -!!$ call blacs_barrier(icontxt,'All') - Call blacs_gridinfo(icontxt,np,npcol,myrow,mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) +!!$ call blacs_barrier(ictxt,'All') + Call blacs_gridinfo(ictxt,np,npcol,myrow,mycol) call psb_nullify_sp(blk) Allocate(brvindx(np+1),rvsz(np),sdsz(np),bsdindx(np+1),stat=info) tl = 0.0 tch = 0.0 t4 = 0.0 - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) mglob = desc_a%matrix_data(psb_m_) m = desc_a%matrix_data(psb_n_row_) @@ -586,7 +586,7 @@ Subroutine psb_dcdovrbld(n_ovr,desc_p,desc_a,a,& !!$ & desc_p%glob_to_loc,work,lwork,info) if (debug) then write(0,*) myrow,'Done Crea_Halo' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') end if if (debug) write(0,*) myrow,'Checktmp_o_i 2',tmp_ovr_idx(1:10) if (debug) write(0,*) myrow,'Done Crea_Halo' @@ -620,7 +620,7 @@ Subroutine psb_dcdovrbld(n_ovr,desc_p,desc_a,a,& if (debug) then write(0,*) 'psb_cdasb: converting indexes' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') end if !.... convert comunication stuctures.... ! first the halo index @@ -657,7 +657,7 @@ Subroutine psb_dcdovrbld(n_ovr,desc_p,desc_a,a,& if (debug) then write(0,*) myrow,'Done Convert_comm' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') end if if (.false.) then @@ -684,7 +684,7 @@ Subroutine psb_dcdovrbld(n_ovr,desc_p,desc_a,a,& 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dcsrp.f90 b/src/tools/psb_dcsrp.f90 index 70ff38e5..333bf284 100644 --- a/src/tools/psb_dcsrp.f90 +++ b/src/tools/psb_dcsrp.f90 @@ -82,7 +82,7 @@ subroutine psb_dcsrp(trans,iperm,a, desc_a, info) & mypcol ,ierror ,n_col,l_dcsdp, iout, ipsize integer :: dectype real(kind(1.d0)), pointer :: work_dcsdp(:) - integer :: icontxt,temp(1),n_row,err_act + integer :: ictxt,temp(1),n_row,err_act character(len=20) :: name, char_err real(kind(1.d0)) :: time(10), mpi_wtime @@ -91,7 +91,7 @@ subroutine psb_dcsrp(trans,iperm,a, desc_a, info) time(1) = mpi_wtime() - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) @@ -102,7 +102,7 @@ subroutine psb_dcsrp(trans,iperm,a, desc_a, info) name = 'psd_csrp' ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -180,7 +180,7 @@ subroutine psb_dcsrp(trans,iperm,a, desc_a, info) time(4) = mpi_wtime() time(4) = time(4) - time(3) if (debug) then - call dgamx2d(icontxt, all, topdef, ione, ione, time(4),& + call dgamx2d(ictxt, all, topdef, ione, ione, time(4),& & ione,temp ,temp,-ione ,-ione,-ione) write (*, *) ' comm structs assembly: ', time(4)*1.d-3 diff --git a/src/tools/psb_dfree.f90 b/src/tools/psb_dfree.f90 index 07a09dd7..8a8cc2b2 100644 --- a/src/tools/psb_dfree.f90 +++ b/src/tools/psb_dfree.f90 @@ -51,7 +51,7 @@ subroutine psb_dfree(x, desc_a, info) !...locals.... integer :: int_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err, err_act + integer :: ictxt,nprow,npcol,me,mypcol,err, err_act character(len=20) :: name @@ -60,9 +60,9 @@ subroutine psb_dfree(x, desc_a, info) call psb_erractionsave(err_act) name='psb_dfree' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -107,7 +107,7 @@ subroutine psb_dfree(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -136,7 +136,7 @@ subroutine psb_dfreev(x, desc_a, info) !...locals.... integer :: int_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err, err_act + integer :: ictxt,nprow,npcol,me,mypcol,err, err_act character(len=20) :: name @@ -145,7 +145,7 @@ subroutine psb_dfreev(x, desc_a, info) call psb_erractionsave(err_act) name='psb_dfreev' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) if (.not.associated(desc_a%matrix_data)) then info=295 @@ -153,7 +153,7 @@ subroutine psb_dfreev(x, desc_a, info) goto 9999 end if - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -190,7 +190,7 @@ subroutine psb_dfreev(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_dgelp.f90 b/src/tools/psb_dgelp.f90 index 0f926832..bbe69495 100644 --- a/src/tools/psb_dgelp.f90 +++ b/src/tools/psb_dgelp.f90 @@ -53,7 +53,7 @@ subroutine psb_dgelp(trans,iperm,x,desc_a,info) character, intent(in) :: trans ! local variables - integer :: err, icontxt,nprow, & + integer :: err, ictxt,nprow, & & npcol,me,mypcol,temp,lwork,nrow,ncol real(kind(1.d0)),pointer :: dtemp(:) integer :: int_err(5), i1sz, i2sz, dectype, i, err_act @@ -86,14 +86,14 @@ subroutine psb_dgelp(trans,iperm,x,desc_a,info) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) nrow = desc_a%matrix_data(psb_n_row_) ncol = desc_a%matrix_data(psb_n_col_) i1sz = size(x,dim=1) i2sz = size(x,dim=2) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (debug) write(*,*) 'asb start: ',nprow,npcol,me,& &desc_a%matrix_data(psb_dec_type_) @@ -142,7 +142,7 @@ subroutine psb_dgelp(trans,iperm,x,desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -203,7 +203,7 @@ subroutine psb_dgelpv(trans,iperm,x,desc_a,info) character, intent(in) :: trans ! local variables - integer :: err, icontxt,nprow,npcol,me,mypcol,temp,lwork + integer :: err, ictxt,nprow,npcol,me,mypcol,temp,lwork integer :: int_err(5), i1sz,nrow,ncol,dectype, i, err_act real(kind(1.d0)),pointer :: dtemp(:) double precision :: real_err(5) @@ -238,12 +238,12 @@ subroutine psb_dgelpv(trans,iperm,x,desc_a,info) i1sz = size(x) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) nrow=desc_a%matrix_data(psb_n_row_) ncol=desc_a%matrix_data(psb_n_col_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then @@ -290,7 +290,7 @@ subroutine psb_dgelpv(trans,iperm,x,desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_dins.f90 b/src/tools/psb_dins.f90 index 6ea9cbe7..42851878 100644 --- a/src/tools/psb_dins.f90 +++ b/src/tools/psb_dins.f90 @@ -62,7 +62,7 @@ subroutine psb_dinsvi(m, irw, val, x, desc_a, info, dupl) integer, optional, intent(in) :: dupl !locals..... - integer :: icontxt,i,loc_row,glob_row,row,k,& + integer :: ictxt,i,loc_row,glob_row,row,k,& & loc_rows,loc_cols,iblock, liflag,mglob,err_act, int_err(5), err integer :: nprow,npcol, me ,mypcol,dupl_ character(len=20) :: name, char_err @@ -83,10 +83,10 @@ subroutine psb_dinsvi(m, irw, val, x, desc_a, info, dupl) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -179,7 +179,7 @@ subroutine psb_dinsvi(m, irw, val, x, desc_a, info, dupl) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -250,7 +250,7 @@ subroutine psb_dinsi(m, irw, val, x, desc_a, info, dupl) integer, optional, intent(in) :: dupl !locals..... - integer :: icontxt,i,loc_row,glob_row,row,k,j,n,& + integer :: ictxt,i,loc_row,glob_row,row,k,j,n,& & loc_rows,loc_cols,iblock, liflag,mglob,err_act, int_err(5), err integer :: nprow,npcol, me ,mypcol,dupl_ character(len=20) :: name, char_err @@ -271,10 +271,10 @@ subroutine psb_dinsi(m, irw, val, x, desc_a, info, dupl) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -373,7 +373,7 @@ subroutine psb_dinsi(m, irw, val, x, desc_a, info, dupl) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_dspalloc.f90 b/src/tools/psb_dspalloc.f90 index d8fe928d..518d9b4c 100644 --- a/src/tools/psb_dspalloc.f90 +++ b/src/tools/psb_dspalloc.f90 @@ -55,7 +55,7 @@ subroutine psb_dspalloc(a, desc_a, info, nnz) integer, optional, intent(in) :: nnz !locals - integer :: icontxt, dectype + integer :: ictxt, dectype integer :: nprow,npcol,myrow,mycol,loc_row,& & length_ia1,length_ia2,err,nprocs, err_act,m,n integer :: int_err(5),temp(1) @@ -68,9 +68,9 @@ subroutine psb_dspalloc(a, desc_a, info, nnz) call psb_erractionsave(err_act) name = 'psb_dspalloc' - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -145,7 +145,7 @@ subroutine psb_dspalloc(a, desc_a, info, nnz) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_dspasb.f90 b/src/tools/psb_dspasb.f90 index 373d5081..7f08d4cf 100644 --- a/src/tools/psb_dspasb.f90 +++ b/src/tools/psb_dspasb.f90 @@ -68,7 +68,7 @@ subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl) & nprow,npcol,myrow,mycol ,size_req,n_col,iout, err_act integer :: dscstate, spstate, nr,k,j integer :: upd_, dupl_ - integer :: icontxt,temp(2),isize(2),n_row + integer :: ictxt,temp(2),isize(2),n_row logical, parameter :: debug=.false., debugwrt=.false. character(len=20) :: name, ch_err @@ -77,13 +77,13 @@ subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl) name = 'psb_spasb' call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dscstate = desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) ! check on BLACS grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -234,7 +234,7 @@ subroutine psb_dspasb(a,desc_a, info, afmt, upd, dupl) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dspcnv.f90 b/src/tools/psb_dspcnv.f90 index 27c7566e..81bb0764 100644 --- a/src/tools/psb_dspcnv.f90 +++ b/src/tools/psb_dspcnv.f90 @@ -105,7 +105,7 @@ subroutine psb_dspcnv(a,b,desc_a,info) integer :: ia1_size,ia2_size,aspk_size,err_act& & ,i,err,nprow,npcol,myrow,mycol,n_col,l_dcsdp, iout, nrow integer :: lwork_dcsdp,dectype - integer :: icontxt,temp(1),n_row + integer :: ictxt,temp(1),n_row character :: check*1, trans*1, unitd*1 real(kind(1.d0)) :: time(10), mpi_wtime @@ -121,13 +121,13 @@ subroutine psb_dspcnv(a,b,desc_a,info) time(1) = mpi_wtime() - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -246,7 +246,7 @@ subroutine psb_dspcnv(a,b,desc_a,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dspfree.f90 b/src/tools/psb_dspfree.f90 index dc24c066..3d0bee20 100644 --- a/src/tools/psb_dspfree.f90 +++ b/src/tools/psb_dspfree.f90 @@ -55,7 +55,7 @@ subroutine psb_dspfree(a, desc_a,info) integer :: int_err(5) integer :: temp(1) real(kind(1.d0)) :: real_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err, err_act + integer :: ictxt,nprow,npcol,me,mypcol,err, err_act character(len=20) :: name, ch_err if(psb_get_errstatus().ne.0) return @@ -68,7 +68,7 @@ subroutine psb_dspfree(a, desc_a,info) call psb_errpush(info,name) return else - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) end if !...deallocate a.... @@ -87,7 +87,7 @@ subroutine psb_dspfree(a, desc_a,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dsphalo.f90 b/src/tools/psb_dsphalo.f90 index edfc89db..0c801f54 100644 --- a/src/tools/psb_dsphalo.f90 +++ b/src/tools/psb_dsphalo.f90 @@ -65,7 +65,7 @@ Subroutine psb_dsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) character(len=5), optional :: outfmt ! ...local scalars.... Integer :: nprow,npcol,me,mycol,counter,proc,n,i,& - & n_el_send,k,n_el_recv,icontxt, idx, r, tot_elem,& + & n_el_send,k,n_el_recv,ictxt, idx, r, tot_elem,& & n_elem, m, j, ipx,mat_recv, iszs, iszr,& & idxs,idxr, nrv, nsd,nz Type(psb_dspmat_type) :: tmp @@ -101,8 +101,8 @@ Subroutine psb_dsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) outfmt_ = 'CSR' endif - icontxt=desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + Call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) t1 = mpi_wtime() Allocate(sdid(nprow,3),rvid(nprow,3),brvindx(nprow+1),& @@ -156,7 +156,7 @@ Subroutine psb_dsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) counter = counter+n_el_send+3 Enddo - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) call mpi_alltoall(sdsz,1,mpi_integer,rvsz,1,mpi_integer,icomm,info) if (info /= 0) then @@ -347,7 +347,7 @@ Subroutine psb_dsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dspins.f90 b/src/tools/psb_dspins.f90 index 8b51a11c..30486a90 100644 --- a/src/tools/psb_dspins.f90 +++ b/src/tools/psb_dspins.f90 @@ -62,7 +62,7 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild) logical, intent(in), optional :: rebuild !locals..... - integer :: i,icontxt,nprocs ,glob_row,row,k,start_row,end_row,& + integer :: i,ictxt,nprocs ,glob_row,row,k,start_row,end_row,& & first_loc_row,nrow,j, err,locix,locjx,err_act,& & dectype,mglob, nnza,m,n, pnt_halo,ncol, nh, ip, spstate integer,pointer :: tia1(:),tia2(:), temp(:) @@ -88,11 +88,11 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild) call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) mglob = desc_a%matrix_data(psb_m_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (npcol.ne.1) then info = 2030 call psb_errpush(info,name) @@ -180,7 +180,7 @@ subroutine psb_dspins(nz,ia,ja,val,a,desc_a,info,rebuild) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_dsprn.f90 b/src/tools/psb_dsprn.f90 index b6f363e4..06273606 100644 --- a/src/tools/psb_dsprn.f90 +++ b/src/tools/psb_dsprn.f90 @@ -55,7 +55,7 @@ Subroutine psb_dsprn(a, desc_a,info,clear) !locals - Integer :: icontxt + Integer :: ictxt Integer :: nprow,npcol,myrow,mycol,err,err_act logical, parameter :: debug=.false. integer :: int_err(5) @@ -69,10 +69,10 @@ Subroutine psb_dsprn(a, desc_a,info,clear) name = 'psb_dsprn' call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (debug) & - &write(*,*) 'starting spalloc ',icontxt,nprow,npcol,myrow + &write(*,*) 'starting spalloc ',ictxt,nprow,npcol,myrow ! ....verify blacs grid correctness.. if (npcol.ne.1) then @@ -108,7 +108,7 @@ Subroutine psb_dsprn(a, desc_a,info,clear) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_exit.f90 b/src/tools/psb_exit.f90 new file mode 100644 index 00000000..2f9a6eb6 --- /dev/null +++ b/src/tools/psb_exit.f90 @@ -0,0 +1,12 @@ +subroutine psb_exit(ictxt) + integer, intent(in) :: ictxt + + integer :: nprow, npcol, myprow, mypcol + + call blacs_gridinfo(ictxt, nprow, npcol, myprow, mypcol) + if ((myprow >=0).and.(mypcol>=0)) then + call blacs_gridexit(ictxt) + end if + call blacs_exit(0) + +end subroutine psb_exit diff --git a/src/tools/psb_glob_to_loc.f90 b/src/tools/psb_glob_to_loc.f90 index 6d53b810..b511bd20 100644 --- a/src/tools/psb_glob_to_loc.f90 +++ b/src/tools/psb_glob_to_loc.f90 @@ -54,7 +54,7 @@ subroutine psb_glob_to_loc2(x,y,desc_a,info,iact) character, intent(in), optional :: iact !....locals.... - integer :: err, n, i, tmp, icontxt + integer :: err, n, i, tmp, ictxt character :: strings, act integer :: int_err(5), err_act real(kind(1.d0)) :: real_val @@ -187,7 +187,7 @@ subroutine psb_glob_to_loc(x,desc_a,info,iact) character, intent(in), optional :: iact !....locals.... - integer :: n, i, tmp, icontxt, err + integer :: n, i, tmp, ictxt, err character :: act integer :: int_err(5), err_act real(kind(1.d0)) :: real_val diff --git a/src/tools/psb_ialloc.f90 b/src/tools/psb_ialloc.f90 index 16a4e0db..ab01e04c 100644 --- a/src/tools/psb_ialloc.f90 +++ b/src/tools/psb_ialloc.f90 @@ -54,7 +54,7 @@ subroutine psb_ialloc(x, desc_a, info, n) !locals integer :: nprow,npcol,myrow,mypcol,err,n_col,n_row,i,j,jj,err_act - integer :: icontxt,dectype,n_ + integer :: ictxt,dectype,n_ integer :: int_err(5),temp(1),exch(3) real(kind(1.d0)) :: real_err(5) character(len=20) :: name, ch_err @@ -64,9 +64,9 @@ subroutine psb_ialloc(x, desc_a, info, n) name='psb_ialloc' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -95,9 +95,9 @@ subroutine psb_ialloc(x, desc_a, info, n) !global check on n parameters if (myrow.eq.psb_root_) then exch(1)=n_ - call igebs2d(icontxt,psb_all_,psb_topdef_, ione,ione, exch, ione) + call igebs2d(ictxt,psb_all_,psb_topdef_, ione,ione, exch, ione) else - call igebr2d(icontxt,psb_all_,psb_topdef_, ione,ione, exch, ione, psb_root_, 0) + call igebr2d(ictxt,psb_all_,psb_topdef_, ione,ione, exch, ione, psb_root_, 0) if (exch(1).ne.n_) then info=550 int_err(1)=1 @@ -143,7 +143,7 @@ subroutine psb_ialloc(x, desc_a, info, n) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -207,7 +207,7 @@ subroutine psb_iallocv(x, desc_a, info,n) !locals integer :: nprow,npcol,myrow,mycol,err,n_col,n_row,dectype,i,err_act - integer :: icontxt, n_ + integer :: ictxt, n_ integer :: int_err(5),temp(1),exch real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false. @@ -218,9 +218,9 @@ subroutine psb_iallocv(x, desc_a, info,n) name='psb_iallocv' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -274,7 +274,7 @@ subroutine psb_iallocv(x, desc_a, info,n) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_iasb.f90 b/src/tools/psb_iasb.f90 index c0593b21..8e7876d9 100644 --- a/src/tools/psb_iasb.f90 +++ b/src/tools/psb_iasb.f90 @@ -51,7 +51,7 @@ subroutine psb_iasb(x, desc_a, info) integer, intent(out) :: info ! local variables - integer :: icontxt,nprow,npcol,me,mypcol,temp,lwork,nrow,ncol,err_act + integer :: ictxt,nprow,npcol,me,mypcol,temp,lwork,nrow,ncol,err_act integer :: int_err(5), i1sz, i2sz, dectype, i real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false. @@ -68,10 +68,10 @@ subroutine psb_iasb(x, desc_a, info) return endif - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -84,7 +84,7 @@ subroutine psb_iasb(x, desc_a, info) endif ! check size - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) nrow=desc_a%matrix_data(psb_n_row_) ncol=desc_a%matrix_data(psb_n_col_) i1sz = size(x,dim=1) @@ -109,7 +109,7 @@ subroutine psb_iasb(x, desc_a, info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -169,7 +169,7 @@ subroutine psb_iasbv(x, desc_a, info) integer, intent(out) :: info ! local variables - integer :: icontxt,nprow,npcol,me,mypcol,temp,lwork, err_act + integer :: ictxt,nprow,npcol,me,mypcol,temp,lwork, err_act integer :: int_err(5), i1sz,nrow,ncol, dectype, i real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false. @@ -181,10 +181,10 @@ subroutine psb_iasbv(x, desc_a, info) name = 'psb_iasbv' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -220,7 +220,7 @@ subroutine psb_iasbv(x, desc_a, info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_ifree.f90 b/src/tools/psb_ifree.f90 index 516842ca..3c5f923e 100644 --- a/src/tools/psb_ifree.f90 +++ b/src/tools/psb_ifree.f90 @@ -53,7 +53,7 @@ subroutine psb_ifree(x, desc_a, info) integer :: int_err(5) integer :: temp(1) real(kind(1.d0)) :: real_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err_act + integer :: ictxt,nprow,npcol,me,mypcol,err_act character(len=20) :: name, ch_err if(psb_get_errstatus().ne.0) return @@ -67,8 +67,8 @@ subroutine psb_ifree(x, desc_a, info) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -103,7 +103,7 @@ subroutine psb_ifree(x, desc_a, info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -163,7 +163,7 @@ subroutine psb_ifreev(x, desc_a,info) integer :: int_err(5) integer :: temp(1) real(kind(1.d0)) :: real_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err_act + integer :: ictxt,nprow,npcol,me,mypcol,err_act character(len=20) :: name, ch_err if(psb_get_errstatus().ne.0) return @@ -178,8 +178,8 @@ subroutine psb_ifreev(x, desc_a,info) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + ictxt=desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -214,7 +214,7 @@ subroutine psb_ifreev(x, desc_a,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_iins.f90 b/src/tools/psb_iins.f90 index 1b8e7954..6fc7889e 100644 --- a/src/tools/psb_iins.f90 +++ b/src/tools/psb_iins.f90 @@ -60,7 +60,7 @@ subroutine psb_iinsvi(m, irw, val, x, desc_a, info, dupl) integer, optional, intent(in) :: dupl !locals..... - integer :: icontxt,i,loc_row,glob_row,row,k,& + integer :: ictxt,i,loc_row,glob_row,row,k,& & loc_rows,loc_cols,iblock, liflag,mglob,err_act, int_err(5), err integer :: nprow,npcol, me ,mypcol,dupl_ character(len=20) :: name, char_err @@ -81,10 +81,10 @@ subroutine psb_iinsvi(m, irw, val, x, desc_a, info, dupl) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -177,7 +177,7 @@ subroutine psb_iinsvi(m, irw, val, x, desc_a, info, dupl) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -246,7 +246,7 @@ subroutine psb_iinsi(m,irw, val, x, desc_a, info, dupl) integer, optional, intent(in) :: dupl !locals..... - integer :: icontxt,i,loc_row,glob_row,row,k,j,n,& + integer :: ictxt,i,loc_row,glob_row,row,k,j,n,& & loc_rows,loc_cols,iblock, liflag,mglob,err_act, int_err(5), err integer :: nprow,npcol, me ,mypcol,dupl_ character(len=20) :: name, char_err @@ -267,10 +267,10 @@ subroutine psb_iinsi(m,irw, val, x, desc_a, info, dupl) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -369,7 +369,7 @@ subroutine psb_iinsi(m,irw, val, x, desc_a, info, dupl) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_info.f90 b/src/tools/psb_info.f90 new file mode 100644 index 00000000..cdac56c8 --- /dev/null +++ b/src/tools/psb_info.f90 @@ -0,0 +1,11 @@ +subroutine psb_info(ictxt,iam,np) + integer, intent(in) :: ictxt + integer, intent(out) :: iam, np + integer :: nprow, npcol, myprow, mypcol + + call blacs_gridinfo(ictxt, nprow, npcol, myprow, mypcol) + + iam = myprow + np = nprow + +end subroutine psb_info diff --git a/src/tools/psb_init.f90 b/src/tools/psb_init.f90 new file mode 100644 index 00000000..0f3dec22 --- /dev/null +++ b/src/tools/psb_init.f90 @@ -0,0 +1,31 @@ +subroutine psb_init(ictxt,np) + use psb_const_mod + use psb_blacs_mod + use psb_error_mod + integer, intent(out) :: ictxt + integer, intent(in), optional :: np + + integer :: np_, npavail, iam, info + character(len=20), parameter :: name='psb_init' + + call blacs_pinfo(iam, npavail) + call blacs_get(izero, izero, ictxt) + + if (present(np)) then + np_ = max(1,min(np,npavail)) + else + np_ = npavail + endif + + call blacs_gridinit(ictxt, 'R', np_, ione) + + if (present(np)) then + if (np_ < np) then + info = 2011 + call psb_errpush(info,name) + call psb_error(ictxt) + endif + endif + + +end subroutine psb_init diff --git a/src/tools/psb_loc_to_glob.f90 b/src/tools/psb_loc_to_glob.f90 index ca1acc36..1dc597f7 100644 --- a/src/tools/psb_loc_to_glob.f90 +++ b/src/tools/psb_loc_to_glob.f90 @@ -55,7 +55,7 @@ subroutine psb_loc_to_glob2(x,y,desc_a,info,iact) character, intent(in), optional :: iact !....locals.... - integer :: err, n, i, tmp, icontxt + integer :: err, n, i, tmp, ictxt character :: strings,act integer :: int_err(5), err_act real(kind(1.d0)) :: real_val @@ -178,7 +178,7 @@ subroutine psb_loc_to_glob(x,desc_a,info,iact) character, intent(in), optional :: iact !....locals.... - integer :: err, n ,i, tmp,icontxt, err_act + integer :: err, n ,i, tmp,ictxt, err_act character :: act integer :: int_err(5) real(kind(1.d0)) :: real_val diff --git a/src/tools/psb_zallc.f90 b/src/tools/psb_zallc.f90 index edd2e314..f0a7141e 100644 --- a/src/tools/psb_zallc.f90 +++ b/src/tools/psb_zallc.f90 @@ -55,7 +55,7 @@ subroutine psb_zalloc(x, desc_a, info, n) !locals integer :: nprow,npcol,myrow,mycol,err,n_col,n_row,i,j,jj,err_act - integer :: icontxt,dectype,n_ + integer :: ictxt,dectype,n_ integer :: int_err(5),temp(1),exch(3) real(kind(1.d0)) :: real_err(5) character(len=20) :: name, ch_err @@ -67,9 +67,9 @@ subroutine psb_zalloc(x, desc_a, info, n) int_err(1)=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -98,9 +98,9 @@ subroutine psb_zalloc(x, desc_a, info, n) !global check on n parameters if (myrow.eq.psb_root_) then exch(1)=n_ - call igebs2d(icontxt,psb_all_,psb_topdef_, ione,ione, exch, ione) + call igebs2d(ictxt,psb_all_,psb_topdef_, ione,ione, exch, ione) else - call igebr2d(icontxt,psb_all_,psb_topdef_, ione,ione, exch, ione, psb_root_, 0) + call igebr2d(ictxt,psb_all_,psb_topdef_, ione,ione, exch, ione, psb_root_, 0) if (exch(1).ne.n_) then info=550 int_err(1)=1 @@ -146,7 +146,7 @@ subroutine psb_zalloc(x, desc_a, info, n) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -208,7 +208,7 @@ subroutine psb_zallocv(x, desc_a,info,n) !locals integer :: nprow,npcol,myrow,mycol,err,n_col,n_row,dectype,i,err_act - integer :: icontxt, n_ + integer :: ictxt, n_ integer :: int_err(5),temp(1),exch real(kind(1.d0)) :: real_err(5) logical, parameter :: debug=.false. @@ -219,9 +219,9 @@ subroutine psb_zallocv(x, desc_a,info,n) name='psb_zallcv' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -280,7 +280,7 @@ subroutine psb_zallocv(x, desc_a,info,n) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zasb.f90 b/src/tools/psb_zasb.f90 index 5c3a8618..99de0046 100644 --- a/src/tools/psb_zasb.f90 +++ b/src/tools/psb_zasb.f90 @@ -51,7 +51,7 @@ subroutine psb_zasb(x, desc_a, info) integer, intent(out) :: info ! local variables - integer :: err, icontxt,nprow,npcol,me,mypcol,temp,lwork,nrow,ncol, err_act + integer :: err, ictxt,nprow,npcol,me,mypcol,temp,lwork,nrow,ncol, err_act integer :: int_err(5), i1sz, i2sz, dectype, i,j double precision :: real_err(5) logical, parameter :: debug=.false. @@ -62,10 +62,10 @@ subroutine psb_zasb(x, desc_a, info) name='psb_zasb' call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if ((.not.associated(desc_a%matrix_data))) then info=3110 @@ -94,7 +94,7 @@ subroutine psb_zasb(x, desc_a, info) endif ! check size - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) nrow=desc_a%matrix_data(psb_n_row_) ncol=desc_a%matrix_data(psb_n_col_) i1sz = size(x,dim=1) @@ -128,7 +128,7 @@ subroutine psb_zasb(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -186,7 +186,7 @@ subroutine psb_zasbv(x, desc_a, info) integer, intent(out) :: info ! local variables - integer :: err, icontxt,nprow,npcol,me,mypcol,temp,lwork + integer :: err, ictxt,nprow,npcol,me,mypcol,temp,lwork integer :: int_err(5), i1sz,nrow,ncol, dectype, i, err_act double precision :: real_err(5) @@ -197,10 +197,10 @@ subroutine psb_zasbv(x, desc_a, info) int_err(1) = 0 name = 'psb_zasbv' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then @@ -252,7 +252,7 @@ subroutine psb_zasbv(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_zcdovr.f90 b/src/tools/psb_zcdovr.f90 index 06517be8..cc4ff8aa 100644 --- a/src/tools/psb_zcdovr.f90 +++ b/src/tools/psb_zcdovr.f90 @@ -92,7 +92,7 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) ! .. Local Scalars .. Integer :: i, j, k, nprow,npcol, me, mycol,m,nnzero,& - & icontxt, lovr, lelem,lworks,lworkr, n_col, int_err(5),& + & ictxt, lovr, lelem,lworks,lworkr, n_col, int_err(5),& & n_row,index_dim,elem_dim, l_tmp_ovr_idx,l_tmp_halo, nztot,nhalo Logical,Parameter :: debug=.false. character(len=20) :: name, ch_err @@ -101,9 +101,9 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) info = 0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + Call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) If(debug) Write(0,*)'in psb_cdovr',novr @@ -136,7 +136,7 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) return endif - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) !!$ call MPI_Comm_rank(icomm,irank,ierr) !!$ idscb = mpe_log_get_event_number() !!$ idsce = mpe_log_get_event_number() @@ -148,7 +148,7 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) !!$ endif If(debug)then Write(0,*)'BEGIN cdovr',me,nhalo - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif t1 = mpi_wtime() @@ -206,7 +206,7 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) desc_ov%glob_to_loc(:) = desc_a%glob_to_loc(:) If(debug)then Write(0,*)'Start cdovrbld',me,lworks,lworkr - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif ! @@ -223,7 +223,7 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) desc_ov%matrix_data(psb_dec_type_) = psb_desc_asb_ If(debug)then Write(0,*)'Done cdovrbld',me,lworks,lworkr - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') endif !!$ ierr = MPE_Log_event( idsce, 0, "st CDASB" ) @@ -233,7 +233,7 @@ Subroutine psb_zcdovr(a,desc_a,novr,desc_ov,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if Return diff --git a/src/tools/psb_zcdovrbld.f90 b/src/tools/psb_zcdovrbld.f90 index 5b77555b..18327842 100644 --- a/src/tools/psb_zcdovrbld.f90 +++ b/src/tools/psb_zcdovrbld.f90 @@ -73,7 +73,7 @@ Subroutine psb_zcdovrbld(n_ovr,desc_p,desc_a,a,& Integer, Pointer :: tmp_halo(:),tmp_ovr_idx(:) Integer :: counter,counter_h, counter_o, counter_e,j,idx,gidx,proc,n_elem_recv,& - & n_elem_send,tot_recv,tot_elem,n_col,m,icontxt,np,npcol,myrow,mycol,dl_lda,lwork,& + & n_elem_send,tot_recv,tot_elem,n_col,m,ictxt,np,npcol,myrow,mycol,dl_lda,lwork,& & counter_t,n_elem,i_ovr,jj,n,i,proc_id,isz, mglob, glx,n_row, & & idxr, idxs, lx, iszs, iszr, err_act @@ -93,16 +93,16 @@ Subroutine psb_zcdovrbld(n_ovr,desc_p,desc_a,a,& call psb_erractionsave(err_act) If(debug) Write(0,*)'cdovrbld begin' - icontxt = desc_a%matrix_data(psb_ctxt_) -!!$ call blacs_barrier(icontxt,'All') - Call blacs_gridinfo(icontxt,np,npcol,myrow,mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) +!!$ call blacs_barrier(ictxt,'All') + Call blacs_gridinfo(ictxt,np,npcol,myrow,mycol) call psb_nullify_sp(blk) Allocate(brvindx(np+1),rvsz(np),sdsz(np),bsdindx(np+1),stat=info) tl = 0.0 tch = 0.0 t4 = 0.0 - call blacs_get(icontxt,10,icomm ) + call blacs_get(ictxt,10,icomm ) mglob = desc_a%matrix_data(psb_m_) m = desc_a%matrix_data(psb_n_row_) @@ -586,7 +586,7 @@ Subroutine psb_zcdovrbld(n_ovr,desc_p,desc_a,a,& !!$ & desc_p%glob_to_loc,work,lwork,info) if (debug) then write(0,*) myrow,'Done Crea_Halo' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') end if if (debug) write(0,*) myrow,'Checktmp_o_i 2',tmp_ovr_idx(1:10) if (debug) write(0,*) myrow,'Done Crea_Halo' @@ -620,7 +620,7 @@ Subroutine psb_zcdovrbld(n_ovr,desc_p,desc_a,a,& if (debug) then write(0,*) 'psb_cdasb: converting indexes' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') end if !.... convert comunication stuctures.... ! first the halo index @@ -657,7 +657,7 @@ Subroutine psb_zcdovrbld(n_ovr,desc_p,desc_a,a,& if (debug) then write(0,*) myrow,'Done Convert_comm' - call blacs_barrier(icontxt,'All') + call blacs_barrier(ictxt,'All') end if if (.false.) then @@ -684,7 +684,7 @@ Subroutine psb_zcdovrbld(n_ovr,desc_p,desc_a,a,& 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zcsrp.f90 b/src/tools/psb_zcsrp.f90 index f21da5d9..fca6fa33 100644 --- a/src/tools/psb_zcsrp.f90 +++ b/src/tools/psb_zcsrp.f90 @@ -81,7 +81,7 @@ subroutine psb_zcsrp(trans,iperm,a, desc_a, info) & mypcol ,ierror ,n_col,l_dcsdp, iout, ipsize integer :: dectype real(kind(1.d0)), pointer :: work_dcsdp(:) - integer :: icontxt,temp(1),n_row,err_act + integer :: ictxt,temp(1),n_row,err_act character(len=20) :: name, char_err real(kind(1.d0)) :: time(10), mpi_wtime @@ -90,7 +90,7 @@ subroutine psb_zcsrp(trans,iperm,a, desc_a, info) time(1) = mpi_wtime() - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) @@ -101,7 +101,7 @@ subroutine psb_zcsrp(trans,iperm,a, desc_a, info) name = 'psd_csrp' ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -179,7 +179,7 @@ subroutine psb_zcsrp(trans,iperm,a, desc_a, info) time(4) = mpi_wtime() time(4) = time(4) - time(3) if (debug) then - call dgamx2d(icontxt, all, topdef, ione, ione, time(4),& + call dgamx2d(ictxt, all, topdef, ione, ione, time(4),& & ione,temp ,temp,-ione ,-ione,-ione) write (*, *) ' comm structs assembly: ', time(4)*1.d-3 diff --git a/src/tools/psb_zfree.f90 b/src/tools/psb_zfree.f90 index e6d340fb..98983977 100644 --- a/src/tools/psb_zfree.f90 +++ b/src/tools/psb_zfree.f90 @@ -51,7 +51,7 @@ subroutine psb_zfree(x, desc_a, info) !...locals.... integer :: int_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err, err_act + integer :: ictxt,nprow,npcol,me,mypcol,err, err_act character(len=20) :: name @@ -60,9 +60,9 @@ subroutine psb_zfree(x, desc_a, info) call psb_erractionsave(err_act) name='psb_zfree' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -107,7 +107,7 @@ subroutine psb_zfree(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -136,7 +136,7 @@ subroutine psb_zfreev(x, desc_a, info) !...locals.... integer :: int_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err, err_act + integer :: ictxt,nprow,npcol,me,mypcol,err, err_act character(len=20) :: name @@ -145,7 +145,7 @@ subroutine psb_zfreev(x, desc_a, info) call psb_erractionsave(err_act) name='psb_zfreev' - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) if (.not.associated(desc_a%matrix_data)) then info=295 @@ -153,7 +153,7 @@ subroutine psb_zfreev(x, desc_a, info) goto 9999 end if - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -190,7 +190,7 @@ subroutine psb_zfreev(x, desc_a, info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_zgelp.f90 b/src/tools/psb_zgelp.f90 index 014c4b32..b8e63415 100644 --- a/src/tools/psb_zgelp.f90 +++ b/src/tools/psb_zgelp.f90 @@ -53,7 +53,7 @@ subroutine psb_zgelp(trans,iperm,x,desc_a,info) character, intent(in) :: trans ! local variables - integer :: err, icontxt,nprow, & + integer :: err, ictxt,nprow, & & npcol,me,mypcol,temp,lwork,nrow,ncol complex(kind(1.d0)),pointer :: dtemp(:) integer :: int_err(5), i1sz, i2sz, dectype, i, err_act @@ -86,14 +86,14 @@ subroutine psb_zgelp(trans,iperm,x,desc_a,info) info=0 call psb_erractionsave(err_act) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) nrow = desc_a%matrix_data(psb_n_row_) ncol = desc_a%matrix_data(psb_n_col_) i1sz = size(x,dim=1) i2sz = size(x,dim=2) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (debug) write(*,*) 'asb start: ',nprow,npcol,me,& &desc_a%matrix_data(psb_dec_type_) @@ -142,7 +142,7 @@ subroutine psb_zgelp(trans,iperm,x,desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -203,7 +203,7 @@ subroutine psb_zgelpv(trans,iperm,x,desc_a,info) character, intent(in) :: trans ! local variables - integer :: err, icontxt,nprow,npcol,me,mypcol,temp,lwork + integer :: err, ictxt,nprow,npcol,me,mypcol,temp,lwork integer :: int_err(5), i1sz,nrow,ncol,dectype, i, err_act complex(kind(1.d0)),pointer :: dtemp(:) double precision :: real_err(5) @@ -238,12 +238,12 @@ subroutine psb_zgelpv(trans,iperm,x,desc_a,info) i1sz = size(x) - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) nrow=desc_a%matrix_data(psb_n_row_) ncol=desc_a%matrix_data(psb_n_col_) - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then @@ -290,7 +290,7 @@ subroutine psb_zgelpv(trans,iperm,x,desc_a,info) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_zins.f90 b/src/tools/psb_zins.f90 index 9ebb02ad..8701100e 100644 --- a/src/tools/psb_zins.f90 +++ b/src/tools/psb_zins.f90 @@ -62,7 +62,7 @@ subroutine psb_zinsvi(m, irw, val, x, desc_a, info, dupl) integer, optional, intent(in) :: dupl !locals..... - integer :: icontxt,i,loc_row,glob_row,row,k,& + integer :: ictxt,i,loc_row,glob_row,row,k,& & loc_rows,loc_cols,iblock, liflag,mglob,err_act, int_err(5), err integer :: nprow,npcol, me ,mypcol,dupl_ character(len=20) :: name, char_err @@ -83,10 +83,10 @@ subroutine psb_zinsvi(m, irw, val, x, desc_a, info, dupl) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -179,7 +179,7 @@ subroutine psb_zinsvi(m, irw, val, x, desc_a, info, dupl) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return @@ -248,7 +248,7 @@ subroutine psb_zinsi(m,irw, val, x, desc_a, info, dupl) integer, optional, intent(in) :: dupl !locals..... - integer :: icontxt,i,loc_row,glob_row,row,k,j,n,& + integer :: ictxt,i,loc_row,glob_row,row,k,j,n,& & loc_rows,loc_cols,iblock, liflag,mglob,err_act, int_err(5), err integer :: nprow,npcol, me ,mypcol,dupl_ character(len=20) :: name, char_err @@ -269,10 +269,10 @@ subroutine psb_zinsi(m,irw, val, x, desc_a, info, dupl) return end if - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, me, mypcol) + call blacs_gridinfo(ictxt, nprow, npcol, me, mypcol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -370,7 +370,7 @@ subroutine psb_zinsi(m,irw, val, x, desc_a, info, dupl) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_zspalloc.f90 b/src/tools/psb_zspalloc.f90 index fd9311a2..aa723a95 100644 --- a/src/tools/psb_zspalloc.f90 +++ b/src/tools/psb_zspalloc.f90 @@ -55,7 +55,7 @@ subroutine psb_zspalloc(a, desc_a, info, nnz) integer, optional, intent(in) :: nnz !locals - integer :: icontxt, dectype + integer :: ictxt, dectype integer :: nprow,npcol,myrow,mycol,loc_row,& & length_ia1,length_ia2,err,nprocs, err_act,m,n integer :: int_err(5),temp(1) @@ -68,9 +68,9 @@ subroutine psb_zspalloc(a, desc_a, info, nnz) call psb_erractionsave(err_act) name = 'psb_zspalloc' - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype=desc_a%matrix_data(psb_dec_type_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) ! ....verify blacs grid correctness.. if (nprow.eq.-1) then info = 2010 @@ -145,7 +145,7 @@ subroutine psb_zspalloc(a, desc_a, info, nnz) if (err_act.eq.act_ret) then return else - call psb_error(icontxt) + call psb_error(ictxt) end if return diff --git a/src/tools/psb_zspasb.f90 b/src/tools/psb_zspasb.f90 index d50d8670..13e0f924 100644 --- a/src/tools/psb_zspasb.f90 +++ b/src/tools/psb_zspasb.f90 @@ -68,7 +68,7 @@ subroutine psb_zspasb(a,desc_a, info, afmt, upd, dupl) & nprow,npcol,myrow,mycol ,size_req,n_col,iout, err_act integer :: dscstate, spstate, nr,k,j integer :: upd_, dupl_ - integer :: icontxt,temp(2),isize(2),n_row + integer :: ictxt,temp(2),isize(2),n_row logical, parameter :: debug=.false., debugwrt=.false. character(len=20) :: name, ch_err @@ -77,13 +77,13 @@ subroutine psb_zspasb(a,desc_a, info, afmt, upd, dupl) name = 'psb_spasb' call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dscstate = desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) ! check on BLACS grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -234,7 +234,7 @@ subroutine psb_zspasb(a,desc_a, info, afmt, upd, dupl) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zspcnv.f90 b/src/tools/psb_zspcnv.f90 index f9e6a433..8de66365 100644 --- a/src/tools/psb_zspcnv.f90 +++ b/src/tools/psb_zspcnv.f90 @@ -106,7 +106,7 @@ subroutine psb_zspcnv(a,b,desc_a,info) integer :: ia1_size,ia2_size,aspk_size,err_act& & ,i,err,nprow,npcol,myrow,mycol,n_col,l_dcsdp, iout, nrow integer :: lwork_dcsdp,dectype - integer :: icontxt,temp(1),n_row + integer :: ictxt,temp(1),n_row character :: check*1, trans*1, unitd*1 real(kind(1.d0)) :: time(10), mpi_wtime @@ -122,13 +122,13 @@ subroutine psb_zspcnv(a,b,desc_a,info) time(1) = mpi_wtime() - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) n_row = desc_a%matrix_data(psb_n_row_) n_col = desc_a%matrix_data(psb_n_col_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (nprow.eq.-1) then info = 2010 call psb_errpush(info,name) @@ -247,7 +247,7 @@ subroutine psb_zspcnv(a,b,desc_a,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zspfree.f90 b/src/tools/psb_zspfree.f90 index c88549e5..4bff1ff0 100644 --- a/src/tools/psb_zspfree.f90 +++ b/src/tools/psb_zspfree.f90 @@ -55,7 +55,7 @@ subroutine psb_zspfree(a, desc_a,info) integer :: int_err(5) integer :: temp(1) real(kind(1.d0)) :: real_err(5) - integer :: icontxt,nprow,npcol,me,mypcol,err, err_act + integer :: ictxt,nprow,npcol,me,mypcol,err, err_act character(len=20) :: name, ch_err if(psb_get_errstatus().ne.0) return @@ -68,7 +68,7 @@ subroutine psb_zspfree(a, desc_a,info) call psb_errpush(info,name) return else - icontxt=desc_a%matrix_data(psb_ctxt_) + ictxt=desc_a%matrix_data(psb_ctxt_) end if !...deallocate a.... @@ -87,7 +87,7 @@ subroutine psb_zspfree(a, desc_a,info) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zsphalo.f90 b/src/tools/psb_zsphalo.f90 index 02ad3eea..1683b860 100644 --- a/src/tools/psb_zsphalo.f90 +++ b/src/tools/psb_zsphalo.f90 @@ -65,7 +65,7 @@ Subroutine psb_zsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) character(len=5), optional :: outfmt !c ...local scalars.... Integer :: nprow,npcol,me,mycol,counter,proc,n,i,& - & n_el_send,k,n_el_recv,icontxt, idx, r, tot_elem,& + & n_el_send,k,n_el_recv,ictxt, idx, r, tot_elem,& & n_elem, m, j, ipx,mat_recv, iszs, iszr,& & idxs,idxr, nrv, nsd,nz Type(psb_zspmat_type) :: tmp @@ -101,8 +101,8 @@ Subroutine psb_zsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) outfmt_ = 'CSR' endif - icontxt=desc_a%matrix_data(psb_ctxt_) - Call blacs_gridinfo(icontxt,nprow,npcol,me,mycol) + ictxt=desc_a%matrix_data(psb_ctxt_) + Call blacs_gridinfo(ictxt,nprow,npcol,me,mycol) t1 = mpi_wtime() Allocate(sdid(nprow,3),rvid(nprow,3),brvindx(nprow+1),& @@ -156,7 +156,7 @@ Subroutine psb_zsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) counter = counter+n_el_send+3 Enddo - call blacs_get(icontxt,10,icomm) + call blacs_get(ictxt,10,icomm) call mpi_alltoall(sdsz,1,mpi_integer,rvsz,1,mpi_integer,icomm,info) if (info /= 0) then @@ -347,7 +347,7 @@ Subroutine psb_zsphalo(a,desc_a,blk,info,rwcnv,clcnv,outfmt) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zspins.f90 b/src/tools/psb_zspins.f90 index e11fd3ae..09dfe012 100644 --- a/src/tools/psb_zspins.f90 +++ b/src/tools/psb_zspins.f90 @@ -62,7 +62,7 @@ subroutine psb_zspins(nz,ia,ja,val,a,desc_a,info,rebuild) logical, intent(in), optional :: rebuild !locals..... - integer :: i,icontxt,nprocs ,glob_row,row,k,start_row,end_row,& + integer :: i,ictxt,nprocs ,glob_row,row,k,start_row,end_row,& & first_loc_row,nrow,j, err,locix,locjx,err_act,& & dectype,mglob, nnza,m,n, pnt_halo,ncol, nh, ip, spstate integer,pointer :: tia1(:),tia2(:), temp(:) @@ -88,11 +88,11 @@ subroutine psb_zspins(nz,ia,ja,val,a,desc_a,info,rebuild) call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) + ictxt = desc_a%matrix_data(psb_ctxt_) dectype = desc_a%matrix_data(psb_dec_type_) mglob = desc_a%matrix_data(psb_m_) ! check on blacs grid - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (npcol.ne.1) then info = 2030 call psb_errpush(info,name) @@ -180,7 +180,7 @@ subroutine psb_zspins(nz,ia,ja,val,a,desc_a,info,rebuild) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/src/tools/psb_zsprn.f90 b/src/tools/psb_zsprn.f90 index 2d75b94a..cf74f3e2 100644 --- a/src/tools/psb_zsprn.f90 +++ b/src/tools/psb_zsprn.f90 @@ -54,7 +54,7 @@ Subroutine psb_zsprn(a, desc_a,info,clear) logical, intent(in), optional :: clear !locals - Integer :: icontxt + Integer :: ictxt Integer :: nprow,npcol,myrow,mycol,err,err_act logical, parameter :: debug=.false. integer :: int_err(5) @@ -68,10 +68,10 @@ Subroutine psb_zsprn(a, desc_a,info,clear) name = 'psb_zsprn' call psb_erractionsave(err_act) - icontxt = desc_a%matrix_data(psb_ctxt_) - call blacs_gridinfo(icontxt, nprow, npcol, myrow, mycol) + ictxt = desc_a%matrix_data(psb_ctxt_) + call blacs_gridinfo(ictxt, nprow, npcol, myrow, mycol) if (debug) & - &write(*,*) 'starting spalloc ',icontxt,nprow,npcol,myrow + &write(*,*) 'starting spalloc ',ictxt,nprow,npcol,myrow ! ....verify blacs grid correctness.. if (npcol.ne.1) then @@ -107,7 +107,7 @@ Subroutine psb_zsprn(a, desc_a,info,clear) 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/test/Fileread/df_sample.f90 b/test/Fileread/df_sample.f90 index 9ea5d96c..70888f95 100644 --- a/test/Fileread/df_sample.f90 +++ b/test/Fileread/df_sample.f90 @@ -76,8 +76,7 @@ program df_sample type(psb_desc_type):: desc_a ! blacs variables - integer :: nprow, npcol, ictxt, iam, np, myprow, mypcol - character, parameter :: order='r' + integer :: ictxt, iam, np logical :: amroot ! solver paramters @@ -90,7 +89,7 @@ program df_sample integer :: iparm(20) ! other variables - integer :: i,info,j,m_problem, nproc + integer :: i,info,j,m_problem integer :: internal, m,ii,nnzero real(kind(1.d0)) :: mpi_wtime, t1, t2, tprec, r_amax, b_amax,& &scale,resmx,resmxp @@ -100,15 +99,16 @@ program df_sample external mpi_wtime - ! initialize blacs - call blacs_pinfo(iam, np) - call blacs_get(izero, izero, ictxt) + call psb_init(ictxt) + call psb_info(ictxt,iam,np) - ! rectangular grid, np x 1 + if (iam < 0) then + ! This should not happen, but just in case + call psb_exit(ictxt) + stop + endif + amroot = (iam==0) - call blacs_gridinit(ictxt, order, np, ione) - call blacs_gridinfo(ictxt, nprow, npcol, myprow, mypcol) - amroot = (myprow==0).and.(mypcol==0) name='df_sample' if(psb_get_errstatus().ne.0) goto 9999 @@ -121,11 +121,10 @@ program df_sample call get_parms(ictxt,mtrx_file,rhs_file,cmethd,& & ipart,afmt,istopc,itmax,itrace,novr,iprec,eps) - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) t1 = mpi_wtime() ! read the input matrix to be processed and (possibly) the rhs nrhs = 1 - nproc = nprow if (amroot) then nullify(aux_b) @@ -171,7 +170,7 @@ program df_sample ! switch over different partition types if (ipart.eq.0) then - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) if (amroot) write(*,'("Partition type: block")') allocate(ivg(m_problem),ipv(np)) do i=1,m_problem @@ -181,7 +180,7 @@ program df_sample call matdist(aux_a, a, ivg, ictxt, & & desc_a,b_col_glob,b_col,info,fmt=afmt) else if (ipart.eq.1) then - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) if (amroot) write(*,'("Partition type: blk2")') allocate(ivg(m_problem),ipv(np)) do i=1,m_problem @@ -197,7 +196,7 @@ program df_sample ! write(0,'("Build type: graph")') call build_grppart(aux_a%m,aux_a%fida,aux_a%ia1,aux_a%ia2,np) endif - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) call distr_grppart(0,0,ictxt) call getv_grppart(ivg) call matdist(aux_a, a, ivg, ictxt, & @@ -300,7 +299,7 @@ program df_sample if (amroot) then call psb_prec_descr(6,pre) write(*,'("Matrix: ",a)')mtrx_file - write(*,'("Computed solution on ",i4," processors")')nprow + write(*,'("Computed solution on ",i4," processors")')np write(*,'("Iterations to convergence: ",i6)')iter write(*,'("Error indicator on exit: ",f7.2)')err write(*,'("Time to buil prec. : ",es10.4)')tprec @@ -321,7 +320,7 @@ program df_sample write(0,'(" ")') write(0,'("Saving x on file")') write(20,*) 'matrix: ',mtrx_file - write(20,*) 'computed solution on ',nprow,' processors.' + write(20,*) 'computed solution on ',np,' processors.' write(20,*) 'iterations to convergence: ',iter write(20,*) 'error indicator (infinity norm) on exit:', & & ' ||r||/(||a||||x||+||b||) = ',err @@ -344,13 +343,8 @@ program df_sample 9999 continue if(info /= 0) then call psb_error(ictxt) - call blacs_gridexit(ictxt) - call blacs_exit(0) - else - call blacs_gridexit(ictxt) - call blacs_exit(0) end if - + call psb_exit(ictxt) stop end program df_sample diff --git a/test/Fileread/getp.f90 b/test/Fileread/getp.f90 index 2b68ffa0..028505b0 100644 --- a/test/Fileread/getp.f90 +++ b/test/Fileread/getp.f90 @@ -37,20 +37,20 @@ CONTAINS ! ! Get iteration parameters from the command line ! - SUBROUTINE GET_PARMS(ICONTXT,MTRX_FILE,RHS_FILE,CMETHD,IPART,& + SUBROUTINE GET_PARMS(ICTXT,MTRX_FILE,RHS_FILE,CMETHD,IPART,& & AFMT,ISTOPC,ITMAX,ITRACE,NOVR,IPREC,EPS) - integer :: icontxt + integer :: ictxt Character*40 :: CMETHD, MTRX_FILE, RHS_FILE Integer :: IRET, ISTOPC,ITMAX,ITRACE,IPART,IPREC,NOVR Character*40 :: CHARBUF real(kind(1.d0)) :: eps character :: afmt*5 - INTEGER :: IARGC, NPROW, NPCOL, MYPROW, MYPCOL + INTEGER :: IARGC, NP, IAM EXTERNAL IARGC INTEGER :: INPARMS(40), IP - CALL BLACS_GRIDINFO(ICONTXT, NPROW, NPCOL, MYPROW, MYPCOL) - IF (MYPROW==0) THEN + call psb_info(ictxt,iam,np) + IF (IAM==0) THEN ! Read Input Parameters READ(*,*) IP IF (IP.GE.3) THEN @@ -64,20 +64,20 @@ CONTAINS INPARMS(I) = IACHAR(MTRX_FILE(I:I)) END DO ! Broadcast parameters to all processors - CALL IGEBS2D(ICONTXT,'ALL',' ',40,1,INPARMS,40) + CALL IGEBS2D(ICTXT,'ALL',' ',40,1,INPARMS,40) ! Convert strings in array DO I = 1, LEN(CMETHD) INPARMS(I) = IACHAR(CMETHD(I:I)) END DO ! Broadcast parameters to all processors - CALL IGEBS2D(ICONTXT,'ALL',' ',40,1,INPARMS,40) + CALL IGEBS2D(ICTXT,'ALL',' ',40,1,INPARMS,40) DO I = 1, LEN(AFMT) INPARMS(I) = IACHAR(AFMT(I:I)) END DO ! Broadcast parameters to all processors - CALL IGEBS2D(ICONTXT,'ALL',' ',40,1,INPARMS,40) + CALL IGEBS2D(ICTXT,'ALL',' ',40,1,INPARMS,40) READ(*,*) IPART IF (IP.GE.5) THEN @@ -118,8 +118,8 @@ CONTAINS INPARMS(4) = ITRACE INPARMS(5) = IPREC INPARMS(6) = NOVR - CALL IGEBS2D(ICONTXT,'ALL',' ',6,1,INPARMS,6) - CALL DGEBS2D(ICONTXT,'ALL',' ',1,1,EPS,1) + CALL IGEBS2D(ICTXT,'ALL',' ',6,1,INPARMS,6) + CALL DGEBS2D(ICTXT,'ALL',' ',1,1,EPS,1) write(*,'("Solving matrix : ",a40)')mtrx_file write(*,'("Number of processors : ",i3)')nprow @@ -131,27 +131,27 @@ CONTAINS write(*,'(" ")') else CALL PR_USAGE(0) - CALL BLACS_ABORT(ICONTXT,-1) + CALL BLACS_ABORT(ICTXT,-1) STOP 1 END IF ELSE ! Receive Parameters - CALL IGEBR2D(ICONTXT,'A',' ',40,1,INPARMS,40,0,0) + CALL IGEBR2D(ICTXT,'A',' ',40,1,INPARMS,40,0,0) DO I = 1, 40 MTRX_FILE(I:I) = ACHAR(INPARMS(I)) END DO - CALL IGEBR2D(ICONTXT,'A',' ',40,1,INPARMS,40,0,0) + CALL IGEBR2D(ICTXT,'A',' ',40,1,INPARMS,40,0,0) DO I = 1, 40 CMETHD(I:I) = ACHAR(INPARMS(I)) END DO - CALL IGEBR2D(ICONTXT,'A',' ',40,1,INPARMS,40,0,0) + CALL IGEBR2D(ICTXT,'A',' ',40,1,INPARMS,40,0,0) DO I = 1, LEN(AFMT) AFMT(I:I) = ACHAR(INPARMS(I)) END DO - CALL IGEBR2D(ICONTXT,'A',' ',6,1,INPARMS,6,0,0) + CALL IGEBR2D(ICTXT,'A',' ',6,1,INPARMS,6,0,0) IPART = INPARMS(1) ISTOPC = INPARMS(2) @@ -159,7 +159,7 @@ CONTAINS ITRACE = INPARMS(4) IPREC = INPARMS(5) NOVR = INPARMS(6) - CALL DGEBR2D(ICONTXT,'A',' ',1,1,EPS,1,0,0) + CALL DGEBR2D(ICTXT,'A',' ',1,1,EPS,1,0,0) END IF END SUBROUTINE GET_PARMS diff --git a/test/Fileread/mat_dist.f90 b/test/Fileread/mat_dist.f90 index be925a55..f0ff6bf9 100644 --- a/test/Fileread/mat_dist.f90 +++ b/test/Fileread/mat_dist.f90 @@ -36,7 +36,7 @@ module mat_dist contains - subroutine dmatdistf (a_glob, a, parts, icontxt, desc_a,& + subroutine dmatdistf (a_glob, a, parts, ictxt, desc_a,& & b_glob, b, info, inroot,fmt) ! ! an utility subroutine to distribute a matrix among processors @@ -74,7 +74,7 @@ contains ! usually nv=1; if nv >1 then we have an overlap in the data ! distribution. ! - ! integer :: icontxt + ! integer :: ictxt ! on entry: blacs context. ! on exit : unchanged. ! @@ -100,7 +100,7 @@ contains ! parameters type(psb_dspmat_type) :: a_glob real(kind(1.d0)), pointer :: b_glob(:) - integer :: icontxt + integer :: ictxt type(psb_dspmat_type) :: a real(kind(1.d0)), pointer :: b(:) type (psb_desc_type) :: desc_a @@ -119,7 +119,7 @@ contains end interface ! local variables - integer :: nprow, npcol, myprow, mypcol + integer :: np, iam integer :: ircode, length_row, i_count, j_count,& & k_count, blockdim, root, liwork, nrow, ncol, nnzero, nrhs,& & i,j,k, ll, isize, iproc, nnr, err, err_act, int_err(5) @@ -144,8 +144,9 @@ contains else root = 0 end if - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) - if (myprow == root) then + call psb_info(ictxt, iam, np) + + if (iam == root) then ! extract information from a_glob if (a_glob%fida.ne. 'CSR') then info=135 @@ -164,18 +165,18 @@ contains nnzero = size(a_glob%aspk) nrhs = 1 ! broadcast informations to other processors - call gebs2d(icontxt, 'a', nrow) - call gebs2d(icontxt, 'a', ncol) - call gebs2d(icontxt, 'a', nnzero) - call gebs2d(icontxt, 'a', nrhs) - else !(myprow /= root) + call gebs2d(ictxt, 'a', nrow) + call gebs2d(ictxt, 'a', ncol) + call gebs2d(ictxt, 'a', nnzero) + call gebs2d(ictxt, 'a', nrhs) + else !(iam /= root) ! receive informations - call gebr2d(icontxt, 'a', nrow) - call gebr2d(icontxt, 'a', ncol) - call gebr2d(icontxt, 'a', nnzero) - call gebr2d(icontxt, 'a', nrhs) + call gebr2d(ictxt, 'a', nrow) + call gebr2d(ictxt, 'a', ncol) + call gebr2d(ictxt, 'a', nnzero) + call gebr2d(ictxt, 'a', nrhs) end if ! allocate integer work area - liwork = max(nprow, nrow + ncol) + liwork = max(np, nrow + ncol) allocate(iwork(liwork), stat = info) if (info /= 0) then info=2025 @@ -183,12 +184,12 @@ contains call psb_errpush(info,name,i_err=int_err) goto 9999 endif - if (myprow == root) then + if (iam == root) then write (*, fmt = *) 'start matdist',root, size(iwork),& &nrow, ncol, nnzero,nrhs endif if (newt) then - call psb_cdall(nrow,nrow,parts,icontxt,desc_a,info) + call psb_cdall(nrow,nrow,parts,ictxt,desc_a,info) if(info/=0) then info=4010 ch_err='psb_cdall' @@ -196,7 +197,7 @@ contains goto 9999 end if else - call psb_cdall(nrow,nrow,parts,icontxt,desc_a,info) + call psb_cdall(nrow,nrow,parts,ictxt,desc_a,info) if(info/=0) then info=4010 ch_err='psb_pscdall' @@ -204,7 +205,7 @@ contains goto 9999 end if endif - call psb_spall(a,desc_a,info,nnz=nnzero/nprow) + call psb_spall(a,desc_a,info,nnz=nnzero/np) if(info/=0) then info=4010 ch_err='psb_psspall' @@ -233,7 +234,7 @@ contains do while (i_count.le.nrow) - call parts(i_count,nrow,nprow,iwork, length_row) + call parts(i_count,nrow,np,iwork, length_row) if (length_row.eq.1) then j_count = i_count @@ -242,7 +243,7 @@ contains j_count = j_count + 1 if (j_count-i_count >= nb) exit if (j_count > nrow) exit - call parts(j_count,nrow,nprow,iwork, length_row) + call parts(j_count,nrow,np,iwork, length_row) if (length_row /= 1 ) exit if (iwork(1) /= iproc ) exit end do @@ -250,7 +251,7 @@ contains ! now we should insert rows i_count..j_count-1 nnr = j_count - i_count - if (myprow == root) then + if (iam == root) then do j = i_count, j_count icol(j-i_count+1) = a_glob%ia2(j) - & @@ -264,7 +265,7 @@ contains enddo ll = icol(nnr+1) - 1 - if (iproc == myprow) then + if (iproc == iam) then call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -281,21 +282,21 @@ contains goto 9999 end if else - call igesd2d(icontxt,1,1,nnr,1,iproc,0) - call igesd2d(icontxt,1,1,ll,1,iproc,0) - call igesd2d(icontxt,nnr+1,1,icol,nnr+1,iproc,0) - call igesd2d(icontxt,ll,1,irow,ll,iproc,0) - call dgesd2d(icontxt,ll,1,val,ll,iproc,0) - call dgesd2d(icontxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) - call igerv2d(icontxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,1,1,nnr,1,iproc,0) + call igesd2d(ictxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,nnr+1,1,icol,nnr+1,iproc,0) + call igesd2d(ictxt,ll,1,irow,ll,iproc,0) + call dgesd2d(ictxt,ll,1,val,ll,iproc,0) + call dgesd2d(ictxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) + call igerv2d(ictxt,1,1,ll,1,iproc,0) endif - else if (myprow /= root) then + else if (iam /= root) then - if (iproc == myprow) then - call igerv2d(icontxt,1,1,nnr,1,root,0) - call igerv2d(icontxt,1,1,ll,1,root,0) + if (iproc == iam) then + call igerv2d(ictxt,1,1,nnr,1,root,0) + call igerv2d(ictxt,1,1,ll,1,root,0) if (ll > size(irow)) then - write(0,*) myprow,'need to reallocate ',ll + write(0,*) iam,'need to reallocate ',ll deallocate(val,irow,icol) allocate(val(ll),irow(ll),icol(ll),stat=info) if(info/=0) then @@ -306,11 +307,11 @@ contains end if endif - call igerv2d(icontxt,ll,1,irow,ll,root,0) - call igerv2d(icontxt,nnr+1,1,icol,nnr+1,root,0) - call dgerv2d(icontxt,ll,1,val,ll,root,0) - call dgerv2d(icontxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) - call igesd2d(icontxt,1,1,ll,1,root,0) + call igerv2d(ictxt,ll,1,irow,ll,root,0) + call igerv2d(ictxt,nnr+1,1,icol,nnr+1,root,0) + call dgerv2d(ictxt,ll,1,val,ll,root,0) + call dgerv2d(ictxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) + call igesd2d(ictxt,1,1,ll,1,root,0) call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -332,11 +333,11 @@ contains i_count = j_count else - write(0,*) myprow,'unexpected turn' - ! here processors are counted 1..nprow + write(0,*) iam,'unexpected turn' + ! here processors are counted 1..np do j_count = 1, length_row k_count = iwork(j_count) - if (myprow == root) then + if (iam == root) then icol(1) = 1 icol(2) = 1 do j = a_glob%ia2(i_count), a_glob%ia2(i_count+1)-1 @@ -345,7 +346,7 @@ contains icol(2) =icol(2) + 1 enddo ll = icol(2) - 1 - if (k_count == myprow) then + if (k_count == iam) then call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then @@ -363,21 +364,21 @@ contains goto 9999 end if else - call igesd2d(icontxt,1,1,ll,1,k_count,0) - call igesd2d(icontxt,ll,1,irow,ll,k_count,0) - call dgesd2d(icontxt,ll,1,val,ll,k_count,0) - call dgesd2d(icontxt,1,1,b_glob(i_count),1,k_count,0) - call igerv2d(icontxt,1,1,ll,1,k_count,0) + call igesd2d(ictxt,1,1,ll,1,k_count,0) + call igesd2d(ictxt,ll,1,irow,ll,k_count,0) + call dgesd2d(ictxt,ll,1,val,ll,k_count,0) + call dgesd2d(ictxt,1,1,b_glob(i_count),1,k_count,0) + call igerv2d(ictxt,1,1,ll,1,k_count,0) endif - else if (myprow /= root) then - if (k_count == myprow) then - call igerv2d(icontxt,1,1,ll,1,root,0) + else if (iam /= root) then + if (k_count == iam) then + call igerv2d(ictxt,1,1,ll,1,root,0) icol(1) = 1 icol(2) = ll+1 - call igerv2d(icontxt,ll,1,irow,ll,root,0) - call dgerv2d(icontxt,ll,1,val,ll,root,0) - call dgerv2d(icontxt,1,1,b_glob(i_count),1,root,0) - call igesd2d(icontxt,1,1,ll,1,root,0) + call igerv2d(ictxt,ll,1,irow,ll,root,0) + call dgerv2d(ictxt,ll,1,val,ll,root,0) + call dgerv2d(ictxt,1,1,b_glob(i_count),1,root,0) + call igesd2d(ictxt,1,1,ll,1,root,0) call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -407,7 +408,7 @@ contains endif if (newt) then - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t0 = mpi_wtime() call psb_cdasb(desc_a,info) t1 = mpi_wtime() @@ -418,7 +419,7 @@ contains goto 9999 end if - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t2 = mpi_wtime() call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) t3 = mpi_wtime() @@ -430,7 +431,7 @@ contains end if - if (myprow == root) then + if (iam == root) then write(*,*) 'descriptor assembly: ',t1-t0 write(*,*) 'sparse matrix assembly: ',t3-t2 end if @@ -463,7 +464,7 @@ contains end if deallocate(iwork) - if (myprow == root) write (*, fmt = *) 'end matdist' + if (iam == root) write (*, fmt = *) 'end matdist' call psb_erractionrestore(err_act) return @@ -471,7 +472,7 @@ contains 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -479,7 +480,7 @@ contains end subroutine dmatdistf - subroutine dmatdistv (a_glob, a, v, icontxt, desc_a,& + subroutine dmatdistv (a_glob, a, v, ictxt, desc_a,& & b_glob, b, info, inroot,fmt) ! ! an utility subroutine to distribute a matrix among processors @@ -517,7 +518,7 @@ contains ! usually nv=1; if nv >1 then we have an overlap in the data ! distribution. ! - ! integer :: icontxt + ! integer :: ictxt ! on entry: blacs context. ! on exit : unchanged. ! @@ -541,7 +542,7 @@ contains implicit none ! parameters type(psb_dspmat_type) :: a_glob real(kind(1.d0)), pointer :: b_glob(:) - integer :: icontxt, v(:) + integer :: ictxt, v(:) type(psb_dspmat_type) :: a real(kind(1.d0)), pointer :: b(:) type (psb_desc_type) :: desc_a @@ -549,7 +550,7 @@ contains integer, optional :: inroot character(len=5), optional :: fmt - integer :: nprow, npcol, myprow, mypcol + integer :: np, iam integer :: ircode, length_row, i_count, j_count,& & k_count, blockdim, root, liwork, nrow, ncol, nnzero, nrhs,& & i,j,k, ll, isize, iproc, nnr, err, err_act, int_err(5) @@ -575,8 +576,8 @@ contains root = 0 end if - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) - if (myprow == root) then + call psb_info(ictxt, iam, np) + if (iam == root) then ! extract information from a_glob if (a_glob%fida.ne. 'CSR') then info=135 @@ -597,18 +598,18 @@ contains nnzero = size(a_glob%aspk) nrhs = 1 ! broadcast informations to other processors - call igebs2d(icontxt, 'a', ' ', 1, 1, nrow, 1) - call igebs2d(icontxt, 'a', ' ', 1, 1, ncol, 1) - call igebs2d(icontxt, 'a', ' ', 1, 1, nnzero, 1) - call igebs2d(icontxt, 'a', ' ', 1, 1, nrhs, 1) - else !(myprow /= root) + call igebs2d(ictxt, 'a', ' ', 1, 1, nrow, 1) + call igebs2d(ictxt, 'a', ' ', 1, 1, ncol, 1) + call igebs2d(ictxt, 'a', ' ', 1, 1, nnzero, 1) + call igebs2d(ictxt, 'a', ' ', 1, 1, nrhs, 1) + else !(iam /= root) ! receive informations - call igebr2d(icontxt, 'a', ' ', 1, 1, nrow, 1, root, 0) - call igebr2d(icontxt, 'a', ' ', 1, 1, ncol, 1, root, 0) - call igebr2d(icontxt, 'a', ' ', 1, 1, nnzero, 1, root, 0) - call igebr2d(icontxt, 'a', ' ', 1, 1, nrhs, 1, root, 0) + call igebr2d(ictxt, 'a', ' ', 1, 1, nrow, 1, root, 0) + call igebr2d(ictxt, 'a', ' ', 1, 1, ncol, 1, root, 0) + call igebr2d(ictxt, 'a', ' ', 1, 1, nnzero, 1, root, 0) + call igebr2d(ictxt, 'a', ' ', 1, 1, nrhs, 1, root, 0) end if ! allocate integer work area - liwork = max(nprow, nrow + ncol) + liwork = max(np, nrow + ncol) allocate(iwork(liwork), stat = info) if (info /= 0) then write(0,*) 'matdist allocation failed' @@ -618,7 +619,7 @@ contains goto 9999 endif - call psb_cdall(nrow,v,icontxt,desc_a,info) + call psb_cdall(nrow,v,ictxt,desc_a,info) if(info/=0) then info=4010 ch_err='psb_cdall' @@ -626,7 +627,7 @@ contains goto 9999 end if - call psb_spall(a,desc_a,info,nnz=((nnzero+nprow-1)/nprow)) + call psb_spall(a,desc_a,info,nnz=((nnzero+np-1)/np)) if(info/=0) then info=4010 ch_err='psb_psspall' @@ -668,7 +669,7 @@ contains ! now we should insert rows i_count..j_count-1 nnr = j_count - i_count - if (myprow == root) then + if (iam == root) then ll = a_glob%ia2(j_count)-a_glob%ia2(i_count) if (ll > size(val)) then deallocate(val,irow,icol) @@ -690,7 +691,7 @@ contains end do enddo - if (iproc == myprow) then + if (iproc == iam) then call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -708,21 +709,21 @@ contains goto 9999 end if else - call igesd2d(icontxt,1,1,nnr,1,iproc,0) - call igesd2d(icontxt,1,1,ll,1,iproc,0) - call igesd2d(icontxt,ll,1,irow,ll,iproc,0) - call igesd2d(icontxt,ll,1,icol,ll,iproc,0) - call dgesd2d(icontxt,ll,1,val,ll,iproc,0) - call dgesd2d(icontxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) - call igerv2d(icontxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,1,1,nnr,1,iproc,0) + call igesd2d(ictxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,ll,1,irow,ll,iproc,0) + call igesd2d(ictxt,ll,1,icol,ll,iproc,0) + call dgesd2d(ictxt,ll,1,val,ll,iproc,0) + call dgesd2d(ictxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) + call igerv2d(ictxt,1,1,ll,1,iproc,0) endif - else if (myprow /= root) then + else if (iam /= root) then - if (iproc == myprow) then - call igerv2d(icontxt,1,1,nnr,1,root,0) - call igerv2d(icontxt,1,1,ll,1,root,0) + if (iproc == iam) then + call igerv2d(ictxt,1,1,nnr,1,root,0) + call igerv2d(ictxt,1,1,ll,1,root,0) if (ll > size(val)) then - write(0,*) myprow,'need to reallocate ',ll + write(0,*) iam,'need to reallocate ',ll deallocate(val,irow,icol) allocate(val(ll),irow(ll),icol(ll),stat=info) if(info/=0) then @@ -732,11 +733,11 @@ contains goto 9999 end if endif - call igerv2d(icontxt,ll,1,irow,ll,root,0) - call igerv2d(icontxt,ll,1,icol,ll,root,0) - call dgerv2d(icontxt,ll,1,val,ll,root,0) - call dgerv2d(icontxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) - call igesd2d(icontxt,1,1,ll,1,root,0) + call igerv2d(ictxt,ll,1,irow,ll,root,0) + call igerv2d(ictxt,ll,1,icol,ll,root,0) + call dgerv2d(ictxt,ll,1,val,ll,root,0) + call dgerv2d(ictxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) + call igesd2d(ictxt,1,1,ll,1,root,0) call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then @@ -767,7 +768,7 @@ contains else afmt = 'CSR' endif - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t0 = mpi_wtime() call psb_cdasb(desc_a,info) t1 = mpi_wtime() @@ -778,7 +779,7 @@ contains goto 9999 end if - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t2 = mpi_wtime() call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) t3 = mpi_wtime() @@ -791,7 +792,7 @@ contains call psb_geasb(b,desc_a,info) - if (myprow == root) then + if (iam == root) then write(*,'("Descriptor assembly : ",es10.4)')t1-t0 write(*,'("Sparse matrix assembly: ",es10.4)')t3-t2 end if @@ -811,7 +812,7 @@ contains 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -819,7 +820,7 @@ contains end subroutine dmatdistv - subroutine zmatdistf (a_glob, a, parts, icontxt, desc_a,& + subroutine zmatdistf (a_glob, a, parts, ictxt, desc_a,& & b_glob, b, info, inroot,fmt) ! ! an utility subroutine to distribute a matrix among processors @@ -857,7 +858,7 @@ contains ! usually nv=1; if nv >1 then we have an overlap in the data ! distribution. ! - ! integer :: icontxt + ! integer :: ictxt ! on entry: blacs context. ! on exit : unchanged. ! @@ -883,7 +884,7 @@ contains ! parameters type(psb_zspmat_type) :: a_glob complex(kind(1.d0)), pointer :: b_glob(:) - integer :: icontxt + integer :: ictxt type(psb_zspmat_type) :: a complex(kind(1.d0)), pointer :: b(:) type (psb_desc_type) :: desc_a @@ -902,7 +903,7 @@ contains end interface ! local variables - integer :: nprow, npcol, myprow, mypcol + integer :: np, iam integer :: ircode, length_row, i_count, j_count,& & k_count, blockdim, root, liwork, nrow, ncol, nnzero, nrhs,& & i,j,k, ll, isize, iproc, nnr, err, err_act, int_err(5) @@ -927,8 +928,8 @@ contains else root = 0 end if - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) - if (myprow == root) then + call psb_info(ictxt, iam, np) + if (iam == root) then ! extract information from a_glob if (a_glob%fida.ne. 'CSR') then info=135 @@ -947,18 +948,18 @@ contains nnzero = size(a_glob%aspk) nrhs = 1 ! broadcast informations to other processors - call gebs2d(icontxt, 'a', nrow) - call gebs2d(icontxt, 'a', ncol) - call gebs2d(icontxt, 'a', nnzero) - call gebs2d(icontxt, 'a', nrhs) - else !(myprow /= root) + call gebs2d(ictxt, 'a', nrow) + call gebs2d(ictxt, 'a', ncol) + call gebs2d(ictxt, 'a', nnzero) + call gebs2d(ictxt, 'a', nrhs) + else !(iam /= root) ! receive informations - call gebr2d(icontxt, 'a', nrow) - call gebr2d(icontxt, 'a', ncol) - call gebr2d(icontxt, 'a', nnzero) - call gebr2d(icontxt, 'a', nrhs) + call gebr2d(ictxt, 'a', nrow) + call gebr2d(ictxt, 'a', ncol) + call gebr2d(ictxt, 'a', nnzero) + call gebr2d(ictxt, 'a', nrhs) end if ! allocate integer work area - liwork = max(nprow, nrow + ncol) + liwork = max(np, nrow + ncol) allocate(iwork(liwork), stat = info) if (info /= 0) then info=2025 @@ -966,12 +967,12 @@ contains call psb_errpush(info,name,i_err=int_err) goto 9999 endif - if (myprow == root) then + if (iam == root) then write (*, fmt = *) 'start matdist',root, size(iwork),& &nrow, ncol, nnzero,nrhs endif if (newt) then - call psb_cdall(nrow,nrow,parts,icontxt,desc_a,info) + call psb_cdall(nrow,nrow,parts,ictxt,desc_a,info) if(info/=0) then info=4010 ch_err='psb_cdall' @@ -979,7 +980,7 @@ contains goto 9999 end if else - call psb_cdall(nrow,nrow,parts,icontxt,desc_a,info) + call psb_cdall(nrow,nrow,parts,ictxt,desc_a,info) if(info/=0) then info=4010 ch_err='psb_pscdall' @@ -987,7 +988,7 @@ contains goto 9999 end if endif - call psb_spall(a,desc_a,info,nnz=nnzero/nprow) + call psb_spall(a,desc_a,info,nnz=nnzero/np) if(info/=0) then info=4010 ch_err='psb_psspall' @@ -1016,7 +1017,7 @@ contains do while (i_count.le.nrow) - call parts(i_count,nrow,nprow,iwork, length_row) + call parts(i_count,nrow,np,iwork, length_row) if (length_row.eq.1) then j_count = i_count @@ -1025,7 +1026,7 @@ contains j_count = j_count + 1 if (j_count-i_count >= nb) exit if (j_count > nrow) exit - call parts(j_count,nrow,nprow,iwork, length_row) + call parts(j_count,nrow,np,iwork, length_row) if (length_row /= 1 ) exit if (iwork(1) /= iproc ) exit end do @@ -1033,7 +1034,7 @@ contains ! now we should insert rows i_count..j_count-1 nnr = j_count - i_count - if (myprow == root) then + if (iam == root) then do j = i_count, j_count icol(j-i_count+1) = a_glob%ia2(j) - & @@ -1047,7 +1048,7 @@ contains enddo ll = icol(nnr+1) - 1 - if (iproc == myprow) then + if (iproc == iam) then call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -1064,21 +1065,21 @@ contains goto 9999 end if else - call igesd2d(icontxt,1,1,nnr,1,iproc,0) - call igesd2d(icontxt,1,1,ll,1,iproc,0) - call igesd2d(icontxt,nnr+1,1,icol,nnr+1,iproc,0) - call igesd2d(icontxt,ll,1,irow,ll,iproc,0) - call zgesd2d(icontxt,ll,1,val,ll,iproc,0) - call zgesd2d(icontxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) - call igerv2d(icontxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,1,1,nnr,1,iproc,0) + call igesd2d(ictxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,nnr+1,1,icol,nnr+1,iproc,0) + call igesd2d(ictxt,ll,1,irow,ll,iproc,0) + call zgesd2d(ictxt,ll,1,val,ll,iproc,0) + call zgesd2d(ictxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) + call igerv2d(ictxt,1,1,ll,1,iproc,0) endif - else if (myprow /= root) then + else if (iam /= root) then - if (iproc == myprow) then - call igerv2d(icontxt,1,1,nnr,1,root,0) - call igerv2d(icontxt,1,1,ll,1,root,0) + if (iproc == iam) then + call igerv2d(ictxt,1,1,nnr,1,root,0) + call igerv2d(ictxt,1,1,ll,1,root,0) if (ll > size(irow)) then - write(0,*) myprow,'need to reallocate ',ll + write(0,*) iam,'need to reallocate ',ll deallocate(val,irow,icol) allocate(val(ll),irow(ll),icol(ll),stat=info) if(info/=0) then @@ -1089,11 +1090,11 @@ contains end if endif - call igerv2d(icontxt,ll,1,irow,ll,root,0) - call igerv2d(icontxt,nnr+1,1,icol,nnr+1,root,0) - call zgerv2d(icontxt,ll,1,val,ll,root,0) - call zgerv2d(icontxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) - call igesd2d(icontxt,1,1,ll,1,root,0) + call igerv2d(ictxt,ll,1,irow,ll,root,0) + call igerv2d(ictxt,nnr+1,1,icol,nnr+1,root,0) + call zgerv2d(ictxt,ll,1,val,ll,root,0) + call zgerv2d(ictxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) + call igesd2d(ictxt,1,1,ll,1,root,0) call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -1115,11 +1116,11 @@ contains i_count = j_count else - write(0,*) myprow,'unexpected turn' - ! here processors are counted 1..nprow + write(0,*) iam,'unexpected turn' + ! here processors are counted 1..np do j_count = 1, length_row k_count = iwork(j_count) - if (myprow == root) then + if (iam == root) then icol(1) = 1 icol(2) = 1 do j = a_glob%ia2(i_count), a_glob%ia2(i_count+1)-1 @@ -1128,7 +1129,7 @@ contains icol(2) =icol(2) + 1 enddo ll = icol(2) - 1 - if (k_count == myprow) then + if (k_count == iam) then call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then @@ -1146,21 +1147,21 @@ contains goto 9999 end if else - call igesd2d(icontxt,1,1,ll,1,k_count,0) - call igesd2d(icontxt,ll,1,irow,ll,k_count,0) - call zgesd2d(icontxt,ll,1,val,ll,k_count,0) - call zgesd2d(icontxt,1,1,b_glob(i_count),1,k_count,0) - call igerv2d(icontxt,1,1,ll,1,k_count,0) + call igesd2d(ictxt,1,1,ll,1,k_count,0) + call igesd2d(ictxt,ll,1,irow,ll,k_count,0) + call zgesd2d(ictxt,ll,1,val,ll,k_count,0) + call zgesd2d(ictxt,1,1,b_glob(i_count),1,k_count,0) + call igerv2d(ictxt,1,1,ll,1,k_count,0) endif - else if (myprow /= root) then - if (k_count == myprow) then - call igerv2d(icontxt,1,1,ll,1,root,0) + else if (iam /= root) then + if (k_count == iam) then + call igerv2d(ictxt,1,1,ll,1,root,0) icol(1) = 1 icol(2) = ll+1 - call igerv2d(icontxt,ll,1,irow,ll,root,0) - call zgerv2d(icontxt,ll,1,val,ll,root,0) - call zgerv2d(icontxt,1,1,b_glob(i_count),1,root,0) - call igesd2d(icontxt,1,1,ll,1,root,0) + call igerv2d(ictxt,ll,1,irow,ll,root,0) + call zgerv2d(ictxt,ll,1,val,ll,root,0) + call zgerv2d(ictxt,1,1,b_glob(i_count),1,root,0) + call igesd2d(ictxt,1,1,ll,1,root,0) call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -1190,7 +1191,7 @@ contains endif if (newt) then - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t0 = mpi_wtime() call psb_cdasb(desc_a,info) t1 = mpi_wtime() @@ -1201,7 +1202,7 @@ contains goto 9999 end if - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t2 = mpi_wtime() call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) t3 = mpi_wtime() @@ -1213,7 +1214,7 @@ contains end if - if (myprow == root) then + if (iam == root) then write(*,*) 'descriptor assembly: ',t1-t0 write(*,*) 'sparse matrix assembly: ',t3-t2 end if @@ -1246,7 +1247,7 @@ contains end if deallocate(iwork) - if (myprow == root) write (*, fmt = *) 'end matdist' + if (iam == root) write (*, fmt = *) 'end matdist' call psb_erractionrestore(err_act) return @@ -1254,7 +1255,7 @@ contains 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return @@ -1262,7 +1263,7 @@ contains end subroutine zmatdistf - subroutine zmatdistv (a_glob, a, v, icontxt, desc_a,& + subroutine zmatdistv (a_glob, a, v, ictxt, desc_a,& & b_glob, b, info, inroot,fmt) ! ! an utility subroutine to distribute a matrix among processors @@ -1300,7 +1301,7 @@ contains ! usually nv=1; if nv >1 then we have an overlap in the data ! distribution. ! - ! integer :: icontxt + ! integer :: ictxt ! on entry: blacs context. ! on exit : unchanged. ! @@ -1324,7 +1325,7 @@ contains implicit none ! parameters type(psb_zspmat_type) :: a_glob complex(kind(1.d0)), pointer :: b_glob(:) - integer :: icontxt, v(:) + integer :: ictxt, v(:) type(psb_zspmat_type) :: a complex(kind(1.d0)), pointer :: b(:) type(psb_desc_type) :: desc_a @@ -1332,7 +1333,7 @@ contains integer, optional :: inroot character(len=5), optional :: fmt - integer :: nprow, npcol, myprow, mypcol + integer :: np, iam integer :: ircode, length_row, i_count, j_count,& & k_count, blockdim, root, liwork, nrow, ncol, nnzero, nrhs,& & i,j,k, ll, isize, iproc, nnr, err, err_act, int_err(5) @@ -1358,8 +1359,8 @@ contains root = 0 end if - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) - if (myprow == root) then + call psb_info(ictxt, iam, np) + if (iam == root) then ! extract information from a_glob if (toupper(a_glob%fida) /= 'CSR') then info=135 @@ -1380,18 +1381,18 @@ contains nnzero = size(a_glob%aspk) nrhs = 1 ! broadcast informations to other processors - call gebs2d(icontxt, 'a', nrow) - call gebs2d(icontxt, 'a', ncol) - call gebs2d(icontxt, 'a', nnzero) - call gebs2d(icontxt, 'a', nrhs) - else !(myprow /= root) + call gebs2d(ictxt, 'a', nrow) + call gebs2d(ictxt, 'a', ncol) + call gebs2d(ictxt, 'a', nnzero) + call gebs2d(ictxt, 'a', nrhs) + else !(iam /= root) ! receive informations - call gebr2d(icontxt, 'a', nrow) - call gebr2d(icontxt, 'a', ncol) - call gebr2d(icontxt, 'a', nnzero) - call gebr2d(icontxt, 'a', nrhs) + call gebr2d(ictxt, 'a', nrow) + call gebr2d(ictxt, 'a', ncol) + call gebr2d(ictxt, 'a', nnzero) + call gebr2d(ictxt, 'a', nrhs) end if ! allocate integer work area - liwork = max(nprow, nrow + ncol) + liwork = max(np, nrow + ncol) allocate(iwork(liwork), stat = info) if (info /= 0) then write(0,*) 'matdist allocation failed' @@ -1401,7 +1402,7 @@ contains goto 9999 endif - call psb_cdall(nrow,v,icontxt,desc_a,info) + call psb_cdall(nrow,v,ictxt,desc_a,info) if(info/=0) then info=4010 ch_err='psb_cdall' @@ -1409,7 +1410,7 @@ contains goto 9999 end if - call psb_spall(a,desc_a,info,nnz=((nnzero+nprow-1)/nprow)) + call psb_spall(a,desc_a,info,nnz=((nnzero+np-1)/np)) if(info/=0) then info=4010 ch_err='psb_psspall' @@ -1451,7 +1452,7 @@ contains ! now we should insert rows i_count..j_count-1 nnr = j_count - i_count - if (myprow == root) then + if (iam == root) then ll = a_glob%ia2(j_count)-a_glob%ia2(i_count) if (ll > size(val)) then deallocate(val,irow,icol) @@ -1473,7 +1474,7 @@ contains end do enddo - if (iproc == myprow) then + if (iproc == iam) then call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then info=4010 @@ -1491,21 +1492,21 @@ contains goto 9999 end if else - call igesd2d(icontxt,1,1,nnr,1,iproc,0) - call igesd2d(icontxt,1,1,ll,1,iproc,0) - call igesd2d(icontxt,ll,1,irow,ll,iproc,0) - call igesd2d(icontxt,ll,1,icol,ll,iproc,0) - call zgesd2d(icontxt,ll,1,val,ll,iproc,0) - call zgesd2d(icontxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) - call igerv2d(icontxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,1,1,nnr,1,iproc,0) + call igesd2d(ictxt,1,1,ll,1,iproc,0) + call igesd2d(ictxt,ll,1,irow,ll,iproc,0) + call igesd2d(ictxt,ll,1,icol,ll,iproc,0) + call zgesd2d(ictxt,ll,1,val,ll,iproc,0) + call zgesd2d(ictxt,nnr,1,b_glob(i_count:j_count-1),nnr,iproc,0) + call igerv2d(ictxt,1,1,ll,1,iproc,0) endif - else if (myprow /= root) then + else if (iam /= root) then - if (iproc == myprow) then - call igerv2d(icontxt,1,1,nnr,1,root,0) - call igerv2d(icontxt,1,1,ll,1,root,0) + if (iproc == iam) then + call igerv2d(ictxt,1,1,nnr,1,root,0) + call igerv2d(ictxt,1,1,ll,1,root,0) if (ll > size(val)) then - write(0,*) myprow,'need to reallocate ',ll + write(0,*) iam,'need to reallocate ',ll deallocate(val,irow,icol) allocate(val(ll),irow(ll),icol(ll),stat=info) if(info/=0) then @@ -1515,11 +1516,11 @@ contains goto 9999 end if endif - call igerv2d(icontxt,ll,1,irow,ll,root,0) - call igerv2d(icontxt,ll,1,icol,ll,root,0) - call zgerv2d(icontxt,ll,1,val,ll,root,0) - call zgerv2d(icontxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) - call igesd2d(icontxt,1,1,ll,1,root,0) + call igerv2d(ictxt,ll,1,irow,ll,root,0) + call igerv2d(ictxt,ll,1,icol,ll,root,0) + call zgerv2d(ictxt,ll,1,val,ll,root,0) + call zgerv2d(ictxt,nnr,1,b_glob(i_count:i_count+nnr-1),nnr,root,0) + call igesd2d(ictxt,1,1,ll,1,root,0) call psb_spins(ll,irow,icol,val,a,desc_a,info) if(info/=0) then @@ -1550,7 +1551,7 @@ contains else afmt = 'CSR' endif - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t0 = mpi_wtime() call psb_cdasb(desc_a,info) t1 = mpi_wtime() @@ -1561,7 +1562,7 @@ contains goto 9999 end if - call blacs_barrier(icontxt,'all') + call psb_barrier(ictxt) t2 = mpi_wtime() call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) t3 = mpi_wtime() @@ -1574,7 +1575,7 @@ contains call psb_geasb(b,desc_a,info) - if (myprow == root) then + if (iam == root) then write(*,'("Descriptor assembly : ",es10.4)')t1-t0 write(*,'("Sparse matrix assembly: ",es10.4)')t3-t2 end if @@ -1594,7 +1595,7 @@ contains 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return diff --git a/test/Fileread/zf_sample.f90 b/test/Fileread/zf_sample.f90 index d0e5c389..7cf3f8be 100644 --- a/test/Fileread/zf_sample.f90 +++ b/test/Fileread/zf_sample.f90 @@ -76,8 +76,7 @@ program zf_sample type(psb_desc_type):: desc_a ! blacs variables - integer :: nprow, npcol, ictxt, iam, np, myprow, mypcol - character, parameter :: order='r' + integer :: ictxt, iam, np logical :: amroot ! solver paramters @@ -90,7 +89,7 @@ program zf_sample integer :: iparm(20) ! other variables - integer :: i,info,j,m_problem, nproc + integer :: i,info,j,m_problem integer :: internal, m,ii,nnzero real(kind(1.d0)) :: mpi_wtime, t1, t2, tprec, r_amax, b_amax,& &scale,resmx,resmxp @@ -100,15 +99,16 @@ program zf_sample external mpi_wtime - ! initialize blacs - call blacs_pinfo(iam, np) - call blacs_get(izero, izero, ictxt) + call psb_init(ictxt) + call psb_info(ictxt,iam,np) - ! rectangular grid, np x 1 + if (iam < 0) then + ! This should not happen, but just in case + call psb_exit(ictxt) + stop + endif + amroot = (iam==0) - call blacs_gridinit(ictxt, order, np, ione) - call blacs_gridinfo(ictxt, nprow, npcol, myprow, mypcol) - amroot = (myprow==0).and.(mypcol==0) name='zf_sample' if(psb_get_errstatus().ne.0) goto 9999 @@ -121,11 +121,10 @@ program zf_sample call get_parms(ictxt,mtrx_file,rhs_file,cmethd,& & ipart,afmt,istopc,itmax,itrace,novr,iprec,eps) - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) t1 = mpi_wtime() ! read the input matrix to be processed and (possibly) the rhs nrhs = 1 - nproc = nprow if (amroot) then nullify(aux_b) @@ -171,7 +170,7 @@ program zf_sample ! switch over different partition types if (ipart.eq.0) then - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) if (amroot) write(*,'("Partition type: block")') allocate(ivg(m_problem),ipv(np)) do i=1,m_problem @@ -181,7 +180,7 @@ program zf_sample call matdist(aux_a, a, ivg, ictxt, & & desc_a,b_col_glob,b_col,info,fmt=afmt) else if (ipart.eq.1) then - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) if (amroot) write(*,'("Partition type: blk2")') allocate(ivg(m_problem),ipv(np)) do i=1,m_problem @@ -198,7 +197,7 @@ program zf_sample call build_grppart(aux_a%m,aux_a%fida,aux_a%ia1,aux_a%ia2,np) endif write(0,'("Done graph build")') - call blacs_barrier(ictxt,'a') + call psb_barrier(ictxt) call distr_grppart(0,0,ictxt) call getv_grppart(ivg) call matdist(aux_a, a, ivg, ictxt, & @@ -291,7 +290,7 @@ program zf_sample if (amroot) then call psb_prec_descr(6,pre) write(*,'("Matrix: ",a)')mtrx_file - write(*,'("Computed solution on ",i4," processors")')nprow + write(*,'("Computed solution on ",i4," processors")')np write(*,'("Iterations to convergence: ",i6)')iter write(*,'("Error indicator on exit: ",f7.2)')err write(*,'("Time to buil prec. : ",es10.4)')tprec @@ -312,7 +311,7 @@ program zf_sample write(0,'(" ")') write(0,'("Saving x on file")') write(20,*) 'matrix: ',mtrx_file - write(20,*) 'computed solution on ',nprow,' processors.' + write(20,*) 'computed solution on ',np,' processors.' write(20,*) 'iterations to convergence: ',iter write(20,*) 'error indicator (infinity norm) on exit:', & & ' ||r||/(||a||||x||+||b||) = ',err @@ -335,13 +334,8 @@ program zf_sample 9999 continue if(info /= 0) then call psb_error(ictxt) - call blacs_gridexit(ictxt) - call blacs_exit(0) - else - call blacs_gridexit(ictxt) - call blacs_exit(0) end if - + call psb_exit(ictxt) stop end program zf_sample diff --git a/test/pargen/ppde90.f90 b/test/pargen/ppde90.f90 index aca7e581..b56c4737 100644 --- a/test/pargen/ppde90.f90 +++ b/test/pargen/ppde90.f90 @@ -87,7 +87,6 @@ program pde90 integer :: idim, iret ! miscellaneous - character, parameter :: order='r' integer :: iargc,convert_descr,dim, check_descr real(kind(1.d0)), parameter :: one = 1.d0 real(kind(1.d0)) :: mpi_wtime, t1, t2, tprec, tsolve, t3, t4 @@ -102,7 +101,7 @@ program pde90 real(kind(1.d0)), pointer :: b(:), x(:), d(:),ld(:) integer, pointer :: work(:) ! blacs parameters - integer :: nprow, npcol, icontxt, iam, np, myprow, mypcol + integer :: ictxt, iam, np ! solver parameters integer :: iter, itmax,ierr,itrace, methd,iprec, istopc,& @@ -121,27 +120,28 @@ program pde90 call psb_set_errverbosity(2) call psb_set_erraction(0) - ! initialize blacs - call blacs_pinfo(iam, np) - call blacs_get(izero, izero, icontxt) - ! rectangular grid, p x 1 + call psb_init(ictxt) + call psb_info(ictxt,iam,np) - call blacs_gridinit(icontxt, order, np, ione) - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) + if (iam < 0) then + ! This should not happen, but just in case + call psb_exit(ictxt) + stop + endif ! ! get parameters ! - call get_parms(icontxt,cmethd,iprec,novr,afmt,idim,istopc,itmax,itrace,ml) + call get_parms(ictxt,cmethd,iprec,novr,afmt,idim,istopc,itmax,itrace,ml) ! ! allocate and fill in the coefficient matrix, rhs and initial guess ! - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) t1 = mpi_wtime() - call create_matrix(idim,a,b,x,desc_a,part_block,icontxt,afmt,info) + call create_matrix(idim,a,b,x,desc_a,part_block,ictxt,afmt,info) t2 = mpi_wtime() - t1 if(info.ne.0) then info=4010 @@ -150,7 +150,7 @@ program pde90 goto 9999 end if - call gamx2d(icontxt,'a',t2) + call gamx2d(ictxt,'a',t2) if (iam.eq.0) write(*,'("Overall matrix creation time : ",es10.4)')t2 if (iam.eq.0) write(*,'(" ")') ! @@ -175,7 +175,7 @@ program pde90 call psb_precset(pre,'asm',iv=(/novr,nohalo_,none_/)) end select - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) t1 = mpi_wtime() call psb_precbld(a,desc_a,pre,info) if(info.ne.0) then @@ -187,7 +187,7 @@ program pde90 tprec = mpi_wtime()-t1 - call gamx2d(icontxt,'a',tprec) + call gamx2d(ictxt,'a',tprec) if (iam.eq.0) write(*,'("Preconditioner time : ",es10.4)')tprec if (iam.eq.0) write(*,'(" ")') @@ -196,7 +196,7 @@ program pde90 ! iterative method parameters ! if(iam.eq.psb_root_) write(*,'("Calling iterative method ",a)')cmethd - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) t1 = mpi_wtime() eps = 1.d-9 if (cmethd.eq.'BICGSTAB') then @@ -222,9 +222,9 @@ program pde90 goto 9999 end if - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) t2 = mpi_wtime() - t1 - call gamx2d(icontxt,'a',t2) + call gamx2d(ictxt,'a',t2) if (iam.eq.0) then write(*,'(" ")') @@ -252,32 +252,27 @@ program pde90 9999 continue if(info /= 0) then - call psb_error(icontxt) - call blacs_gridexit(icontxt) - call blacs_exit(0) - else - call blacs_gridexit(icontxt) - call blacs_exit(0) + call psb_error(ictxt) end if - + call psb_exit(ictxt) stop contains ! ! get iteration parameters from the command line ! - subroutine get_parms(icontxt,cmethd,iprec,novr,afmt,idim,istopc,itmax,itrace,ml) - integer :: icontxt + subroutine get_parms(ictxt,cmethd,iprec,novr,afmt,idim,istopc,itmax,itrace,ml) + integer :: ictxt character :: cmethd*10, afmt*5 integer :: idim, iret, istopc,itmax,itrace,ml, iprec, novr character*40 :: charbuf - integer :: iargc, nprow, npcol, myprow, mypcol + integer :: iargc, np, iam external iargc integer :: intbuf(10), ip - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) + call psb_info(ictxt, iam, np) - if (myprow==0) then + if (iam==0) then read(*,*) ip if (ip.ge.3) then read(*,*) cmethd @@ -290,19 +285,19 @@ contains intbuf(i) = iachar(cmethd(i:i)) end do ! broadcast parameters to all processors - call igebs2d(icontxt,'ALL',' ',10,1,intbuf,10) + call igebs2d(ictxt,'ALL',' ',10,1,intbuf,10) ! broadcast parameters to all processors - call igebs2d(icontxt,'ALL',' ',1,1,iprec,10) + call igebs2d(ictxt,'ALL',' ',1,1,iprec,10) ! broadcast parameters to all processors - call igebs2d(icontxt,'ALL',' ',1,1,novr,10) + call igebs2d(ictxt,'ALL',' ',1,1,novr,10) do i = 1, len(afmt) intbuf(i) = iachar(afmt(i:i)) end do ! broadcast parameters to all processors - call igebs2d(icontxt,'ALL',' ',10,1,intbuf,10) + call igebs2d(ictxt,'ALL',' ',10,1,intbuf,10) read(*,*) idim if (ip.ge.4) then @@ -332,11 +327,11 @@ contains intbuf(3) = itmax intbuf(4) = itrace intbuf(5) = ml - call igebs2d(icontxt,'ALL',' ',5,1,intbuf,5) + call igebs2d(ictxt,'ALL',' ',5,1,intbuf,5) write(*,'("Solving matrix : ell1")') write(*,'("Grid dimensions : ",i4,"x",i4,"x",i4)')idim,idim,idim - write(*,'("Number of processors : ",i0)')nprow + write(*,'("Number of processors : ",i0)')np write(*,'("Data distribution : BLOCK")') write(*,'("Preconditioner : ",a)')pr_to_str(iprec) if(iprec.gt.2) write(*,'("Overlapping levels : ",i0)')novr @@ -345,25 +340,25 @@ contains else ! wrong number of parameter, print an error message and exit call pr_usage(0) - call blacs_abort(icontxt,-1) + call blacs_abort(ictxt,-1) stop 1 endif else ! receive parameters - call igebr2d(icontxt,'ALL',' ',10,1,intbuf,10,0,0) + call igebr2d(ictxt,'ALL',' ',10,1,intbuf,10,0,0) do i = 1, 10 cmethd(i:i) = achar(intbuf(i)) end do - call igebr2d(icontxt,'ALL',' ',1,1,iprec,10,0,0) + call igebr2d(ictxt,'ALL',' ',1,1,iprec,10,0,0) - call igebr2d(icontxt,'ALL',' ',1,1,novr,10,0,0) + call igebr2d(ictxt,'ALL',' ',1,1,novr,10,0,0) - call igebr2d(icontxt,'ALL',' ',10,1,intbuf,10,0,0) + call igebr2d(ictxt,'ALL',' ',10,1,intbuf,10,0,0) do i = 1, 5 afmt(i:i) = achar(intbuf(i)) end do - call igebr2d(icontxt,'ALL',' ',5,1,intbuf,5,0,0) + call igebr2d(ictxt,'ALL',' ',5,1,intbuf,5,0,0) idim = intbuf(1) istopc = intbuf(2) itmax = intbuf(3) @@ -398,7 +393,7 @@ contains ! subroutine to allocate and fill in the coefficient matrix and ! the rhs. ! - subroutine create_matrix(idim,a,b,t,desc_a,parts,icontxt,afmt,info) + subroutine create_matrix(idim,a,b,t,desc_a,parts,ictxt,afmt,info) ! ! discretize the partial diferential equation ! @@ -420,7 +415,7 @@ contains integer, parameter :: nbmax=10 real(kind(1.d0)),pointer :: b(:),t(:) type(psb_desc_type) :: desc_a - integer :: icontxt, info + integer :: ictxt, info character :: afmt*5 interface ! .....user passed subroutine..... @@ -435,7 +430,7 @@ contains real(kind(1.d0)) :: zt(nbmax),glob_x,glob_y,glob_z integer :: m,n,nnz,glob_row,j integer :: x,y,z,counter,ia,i,indx_owner - integer :: nprow,npcol,myprow,mypcol + integer :: np, iam integer :: element integer :: nv, inv integer, allocatable :: irow(:),icol(:) @@ -460,8 +455,8 @@ contains info = 0 name = 'create_matrix' call psb_erractionsave(err_act) - - call blacs_gridinfo(icontxt, nprow, npcol, myprow, mypcol) + + call psb_info(ictxt, iam, np) deltah = 1.d0/(idim-1) @@ -470,10 +465,10 @@ contains m = idim*idim*idim n = m - nnz = ((n*9)/(nprow*npcol)) - if(myprow.eq.psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n + nnz = ((n*9)/(np)) + if(iam.eq.psb_root_) write(0,'("Generating Matrix (size=",i0x,")...")')n - call psb_cdall(n,n,parts,icontxt,desc_a,info) + call psb_cdall(n,n,parts,ictxt,desc_a,info) call psb_spall(a,desc_a,info,nnz=nnz) ! define rhs from boundary conditions; also build initial guess call psb_geall(b,desc_a,info) @@ -490,7 +485,7 @@ contains ! a bunch of rows per call. ! allocate(val(20*nbmax),irow(20*nbmax),& - &icol(20*nbmax),prv(nprow),stat=info) + &icol(20*nbmax),prv(np),stat=info) if (info.ne.0 ) then info=4000 call psb_errpush(info,name) @@ -498,7 +493,7 @@ contains endif tins = 0.d0 - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) t1 = mpi_wtime() ! loop over rows belonging to current process in a block @@ -506,10 +501,10 @@ contains ! icol(1)=1 do glob_row = 1, n - call parts(glob_row,n,nprow,prv,nv) + call parts(glob_row,n,np,prv,nv) do inv = 1, nv indx_owner = prv(inv) - if (indx_owner == myprow) then + if (indx_owner == iam) then ! local matrix pointer element=1 ! compute gridpoint coordinates @@ -640,7 +635,7 @@ contains end do end do - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) t2 = mpi_wtime()-t1 if(info.ne.0) then @@ -655,7 +650,7 @@ contains t1 = mpi_wtime() call psb_cdasb(desc_a,info) call psb_spasb(a,desc_a,info,dupl=psb_dupl_err_,afmt=afmt) - call blacs_barrier(icontxt,'ALL') + call psb_barrier(ictxt) tasb = mpi_wtime()-t1 if(info.ne.0) then info=4010 @@ -664,11 +659,11 @@ contains goto 9999 end if - call gamx2d(icontxt,'a',t2) - call gamx2d(icontxt,'a',tins) - call gamx2d(icontxt,'a',tasb) + call gamx2d(ictxt,'a',t2) + call gamx2d(ictxt,'a',tins) + call gamx2d(ictxt,'a',tasb) - if(myprow.eq.psb_root_) then + if(iam.eq.psb_root_) then write(*,'("The matrix has been generated and assembeld in ",a3," format.")')a%fida(1:3) write(*,'("-pspins time : ",es10.4)')tins write(*,'("-insert time : ",es10.4)')t2 @@ -690,7 +685,7 @@ contains 9999 continue call psb_erractionrestore(err_act) if (err_act.eq.act_abort) then - call psb_error(icontxt) + call psb_error(ictxt) return end if return