Next: RANDOM_NUMBER, Previous: RAND, Up: Intrinsic Procedures

### 8.223 `RANDOM_INIT` — Initialize a pseudo-random number generator

Description:
  Initializes the state of the pseudorandom number generator used by `RANDOM_NUMBER`.
Standard:
  Fortran 2018
Class:
  Subroutine
Syntax:
  `CALL RANDOM_INIT(REPEATABLE, IMAGE_DISTINCT)`
Arguments:

  REPEATABLE | Shall 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 different for repeated execution of the program. If it is `.false.`, the seed is set to a processor-dependent value.
  IMAGE_DISTINCT | Shall 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 th seed set by a call to `RANDOM_INIT` in another image. If it is `.false.`, the seed is set to a value that does depend which image called `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

See also:
  RANDOM_NUMBER, RANDOM_SEED