root / synthbench / euroben-dm / mod2i / ranint.f @ 0:839f52ef7657
History | View | Annotate | Download (1.2 kB)
1 |
Subroutine ranint( low, hi, n, ranint_array ) |
---|---|
2 |
! --------------------------------------------------------------------- |
3 |
! --- Routine 'ranint' generates an random array of 'n' integers with |
4 |
! values in the range [low, hi]. When [low, hi] = [1,n], |
5 |
! 'ranint_array' is not neccesarily a permutation, i.e., |
6 |
! ranint_array(i) might be equal to ranint_array(j) for some i, j. |
7 |
! --------------------------------------------------------------------- |
8 |
Use dist_module |
9 |
Implicit None |
10 |
Integer, Intent(in) :: low, hi, n |
11 |
Integer, Dimension(n), Intent(out) :: ranint_array |
12 |
|
13 |
Real, Dimension(n) :: dummy |
14 |
Integer, Dimension(n) :: seed |
15 |
Integer :: i |
16 |
! --------------------------------------------------------------------- |
17 |
Do i = 1, n |
18 |
seed(i) = me*n + i |
19 |
End Do |
20 |
Call random_seed( Put = seed(1:n) ) |
21 |
Call random_number( dummy ) |
22 |
ranint_array = Int( ( hi - low + 1)*dummy + low ) |
23 |
! --------------------------------------------------------------------- |
24 |
End Subroutine ranint |