35 use mpi_f08,
only : mpi_comm
67 integer,
intent(in) :: n
70 type(mpi_comm) ::
comm
78 this%L = floor(dble(this%M) / dble(this%pe_size))
79 this%R = modulo(this%M, this%pe_size)
80 this%Ip = floor((dble(this%M) + dble(this%pe_size) - &
81 dble(this%pe_rank) - 1d0) / dble(this%pe_size))
99 start = this%pe_rank * this%L + min(this%pe_rank, this%R)
105 end = linear_dist_start(this) + (this%Ip - 1)
Defines practical data distributions.
type(linear_dist_t) function, target linear_dist_init(n, rank, size, comm)
pure integer function linear_dist_ip(this)
pure integer function linear_dist_m(this)
pure integer function linear_dist_start(this)
integer function linear_dist_end(this)
Load-balanced linear distribution .