This commit is contained in:
edoapra 2026-06-29 14:54:04 -07:00
parent 4e2d7deb94
commit f862f56f04
No known key found for this signature in database
GPG key ID: 9E6A0B70826967BA

View file

@ -1,35 +1,35 @@
c
double precision function qmd_ran1(idum)
c
implicit none
c
integer idum,IA,IM,IQ,IR,NTAB,NDIV
double precision AM,EPS,RNMX
c
parameter (IA=16807,IM=2147483647,AM=1./IM,IQ=127773,IR=2836,
& NTAB=32,NDIV=1+(IM-1)/NTAB,EPS=1.2e-7,RNMX=1.-EPS)
c
integer j,k,iv(NTAB),iy
save iv,iy
data iv /NTAB*0/, iy /0/
c
if (idum.le.0.or.iy.eq.0) then
idum=max(-idum,1)
do 11 j=NTAB+8,1,-1
k=idum/IQ
idum=IA*(idum-k*IQ)-IR*k
if (idum.lt.0) idum=idum+IM
if (j.le.NTAB) iv(j)=idum
11 continue
iy=iv(1)
endif
k=idum/IQ
idum=IA*(idum-k*IQ)-IR*k
if (idum.lt.0) idum=idum+IM
j=1+iy/NDIV
iy=iv(j)
iv(j)=idum
qmd_ran1=min(AM*iy,RNMX)
c
return
end
c
double precision function qmd_ran1(idum)
c
implicit none
c
integer idum,IA,IM,IQ,IR,NTAB,NDIV
double precision AM,EPS,RNMX
c
parameter (IA=16807,IM=2147483647,AM=1./IM,IQ=127773,IR=2836,
& NTAB=32,NDIV=1+(IM-1)/NTAB,EPS=1.2e-7,RNMX=1.-EPS)
c
integer j,k,iv(NTAB),iy
save iv,iy
data iv /NTAB*0/, iy /0/
c
if (idum.le.0.or.iy.eq.0) then
idum=max(-idum,1)
do 11 j=NTAB+8,1,-1
k=idum/IQ
idum=IA*(idum-k*IQ)-IR*k
if (idum.lt.0) idum=idum+IM
if (j.le.NTAB) iv(j)=idum
11 continue
iy=iv(1)
endif
k=idum/IQ
idum=IA*(idum-k*IQ)-IR*k
if (idum.lt.0) idum=idum+IM
j=1+iy/NDIV
iy=iv(j)
iv(j)=idum
qmd_ran1=min(AM*iy,RNMX)
c
return
end