buds
0.1
FORTRAN reference counted types
|
integer(selected_int_kind(9))
data type
Modules | |
module | bud_idist1d |
Data Types | |
type | idist1d |
bud variable More... | |
type | idist1d_ |
bud container for the distributions More... | |
interface | get_comm |
Query communicator of the distribution. More... | |
interface | get_commp |
Query pointer to communicator of the distribution. More... | |
interface | get_group |
Query group of the distribution. More... | |
interface | get_groupp |
Query pointer to group of the distribution. More... | |
interface | get_p |
Query ID for current processor in distribution. More... | |
interface | get_pp |
Query pointer to the ID for current processor in distribution. More... | |
interface | get_np |
Query number of processors in distribution. More... | |
interface | get_npp |
Query pointer to the number of processors in distribution. More... | |
interface | size_block |
Query block-size (if DIST_BLOCK_?) More... | |
interface | get_blocksize |
Query block-size (if DIST_BLOCK_?) More... | |
interface | attach |
Attach/Query several quantities at once. More... | |
interface | is_dist |
Assert the distribution type. More... | |
interface | is_comm |
Query whether a communicator is associated. More... | |
interface | dtype |
Query the distribution type. More... | |
interface | new |
Create a new object. More... | |
interface | new_idist1d |
Create a new object. More... | |
interface | newfake |
Create a new object which is "fake". More... | |
interface | size_local |
Query number of elements on this node. More... | |
interface | size_global |
Query number of total elements. More... | |
interface | size |
Query number of total elements. More... | |
interface | local2global |
Query global index from a local index. More... | |
interface | global2local |
Query local index from a global index. More... | |
interface | global2p |
Query number of elements on this node. More... | |
interface | fake_sub |
Create a fake distribution on non-participating processors in a sub. More... | |
interface | sub1_root |
Query root processor and number of processors in one sub distribution. More... | |
interface | sub1_root_np |
Query root processor and number of processors in one sub distribution. More... | |
interface | sub1_ranks |
Retrieve the ranks of a sub distribution within a top-level distribution. More... | |
interface | subn_groups |
Query subset information from multiple subsets simultaneously. More... | |
interface | get_mpierr |
Query error of previous MPI calls. More... | |
interface | |
Print information about the bud. More... | |
interface | assignment(=) |
Assignment of bud to another bud. More... | |
interface | initialize |
Initialization of data container. More... | |
interface | is_initialized |
Query whether bud is associated with any data. More... | |
interface | initialized |
See interface is_initialized More... | |
interface | is_initd |
See interface is_initialized More... | |
interface | is_same |
Check whether two buds point to the same data (function) More... | |
interface | same |
See interface #is_same More... | |
interface | delete |
Deletes the bud by decreasing references to the underlying data. More... | |
interface | nullify |
Nullifies the current bud. More... | |
interface | references |
Query number of references to the bud. More... | |
interface | refs |
See interface #references More... | |
Functions/Subroutines | |
procedure, public | delete => delete_ |
See interface delete More... | |
procedure, public | nullify => nullify_ |
See interface nullify More... | |
procedure, public | initialize => initialize_ |
See interface initialize More... | |
procedure, public | is_initialized => is_initialized_ |
See interface is_initialized More... | |
procedure, public | is_initd => is_initialized_ |
See interface is_initialized More... | |
procedure, public | initialized => is_initialized_ |
See interface is_initialized More... | |
procedure, public | is_same => is_same_ |
See interface is_same More... | |
procedure, public | same => is_same_ |
See interface is_same More... | |
procedure, public | references => references_ |
See interface references More... | |
procedure, public | refs => references_ |
See interface references More... | |
procedure, public | print => print_ |
See interface print More... | |
elemental integer(ii_) function | comm_ (this) |
Query the associated communicator. More... | |
integer(ii_) function, pointer | commp_ (this) |
Query the associated communicator. More... | |
elemental integer(ii_) function | group_ (this) |
Query the associated group. More... | |
integer(ii_) function, pointer | groupp_ (this) |
Query the associated group. More... | |
elemental integer(ii_) function | p_ (this) |
Query the current processor ID in the communicator. More... | |
integer(ii_) function, pointer | pp_ (this) |
Query pointer to the current processor ID in the communicator. More... | |
elemental integer(ii_) function | np_ (this) |
Query the number of processors in the communicator. More... | |
integer(ii_) function, pointer | npp_ (this) |
Query pointer to the number of processors in the communicator. More... | |
elemental integer(ii_) function | blocksize_ (this) |
Query the block-size, -1 if non-block-cyclic. More... | |
elemental integer(ii_) function | blocksize_ (this) |
Query the block-size, -1 if non-block-cyclic. More... | |
subroutine | attach_ (this, D, P, NP, ng, Comm, Grp, BS, err) |
Query several contained quantities. More... | |
elemental logical function | is_dist_ (this, dist) |
Assert the distribution type. More... | |
elemental logical function | is_comm_ (this) |
Query whether a communicator is not MPI_COMM_NULL. More... | |
elemental integer(ii_) function | dtype_ (this) |
Query distribution type used. More... | |
subroutine | new_ (this, Comm) |
Basic routine for initializing a new distribution. More... | |
subroutine | new_block_cyclic_ (this, Comm, bs, ng, dist) |
Create a new block cyclic distribution. More... | |
subroutine | new_block_ (this, Comm, ng, dist) |
Create a new block distribution. More... | |
subroutine | new_ (this, Comm) |
Basic routine for initializing a new distribution. More... | |
subroutine | new_block_cyclic_ (this, Comm, bs, ng, dist) |
Create a new block cyclic distribution. More... | |
subroutine | new_block_ (this, Comm, ng, dist) |
Create a new block distribution. More... | |
subroutine | new_fake_block_cyclic_ (this, NP, BS, ng, dist) |
Create a new block cyclic distribution. More... | |
subroutine | new_fake_block_ (this, NP, ng, dist) |
Create a new block distribution (non-cyclic) More... | |
elemental integer(ii_) function | size_local_default_ (this) |
elemental integer(ii_) function | size_local_ng_ (this, ng) |
elemental integer(ii_) function | size_ (this) |
Query the default size of the distribution. More... | |
elemental integer(ii_) function | size_ (this) |
Query the default size of the distribution. More... | |
elemental integer(ii_) function | l2g_default_ (this, il) |
elemental integer(ii_) function | l2g_ng_ (this, il, ng) |
elemental integer(ii_) function | g2l_default_ (this, ig) |
elemental integer(ii_) function | g2l_ng_ (this, ig, ng) |
elemental integer(ii_) function | g2p_default_ (this, ig) |
elemental integer(ii_) function | g2p_ng_ (this, ig, ng) |
subroutine | fake_sub_ (set, sub) |
Convert a sub distribution to a fake distribution on non-sub processors. More... | |
subroutine | fake_sub_explicit_ (set, sub, sub_root) |
Copy a distribution via a set communicator and "sub_root" node. More... | |
subroutine | sub1_root_ (set, sub, sub_root) |
Retrieve common information about set/sub relationship. More... | |
subroutine | sub1_root_np_ (set, sub, sub_root, sub_NP) |
Retrieve common information about set/sub relationship. More... | |
subroutine | sub1_ranks_ (set, sub, rank) |
Retrieve a common rank array from a subset distribution. More... | |
subroutine | subn_groups_ (set, sub, sub_root, Ng, groups) |
Retrieve common information about set/sub relationship for N subsets. More... | |
elemental integer(ii_) function | get_mpierr_ (this) |
Function for retrieving the latest error messag. More... | |
subroutine | print_ (this, info, indent) |
Print, to std-out, some basic information of the data-container. More... | |
subroutine | assign_ (lhs, rhs) |
subroutine | initialize_ (this) |
pure logical function | is_initialized_ (this) |
pure logical function | is_initialized_ (this) |
pure logical function | is_initialized_ (this) |
elemental logical function | is_same_ (lhs, rhs) |
elemental logical function | is_same_ (lhs, rhs) |
subroutine | delete_ (this) |
elemental subroutine | nullify_ (this) |
elemental integer function | references_ (this) |
elemental integer function | references_ (this) |
subroutine | initialize_ (this) |
pure logical function | is_initialized_ (this) |
elemental logical function | is_same_ (lhs, rhs) |
subroutine | delete_ (this) |
elemental subroutine | nullify_ (this) |
subroutine | assign_ (lhs, rhs) |
elemental integer function | references_ (this) |
subroutine, private | delete_data (this) |
Internal routine for cleaning up the data container. More... | |
elemental integer(ii_) function | comm_ (this) |
Query the associated communicator. More... | |
integer(ii_) function, pointer | commp_ (this) |
Query the associated communicator. More... | |
elemental integer(ii_) function | group_ (this) |
Query the associated group. More... | |
integer(ii_) function, pointer | groupp_ (this) |
Query the associated group. More... | |
elemental integer(ii_) function | p_ (this) |
Query the current processor ID in the communicator. More... | |
integer(ii_) function, pointer | pp_ (this) |
Query pointer to the current processor ID in the communicator. More... | |
elemental integer(ii_) function | np_ (this) |
Query the number of processors in the communicator. More... | |
integer(ii_) function, pointer | npp_ (this) |
Query pointer to the number of processors in the communicator. More... | |
elemental integer(ii_) function | size_ (this) |
Query the default size of the distribution. More... | |
elemental integer(ii_) function | blocksize_ (this) |
Query the block-size, -1 if non-block-cyclic. More... | |
elemental logical function | is_dist_ (this, dist) |
Assert the distribution type. More... | |
elemental integer(ii_) function | dtype_ (this) |
Query distribution type used. More... | |
subroutine | attach_ (this, D, P, NP, ng, Comm, Grp, BS, err) |
Query several contained quantities. More... | |
subroutine | new_ (this, Comm) |
Basic routine for initializing a new distribution. More... | |
subroutine | new_block_cyclic_ (this, Comm, bs, ng, dist) |
Create a new block cyclic distribution. More... | |
subroutine | new_block_ (this, Comm, ng, dist) |
Create a new block distribution. More... | |
subroutine | new_fake_block_cyclic_ (this, NP, BS, ng, dist) |
Create a new block cyclic distribution. More... | |
subroutine | new_fake_block_ (this, NP, ng, dist) |
Create a new block distribution (non-cyclic) More... | |
elemental integer(ii_) function | size_local_default_ (this) |
elemental integer(ii_) function | size_local_ng_ (this, ng) |
elemental integer(ii_) function | l2g_default_ (this, il) |
elemental integer(ii_) function | l2g_ng_ (this, il, ng) |
elemental integer(ii_) function | g2l_default_ (this, ig) |
elemental integer(ii_) function | g2l_ng_ (this, ig, ng) |
elemental integer(ii_) function | g2p_default_ (this, ig) |
elemental integer(ii_) function | g2p_ng_ (this, ig, ng) |
elemental logical function | is_comm_ (this) |
Query whether a communicator is not MPI_COMM_NULL. More... | |
subroutine | fake_sub_ (set, sub) |
Convert a sub distribution to a fake distribution on non-sub processors. More... | |
subroutine | fake_sub_explicit_ (set, sub, sub_root) |
Copy a distribution via a set communicator and "sub_root" node. More... | |
subroutine | sub1_ranks_ (set, sub, rank) |
Retrieve a common rank array from a subset distribution. More... | |
subroutine | sub1_root_ (set, sub, sub_root) |
Retrieve common information about set/sub relationship. More... | |
subroutine | sub1_root_np_ (set, sub, sub_root, sub_NP) |
Retrieve common information about set/sub relationship. More... | |
subroutine | subn_groups_ (set, sub, sub_root, Ng, groups) |
Retrieve common information about set/sub relationship for N subsets. More... | |
subroutine | print_ (this, info, indent) |
Print, to std-out, some basic information of the data-container. More... | |
Variables | |
character(len=*), parameter, private | bud_mod = "bud_" // "bud_iDist1D" |
Name of module. More... | |
character(len=*), parameter, private | bud_type = "iDist1D" |
Name of bud in this module. More... | |
integer(ii_), parameter, public | dist_none = 1 |
Denote no distribution. More... | |
integer(ii_), parameter, public | dist_block_cyclic_first = 2 |
Block-cyclic distribution, remaining goes to first processor. More... | |
integer(ii_), parameter, public | dist_block_cyclic = DIST_BLOCK_CYCLIC_FIRST |
Block-cyclic distribution, remaining goes to last processor. More... | |
integer(ii_), parameter, private | dist_explicit = 4 |
User defined distribution (DIST_EXPLICIT) More... | |
integer(ii_), parameter, public | dist_block_first = 5 |
A simple block-partitioning (remainder to first process) More... | |
integer(ii_), parameter, public | dist_block_last = 6 |
A simple block-partitioning (remainder to last process) More... | |
type(idist1d_), pointer | d => null() |
Stored pointer which contains the reference counting etc. More... | |
integer(ii_) | err = MPI_SUCCESS |
Storage for MPI-error, allows external query. More... | |
integer(ii_) | comm = MPI_Comm_Null |
The associated communicator. More... | |
integer(ii_) | grp = MPI_Group_Null |
The group that encompass the equivalent communicator. More... | |
integer(ii_) | p = 0 |
The associated processor number. More... | |
integer(ii_) | np = 1 |
The number of processors in Comm More... | |
integer(ii_) | dist = DIST_NONE |
The distribution type. More... | |
integer(ii_) | ng = -1 |
Number of (total) elements in the distribution. More... | |
integer(ii_) | bs = -1 |
Block-size if BLOCK_CYCLIC distribution is used. More... | |
integer(ii_), dimension(:), pointer, contiguous | nl => null() |
Number of (local) elements in the distribution. More... | |
integer(ii_), dimension(:), pointer, contiguous | l2g => null() |
Local index to global index. More... | |
integer(ii_), dimension(:), pointer, contiguous | i2g => null() |
Global index to processor. More... | |
[in,out] | lhs | contains rhs after exit |
[in] | rhs | copy the containing element bud |
|
private |
[in,out] | lhs | contains rhs after exit |
[in] | rhs | copy the containing element bud |
|
private |
Query several contained quantities.
|
private |
Query several contained quantities.
|
private |
Query the block-size, -1
if non-block-cyclic.
|
private |
Query the block-size, -1
if non-block-cyclic.
|
private |
Query the block-size, -1
if non-block-cyclic.
|
private |
Query the associated communicator.
|
private |
Query the associated communicator.
|
private |
Query the associated communicator.
|
private |
Query the associated communicator.
procedure, public delete | ( | ) |
See interface delete
|
private |
[in,out] | this | returned bud is un-initialized with no data associated |
|
private |
[in,out] | this | returned bud is un-initialized with no data associated |
|
private |
Internal routine for cleaning up the data container.
Developer This routine is only used internally to clean-up any data in the type. Should never be made public.
|
private |
Query distribution type used.
|
private |
Query distribution type used.
|
private |
Convert a sub
distribution to a fake distribution on non-sub
processors.
Enables to copy a distribution to a fake distribution via a common set-distribution and a common root
. Note that root
must be equivalent on all nodes.
|
private |
Convert a sub
distribution to a fake distribution on non-sub
processors.
Enables to copy a distribution to a fake distribution via a common set-distribution and a common root
. Note that root
must be equivalent on all nodes.
|
private |
Copy a distribution via a set communicator and "sub_root" node.
Enables to copy a distribution to a fake distribution via a common set-distribution and a common sub_root
. Note that sub_root
must be equivalent on all nodes.
A fake distribution allows one to use a common interface for determining the parent processor.
|
private |
Copy a distribution via a set communicator and "sub_root" node.
Enables to copy a distribution to a fake distribution via a common set-distribution and a common sub_root
. Note that sub_root
must be equivalent on all nodes.
A fake distribution allows one to use a common interface for determining the parent processor.
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Function for retrieving the latest error messag.
|
private |
Query the associated group.
|
private |
Query the associated group.
|
private |
Query the associated group.
|
private |
Query the associated group.
procedure, public initialize | ( | ) |
See interface initialize
|
private |
[in,out] | this | bud that is initialized |
|
private |
[in,out] | this | bud that is initialized |
procedure, public initialized | ( | ) |
See interface is_initialized
|
private |
Query whether a communicator is not MPI_COMM_NULL.
This may be used to identify fake
distributions vs. real distributions.
|
private |
Query whether a communicator is not MPI_COMM_NULL.
This may be used to identify fake
distributions vs. real distributions.
|
private |
Assert the distribution type.
|
private |
Assert the distribution type.
procedure, public is_initd | ( | ) |
See interface is_initialized
procedure, public is_initialized | ( | ) |
See interface is_initialized
|
private |
[in] | this | check if this bud is initialized |
.true.
if it is associated, else .false.
|
private |
[in] | this | check if this bud is initialized |
.true.
if it is associated, else .false.
|
private |
[in] | this | check if this bud is initialized |
.true.
if it is associated, else .false.
|
private |
[in] | this | check if this bud is initialized |
.true.
if it is associated, else .false.
procedure, public is_same | ( | ) |
See interface is_same
|
private |
[in] | lhs | first bud |
[in] | rhs | second bud |
.true.
if lhs
and rhs
point to the same data
|
private |
[in] | lhs | first bud |
[in] | rhs | second bud |
.true.
if lhs
and rhs
point to the same data
|
private |
[in] | lhs | first bud |
[in] | rhs | second bud |
.true.
if lhs
and rhs
point to the same data
|
private |
|
private |
|
private |
|
private |
|
private |
Basic routine for initializing a new distribution.
This basic method does not attach anything associated with the distributino. Hence it may be used to initialize and use a distribution only via the communicator.
[in,out] | this | the bud distribution container |
[in] | Comm | the communicator that we will dublicate and attach |
|
private |
Basic routine for initializing a new distribution.
This basic method does not attach anything associated with the distributino. Hence it may be used to initialize and use a distribution only via the communicator.
[in,out] | this | the bud distribution container |
[in] | Comm | the communicator that we will dublicate and attach |
|
private |
Basic routine for initializing a new distribution.
This basic method does not attach anything associated with the distributino. Hence it may be used to initialize and use a distribution only via the communicator.
[in,out] | this | the bud distribution container |
[in] | Comm | the communicator that we will dublicate and attach |
|
private |
Create a new block distribution.
|
private |
Create a new block distribution.
|
private |
Create a new block distribution.
|
private |
Create a new block cyclic distribution.
|
private |
Create a new block cyclic distribution.
|
private |
Create a new block cyclic distribution.
|
private |
Create a new block distribution (non-cyclic)
|
private |
Create a new block distribution (non-cyclic)
|
private |
Create a new block cyclic distribution.
|
private |
Create a new block cyclic distribution.
|
private |
Query the number of processors in the communicator.
|
private |
Query the number of processors in the communicator.
|
private |
Query pointer to the number of processors in the communicator.
|
private |
Query pointer to the number of processors in the communicator.
procedure, public nullify | ( | ) |
See interface nullify
|
private |
[in,out] | this | nullify references from this bud |
|
private |
[in,out] | this | nullify references from this bud |
|
private |
Query the current processor ID in the communicator.
|
private |
Query the current processor ID in the communicator.
|
private |
Query pointer to the current processor ID in the communicator.
|
private |
Query pointer to the current processor ID in the communicator.
procedure, public print | ( | ) |
See interface print
|
private |
Print, to std-out, some basic information of the data-container.
Print out XML-like information regarding the data-container.
wanted Retrieval function of the string that represents the data. This will enable the parent program to show it in the way it wants.
[in] | this | data type |
[in] | info | optional="iDist1D" additional information printed |
[in] | indent | optional=1 possible indentation of printed statement |
|
private |
Print, to std-out, some basic information of the data-container.
Print out XML-like information regarding the data-container.
wanted Retrieval function of the string that represents the data. This will enable the parent program to show it in the way it wants.
[in] | this | data type |
[in] | info | optional="iDist1D" additional information printed |
[in] | indent | optional=1 possible indentation of printed statement |
procedure, public references | ( | ) |
See interface references
|
private |
[in] | this | reference counted bud |
this
has been referenced
|
private |
[in] | this | reference counted bud |
this
has been referenced
|
private |
[in] | this | reference counted bud |
this
has been referenced procedure, public refs | ( | ) |
See interface references
procedure, public same | ( | ) |
See interface is_same
|
private |
Query the default size of the distribution.
|
private |
Query the default size of the distribution.
|
private |
Query the default size of the distribution.
|
private |
|
private |
|
private |
|
private |
|
private |
Retrieve a common rank array from a subset distribution.
This returns an array which contains the sub
processor IDs equivalent in the set
communicator.
This equates to the equivalence equation: rank(dist_P(sub)) == dist_P(set)
Hence, upon exit rank
has size dist_NP(sub)
.
|
private |
Retrieve a common rank array from a subset distribution.
This returns an array which contains the sub
processor IDs equivalent in the set
communicator.
This equates to the equivalence equation: rank(dist_P(sub)) == dist_P(set)
Hence, upon exit rank
has size dist_NP(sub)
.
|
private |
Retrieve common information about set/sub relationship.
Query the root
and number of nodes in sub
distribution in the set
distribution.
|
private |
Retrieve common information about set/sub relationship.
Query the root
and number of nodes in sub
distribution in the set
distribution.
|
private |
Retrieve common information about set/sub relationship.
Query the root
and number of nodes in sub
distribution in the set
distribution.
|
private |
Retrieve common information about set/sub relationship.
Query the root
and number of nodes in sub
distribution in the set
distribution.
|
private |
Retrieve common information about set/sub relationship for N subsets.
Query the root
and number of nodes in sub
distribution in the set
distribution.
|
private |
Retrieve common information about set/sub relationship for N subsets.
Query the root
and number of nodes in sub
distribution in the set
distribution.
|
private |
Block-size if BLOCK_CYCLIC distribution is used.
|
private |
Name of module.
|
private |
Name of bud in this module.
|
private |
The associated communicator.
|
private |
Stored pointer which contains the reference counting etc.
|
private |
The distribution type.
type
. However, it may be ambiguous with either choice. integer(ii_), parameter, public dist_block_cyclic = DIST_BLOCK_CYCLIC_FIRST |
Block-cyclic distribution, remaining goes to last processor.
Block-cyclic distribution (DIST_BLOCK_CYCLIC_FIRST)
integer(ii_), parameter, public dist_block_cyclic_first = 2 |
Block-cyclic distribution, remaining goes to first processor.
integer(ii_), parameter, public dist_block_first = 5 |
A simple block-partitioning (remainder to first process)
integer(ii_), parameter, public dist_block_last = 6 |
A simple block-partitioning (remainder to last process)
|
private |
User defined distribution (DIST_EXPLICIT)
integer(ii_), parameter, public dist_none = 1 |
Denote no distribution.
|
private |
Storage for MPI-error, allows external query.
|
private |
The group that encompass the equivalent communicator.
|
private |
Global index to processor.
|
private |
Local index to global index.
|
private |
Number of (total) elements in the distribution.
Although strictly not necessary this can be used to store a default size of the distribution
|
private |
Number of (local) elements in the distribution.
|
private |
The number of processors in Comm
|
private |
The associated processor number.