8.230 RANDOM_INIT — Initialize a pseudo-random number generator

Synopsis:

CALL RANDOM_INIT(REPEATABLE, IMAGE_DISTINCT)

Description:

Initializes the state of the pseudorandom number generator used by RANDOM_NUMBER.

Class:

Subroutine

Arguments:
REPEATABLEShall be a scalar with a LOGICAL type, and it is INTENT(IN). If it is .true., the seed is set to a processor-dependent value that is the same each time RANDOM_INIT is called from the same image. The term “same image” means a single instance of program execution. The sequence of random numbers is the same for repeated execution of the program with the same execution environment. If it is .false., the seed is set to a processor-dependent value.
IMAGE_DISTINCTShall be a scalar with a LOGICAL type, and it is INTENT(IN). If it is .true., the seed is set to a processor-dependent value that is distinct from the seed set by a call to RANDOM_INIT in another image. If it is .false., the seed is set to a value that is the same on every image calling RANDOM_INIT.
Example:
program test_random_seed
  implicit none
  real x(3), y(3)
  call random_init(.true., .true.)
  call random_number(x)
  call random_init(.true., .true.)
  call random_number(y)
  ! x and y are the same sequence
  if (any(x /= y)) call abort
end program test_random_seed
Standard:

Fortran 2018

See also:

RANDOM_NUMBER — Pseudo-random number,
RANDOM_SEED — Initialize a pseudo-random number sequence