@ -28,16 +28,16 @@ class="cmtt-10">_type</span></a>. Every structure of this
type is associated with a discretization pattern and enables data communications and
type is associated with a discretization pattern and enables data communications and
other operations that are necessary for implementing the various algorithms of
other operations that are necessary for implementing the various algorithms of
interest to us.
interest to us.
<!-- l. 57 --> < p class = "indent" > The data structure itself < span class = " obeylines-h"> < span class = "verb" > < span
<!-- l. 57 --> < p class = "indent" > The data structure itself < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_desc_type< / span > < / span > < / span > can be treated as an opaque object
class="cmtt-10">psb_desc_type< / span > can be treated as an opaque object
handled via the tools routines of Sec.  < a
handled via the tools routines of Sec.  < a
href="userhtmlse6.html#x40-770006">6<!-- tex4ht:ref: sec:toolsrout --> < / a > or the query routines detailed below;
href="userhtmlse6.html#x40-770006">6<!-- tex4ht:ref: sec:toolsrout --> < / a > or the query routines detailed below;
nevertheless we include here a description for the curious reader.
nevertheless we include here a description for the curious reader.
<!-- l. 63 --> < p class = "indent" > First we describe the < span class = " obeylines-h"> < span class = "verb" > < span
<!-- l. 63 --> < p class = "indent" > First we describe the < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_indx_map< / span > < / span > < / span > type. This is a data structure that keeps
class="cmtt-10">psb_indx_map< / span > type. This is a data structure that keeps
track of a certain number of basic issues such as:
track of a certain number of basic issues such as:
< ul class = "itemize1" >
< ul class = "itemize1" >
< li class = "itemize" > The value of the communication/MPI context;
< li class = "itemize" > The value of the communication context;
< / li >
< / li >
< li class = "itemize" > The number of indices in the index space, i.e. global number of rows and
< li class = "itemize" > The number of indices in the index space, i.e. global number of rows and
columns of a sparse matrix;
columns of a sparse matrix;
@ -168,13 +168,17 @@ class="cmbx-10">bnd</span><span
class="cmbx-10">_elem< / span > < / dt > < dd
class="cmbx-10">_elem< / span > < / dt > < dd
class="description">A list of all boundary points, i.e. points that have a connection with
class="description">A list of all boundary points, i.e. points that have a connection with
other processes.< / dd > < / dl >
other processes.< / dd > < / dl >
<!-- l. 145 --> < p class = "noindent" > The Fortran  2003 declaration for < span class = "obeylines-h" > < span class = "verb" > < span
<!-- l. 145 --> < p class = "noindent" > The Fortran  2003 declaration for < span class = "lstinline" > < / span > < span
class="cmtt-10">psb_desc_type< / span > < / span > < / span > structures is as follows: < hr class = "figure" > < div class = "figure"
class="cmtt-10">psb_desc_type< / span > structures is as follows:
>< a
<!-- l. 147 --> < p class = "indent" > < a
id="x13-100273">< / a >
id="x13-10027r1">< / a > < hr class = "float" > < div class = "float"
>
< div class = "center"
< div class = "center"
>
>
<!-- l. 149 --> < p class = "noindent" >
<!-- l. 1 62 --> < p class = "noindent" >
< div class = "minipage" > < div class = "verbatim" id = "verbatim-1" >
< div class = "minipage" > < div class = "verbatim" id = "verbatim-1" >
type  psb_desc_type
type  psb_desc_type
  < br / >         class(psb_indx_map),  allocatable  ::  indxmap
  < br / >         class(psb_indx_map),  allocatable  ::  indxmap
@ -186,13 +190,16 @@ type psb_desc_type
  < br / >         integer,  allocatable    ::  bnd_elem(:)
  < br / >         integer,  allocatable    ::  bnd_elem(:)
  < br / > end  type  psb_desc_type
  < br / > end  type  psb_desc_type
