]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MINICERN/packlib/kernlib/kerngen/tcgens/lnxgs/rndm.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgens / lnxgs / rndm.F
1 *
2 * $Id$
3 *
4 * $Log$
5 * Revision 1.1.1.1  1996/02/15 17:50:19  mclareni
6 * Kernlib
7 *
8 *
9       FUNCTION RNDM (ISEED)
10 C
11 C CERN PROGLIB# V104    RNDM            .VERSION KERNLNX  1.00  930507
12 C ORIG. 22-MAR-88 from IBM version of G.Marsaglia et al., Montreal
13 C MODIF 24/06/92, adapted N.Karpenko, Dubna
14 C
15 C     !!!   Version valid only for 32 bit machines   !!!
16 C     !!!   with IEEE floating point representation  !!!
17 C
18 C-    Uniform Random Number Generator,
19 C-    giving the same sequence as the IBM and VAX version
20
21       EQUIVALENCE (AMAN,MANT)
22       PARAMETER    (MSK1 = 201326592)
23       PARAMETER    (MSK2 = 855638016)
24 C     PARAMETER    (MSK1 = '0C000000'X)
25 C     PARAMETER    (MSK2 = '33000000'X)
26        COMMON /MCGN/ MCGN
27       DATA  MCGN  /12345/
28
29
30       MCGN = MCGN * 69069
31       MANT = ISHFT (MCGN,-8)
32       IF (MANT.EQ.0)         GO TO 14
33       AMAN = MANT
34 C-    AMAN in the range 1 to 2**24-1
35       MANT = MANT - MSK1
36 C-    multiply by 2.**(-24)
37       RNDM = AMAN
38       RETURN
39
40 C--   for zero set RNDM = 2.**(-25)
41    14 MANT = MSK2
42       RNDM = AMAN
43       RETURN
44         END