Files
2016-02-03 18:52:05 +00:00

22 lines
541 B
Fortran

FUNCTION ran4(idum)
INTEGER idum
REAL ran4
CU USES psdes
INTEGER idums,irword,itemp,jflmsk,jflone,lword
REAL ftemp
EQUIVALENCE (itemp,ftemp)
SAVE idums,jflone,jflmsk
DATA idums /0/, jflone /16#3F800000/, jflmsk /16#007FFFFF/
if(idum.lt.0)then
idums=-idum
idum=1
endif
irword=idum
lword=idums
call psdes(lword,irword)
itemp=ior(jflone,iand(jflmsk,irword))
ran4=ftemp-1.0
idum=idum+1
return
END