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