Advertisement
Guest User

Untitled

a guest
Mar 4th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.       implicit none
  2.       REAL ran1,x,d,V,N
  3.       double precision xNs,xN2s,srxNs,srxN2s,Nx,srxNs2,sigma
  4.       integer K,i,s
  5.       parameter (N=100000,K=1000)
  6. c
  7.       do s=1,K
  8.       x=0
  9.       do i=1,N
  10.       if(ran1(d)<0.5) then
  11.       x=x+1
  12.       else
  13.       x=x-1
  14.       endif
  15.       enddo
  16. c
  17.       xNs=xNs+x
  18.       xN2s=xN2s+x*x
  19. c
  20.       enddo
  21. c
  22.       srxNs= xNs/K
  23.       srxN2s= xN2s/K
  24.       srxNs2=srxNs**2
  25. c
  26.       V=srxN2s-srxNs2
  27.       sigma=sqrt(V)
  28.       write(11,'(10F12.2)')
  29.      & log10(N),log10(sigma),xN2s,xNs,srxNs2,srxN2s,V
  30. c
  31.       end
  32. c
  33. c
  34. c
  35. c
  36.       FUNCTION ran1(idum)
  37.       INTEGER idum,IA,IM,IQ,IR,NTAB,NDIV
  38.       REAL ran1,AM,EPS,RNMX
  39.       PARAMETER (IA=16807,IM=2147483647,AM=1./IM,IQ=127773,IR=2836,
  40.      * NTAB=32,NDIV=1+(IM-1)/NTAB,EPS=1.2e-7,RNMX=1.-EPS)
  41.       INTEGER j,k,iv(NTAB),iy
  42.       SAVE iv,iy
  43.       DATA iv /NTAB*0/, iy /0/
  44.       if (idum.le.0.or.iy.eq.0) then
  45.       idum=max(-idum,1)
  46.       do 11 j=NTAB+8,1,-1
  47.       k=idum/IQ
  48.       idum=IA*(idum-k*IQ)-IR*k
  49.       if (idum.lt.0) idum=idum+IM
  50.       if (j.le.NTAB) iv(j)=idum
  51.  11     continue
  52.       iy=iv(1)
  53.       endif
  54.       k=idum/IQ
  55.       idum=IA*(idum-k*IQ)-IR*k
  56.       if (idum.lt.0) idum=idum+IM
  57. c
  58.       j=1+iy/NDIV
  59.       iy=iv(j)
  60.       iv(j)=idum
  61.       ran1=min(AM*iy,RNMX)
  62.       return
  63.       END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement