$ gfortran --version
GNU Fortran (Ubuntu 4.3.3-5ubuntu4) 4.3.3
...
$ cat crash.f90
program crash_random_number
implicit none
integer, parameter :: dp = kind(1.0d0)
integer, parameter :: size = 100000000
real(kind=dp), dimension(size) :: x, y
! call random_seed() ! doesn't seem to change anything
! if I have only this statement, it seems to succeed
call random_number(x)
! with this one present, the process is killed _immediately_
call random_number(y)
end program crash_random_number
$ gfortran -o crash_random_number -std=f95 -Wall -O0 crash.f90
$ ./crash_random_number
Killed
$
_Any_ of the following changes seems to let the program succeed on my machine:
* changing the real type to default real
* changing the array size from 100000000 (1e8) to 10000000 (1e7)
* commenting out the second call to random_number; however, if the second call
is present, as above, the program crashes immediately
The default integer size is 4 bytes with maximum 2147483647 (2.147483647e9), so
1e8 fits into the integer range.
--
Summary: Generated program gets killed on subsequent calls to
random_number on "double precision" arrays of size
100000000 (1e8)
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sschwarzer at sschwarzer dot net
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41283