! Check that the real(4) and real(8) random number generators return the same
|
! Check that the real(4) and real(8) random number generators return the same
|
! sequence of values.
|
! sequence of values.
|
program random_4
|
program random_4
|
integer, dimension(:), allocatable :: seed
|
integer, dimension(:), allocatable :: seed
|
real(kind=4), dimension(10) :: r4
|
real(kind=4), dimension(10) :: r4
|
real(kind=8), dimension(10) :: r8
|
real(kind=8), dimension(10) :: r8
|
real, parameter :: delta = 0.0001
|
real, parameter :: delta = 0.0001
|
integer n
|
integer n
|
|
|
call random_seed (size=n)
|
call random_seed (size=n)
|
allocate (seed(n))
|
allocate (seed(n))
|
call random_seed (get=seed)
|
call random_seed (get=seed)
|
! Test both array valued and scalar routines.
|
! Test both array valued and scalar routines.
|
call random_number(r4)
|
call random_number(r4)
|
call random_number (r4(10))
|
call random_number (r4(10))
|
|
|
! Reset the seed and get the real(8) values.
|
! Reset the seed and get the real(8) values.
|
call random_seed (put=seed)
|
call random_seed (put=seed)
|
call random_number(r8)
|
call random_number(r8)
|
call random_number (r8(10))
|
call random_number (r8(10))
|
|
|
if (any ((r4 - r8) .gt. delta)) call abort
|
if (any ((r4 - r8) .gt. delta)) call abort
|
end program
|
end program
|
|
|
|
|