c plots simple band structure.
c sets the resolution of graphs.
parameter(ne=1024)
dimension b1(ne),b2(ne)
c sets the hopping parameter.
c sets will-be-half-the-band-gap, delta.
write(*,88)
88 format('Enter values for hopping, delta')
read(*,*) t,delta
c establishes a value for pi.
pi=3.14159265
c sets the Brilloin zone.
dq=pi/1024
dq1=pi/424
dq2=pi/2.0/300
c draws bands in (1,0) direction.
do 1 i=1,424
qx1=i*dq1
e=-2.0*t*(1+cos(qx1))
b1(i)=-sqrt(e**2+delta**2)
b2(i)=sqrt(e**2+delta**2)
1 continue
c draws bands on edge.
do 2 i=425,724
qx2=(i-424)*dq2
e=-2.0*t*(cos(pi-qx2)+cos(qx2))
b1(i)=-sqrt(e**2+delta**2)
b2(i)=sqrt(e**2+delta**2)
2 continue
c draws bands in (1,1) direction.
do 3 i=725,1024
qx3=(i-724)*dq2
e=-4.0*t*(cos(pi/2-qx3))
b1(i)=-sqrt(e**2+delta**2)
b2(i)=sqrt(e**2+delta**2)
3 continue
c outputs results.
open(20,file='Band.dat',status='new')
do 4 i=1,ne
qx=i*dq
write(20,21) qx,b1(i),b2(i)
21 format(f10.4,6e18.7)
4 continue
stop
end