]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA/jetset/rlu.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / jetset / rlu.F
CommitLineData
fe4da5cc 1
2C*********************************************************************
3
4 FUNCTION RLU(IDUMMY)
5
6C...Purpose: to generate random numbers uniformly distributed between
7C...0 and 1, excluding the endpoints.
8 COMMON/LUDATR/MRLU(6),RRLU(100)
9 SAVE /LUDATR/
10 EQUIVALENCE (MRLU1,MRLU(1)),(MRLU2,MRLU(2)),(MRLU3,MRLU(3)),
11 &(MRLU4,MRLU(4)),(MRLU5,MRLU(5)),(MRLU6,MRLU(6)),
12 &(RRLU98,RRLU(98)),(RRLU99,RRLU(99)),(RRLU00,RRLU(100))
13
14C...Initialize generation from given seed.
15 IF(MRLU2.EQ.0) THEN
16 IJ=MOD(MRLU1/30082,31329)
17 KL=MOD(MRLU1,30082)
18 I=MOD(IJ/177,177)+2
19 J=MOD(IJ,177)+2
20 K=MOD(KL/169,178)+1
21 L=MOD(KL,169)
22 DO 110 II=1,97
23 S=0.
24 T=0.5
25 DO 100 JJ=1,24
26 M=MOD(MOD(I*J,179)*K,179)
27 I=J
28 J=K
29 K=M
30 L=MOD(53*L+1,169)
31 IF(MOD(L*M,64).GE.32) S=S+T
32 T=0.5*T
33 100 CONTINUE
34 RRLU(II)=S
35 110 CONTINUE
36 TWOM24=1.
37 DO 120 I24=1,24
38 TWOM24=0.5*TWOM24
39 120 CONTINUE
40 RRLU98=362436.*TWOM24
41 RRLU99=7654321.*TWOM24
42 RRLU00=16777213.*TWOM24
43 MRLU2=1
44 MRLU3=0
45 MRLU4=97
46 MRLU5=33
47 ENDIF
48
49C...Generate next random number.
50 130 RUNI=RRLU(MRLU4)-RRLU(MRLU5)
51 IF(RUNI.LT.0.) RUNI=RUNI+1.
52 RRLU(MRLU4)=RUNI
53 MRLU4=MRLU4-1
54 IF(MRLU4.EQ.0) MRLU4=97
55 MRLU5=MRLU5-1
56 IF(MRLU5.EQ.0) MRLU5=97
57 RRLU98=RRLU98-RRLU99
58 IF(RRLU98.LT.0.) RRLU98=RRLU98+RRLU00
59 RUNI=RUNI-RRLU98
60 IF(RUNI.LT.0.) RUNI=RUNI+1.
61 IF(RUNI.LE.0.OR.RUNI.GE.1.) GOTO 130
62
63C...Update counters. Random number to output.
64 MRLU3=MRLU3+1
65 IF(MRLU3.EQ.1000000000) THEN
66 MRLU2=MRLU2+1
67 MRLU3=0
68 ENDIF
69 RLU=RUNI
70
71 RETURN
72 END