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 .