My Project
 All Classes Files Functions Variables Macros
ran1.F
Go to the documentation of this file.
1 !
2 ! $Id: ran1.F 1403 2010-07-01 09:02:53Z fairhead $
3 !
4  FUNCTION ran1(IDUM)
5  dimension r(97)
6  save r
7  save iff,ix1,ix2,ix3
8  parameter(m1=259200,ia1=7141,ic1=54773,rm1=3.8580247e-6)
9  parameter(m2=134456,ia2=8121,ic2=28411,rm2=7.4373773e-6)
10  parameter(m3=243000,ia3=4561,ic3=51349)
11  DATA iff /0/
12  IF (idum.LT.0.OR.iff.EQ.0) THEN
13  iff=1
14  ix1=mod(ic1-idum,m1)
15  ix1=mod(ia1*ix1+ic1,m1)
16  ix2=mod(ix1,m2)
17  ix1=mod(ia1*ix1+ic1,m1)
18  ix3=mod(ix1,m3)
19  DO 11 j=1,97
20  ix1=mod(ia1*ix1+ic1,m1)
21  ix2=mod(ia2*ix2+ic2,m2)
22  r(j)=(REAL(ix1)+REAL(ix2)*rm2)*rm1
23 11 CONTINUE
24  idum=1
25  ENDIF
26  ix1=mod(ia1*ix1+ic1,m1)
27  ix2=mod(ia2*ix2+ic2,m2)
28  ix3=mod(ia3*ix3+ic3,m3)
29  j=1+(97*ix3)/m3
30  IF(j.GT.97.OR.j.LT.1)pause
31  ran1=r(j)
32  r(j)=(REAL(ix1)+REAL(ix2)*rm2)*rm1
33  RETURN
34  END