16 real(8),
allocatable :: vmt(:,:),vir(:),bmt(:,:,:),bir(:,:)
17 complex(8),
allocatable :: evecsv(:,:)
45 allocate(bmt(1,1,1),bir(1,1))
50 open(60,file=
'HF_INFO'//trim(
filext),form=
'FORMATTED')
52 open(61,file=
'TOTENERGY'//trim(
filext),form=
'FORMATTED')
54 open(62,file=
'FERMIDOS'//trim(
filext),form=
'FORMATTED')
56 if (
spinpol)
open(63,file=
'MOMENT'//trim(
filext),form=
'FORMATTED')
58 open(64,file=
'GAP'//trim(
filext),form=
'FORMATTED')
60 open(66,file=
'DTOTENERGY'//trim(
filext),form=
'FORMATTED')
62 if (
spinpol)
open(68,file=
'MOMENTM'//trim(
filext),form=
'FORMATTED')
71 call writebox(60,
"Self-consistent loop started")
75 write(str,
'("Loop number : ",I0)')
iscl 78 write(*,
'("Info(hartfock): self-consistent loop number : ",I4)')
iscl 83 write(60,
'("Reached self-consistent loops maximum")')
104 call eveqnhf(ik,vmt,vir,bmt,bir,evecsv)
140 write(60,
'("Density of states at Fermi energy : ",G18.10)')
fermidos 141 write(60,
'(" (states/Hartree/unit cell)")')
143 write(60,
'("Estimated indirect band gap : ",G18.10)')
bandgap(1)
144 write(60,
'(" from k-point ",I6," to k-point ",I6)')
ikgap(1),
ikgap(2)
145 write(60,
'("Estimated direct band gap : ",G18.10)')
bandgap(2)
146 write(60,
'(" at k-point ",I6)')
ikgap(3)
165 write(64,
'(G24.14)')
bandgap(1)
174 write(60,
'("Absolute change in total energy (target) : ",G18.10," (",& 180 write(60,
'("Energy convergence target achieved")')
185 write(66,
'(G18.10)') de
198 call writebox(60,
"Self-consistent loop stopped")
202 write(60,
'("Wrote STATE.OUT")')
229 deallocate(vmt,vir,bmt,bir)
subroutine getevecsv(fext, ikp, vpl, evecsv)
real(8), dimension(3) momtot
integer, dimension(3) ikgap
real(8), dimension(:,:), allocatable evalsv
subroutine putevalsv(fext, ik, evalsv_)
subroutine writeinfo(fnum)
real(8), dimension(:,:), allocatable occsv
real(8), dimension(:,:), allocatable vkl
subroutine hflocal(vmt, vir, bmt, bir)
subroutine writechg(fnum)
subroutine writebox(fnum, str)
subroutine writeforces(fnum)
subroutine holdthd(nloop, nthd)
subroutine putevecsv(fext, ik, evecsv)
subroutine genkmat(tfv, tvclcr)
subroutine putoccsv(fext, ik, occsvp)
real(8), dimension(2) bandgap
subroutine writemom(fnum)
subroutine eveqnhf(ikp, vmt, vir, bmt, bir, evecsvp)
subroutine writeengy(fnum)