https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52879
Dominique d'Humieres changed:
What|Removed |Added
Status|WAITING |NEW
--- Comment #4 from Dominique d'Humieres ---
> Isn't this PR fixed by revision r239356?
Apparently it is not:
program foo
implicit none
character(len=40), parameter :: fmt = '(A,33(I0,1X),A,F10.8)'
integer i, seed_size, date(8)
integer, allocatable :: new_seed(:), old_seed(:)
real x
call random_seed(size=seed_size)
print *, seed_size
allocate(new_seed(1:seed_size), old_seed(1:seed_size))
call random_seed(get=old_seed)
print *, old_seed
do i = 1, seed_size
new_seed = 1
new_seed(i) = old_seed(i)
call random_seed(put=new_seed)
call random_number(x)
write(*,fmt) 'seeds = [', new_seed, '], x = ', x
end do
deallocate(old_seed, new_seed)
end program foo
gives at runtime
33
-898577448 -1504036500 921915814 -557971666 -1458124821 1089340892
-405009840 -1532177545 1874249343 -1565011252 722389807 1033881693
-61011972 2103950240 262611246 -1017126965 1653648275 1231374486
500769179 994525438 1527804518 67320104534392906 1157024348
-1609687550 -251439173 9402243666346801834920908 436668423
-808487283 -1219115328 0
seeds = [-898577448 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 -1504036500 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 ], x = 0.02421916
seeds = [1 1 921915814 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 -557971666 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 -1458124821 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1089340892 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 -405009840 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 -1532177545 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1874249343 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 -1565011252 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 722389807 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1033881693 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 -61011972 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 2103950240 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 262611246 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1017126965 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1653648275 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1231374486 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 500769179 1 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 994525438 1 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1527804518 1 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 673201045 1 1 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 34392906 1 1 1 1 1 1 1 1 1
1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1157024348 1 1 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1609687550 1 1 1 1 1
1 1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -251439173 1 1 1 1 1
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 940224366 1 1 1 1
1 1 ], x = 0.76351053
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 63468018 1 1 1 1
1 ], x = 0.20794845
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 34920908 1 1 1
1 ], x = 0.33147699
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 436668423 1
1 1 ], x = 0.31606442
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -808487283
1 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-1219115328 1 ], x = 0.02421916
seeds = [1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 ], x
= 0.94173169
i.e., most "random" values are 0.02421916, except when the seed is not 1 in the
elements between 27 and 30, or 33.