previous up next print clean
Next: Uniform distribution Up: APPENDIX: SOME FORTRAN SUBROUTINES Previous: Schrage's Method

An alternative to Schrage

      SUBROUTINE sub3(npts,seed,output)

      INTEGER npts,seed,output(npts)
      INTEGER j
      DOUBLE PRECISION dmagio1,dmagio2,doubt

      dmagio1 = DBLE(7**5)
      dmagio2 = DBLE(2*(2**30 - 1) + 1)
      doubt = DBLE(seed)
      output(1) = doubt
      DO j = 2,npts
         doubt = MOD(dmagio1*doubt,dmagio2)
         output(j) = INT(doubt)
      END DO
      doubt = MOD(dmagio1*DBLE(output(npts)),dmagio2)
      seed = INT(doubt) 

      RETURN
      END


Stanford Exploration Project
11/18/1997