< / div >
< / div >
<!-- l. 1 61 --> < p class = "nopar" > < / div > < / div >
<!-- l. 1 74 --> < p class = "nopar" > < / div > < / div >
< br / > < div class = "caption"
< br / > < div class = "caption"
>< span class = "id" > Figure  3 : < / span > < span
>< span class = "id" > Listing 1 : < / span > < span
class="content">The PSBLAS defined data type that contains the communication
class="content">The PSBLAS defined data type that contains the communication
descriptor.< / span > < / div > <!-- tex4ht:label?: x13 - 100273 -->
descriptor.< / span > < / div > <!-- tex4ht:label?: x13 - 10027r1 -->
<!-- l. 171 --> < p class = "indent" > < / div > < hr class = "endfigure" >
<!-- l. 172 --> < p class = "indent" > A communication descriptor associated with a sparse matrix has a state, which
< / div > < hr class = "endfloat" / >
<!-- l. 186 --> < p class = "indent" > A communication descriptor associated with a sparse matrix has a state, which
can take the following values:
can take the following values:
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
@ -200,19 +207,15 @@ class="cmbx-10">Build:</span> </dt><dd
class="description">State entered after the first allocation, and before the first assembly; in
class="description">State entered after the first allocation, and before the first assembly; in
this state it is possible to add communication requirements among different
this state it is possible to add communication requirements among different
processes.
processes.
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">Assembled:< / span > < / dt > < dd
class="cmbx-10">Assembled:< / span > < / dt > < dd
class="description">State entered after the assembly; computations using the
class="description">State entered after the assembly; computations using the
associated sparse matrix, such as matrix-vector products, are only possible
associated sparse matrix, such as matrix-vector products, are only possible
in this state.< / dd > < / dl >
in this state.< / dd > < / dl >
<!-- l. 183 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.1 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.1 < / span > < a
id="x13-110003.1.1">< / a > Descriptor Methods< / h5 >
id="x13-110003.1.1">< / a > Descriptor Methods< / h5 >
<!-- l. 1 85 --> < p class = "noindent" >
<!-- l. 1 99 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.2 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.2 < / span > < a
id="x13-120003.1.2">< / a > get_local_rows — Get number of local rows< / h5 >
id="x13-120003.1.2">< / a > get_local_rows — Get number of local rows< / h5 >
@ -221,8 +224,8 @@ class="description">State entered after the assembly; computations using
< div class = "verbatim" id = "verbatim-2" >
< div class = "verbatim" id = "verbatim-2" >
nr  =  desc%get_local_rows()
nr  =  desc%get_local_rows()
< / div >
< / div >
<!-- l. 189 --> < p class = "nopar" >
<!-- l. 203 --> < p class = "nopar" >
<!-- l. 191 --> < p class = "indent" >
<!-- l. 205 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -238,7 +241,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 2 0 1--> < p class = "indent" >
<!-- l. 2 15 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -258,7 +261,7 @@ src="cmsy10-42.png" alt="B" class="10x-x-42" /></span><sub><span
class="cmmi-7">i< / span > < / sub > < span
class="cmmi-7">i< / span > < / sub > < span
class="cmsy-10">|< / span > . The returned
class="cmsy-10">|< / span > . The returned
value is specific to the calling process.< / dd > < / dl >
value is specific to the calling process.< / dd > < / dl >
<!-- l. 2 10 --> < p class = "noindent" >
<!-- l. 2 24 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.3 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.3 < / span > < a
id="x13-130003.1.3">< / a > get_local_cols — Get number of local cols< / h5 >
id="x13-130003.1.3">< / a > get_local_cols — Get number of local cols< / h5 >
@ -267,8 +270,8 @@ class="cmsy-10">|</span>. The returned
< div class = "verbatim" id = "verbatim-3" >
< div class = "verbatim" id = "verbatim-3" >
nc  =  desc%get_local_cols()
nc  =  desc%get_local_cols()
< / div >
< / div >
<!-- l. 2 14 --> < p class = "nopar" >
<!-- l. 2 28 --> < p class = "nopar" >
<!-- l. 2 16 --> < p class = "indent" >
<!-- l. 2 30 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -284,7 +287,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 2 26 --> < p class = "indent" >
<!-- l. 2 40 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -309,7 +312,7 @@ src="cmsy10-48.png" alt="H" class="10x-x-48" /></span><sub><span
class="cmmi-7">i< / span > < / sub > < span
class="cmmi-7">i< / span > < / sub > < span
class="cmsy-10">|< / span > . The returned value is specific to the
class="cmsy-10">|< / span > . The returned value is specific to the
calling process.< / dd > < / dl >
calling process.< / dd > < / dl >
<!-- l. 2 36 --> < p class = "noindent" >
<!-- l. 2 50 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.4 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.4 < / span > < a
id="x13-140003.1.4">< / a > get_global_rows — Get number of global rows< / h5 >
id="x13-140003.1.4">< / a > get_global_rows — Get number of global rows< / h5 >
@ -318,8 +321,8 @@ class="cmsy-10">|</span>. The returned value is specific to the
< div class = "verbatim" id = "verbatim-4" >
< div class = "verbatim" id = "verbatim-4" >
nr  =  desc%get_global_rows()
nr  =  desc%get_global_rows()
< / div >
< / div >
<!-- l. 2 40 --> < p class = "nopar" >
<!-- l. 2 5 4--> < p class = "nopar" >
<!-- l. 2 42 --> < p class = "indent" >
<!-- l. 2 56 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -335,7 +338,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 2 52 --> < p class = "indent" >
<!-- l. 2 66 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -345,7 +348,7 @@ class="description">
class="cmbx-10">Function value< / span > < / dt > < dd
class="cmbx-10">Function value< / span > < / dt > < dd
class="description">The number of global rows, i.e. the size of the global index
class="description">The number of global rows, i.e. the size of the global index
space.< / dd > < / dl >
space.< / dd > < / dl >
<!-- l. 2 58 --> < p class = "noindent" >
<!-- l. 2 72 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.5 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.5 < / span > < a
id="x13-150003.1.5">< / a > get_global_cols — Get number of global cols< / h5 >
id="x13-150003.1.5">< / a > get_global_cols — Get number of global cols< / h5 >
@ -354,8 +357,8 @@ class="description">The number of global rows, i.e. the size of the global index
< div class = "verbatim" id = "verbatim-5" >
< div class = "verbatim" id = "verbatim-5" >
nr  =  desc%get_global_cols()
nr  =  desc%get_global_cols()
< / div >
< / div >
<!-- l. 2 62 --> < p class = "nopar" >
<!-- l. 2 7 6--> < p class = "nopar" >
<!-- l. 2 64 --> < p class = "indent" >
<!-- l. 2 78 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -371,7 +374,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 2 74 --> < p class = "indent" >
<!-- l. 2 88 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -381,7 +384,7 @@ class="description">
class="cmbx-10">Function value< / span > < / dt > < dd
class="cmbx-10">Function value< / span > < / dt > < dd
class="description">The number of global cols; usually this is equal to the number
class="description">The number of global cols; usually this is equal to the number
of global rows.< / dd > < / dl >
of global rows.< / dd > < / dl >
<!-- l. 2 81 --> < p class = "noindent" >
<!-- l. 2 95 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.6 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.6 < / span > < a
id="x13-160003.1.6">< / a > get_global_indices — Get vector of global indices< / h5 >
id="x13-160003.1.6">< / a > get_global_indices — Get vector of global indices< / h5 >
@ -390,8 +393,8 @@ class="description">The number of global cols; usually this is equal to the numb
< div class = "verbatim" id = "verbatim-6" >
< div class = "verbatim" id = "verbatim-6" >
myidx  =  desc%get_global_indices([owned])
myidx  =  desc%get_global_indices([owned])
< / div >
< / div >
<!-- l. 2 85 --> < p class = "nopar" >
<!-- l. 2 99 --> < p class = "nopar" >
<!-- l. 287 --> < p class = "indent" >
<!-- l. 301 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -412,16 +415,24 @@ class="newline" />
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">owned< / span > < / dt > < dd
class="cmbx-10">owned< / span > < / dt > < dd
class="description">Choose if you only want owned indices (< span class = "obeylines-h" > < span class = "verb" > < span
class="description">Choose if you only want owned indices (< span class = "lstinline" > < / span > < span
class="cmtt-10">owned=.true.< / span > < / span > < / span > ) or also halo
class="cmtt-10">owned< / span > < span
indices (< span class = "obeylines-h" > < span class = "verb" > < span
class="cmtt-10">=.< / span > < span
class="cmtt-10">owned=.false.< / span > < / span > < / span > ). Scope: < span
class="cmtt-10">true< / span > < span
class="cmtt-10">.< / span > ) or also halo
indices (< span class = "lstinline" > < / span > < span
class="cmtt-10">owned< / span > < span
class="cmtt-10">=.< / span > < span
class="cmtt-10">false< / span > < span
class="cmtt-10">.< / span > ). Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />Type: < span
class="newline" />Type: < span
class="cmbx-10">optional< / span > ; default: < span class = "obeylines-h" > < span class = "verb" > < span
class="cmbx-10">optional< / span > ; default: < span class = "lstinline" > < / span > < span
class="cmtt-10">.true.< / span > < / span > < / span > .< br
class="cmtt-10">.< / span > < span
class="cmtt-10">true< / span > < span
class="cmtt-10">.< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 301 --> < p class = "indent" >
<!-- l. 3 15 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -430,19 +441,19 @@ class="description">
< span
< span
class="cmbx-10">Function value< / span > < / dt > < dd
class="cmbx-10">Function value< / span > < / dt > < dd
class="description">The global indices, returned as an allocatable integer array of
class="description">The global indices, returned as an allocatable integer array of
kind < span class = " obeylines-h"> < span class = "verb" > < span
kind < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_lpk_< / span > < / span > < / span > and rank 1.< / dd > < / dl >
class="cmtt-10">psb_lpk_< / span > and rank 1.< / dd > < / dl >
<!-- l. 3 09 --> < p class = "noindent" >
<!-- l. 3 23 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.7 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.7 < / span > < a
id="x13-170003.1.7">< / a > get_context — Get communication context< / h5 >
id="x13-170003.1.7">< / a > get_context — Get communication context< / h5 >
< div class = "verbatim" id = "verbatim-7" >
< div class = "verbatim" id = "verbatim-7" >
i ctxt  =  desc%get_context()
ctxt  =  desc%get_context()
< / div >
< / div >
<!-- l. 3 13 --> < p class = "nopar" >
<!-- l. 3 27 --> < p class = "nopar" >
<!-- l. 3 15 --> < p class = "indent" >
<!-- l. 3 29 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -458,7 +469,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 3 25 --> < p class = "indent" >
<!-- l. 3 39 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -467,7 +478,7 @@ class="description">
< span
< span
class="cmbx-10">Function value< / span > < / dt > < dd
class="cmbx-10">Function value< / span > < / dt > < dd
class="description">The communication context.< / dd > < / dl >
class="description">The communication context.< / dd > < / dl >
<!-- l. 3 30 --> < p class = "noindent" >
<!-- l. 3 44 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.8 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.8 < / span > < a
id="x13-180003.1.8">< / a > Clone — clone current object< / h5 >
id="x13-180003.1.8">< / a > Clone — clone current object< / h5 >
@ -476,8 +487,8 @@ class="description">The communication context.</dd></dl>
< div class = "verbatim" id = "verbatim-8" >
< div class = "verbatim" id = "verbatim-8" >
call    desc%clone(descout,info)
call    desc%clone(descout,info)
< / div >
< / div >
<!-- l. 3 3 4--> < p class = "nopar" >
<!-- l. 3 48 --> < p class = "nopar" >
<!-- l. 3 36 --> < p class = "indent" >
<!-- l. 3 50 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -493,7 +504,7 @@ class="description">the communication descriptor.<br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />< / dd > < / dl >
class="newline" />< / dd > < / dl >
<!-- l. 3 4 6--> < p class = "indent" >
<!-- l. 3 60 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -506,7 +517,7 @@ class="description">A copy of the input object.
< span
< span
class="cmbx-10">info< / span > < / dt > < dd
class="cmbx-10">info< / span > < / dt > < dd
class="description">Return code.< / dd > < / dl >
class="description">Return code.< / dd > < / dl >
<!-- l. 3 53 --> < p class = "noindent" >
<!-- l. 3 67 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.9 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.9 < / span > < a
id="x13-190003.1.9">< / a > CNV — convert internal storage format< / h5 >
id="x13-190003.1.9">< / a > CNV — convert internal storage format< / h5 >
@ -515,8 +526,8 @@ class="description">Return code.</dd></dl>
< div class = "verbatim" id = "verbatim-9" >
< div class = "verbatim" id = "verbatim-9" >
call    desc%cnv(mold)
call    desc%cnv(mold)
< / div >
< / div >
<!-- l. 3 5 7--> < p class = "nopar" >
<!-- l. 3 71 --> < p class = "nopar" >
<!-- l. 3 59 --> < p class = "indent" >
<!-- l. 3 73 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -546,10 +557,10 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_base< / span > < span
class="cmtt-10">_base< / span > < span
class="cmtt-10">_vect< / span > < span
class="cmtt-10">_vect< / span > < span
class="cmtt-10">_type< / span > < / a > .< / dd > < / dl >
class="cmtt-10">_type< / span > < / a > .< / dd > < / dl >
<!-- l. 3 70 --> < p class = "noindent" > The < span class = " obeylines-h"> < span class = "verb" > < span
<!-- l. 3 84 --> < p class = "noindent" > The < span class = " lstinline"> < / span > < span
class="cmtt-10">mold< / span > < / span > < / span > arguments may be employed to interface with special devices, such as GPUs
class="cmtt-10">mold< / span > arguments may be employed to interface with special devices, such as GPUs
and other accelerators.
and other accelerators.
<!-- l. 3 77 --> < p class = "noindent" >
<!-- l. 3 91 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.10 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.10 < / span > < a
id="x13-200003.1.10">< / a > psb_cd_get_large_threshold — Get threshold for index mapping
id="x13-200003.1.10">< / a > psb_cd_get_large_threshold — Get threshold for index mapping
switch< / h5 >
switch< / h5 >
@ -559,8 +570,8 @@ switch</h5>
< div class = "verbatim" id = "verbatim-10" >
< div class = "verbatim" id = "verbatim-10" >
ith  =  psb_cd_get_large_threshold()
ith  =  psb_cd_get_large_threshold()
< / div >
< / div >
<!-- l. 3 81 --> < p class = "nopar" >
<!-- l. 3 95 --> < p class = "nopar" >
<!-- l. 3 83 --> < p class = "indent" >
<!-- l. 3 97 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -574,7 +585,7 @@ class="description">
class="cmbx-10">Function value< / span > < / dt > < dd
class="cmbx-10">Function value< / span > < / dt > < dd
class="description">The current value for the size threshold.
class="description">The current value for the size threshold.
< / dd > < / dl >
< / dd > < / dl >
<!-- l. 393 --> < p class = "noindent" >
<!-- l. 407 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.11 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.11 < / span > < a
id="x13-210003.1.11">< / a > psb_cd_set_large_threshold — Set threshold for index mapping
id="x13-210003.1.11">< / a > psb_cd_set_large_threshold — Set threshold for index mapping
switch< / h5 >
switch< / h5 >
@ -584,8 +595,8 @@ switch</h5>
< div class = "verbatim" id = "verbatim-11" >
< div class = "verbatim" id = "verbatim-11" >
call  psb_cd_set_large_threshold(ith)
call  psb_cd_set_large_threshold(ith)
< / div >
< / div >
<!-- l. 398 --> < p class = "nopar" >
<!-- l. 412 --> < p class = "nopar" >
<!-- l. 4 00 --> < p class = "indent" >
<!-- l. 4 14 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -605,12 +616,12 @@ class="cmbx-10">required</span>.<br
class="newline" />Intent: < span
class="newline" />Intent: < span
class="cmbx-10">in< / span > .< br
class="cmbx-10">in< / span > .< br
class="newline" />Specified as: an integer value greater than zero.< / dd > < / dl >
class="newline" />Specified as: an integer value greater than zero.< / dd > < / dl >
<!-- l. 4 09 --> < p class = "noindent" > Note: the threshold value is only queried by the library at the time a call to < span class = " obeylines-h"> < span class = "verb" > < span
<!-- l. 4 23 --> < p class = "noindent" > Note: the threshold value is only queried by the library at the time a call to < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_cdall< / span > < / span > < / span >
class="cmtt-10">psb_cdall< / span >
is executed, therefore changing the threshold has no effect on communication
is executed, therefore changing the threshold has no effect on communication
descriptors that have already been initialized. Moreover the threshold must have the
descriptors that have already been initialized. Moreover the threshold must have the
same value on all processes.
same value on all processes.
<!-- l. 4 16 --> < p class = "noindent" >
<!-- l. 4 30 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.12 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.12 < / span > < a
id="x13-220003.1.12">< / a > get_p_adjcncy — Get process adjacency list< / h5 >
id="x13-220003.1.12">< / a > get_p_adjcncy — Get process adjacency list< / h5 >
@ -619,8 +630,8 @@ same value on all processes.
< div class = "verbatim" id = "verbatim-12" >
< div class = "verbatim" id = "verbatim-12" >
list  =    desc%get_p_adjcncy()
list  =    desc%get_p_adjcncy()
< / div >
< / div >
<!-- l. 4 21 --> < p class = "nopar" >
<!-- l. 4 35 --> < p class = "nopar" >
<!-- l. 4 2 3--> < p class = "indent" >
<!-- l. 4 37 --> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -635,7 +646,7 @@ class="cmbx-10">Function value</span> </dt><dd
class="description">The current list of adjacent processes, i.e. processes with
class="description">The current list of adjacent processes, i.e. processes with
which the current one has to exchange halo data.
which the current one has to exchange halo data.
< / dd > < / dl >
< / dd > < / dl >
<!-- l. 4 32 --> < p class = "noindent" >
<!-- l. 4 46 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.13 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.13 < / span > < a
id="x13-230003.1.13">< / a > set_p_adjcncy — Set process adjacency list< / h5 >
id="x13-230003.1.13">< / a > set_p_adjcncy — Set process adjacency list< / h5 >
@ -644,8 +655,8 @@ class="description">The current list of adjacent processes, i.e. processe
< div class = "verbatim" id = "verbatim-13" >
< div class = "verbatim" id = "verbatim-13" >
call  desc%set_p_adjcncy(list)
call  desc%set_p_adjcncy(list)
< / div >
< / div >
<!-- l. 4 37 --> < p class = "nopar" >
<!-- l. 4 51 --> < p class = "nopar" >
<!-- l. 4 39 --> < p class = "indent" >
<!-- l. 4 5 3--> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -664,16 +675,16 @@ class="newline" />Type: <span
class="cmbx-10">required< / span > .< br
class="cmbx-10">required< / span > .< br
class="newline" />Intent: < span
class="newline" />Intent: < span
class="cmbx-10">in< / span > .< br
class="cmbx-10">in< / span > .< br
class="newline" />Specified as: a one-dimensional array of integers of kind < span class = " obeylines-h"> < span class = "verb" > < span
class="newline" />Specified as: a one-dimensional array of integers of kind < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_ipk_< / span > < / span > < / span > .< / dd > < / dl >
class="cmtt-10">psb_ipk_< / span > .< / dd > < / dl >
<!-- l. 4 48 --> < p class = "noindent" > Note: this method can be called after a call to < span class = " obeylines-h"> < span class = "verb" > < span
<!-- l. 4 62 --> < p class = "noindent" > Note: this method can be called after a call to < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_cdall< / span > < / span > < / span > and before a call to
class="cmtt-10">psb_cdall< / span > and before a call to
< span class = " obeylines-h"> < span class = "verb" > < span
< span class = " lstinline"> < / span > < span
class="cmtt-10">psb_cdasb< / span > < / span > < / span > . The user is specifying here some knowledge about which processes are
class="cmtt-10">psb_cdasb< / span > . The user is specifying here some knowledge about which processes are
topological neighbours of the current process. The availability of this information
topological neighbours of the current process. The availability of this information
may speed up the execution of the assembly call < span class = " obeylines-h"> < span class = "verb" > < span
may speed up the execution of the assembly call < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_cdasb< / span > < / span > < / span > .
class="cmtt-10">psb_cdasb< / span > .
<!-- l. 4 55 --> < p class = "noindent" >
<!-- l. 4 69 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.14 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.14 < / span > < a
id="x13-240003.1.14">< / a > fnd_owner — Find the owner process of a set of indices< / h5 >
id="x13-240003.1.14">< / a > fnd_owner — Find the owner process of a set of indices< / h5 >
@ -682,8 +693,8 @@ class="cmtt-10">psb_cdasb</span></span></span>.
< div class = "verbatim" id = "verbatim-14" >
< div class = "verbatim" id = "verbatim-14" >
call  desc%fnd_owner(idx,iprc,info)
call  desc%fnd_owner(idx,iprc,info)
< / div >
< / div >
<!-- l. 4 60 --> < p class = "nopar" >
<!-- l. 4 74 --> < p class = "nopar" >
<!-- l. 4 62 --> < p class = "indent" >
<!-- l. 4 7 6--> < p class = "indent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">Type:< / span > < / dt > < dd
class="cmbx-10">Type:< / span > < / dt > < dd
@ -702,8 +713,8 @@ class="newline" />Type: <span
class="cmbx-10">required< / span > .< br
class="cmbx-10">required< / span > .< br
class="newline" />Intent: < span
class="newline" />Intent: < span
class="cmbx-10">in< / span > .< br
class="cmbx-10">in< / span > .< br
class="newline" />Specified as: a one-dimensional array of integers of kind < span class = " obeylines-h"> < span class = "verb" > < span
class="newline" />Specified as: a one-dimensional array of integers of kind < span class = " lstinline"> < / span > < span
class="cmtt-10">psb_lpk_< / span > < / span > < / span > .
class="cmtt-10">psb_lpk_< / span > .
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">On Return< / span > < / dt > < dd
class="cmbx-10">On Return< / span > < / dt > < dd
@ -711,8 +722,8 @@ class="description">
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">iprc< / span > < / dt > < dd
class="cmbx-10">iprc< / span > < / dt > < dd
class="description">the list of processes owning the indices in < span class = " obeylines-h"> < span class = "verb" > < span
class="description">the list of processes owning the indices in < span class = " lstinline"> < / span > < span
class="cmtt-10">idx< / span > < / span > < / span > .< br
class="cmtt-10">idx< / span > .< br
class="newline" />Scope: < span
class="newline" />Scope: < span
class="cmbx-10">local< / span > .< br
class="cmbx-10">local< / span > .< br
class="newline" />Type: < span
class="newline" />Type: < span
@ -720,16 +731,16 @@ class="cmbx-10">required</span>.<br
class="newline" />Intent: < span
class="newline" />Intent: < span
class="cmbx-10">in< / span > .< br
class="cmbx-10">in< / span > .< br
class="newline" />Specified as: an allocatable one-dimensional array of integers of kind
class="newline" />Specified as: an allocatable one-dimensional array of integers of kind
< span class = " obeylines-h"> < span class = "verb" > < span
< span class = " lstinline"> < / span > < span
class="cmtt-10">psb_ipk_< / span > < / span > < / span > .< / dd > < / dl >
class="cmtt-10">psb_ipk_< / span > .< / dd > < / dl >
<!-- l. 4 77 --> < p class = "noindent" > Note: this method may or may not actually require communications, depending on the
<!-- l. 4 91 --> < p class = "noindent" > Note: this method may or may not actually require communications, depending on the
exact internal data storage; given that the choice of storage may be altered by
exact internal data storage; given that the choice of storage may be altered by
runtime parameters, it is necessary for safety that this method is called by all
runtime parameters, it is necessary for safety that this method is called by all
processes.
processes.
<!-- l. 4 85 --> < p class = "noindent" >
<!-- l. 4 99 --> < p class = "noindent" >
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.15 < / span > < a
< h5 class = "subsubsectionHead" > < span class = "titlemark" > 3.1.15 < / span > < a
id="x13-250003.1.15">< / a > Named Constants< / h5 >
id="x13-250003.1.15">< / a > Named Constants< / h5 >
<!-- l. 487 --> < p class = "noindent" >
<!-- l. 501 --> < p class = "noindent" >
< dl class = "description" > < dt class = "description" >
< dl class = "description" > < dt class = "description" >
< span
< span
class="cmbx-10">psb< / span > < span
class="cmbx-10">psb< / span > < span
@ -775,40 +786,40 @@ class="cmbx-10">psb</span><span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_halo< / span > < span
class="cmbx-10">_halo< / span > < span
class="cmbx-10">_< / span > < / dt > < dd
class="cmbx-10">_< / span > < / dt > < dd
class="description">Exchange data based on the < span class = " obeylines-h"> < span class = "verb" > < span
class="description">Exchange data based on the < span class = " lstinline"> < / span > < span
class="cmtt-10">halo_index< / span > < / span > < / span > list;
class="cmtt-10">halo_index< / span > list;
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">psb< / span > < span
class="cmbx-10">psb< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_ext< / span > < span
class="cmbx-10">_ext< / span > < span
class="cmbx-10">_< / span > < / dt > < dd
class="cmbx-10">_< / span > < / dt > < dd
class="description">Exchange data based on the < span class = " obeylines-h"> < span class = "verb" > < span
class="description">Exchange data based on the < span class = " lstinline"> < / span > < span
class="cmtt-10">ext_index< / span > < / span > < / span > list;
class="cmtt-10">ext_index< / span > list;
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">psb< / span > < span
class="cmbx-10">psb< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_ovr< / span > < span
class="cmbx-10">_ovr< / span > < span
class="cmbx-10">_< / span > < / dt > < dd
class="cmbx-10">_< / span > < / dt > < dd
class="description">Exchange data based on the < span class = " obeylines-h"> < span class = "verb" > < span
class="description">Exchange data based on the < span class = " lstinline"> < / span > < span
class="cmtt-10">ovrlap_index< / span > < / span > < / span > list;
class="cmtt-10">ovrlap_index< / span > list;
< / dd > < dt class = "description" >
< / dd > < dt class = "description" >
< span
< span
class="cmbx-10">psb< / span > < span
class="cmbx-10">psb< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_comm< / span > < span
class="cmbx-10">_mov< / span > < span
class="cmbx-10">_mov< / span > < span
class="cmbx-10">_< / span > < / dt > < dd
class="cmbx-10">_< / span > < / dt > < dd
class="description">Exchange data based on the < span class = " obeylines-h"> < span class = "verb" > < span
class="description">Exchange data based on the < span class = " lstinline"> < / span > < span
class="cmtt-10">ovr_mst_idx< / span > < / span > < / span > list;
class="cmtt-10">ovr_mst_idx< / span > list;
< / dd > < / dl >
< / dd > < / dl >
<!-- l. 5 20 --> < div class = "crosslinks" > < p class = "noindent" > [< a
<!-- l. 5 34 --> < div class = "crosslinks" > < p class = "noindent" > [< a
href="userhtmlsu9.html" >next< / a > ] [< a
href="userhtmlsu9.html" >next< / a > ] [< a
href="userhtmlsu5.html" >front< / a > ] [< a
href="userhtmlsu5.html" >front< / a > ] [< a
href="userhtmlsu7.html#userhtmlsu8.html" >up< / a > ] < / p > < / div >
href="userhtmlsu7.html#userhtmlsu8.html" >up< / a > ] < / p > < / div >
<!-- l. 5 20 --> < p class = "indent" > < a
<!-- l. 5 34 --> < p class = "indent" > < a
id="tailuserhtmlsu5.html">< / a >
id="tailuserhtmlsu5.html">< / a >
< / body > < / html >
< / body > < / html >