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
46
47 REAL ZERO, ONE, TWO
48 parameter( zero = 0.0e+0, one = 1.0e+0, two = 2.0e+0 )
49 REAL TWOPI
50 parameter( twopi = 6.2831853071795864769252867663e+0 )
51
52
53 REAL T1, T2
54
55
56 REAL SLARAN
58
59
60 INTRINSIC cmplx, exp, log, sqrt
61
62
63
64
65
66
69
70 IF( idist.EQ.1 ) THEN
71
72
73
75 ELSE IF( idist.EQ.2 ) THEN
76
77
78
80 ELSE IF( idist.EQ.3 ) THEN
81
82
83
84 clarnd = sqrt( -two*log( t1 ) )*exp(
cmplx( zero, twopi*t2 ) )
85 ELSE IF( idist.EQ.4 ) THEN
86
87
88
90 ELSE IF( idist.EQ.5 ) THEN
91
92
93
95 ELSE
97 END IF
98 RETURN
99
100
101
complex function clarnd(idist, iseed)
real function slaran(iseed)