Soil Water Balance (SWB2)
Loading...
Searching...
No Matches
test_kiss.F90
Go to the documentation of this file.
1
program
test_kiss
2
3
use
kiss_random_number_generator
,
only
:
kiss64_rng
, &
4
kiss64_initialize
, &
5
kiss64_uniform_rng
6
7
use
iso_fortran_env,
only
: real128
8
implicit none
9
10
integer
,
parameter
:: i8b=selected_int_kind(18)
11
integer
,
parameter
:: r8b=selected_real_kind(18,18)
12
13
integer(i8b)
::
x
14
integer(i8b)
:: minx, maxx
15
integer(i8b)
:: i
16
17
call
kiss64_initialize
()
18
19
minx=99999999
20
maxx=-99999999
21
do
i=1,100000000_i8b
22
x
=
kiss64_rng
()
23
minx=min(minx,
x
)
24
maxx=max(maxx,
x
)
25
end do
26
27
print *, real(minx, kind=real128), real(maxx, kind=real128), real(maxx, kind=real128) - real(minx, kind=real128)
28
29
30
if
(
x
== 1666297717051644203_i8b)
then
31
print *,
"After 100 million calls, KISS random number generator yields the expected value (1666297717051644203). Pass."
32
else
33
stop
"After 100 million calls, KISS random number generator *does not* give the expected value (1666297717051644203). Fail."
34
endif
35
36
open
(unit=8,file=
"kiss64_uniform.txt"
)
37
38
do
i=1,100000
39
write
(8,fmt=
"(F16.14)"
)
kiss64_uniform_rng
()
40
enddo
41
42
end program
test_kiss
kiss_random_number_generator
Definition
kiss_random_number_generator.F90:1
kiss_random_number_generator::kiss64_uniform_rng
real(c_float) function kiss64_uniform_rng()
Definition
kiss_random_number_generator.F90:132
kiss_random_number_generator::kiss64_rng
integer(int64) function kiss64_rng()
Definition
kiss_random_number_generator.F90:171
kiss_random_number_generator::kiss64_initialize
subroutine kiss64_initialize(seed)
Definition
kiss_random_number_generator.F90:109
kiss_random_number_generator::x
integer(int64) x
Definition
kiss_random_number_generator.F90:7
test_kiss
program test_kiss
Definition
test_kiss.F90:1
src
test_kiss.F90
Generated on
for Soil Water Balance (SWB2) by
1.14.0