12integer ist0,ist1,jst0,jst1
13integer i1,i2,i3,j1,j2,j3
17real(8),
allocatable :: evalfv(:,:)
18complex(8),
allocatable :: evecfv(:,:,:),evecsv(:,:)
46 write(*,
'("Info(fermisurfbxsf): ",I6," of ",I6," k-points")') ik,
nkpt
49 call eveqn(ik,evalfv,evecfv,evecsv)
53deallocate(evalfv,evecfv,evecsv)
72 open(50,file=
'FERMISURF_UP.bxsf',form=
'FORMATTED')
75 open(50,file=
'FERMISURF_DN.bxsf',form=
'FORMATTED')
79 open(50,file=
'FERMISURF.bxsf',form=
'FORMATTED')
88 ist0=min(ist0,ist); ist1=max(ist1,ist)
92 write(50,
'(" BEGIN_INFO")')
93 write(50,
'(" # Band-XCRYSDEN-Structure-File for Fermi surface plotting")')
94 write(50,
'(" # created by Elk version ",I0,".",I0,".",I0)')
version
95 write(50,
'(" # Launch as: xcrysden --bxsf FERMISURF(_UP/_DN).bxsf")')
96 write(50,
'(" Fermi Energy: ",G18.10)') 0.d0
97 write(50,
'(" END_INFO")')
98 write(50,
'(" BEGIN_BLOCK_BANDGRID_3D")')
99 write(50,
'(" band_energies")')
100 write(50,
'(" BANDGRID_3D_BANDS")')
102 write(50,
'(3I6)')
ngridk(:)+1
103 write(50,
'(3G18.10)') 0.d0,0.d0,0.d0
105 write(50,
'(3G18.10)')
bvec(:,i)
108 write(50,
'(" BAND: ",I4)') ist
121 write(50,
'(" END_BANDGRID_3D")')
122 write(50,
'(" END_BLOCK_BANDGRID_3D")')
126write(*,
'("Info(fermisurfbxsf):")')
128 write(*,
'(" 3D Fermi surface data written to FERMISURF_UP.bxsf and &
129 &FERMISURF_DN.bxsf")')
131 write(*,
'(" 3D Fermi surface data written to FERMISURF.bxsf")')
133write(*,
'(" for plotting with XCrysDen (Fermi energy set to zero)")')
135write(*,
'(" Launch as: xcrysden --bxsf FERMISURF(_UP/_DN).bxsf")')
real(8), dimension(3, 3) bvec
integer, dimension(3) ngridk
integer, dimension(3), parameter version
integer, dimension(:,:,:), allocatable ivkik
real(8), dimension(:,:), allocatable evalsv