37 INTEGER(mpi),
PARAMETER ::
nb=511
38 INTEGER(mpi),
PARAMETER ::
ia=16807
39 INTEGER(mpi),
PARAMETER ::
im=2147483647
40 INTEGER(mpi),
PARAMETER ::
iq=127773
41 INTEGER(mpi),
PARAMETER ::
ir=2836
69 INTEGER(mpi),
INTENT(IN) :: n
70 REAL(mps),
INTENT(OUT) :: a(*)
73 WRITE(*,*)
' Automatic GBRSHI initialization using:'
80 IF(idum < 0) idum=idum+
im
81 mbuff(j)=ishft(idum,1)
88 mbuff(
ian)=ieor(ior(ishft(it,17),ishft(it,-15)),
ic)
98 mbuff(
ian)=ieor(ior(ishft(it,17),ishft(it,-15)),
ic)
121 INTEGER(mpi),
INTENT(IN) :: jseed
122 INTEGER(mpi),
INTENT(IN) :: jwarm
125 WRITE(*,*)
' Gbrshi initialization by GBRVIN-call using:'
134 IF(idum < 0) idum=idum+
im
135 mbuff(j)=ishft(idum,1)
142 mbuff(
ian)=ieor(ior(ishft(it,17),ishft(it,-15)),
ic)
155 INTEGER(mpi) :: jseed
162 WRITE(*,*)
' Gbrshi initialialization using Time()'
179 REAL(
mps) :: buffer(ndim)
182 indx=mod(indx,ndim)+1
183 IF(indx == 1)
CALL gbrshi(ndim,buffer)
206 REAL(
mps) :: buffer(ndim)
207 DATA indx/ndim/,kn/1/
208 SAVE indx,buffer,kn,cs,al
21210 indx=mod(indx,ndim)+2
213 IF(indx == 2)
CALL gbrshi(ndim,buffer)
214 rn1=buffer(indx-1)-1.0+buffer(indx-1)
215 rn2=buffer(indx )-1.0+buffer(indx)
216 radsq=rn1*rn1+rn2*rn2
217 IF(radsq > 1.0)
GO TO 10
222 al=sqrt(-2.0*log(radsq))
integer, parameter mps
single precision
data for random generator
integer(mpi), parameter ir
integer(mpi), dimension(0:nb+1) mbuff
integer(mpi), parameter ia
integer(mpi), parameter iq
integer(mpi), parameter nb
real(mps), parameter aeps
integer(mpi), parameter im
real(mps), parameter scalin
real(mps) function uran()
Random number U(0,1) using RANSHI.
subroutine gbrshi(n, a)
F.Gutbrod random number generator.
real(mps) function gran()
Gauss random number.
subroutine gbrtim
GBRSHI initialization using TIME().
subroutine gbrvin(jseed, jwarm)
initialize, but only once