GNU Octave
9.1.0
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
inrgcm.f
Go to the documentation of this file.
1
SUBROUTINE
inrgcm
()
2
C**********************************************************************
3
C
4
C SUBROUTINE INRGCM()
5
C INitialize Random number Generator CoMmon
6
C
7
C
8
C Function
9
C
10
C
11
C Initializes common area for random number generator. This saves
12
C the nuisance of a BLOCK DATA routine and the difficulty of
13
C assuring that the routine is loaded with the other routines.
14
C
15
C**********************************************************************
16
C .. Parameters ..
17
INTEGER*4
numg
18
parameter(numg=32)
19
C ..
20
C .. Scalars in Common ..
21
INTEGER*4
a1,a1vw,a1w,a2,a2vw,a2w,m1,m2
22
C ..
23
C .. Arrays in Common ..
24
INTEGER*4
cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg),
25
+ lg2(numg)
26
LOGICAL
qanti(numg)
27
C ..
28
C .. Local Scalars ..
29
INTEGER*4
i
30
LOGICAL
qdum
31
C ..
32
C .. External Functions ..
33
LOGICAL
qrgnsn
34
EXTERNAL
qrgnsn
35
C ..
36
C .. Common blocks ..
37
COMMON
/globe/m1,m2,a1,a2,a1w,a2w,a1vw,a2vw,ig1,ig2,lg1,lg2,cg1,
38
+ cg2,qanti
39
C ..
40
C .. Save statement ..
41
SAVE
/globe/
42
C ..
43
C .. Executable Statements ..
44
C V=20; W=30;
45
C
46
C A1W = MOD(A1**(2**W),M1) A2W = MOD(A2**(2**W),M2)
47
C A1VW = MOD(A1**(2**(V+W)),M1) A2VW = MOD(A2**(2**(V+W)),M2)
48
C
49
C If V or W is changed A1W, A2W, A1VW, and A2VW need to be recomputed.
50
C An efficient way to precompute a**(2*j) MOD m is to start with
51
C a and square it j times modulo m using the function MLTMOD.
52
C
53
m1 = 2147483563
54
m2 = 2147483399
55
a1 = 40014
56
a2 = 40692
57
a1w = 1033780774
58
a2w = 1494757890
59
a1vw = 2082007225
60
a2vw = 784306273
61
DO
10,i = 1,numg
62
qanti(i) = .false.
63
10
CONTINUE
64
C
65
C Tell the world that common has been initialized
66
C
67
qdum = qrgnsn(.true.)
68
RETURN
69
70
END
inrgcm
subroutine inrgcm()
Definition:
inrgcm.f:2
liboctave
external
ranlib
inrgcm.f
Generated on Sun Mar 17 2024 22:36:49 for GNU Octave by
1.9.1