c g.f c evaluates bare greens function for 2d kronig-penny model calculation. c r. b. laughlin - 24 jan 07. parameter(n=20) dimension f(n),e(10) complex z,g c establish desired numerical accuracy. eps=0.0001 c fill reciprocal lattice regularization array. x=n**2 beta=-2.0*alog(eps)/x do 1 j=1,n x=j-1 f(j)=exp(-beta*x**2/2.0) 1 continue nn=2*n-1 c open output file. open(7,file=\"output.dat\",status=\"new\") c pick q. qx=0.0 qy=0.0 c loop on energies de=0.01 do 3 i=1,1001 e0=(i-1)*de-4.0 c for this energy generate bare green's function. z=e0+cmplx(0.0,eps) g=0.0 do 2 jj=1,nn do 2 kk=1,nn j=jj-n k=kk-n x=qx+j y=qy+k if(j.lt.0) j=-j if(k.lt.0) k=-k g=g+f(j+1)*f(k+1)/(z-(x**2+y**2)/2.0) 2 continue c clip real part for better plotting gr=real(g) gi=aimag(g) if(gr.gt.50.0) gr=50.0 if(gr.lt.-50.0) gr=-50.0 write(7,20) e0,gr,gi 3 continue 20 format(f10.4,2e18.7) stop end