]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MINICERN/packlib/kernlib/kerngen/tcgens/vaxgs/rndm.F
Bugfix in AliPoints2Memory
[u/mrichter/AliRoot.git] / MINICERN / packlib / kernlib / kerngen / tcgens / vaxgs / rndm.F
CommitLineData
fe4da5cc 1*
2* $Id$
3*
4* $Log$
5* Revision 1.1.1.1 1996/02/15 17:50:23 mclareni
6* Kernlib
7*
8*
9 FUNCTION RNDM (ISEED)
10C
11C CERN PROGLIB# V104 RNDM .VERSION KERNVAX 2.39 930112
12C ORIG. 22-MAR-88 from IBM version of G.Marsaglia et al., Montreal
13C
14C !!! Version valid only for VAX floating point format !!!
15C Careful: compile with /CHECK=NOOVERFLOW
16C
17C- Uniform Random Number Generator,
18C- giving the same sequence as the IBM and VAX m-language version
19
20 EQUIVALENCE (AMAN,MANT)
21 PARAMETER (MSK1 = 3072)
22C PARAMETER (MSK1 = '00000C00'X)
23 PARAMETER (MSK2 = 13312)
24C PARAMETER (MSK2 = '00003400'X)
25 SAVE MCGN
26 DATA MCGN /12345/
27
28
29 MCGN = MCGN * 69069
30 MANT = ISHFT (MCGN,-8)
31 IF (MANT.EQ.0) GO TO 14
32 AMAN = MANT
33C- AMAN in the range 1 to 2**24-1
34 MANT = MANT - MSK1
35C- multiply by 2.**(-24)
36 RNDM = AMAN
37 RETURN
38
39C-- for zero set RNDM = 2.**(-25)
40 14 MANT = MSK2
41 RNDM = AMAN
42 RETURN
43
44C-- Integer random number
45 ENTRY IRNDM (ISEED)
46 MCGN = MCGN * 69069
47 IRNDM = ISHFT (MCGN,-1)
48 RETURN
49
50C-- Set the seed
51 ENTRY RDMIN (ISEED)
52 MCGN = ISEED
53 RETURN
54
55C-- Get the seed
56 ENTRY RDMOUT (ISEED)
57 ISEED = MCGN
58 END