program simplegfortran ! by Steven Kargl as posted on comp.lang.fortran on 10 August 2007. implicit none integer, parameter :: m = 1000000 integer :: idate(8), n(10) integer, allocatable :: iseed(:) real :: x(m) call date_and_time(VALUES=idate) allocate( iseed(8) ) iseed = idate(8) call random_seed(PUT=iseed) call random_number(x) deallocate ( iseed ) n(1) = count(x < 0.1) n(2) = count(x < 0.2) - n(1) n(3) = count(x < 0.3) - sum(n(1:2)) n(4) = count(x < 0.4) - sum(n(1:3)) n(5) = count(x < 0.5) - sum(n(1:4)) n(6) = count(x < 0.6) - sum(n(1:5)) n(7) = count(x < 0.7) - sum(n(1:6)) n(8) = count(x < 0.8) - sum(n(1:7)) n(9) = count(x < 0.9) - sum(n(1:8)) n(10) = m - sum(n(1:9)) print '(10I7)', n ! Typical results (Intel Ifort): ! 100246 100531 99940 100140 99608 99320 99715 100185 99733 100582 end program simplegfortran