The random_number_generator class is used to encapsulate a generator or random numbers An object of this class is defined through the specification of the random seed or seeds
Class Constructor 1
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(random_number_generator) | :: | grator |
A |
|||
integer(kind=i64) | :: | iseed |
An integer value with the seed of the random_number_generator program main use random_number_generator_utilities; ... integer :: iseed type(random_number_generator) :: my_grator ... iseed=12345; call my_grator%create(iseed); ... end program main |
Class Destructor 2
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(random_number_generator) | :: | grator |
A |
|||
integer(kind=i64), | intent(inout), | dimension(:) | :: | iseed |
An integer array with the seeds of the random_number_generator program main use random_number_generator_utilities; ... integer :: i integer,dimension(5) :: iseed type(random_number_generator) :: my_grator ... do i=1,5 iseed(i)=12345+i; enddo call my_grator%create(iseed); ... end program main |
Class Destructor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(random_number_generator) | :: | grator |
A program main use random_number_generator_utilities; ... integer :: iseed type(random_number_generator) :: my_grator ... iseed=12345; call my_grator%create(iseed); ... call my_grator%destroy(); ... end program main |
Function used to generate random numbers
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(random_number_generator) | :: | grator |
A |
A real value with the random number generated
program main use random_number_generator_utilities; ... integer :: iseed real(wp) :: rnum type(random_number_generator) :: my_grator ... iseed=12345; call my_grator%create(iseed); rnum=my_grator%generate(); write(,) 'Random number= ',rnum; ... end program main
type random_number_generator private !! The random_number_generator class is used to encapsulate a generator or random numbers !! An object of this class is defined through the specification of the random seed or seeds integer(i64) :: seed integer(i64),allocatable :: seed_array(:) contains procedure,private :: create_random_number_grator_single procedure,private :: create_random_number_grator_array generic,public :: create => create_random_number_grator_single,create_random_number_grator_array procedure,public :: destroy => destroy_random_number_grator procedure,public :: generate end type random_number_generator