random_m Module

Provides random number generation procedures, mostly calling routine from Intel MKL VSL.


Uses

  • module~~random_m~~UsesGraph module~random_m random_m mkl_vsl_type mkl_vsl_type module~random_m->mkl_vsl_type module~constants_m constants_m module~random_m->module~constants_m mkl_vsl mkl_vsl module~random_m->mkl_vsl iso_fortran_env iso_fortran_env module~constants_m->iso_fortran_env

Used by

  • module~~random_m~~UsedByGraph module~random_m random_m module~brown_m brown_m module~brown_m->module~random_m module~setup_m setup_m module~setup_m->module~random_m module~simbox_m simbox_m module~setup_m->module~simbox_m module~config_io_m config_io_m module~setup_m->module~config_io_m module~stats_m stats_m module~setup_m->module~stats_m module~bd_solver_m bd_solver_m module~setup_m->module~bd_solver_m module~interaction_m interaction_m module~setup_m->module~interaction_m module~simbox_m->module~random_m program~main main program~main->module~setup_m module~pairtab_m pairtab_m module~pairtab_m->module~simbox_m module~cell_list_m cell_list_m module~pairtab_m->module~cell_list_m module~config_io_m->module~simbox_m module~cell_list_m->module~simbox_m module~stats_m->module~simbox_m module~bd_solver_m->module~brown_m module~bd_solver_m->module~config_io_m module~bd_solver_m->module~stats_m module~bd_solver_m->module~interaction_m module~interaction_m->module~simbox_m module~interaction_m->module~pairtab_m module~interaction_m->module~stats_m

Contents


Variables

TypeVisibility AttributesNameInitial
integer(kind=ip), private, save:: seed
type(VSL_STREAM_STATE), private, save:: stream

Functions

public function get_uniform(lb, ub) result(res)

Returns a random number from a uniform distribution.

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: lb

Lower bound

real(kind=rp), intent(in) :: ub

Upper bound

Return Value real(kind=rp)

public function get_iuniform(lb, ub) result(res)

Returns a random integer from a uniform distribution.

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: lb
integer(kind=ip), intent(in) :: ub

Return Value integer(kind=ip)


Subroutines

public subroutine init_stream(fn)

Initializes a BRNG stream.

Read more…

Arguments

Type IntentOptional AttributesName
character(len=*) :: fn

Name of the file containing the RNG seed.

public subroutine delete_stream()

Deletes a BRNG stream.

Arguments

None

public subroutine load_stream(fn)

Loads a BRNG stream from file fn.

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: fn

public subroutine save_seed(fn)

Saves the RNG seed to file fn.

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: fn

public subroutine save_stream(fn)

Saves a BRNG stream to file fn.

Arguments

Type IntentOptional AttributesName
character(len=*), intent(in) :: fn

public subroutine get_rv_uniform(lb, ub, rv, block_size)

Returns a random vector from a uniform distribution.

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: lb

Lower bound

real(kind=rp), intent(in) :: ub

Upper bound

real(kind=rp), intent(out), dimension(:):: rv
integer(kind=ip), intent(in), optional :: block_size

public subroutine get_rv_iuniform(lb, ub, rv, block_size)

Returns a random vector of integers from a uniform distribution.

Arguments

Type IntentOptional AttributesName
integer(kind=ip), intent(in) :: lb
integer(kind=ip), intent(in) :: ub
integer(kind=ip), intent(out), dimension(:):: rv
integer(kind=ip), intent(in), optional :: block_size

public subroutine get_rv_gaussian(mean, std_dev, rv, block_size)

Generates a random vector of integers from a gaussian distribution.

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(in) :: mean
real(kind=rp), intent(in) :: std_dev
real(kind=rp), intent(out), dimension(:):: rv
integer(kind=ip), intent(in), optional :: block_size

public subroutine ransphere(r)

Generates a random vector from the surface of a unit sphere.

Read more…

Arguments

Type IntentOptional AttributesName
real(kind=rp), intent(out), dimension(3):: r(3)