https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52879

Dominique d'Humieres <dominiq at lps dot ens.fr> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #4 from Dominique d'Humieres <dominiq at lps dot ens.fr> ---
> 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   673201045    34392906  1157024348
-1609687550  -251439173   940224366    63468018    34920908   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.

Reply via email to