Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gfortran.dg/pr37286.f90 @ 128:fe568345ddd5
fix CbC-example
author | mir3636 |
---|---|
date | Wed, 11 Apr 2018 19:32:28 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
! { dg-do compile } ! { dg-require-visibility "" } module general_rand implicit none private integer, public, parameter :: GNDP = kind(1.0d0) real(kind = GNDP), save :: & gnc = 362436.0 / 16777216.0, & gncd = 7654321.0 / 16777216.0, & gncm = 16777213.0 / 16777216.0 integer, save :: & gni97 = 97, & gnj97 = 33 real(kind = GNDP), save :: gnu(97) contains subroutine gn_fatal(message) character(len = *), intent(in) :: message stop 1 end subroutine gn_fatal function gn_monte_rand(min, max) result(monte) real(kind = GNDP), intent(in) :: min real(kind = GNDP), intent(in) :: max real(kind = GNDP) :: monte real :: monte_temp if (min > max) then call gn_fatal('gn_monte_rand: min > max') else if (min == max) then call gn_fatal('gn_monte_rand: min = max: returning min') monte_temp = min else monte_temp = gnu(gni97) - gnu(gnj97) if (monte_temp < 0.0) then monte_temp = monte_temp + 1.0 end if gnu(gni97) = monte_temp gni97 = gni97 - 1 if (gni97 == 0) then gni97 = 97 end if end if monte = min + monte_temp * (max - min) end function gn_monte_rand end module general_rand