diff --git a/assimilation_code/modules/utilities/random_seq_mod.f90 b/assimilation_code/modules/utilities/random_seq_mod.f90 index 22fa38fa5..b75017659 100644 --- a/assimilation_code/modules/utilities/random_seq_mod.f90 +++ b/assimilation_code/modules/utilities/random_seq_mod.f90 @@ -25,7 +25,8 @@ module random_seq_mod twod_gaussians, & random_gamma, & random_inverse_gamma, & - random_exponential + random_exponential, & + ran_unif, init_ran character(len=*), parameter :: source = 'random_seq_mod.f90' @@ -415,7 +416,7 @@ function ran_unif(s) ! at this point we have an integer value for k ! this routine returns 0.0 <= real < 1.0, so do ! the divide here. return range: [0,1). - +print*, 'k=', k ran_unif = real(real(k, digits12) / 4294967296.0_digits12, r8) end function ran_unif diff --git a/developer_tests/random_seq/test_ran_unif.f90 b/developer_tests/random_seq/test_ran_unif.f90 new file mode 100644 index 000000000..0bcc7b893 --- /dev/null +++ b/developer_tests/random_seq/test_ran_unif.f90 @@ -0,0 +1,19 @@ +program test_ran_unif + +use random_seq_mod, only : ran_unif, init_ran, random_seq_type +use types_mod, only : r8 +implicit none + +integer :: seed, i +type(random_seq_type) :: r +real(r8) :: real_random_number + +seed = 13 + +call init_ran(r, seed) + +do i = 1, 11 + real_random_number = ran_unif(r) +enddo + +end program test_ran_unif diff --git a/developer_tests/random_seq/work/quickbuild.sh b/developer_tests/random_seq/work/quickbuild.sh index 3dc912094..99ea98c5c 100755 --- a/developer_tests/random_seq/work/quickbuild.sh +++ b/developer_tests/random_seq/work/quickbuild.sh @@ -26,6 +26,7 @@ test_hist test_inv_gamma test_random test_reseed +test_ran_unif )