buds  0.1
FORTRAN reference counted types
Data Types | Functions/Subroutines | Variables
bud_ldist1d Module Reference

Data Types

interface  assignment(=)
 Assignment of bud to another bud. More...
 
interface  attach
 Attach/Query several quantities at once. More...
 
interface  delete
 Deletes the bud by decreasing references to the underlying data. More...
 
interface  dtype
 Query the distribution type. More...
 
interface  fake_sub
 Create a fake distribution on non-participating processors in a sub. More...
 
interface  get_blocksize
 Query block-size (if DIST_BLOCK_?) 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_mpierr
 Query error of previous MPI calls. 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  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  global2local
 Query local index from a global index. More...
 
interface  global2p
 Query number of elements on this node. More...
 
interface  initialize
 Initialization of data container. More...
 
interface  initialized
 See interface is_initialized More...
 
interface  is_comm
 Query whether a communicator is associated. More...
 
interface  is_dist
 Assert the distribution type. More...
 
interface  is_initd
 See interface is_initialized More...
 
interface  is_initialized
 Query whether bud is associated with any data. More...
 
interface  is_same
 Check whether two buds point to the same data (function) More...
 
type  ldist1d
 bud variable More...
 
type  ldist1d_
 bud container for the distributions More...
 
interface  local2global
 Query global index from a local index. More...
 
interface  new
 Create a new object. More...
 
interface  new_ldist1d
 Create a new object. More...
 
interface  newfake
 Create a new object which is "fake". More...
 
interface  nullify
 Nullifies the current bud. More...
 
interface  print
 Print information about the bud. More...
 
interface  references
 Query number of references to the bud. More...
 
interface  refs
 See interface #references More...
 
interface  same
 See interface #is_same More...
 
interface  size
 Query number of total elements. More...
 
interface  size_block
 Query block-size (if DIST_BLOCK_?) More...
 
interface  size_global
 Query number of total elements. More...
 
interface  size_local
 Query number of elements on this node. More...
 
interface  sub1_ranks
 Retrieve the ranks of a sub distribution within a top-level distribution. 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  subn_groups
 Query subset information from multiple subsets simultaneously. More...
 

Functions/Subroutines

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(il_) function size_local_default_ (this)
 
elemental integer(il_) function size_local_ng_ (this, ng)
 
elemental integer(il_) function l2g_default_ (this, il)
 
elemental integer(il_) function l2g_ng_ (this, il, ng)
 
elemental integer(il_) function g2l_default_ (this, ig)
 
elemental integer(il_) function g2l_ng_ (this, ig, ng)
 
elemental integer(il_) function g2p_default_ (this, ig)
 
elemental integer(il_) 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...
 
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...
 

Variables

integer, parameter, private bud_id_len = 36
 bud_lDist1D documentation for various distribution types. More...
 
character(len=*), parameter, private bud_mod = "bud_" // "bud_lDist1D"
 Name of module. More...
 
character(len=*), parameter, private bud_type = "lDist1D"
 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...
 

Function/Subroutine Documentation

elemental integer(ii_) function bud_ldist1d::get_mpierr_ ( class(ldist1d), intent(in)  this)

Function for retrieving the latest error messag.

Variable Documentation

integer, parameter, private bud_id_len = 36
private

bud_lDist1D documentation for various distribution types.

This bud implements a selected portion of different distributions. Currently the available distributions are:

  • DIST_BLOCK_CYCLIC This format of block-cyclic distributions has 2 versions, each usable for different aspects:
  • DIST_BLOCK_CYCLIC_FIRST any remaining non-associated elements are assigned to the first processor.
  • DIST_BLOCK_FIRST any remaining non-associated elements are assigned to the first processor.
  • DIST_BLOCK_LAST any remaining non-associated elements are assigned to the last processor.

Developer The following pre-processor variables are currently used when included:

  • BUD_MOD_NAME of the module
  • _BUD_TYPE_NAME of the type
  • _BUD_TYPE_NAME, internal data pointer of the type
  • _BUD_TYPE_NAME_STR, the routine name in "string" format (for IO)
  • _BUD_TYPE_NEW, the routine name for creating a new type
  • _BUD_TYPE_VAR, the variable type contained in the array
  • _BUD_PREC, the precision specifier for the array If you add any new dependencies be sure to undefine the variable at the bottom of this file. Size of ID parameter for bud data-containers