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