function gaussdev(idum) integer idum real gaussdev c uses RAN1 c to make a normally distributed deviate with zero mean and unit variance c integer iset real fac,gset,rsq,v1,v2,ran1 save iset,gset data iset/0/ if(iset.eq.0) then 1 v1=2.*ran1(idum)-1 v2=2.*ran1(idum)-1 rsq=v1**2+v2**2 if(rsq.ge.1..or.rsq.eq.0.) goto 1 fac=sqrt(-2.*log(rsq)/rsq) gset=v1*fac gaussdev=v2*fac iset=1 else gaussdev=gset iset=0 endif return end