2
3
4
5
6
7
8 INTEGER IDIST
9
10
11 INTEGER ISEED( 4 )
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 REAL ONE, TWO
46 parameter( one = 1.0e+0, two = 2.0e+0 )
47 REAL TWOPI
48 parameter( twopi = 6.2831853071795864769252867663e+0 )
49
50
51 REAL T1, T2
52
53
54 REAL SLARAN
56
57
58 INTRINSIC cos, log, sqrt
59
60
61
62
63
65
66 IF( idist.EQ.1 ) THEN
67
68
69
71 ELSE IF( idist.EQ.2 ) THEN
72
73
74
76 ELSE IF( idist.EQ.3 ) THEN
77
78
79
81 slarnd = sqrt( -two*log( t1 ) )*cos( twopi*t2 )
82 ELSE
84 END IF
85 RETURN
86
87
88
real function slaran(iseed)
real function slarnd(idist, iseed)