init_genrand Subroutine

subroutine init_genrand(seed)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: seed

Calls

proc~~init_genrand~~CallsGraph proc~init_genrand init_genrand mt mt proc~init_genrand->mt

Source Code

subroutine init_genrand(seed)
  ! This initialization is based upon the multiplier given on p.106 of the
  ! 3rd edition of Knuth, The Art of Computer Programming Vol. 2.
  ! This version assumes that integer overflow does NOT cause a crash.
  integer,intent(in) :: seed !
  integer             :: latest
  mt(0) = seed
  latest = seed
  do mti = 1,n-1
     latest = IEOR( latest,ISHFT( latest,-30 ) )
     latest = latest * 1812433253 + mti
     mt(mti) = latest
  end do
  return
end subroutine init_genrand