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