title: Why is the Fortran RANDOM_SEED input an array?
body: <p>I use the following code to initialise me seed (I don't know where I found it, but everyone, absolutely everyone seems to have exactly this! Why? Why 37?)</p>
  
  <pre><code>SUBROUTINE init_random_seed()
  IMPLICIT NONE
  INTEGER :: i, n, clock
  INTEGER, DIMENSION(:), ALLOCATABLE :: seed
  
  CALL RANDOM_SEED(size = n)
  ALLOCATE(seed(n))
  
  CALL SYSTEM_CLOCK(COUNT=clock)
  
  seed = clock + 37 * (/ (i - 1, i = 1, n) /)
  CALL RANDOM_SEED(PUT = seed)
  
  DEALLOCATE(seed)
  END SUBROUTINE
  </code></pre>
  
  <p>Now why is the argument of PUT an array (of size .ge. n)? I can only find sources that say that that is how it should be, not why.  </p>
  
  <ol>
  <li>Pg.12 of <a href="http://www.mhhe.com/engcs/general/chapman/intro/INTRINSI.PDF" rel="nofollow">http://www.mhhe.com/engcs/general/chapman/intro/INTRINSI.PDF</a>  </li>
  <li><a href="https://gcc.gnu.org/onlinedocs/gfortran/RANDOM_005fSEED.html" rel="nofollow">https://gcc.gnu.org/onlinedocs/gfortran/RANDOM_005fSEED.html</a>  </li>
  <li><a href="https://software.intel.com/en-us/node/581112" rel="nofollow">https://software.intel.com/en-us/node/581112</a></li>
  </ol>