CXML

ran69069 


FORMAT

  RAN69069 (s)

Function Value

  ran69069            real*4
                      The uniform[0,1] value returned.

Arguments

  s                   integer*4
                      On input, a seed s being set initially or left
                      unchanged from a previous iteration.
                      On exit, the updated seed.

Description

  The RAN69069 routine computes updated seeds using the linear multiplicative
  algorithm as follows:

  s = 69069*s+1, mod 2**32

  and returns s*2.0**(-32), as its uniform [0,1] output.

  The following code example simulates a random walk using RAN69069. A
  particle starts at (0,0) and proceeds N., E., S., or W. with probability
  0.25 each.

Example

        integer ix,iy,i,j,iseed,nsteps,nwalks
        real*4 x
  c     random walk: go N E S W each with probability 0.25
        nsteps = 1000000
        nwalks = 10
        iseed = 1234

        do j=1,nwalks
        ix=0
        iy=0
        do i = 1, nsteps
        x=ran69069(iseed)
        if(x.le.0.25)then
           ix=ix+1
        else if(x.le.0.5)then
           iy=iy+1
        else if(x.le.0.75)then
           ix=ix-1
        else
           iy=iy-1
        end if
        end do

        print*,'final position ',ix,iy
        end do
        end

CXML Home Page

Index of CXML Routines