📄 rinit.f
字号:
Subroutine rinit( n, a, nprocs, me, x1, x2 )! ---------------------------------------------------------------------- Use numerics Use ran_module Implicit None Integer :: n Real(l_) :: a(n) Integer :: nprocs, me Integer(8) :: x1, x2 Integer(8) :: af1, af2, ci1, ci2 Integer(8) :: i, j! ---------------------------------------------------------------------- ak1 = 1 ak2 = 1 ck1 = 0 ck2 = 0 Do i = 1, nprocs af1 = ak1 af2 = ak2 ak1 = Mod( a1*ak1, m1 ) ak2 = Mod( a2*ak2, m2 ) ci1 = 0 Do j = 1, c1 ci1 = Mod( ci1 + af1, m1 ) End Do ci2 = 0 Do j = 1, c2 ci2 = Mod( ci2 + af2, m2 ) End Do ck1 = Mod( Mod( ck1, m1 ) + ci1, m1 ) ck2 = Mod( Mod( ck2, m2 ) + ci2, m2 ) End Do Do i = 1, me + 97 + 1 ! --- Warming up phase. x1 = Mod( a1*x1 + c1, m1 ) x2 = Mod( a2*x2 + c2, m2 ) End Do a(me+1) = ( Real( x1, l_ ) + Real( x2, l_ )*rm2 )*rm1! ---------------------------------------------------------------------- End Subroutine rinit
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -