|
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.
1.8.11