16real(8),
allocatable :: vmt(:,:),vir(:)
17real(8),
allocatable :: bmt(:,:,:),bir(:,:)
18complex(8),
allocatable :: evecsv(:,:)
49 open(60,file=
'HF_INFO'//trim(
filext),form=
'FORMATTED')
51 open(61,file=
'TOTENERGY'//trim(
filext),form=
'FORMATTED')
53 open(62,file=
'FERMIDOS'//trim(
filext),form=
'FORMATTED')
55 if (
spinpol)
open(63,file=
'MOMENT'//trim(
filext),form=
'FORMATTED')
57 open(64,file=
'GAP'//trim(
filext),form=
'FORMATTED')
59 open(66,file=
'DTOTENERGY'//trim(
filext),form=
'FORMATTED')
61 if (
spinpol)
open(68,file=
'MOMENTM'//trim(
filext),form=
'FORMATTED')
70 call writebox(60,
"Self-consistent loop started")
74 write(str,
'("Loop number : ",I0)')
iscl
77 write(*,
'("Info(hartfock): self-consistent loop number : ",I4)')
iscl
82 write(60,
'("Reached self-consistent loops maximum")')
103 call eveqnhf(ik,vmt,vir,bmt,bir,evecsv)
139 write(60,
'("Density of states at Fermi energy : ",G18.10)')
fermidos
140 write(60,
'(" (states/Hartree/unit cell)")')
142 write(60,
'("Estimated indirect band gap : ",G18.10)')
bandgap(1)
143 write(60,
'(" from k-point ",I6," to k-point ",I6)')
ikgap(1),
ikgap(2)
144 write(60,
'("Estimated direct band gap : ",G18.10)')
bandgap(2)
145 write(60,
'(" at k-point ",I6)')
ikgap(3)
164 write(64,
'(G24.14)')
bandgap(1)
173 write(60,
'("Absolute change in total energy (target) : ",G18.10," (",&
179 write(60,
'("Energy convergence target achieved")')
184 write(66,
'(G18.10)') de
197 call writebox(60,
"Self-consistent loop stopped")
201 write(60,
'("Wrote STATE.OUT")')
subroutine eveqnhf(ikp, vmt, vir, bmt, bir, evecsvp)
subroutine genkmat(tfv, tvclcr)
subroutine getevecsv(fext, ikp, vpl, evecsv)
subroutine hflocal(vmt, vir, bmt, bir)
integer, dimension(3) ikgap
real(8), dimension(2) bandgap
real(8), dimension(3) momtot
real(8), dimension(:,:), allocatable vkl
real(8), dimension(:,:), allocatable occsv
real(8), dimension(:,:), allocatable evalsv
subroutine holdthd(nloop, nthd)
subroutine putevalsv(fext, ik, evalsv_)
subroutine putevecsv(fext, ik, evecsv)
subroutine putoccsv(fext, ik, occsvp)
subroutine writebox(fnum, str)
subroutine writechg(fnum)
subroutine writeengy(fnum)
subroutine writeforces(fnum)
subroutine writeinfo(fnum)
subroutine writemom(fnum)