Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/random_3.f90 @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
! { dg-do run } ! { dg-require-effective-target fortran_large_real } ! Check that the random_seed for real(10) exists and that ! real(8) and real(10) random number generators ! return the same sequence of values. ! Mostly copied from random_2.f90 program random_3 integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1) integer, dimension(:), allocatable :: seed real(kind=8), dimension(10) :: r8 real(kind=k), dimension(10) :: r10 real, parameter :: delta = 1.d-10 integer n ! Run the test only if real(10) is available. With the current ! xorshift1024* PRNG the real(16) generator uses two uint64_t values ! for every real(16) value generated, and hence the sequences won't ! be the same as with real(4,8,10). if (k == 10) then call random_seed (size=n) allocate (seed(n)) call random_seed (get=seed) ! Test both array valued and scalar routines. call random_number(r8) call random_number (r8(10)) ! Reset the seed and get the real(8) values. call random_seed (put=seed) call random_number(r10) call random_number (r10(10)) if (any ((r8 - r10) .gt. delta)) STOP 1 end if end program random_3