]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HIJING/hipyset1_35/rlu_hijing.F
Additional protection (macosx with gfortran)
[u/mrichter/AliRoot.git] / HIJING / hipyset1_35 / rlu_hijing.F
CommitLineData
e74335a4 1* $Id$
2
3C*********************************************************************
4
5 FUNCTION RLU_HIJING(IDUM)
6
7C...Purpose: to generate random numbers uniformly distributed between
8C...0 and 1, excluding the endpoints.
9#include "ludatr_hijing.inc"
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 100 T=0.5*T
33 110 RRLU(II)=S
34 TWOM24=1.
35 DO 120 I24=1,24
36 120 TWOM24=0.5*TWOM24
37 RRLU98=362436.*TWOM24
38 RRLU99=7654321.*TWOM24
39 RRLU00=16777213.*TWOM24
40 MRLU2=1
41 MRLU3=0
42 MRLU4=97
43 MRLU5=33
44 ENDIF
45
46C...Generate next random number.
47 130 RUNI=RRLU(MRLU4)-RRLU(MRLU5)
48 IF(RUNI.LT.0.) RUNI=RUNI+1.
49 RRLU(MRLU4)=RUNI
50 MRLU4=MRLU4-1
51 IF(MRLU4.EQ.0) MRLU4=97
52 MRLU5=MRLU5-1
53 IF(MRLU5.EQ.0) MRLU5=97
54 RRLU98=RRLU98-RRLU99
55 IF(RRLU98.LT.0.) RRLU98=RRLU98+RRLU00
56 RUNI=RUNI-RRLU98
57 IF(RUNI.LT.0.) RUNI=RUNI+1.
58 IF(RUNI.LE.0.OR.RUNI.GE.1.) GOTO 130
59
60C...Update counters. Random number to output.
61 MRLU3=MRLU3+1
62 IF(MRLU3.EQ.1000000000) THEN
63 MRLU2=MRLU2+1
64 MRLU3=0
65 ENDIF
66 RLU_HIJING=RUNI
67
68 RETURN
69 END