root / synthbench / euroben-dm / mod2i / .svn / text-base / evdist.f.svn-base @ 0:839f52ef7657
History | View | Annotate | Download (1 kB)
1 |
Subroutine evdist( n ) |
---|---|
2 |
! --------------------------------------------------------------------- |
3 |
! --- Routine 'evdist' distributes 'n' elements as evenly as possible |
4 |
! over 'nodes' processors. The actual number of elements per |
5 |
! processor are returned in array 'sizes'. |
6 |
! --------------------------------------------------------------------- |
7 |
! --- Input: - Integer n |
8 |
! - Integer nodes (via Module dist_module). |
9 |
! --- Output: - Integer sizes(0:maxnod-1) (via Module dist_module). |
10 |
! --------------------------------------------------------------------- |
11 |
Use dist_module |
12 |
Integer :: n |
13 |
|
14 |
Integer :: i, non, nrest, rest |
15 |
! --------------------------------------------------------------------- |
16 |
non = n/nodes |
17 |
rest = Mod( n, nodes ) |
18 |
nrest = nodes - rest - 1 |
19 |
Do i = 0, nodes - 1 |
20 |
sizes(i) = non |
21 |
If ( i > nrest ) sizes(i) = non + 1 |
22 |
End Do |
23 |
! --------------------------------------------------------------------- |
24 |
End Subroutine evdist |