3 C*********************************************************************
5 FUNCTION RLU_HIJING(IDUM)
7 C...Purpose: to generate random numbers uniformly distributed between
8 C...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))
14 C...Initialize generation from given seed.
16 IJ=MOD(MRLU1/30082,31329)
26 M=MOD(MOD(I*J,179)*K,179)
31 IF(MOD(L*M,64).GE.32) S=S+T
38 RRLU99=7654321.*TWOM24
39 RRLU00=16777213.*TWOM24
46 C...Generate next random number.
47 130 RUNI=RRLU(MRLU4)-RRLU(MRLU5)
48 IF(RUNI.LT.0.) RUNI=RUNI+1.
51 IF(MRLU4.EQ.0) MRLU4=97
53 IF(MRLU5.EQ.0) MRLU5=97
55 IF(RRLU98.LT.0.) RRLU98=RRLU98+RRLU00
57 IF(RUNI.LT.0.) RUNI=RUNI+1.
58 IF(RUNI.LE.0.OR.RUNI.GE.1.) GOTO 130
60 C...Update counters. Random number to output.
62 IF(MRLU3.EQ.1000000000) THEN