Documentation for module distribution_1d_types

stores a lists of integer that are local to a processor. The idea is that these integers represent objects that are distributed between the different processors. The ordering is just to make some operation more efficent, logically these lists are like sets. Some operations assume that the integers represent a range of values from 1 to a (not too big) maxval, and that an element is present just once, and only on a processor (these assumption are marked in the documentation of such operations). The concrete task for which this structure was developed was distributing atoms between the processors.

source: distribution_1d_types.F
Loading...

public Types:

distribution_1d_type
structure to store local (to a processor) ordered lists of integers.

public Subroutines/Functions:

creates a local list
releases the given distribution_1d
retains a distribution_1d

public Types:

TYPE :: distribution_1d_type

structure to store local (to a processor) ordered lists of integers.


INTEGER
:: ref_count reference count (see doc/ReferenceCounting.html)
INTEGER
:: id_nr ...
LOGICAL
:: listbased_distribution true if each list has its own distribution
INTEGER,
DIMENSION(:), POINTER :: n_el n_el(i) is number of elements of list(i)
DIMENSION(:), POINTER :: list list(i) contains an ordered list of integer (the array might be bigger than n_el(i), but the extra elements should be ignored)
POINTER :: para_env the parallel environment underlying the distribution
DIMENSION(:), POINTER :: local_particle_set ...

SUBROUTINEdistribution_1d_create(distribution_1d, para_env, listbased_distribution, n_el, n_lists)

creates a local list

Arguments:
POINTER
:: distribution_1d the lists to create
POINTER
:: para_env parallel environement to be used
LOGICAL,
INTENT(in),
OPTIONAL
:: listbased_distribution if each list has its own distribution (defaults to false)
INTEGER,
INTENT(in),
OPTIONAL
:: n_el(:) number of elements in each list (defaults to 0)
INTEGER,
INTENT(in),
OPTIONAL
:: n_lists number of lists to create (defaults to 1, or size(n_el))

SUBROUTINEdistribution_1d_release(distribution_1d)

releases the given distribution_1d

Arguments:
POINTER
:: distribution_1d the object to release

SUBROUTINEdistribution_1d_retain(distribution_1d)

retains a distribution_1d

Arguments:
POINTER
:: distribution_1d the object to retain

private Parameters/Types:

private Types:

TYPE :: local_particle_type

...


DIMENSION(:), POINTER :: rng ...