RAND (The GNU Fortran Compiler)

### 8.232 `RAND` — Real pseudo-random number ¶

Synopsis:

  `RESULT = RAND(I)`

Description:

  `RAND(FLAG)` returns a pseudo-random number from a uniform distribution between 0 and 1. If FLAG is 0, the next number in the current sequence is returned; if FLAG is 1, the generator is restarted by `CALL SRAND(0)`; if FLAG has any other value, it is used as a new seed with `SRAND`.

  This intrinsic routine is provided for backwards compatibility with GNU Fortran 77. It implements a simple modulo generator as provided by `g77`. For new code, one should consider the use of `RANDOM_NUMBER` — Pseudo-random number as it implements a superior algorithm.

Class:

  Function

Arguments:

  I | Shall be a scalar `INTEGER` of kind 4.

Return value:

  The return value is of `REAL` type and the default kind.

Example:

      program test_rand
        integer,parameter :: seed = 86456

        call srand(seed)
        print *, rand(), rand(), rand(), rand()
        print *, rand(seed), rand(), rand(), rand()
      end program test_rand

Standard:

  GNU extension

See also:

  `SRAND` — Reinitialize the random number generator,
  `RANDOM_NUMBER` — Pseudo-random number