36 write(str,
'("Elk code version ",I0,".",I0,".",I0)')
version 38 call date_and_time(date=dat,time=tim)
40 write(fnum,
'("Date (YYYY-MM-DD) : ",A4,"-",A2,"-",A2)') dat(1:4),dat(5:6), &
42 write(fnum,
'("Time (hh:mm:ss) : ",A2,":",A2,":",A2)') tim(1:2),tim(3:4), &
46 write(fnum,
'("Using MPI, number of processes : ",I0)')
np_mpi 50 write(fnum,
'("Notes :")')
52 write(fnum,
'(A)') trim(
notes(i))
56 write(fnum,
'("All units are atomic (Hartree, Bohr, etc.)")')
60 call writebox(fnum,
"Geometry optimisation run resuming from STATE.OUT")
62 call writebox(fnum,
"Geometry optimisation starting from atomic densities")
65 call writebox(fnum,
"Ground-state Hartree-Fock run")
67 call writebox(fnum,
"Reduced density matrix functional theory run")
70 call writebox(fnum,
"Ground-state run resuming from STATE.OUT")
72 call writebox(fnum,
"Ground-state run starting from atomic densities")
76 write(fnum,
'("Lattice vectors :")')
81 write(fnum,
'("Reciprocal lattice vectors :")')
86 write(fnum,
'("Unit cell volume : ",G18.10)')
omega 87 write(fnum,
'("Brillouin zone volume : ",G18.10)')
omegabz 89 write(fnum,
'("Muffin-tin inner radius fraction : ",G18.10)')
fracinr 92 write(fnum,
'("Nuclei treated as point charges")')
94 write(fnum,
'("Nuclei treated as charged spheres")')
98 write(fnum,
'("Species : ",I4," (",A,")")') is,trim(
spsymb(is))
99 write(fnum,
'(" parameters loaded from : ",A)') trim(
spfname(is))
100 write(fnum,
'(" name : ",A)') trim(
spname(is))
101 write(fnum,
'(" nuclear charge : ",G18.10)')
spzn(is)
102 write(fnum,
'(" electronic charge : ",G18.10)')
spze(is)
103 write(fnum,
'(" atomic mass : ",G18.10)')
spmass(is)
104 write(fnum,
'(" muffin-tin radius : ",G18.10)')
rmt(is)
105 write(fnum,
'(" number of radial points in muffin-tin : ",I6)')
nrmt(is)
106 write(fnum,
'(" number on inner part of muffin-tin : ",I6)')
nrmti(is)
107 write(fnum,
'(" approximate nuclear radius : ",G18.10)')
rnucl(is)
108 write(fnum,
'(" number of mesh points to nuclear radius : ",I6)')
nrnucl(is)
109 write(fnum,
'(" atomic positions (lattice), magnetic fields (Cartesian) :")')
111 write(fnum,
'(I4," : ",3F12.8," ",3F12.8)') ia,
atposl(:,ia,is), &
116 write(fnum,
'("Total number of atoms per unit cell : ",I4)')
natmtot 117 write(fnum,
'("Total muffin-tin volume : ",G18.10)')
omegamt 118 write(fnum,
'(" ratio of muffin-tin to unit cell volume : ",G18.10)') &
121 write(fnum,
'("Spin treatment :")')
123 write(fnum,
'(" spin-polarised")')
125 write(fnum,
'(" spin-unpolarised")')
128 write(fnum,
'(" spin-orbit coupling")')
131 write(fnum,
'(" spin-polarised core states")')
134 write(fnum,
'(" global magnetic field (Cartesian) : ",3G18.10)')
bfieldc 136 write(fnum,
'(" non-collinear magnetisation")')
138 write(fnum,
'(" collinear magnetisation in z-direction")')
142 write(fnum,
'(" magnetic dipole field included")')
144 write(fnum,
'(" spin and current contribution")')
146 write(fnum,
'(" only spin contribution")')
150 write(fnum,
'(" spin-spiral state assumed")')
151 write(fnum,
'(" q-vector (lattice) : ",3G18.10)')
vqlss 152 write(fnum,
'(" q-vector (Cartesian) : ",3G18.10)')
vqcss 153 write(fnum,
'(" q-vector length : ",G18.10)') sqrt(
vqcss(1)**2 &
157 write(fnum,
'(" fixed spin moment (FSM) calculation, type : ",I4)')
fsmtype 159 write(fnum,
'(" only moment direction is fixed")')
163 write(fnum,
'(" fixing total moment to (Cartesian) :")')
164 write(fnum,
'(" ",3G18.10)')
momfix 167 write(fnum,
'(" fixing local muffin-tin moments to (Cartesian) :")')
169 write(fnum,
'(" species : ",I4," (",A,")")') is,trim(
spsymb(is))
171 write(fnum,
'(" ",I4,3G18.10)') ia,
mommtfix(:,ia,is)
176 write(fnum,
'(" scaled spin exchange-correlation enabled")')
177 write(fnum,
'(" scaling factor : ",G18.10)')
sxcscf 181 write(fnum,
'(" fixed tensor moment (FTM) calculation, type : ",I4)')
ftmtype 185 write(fnum,
'("Constant electric field applied across unit cell")')
186 write(fnum,
'(" field strength : ",3G18.10)')
efieldc 188 write(fnum,
'(" magnitude : ",G18.10)') t1
189 write(fnum,
'(" volts/nanometer : ",G18.10)') t1*
ef_si/1.d9
190 write(fnum,
'(" maximum distance from center over which E-field is & 192 write(fnum,
'(" potential at maximum distance : ",G18.10)')
vmaxefc 196 write(fnum,
'("Constant A-field applied across unit cell")')
197 write(fnum,
'(" field strength : ",3G18.10)')
afieldc 200 write(fnum,
'("Number of Bravais lattice symmetries : ",I4)')
nsymlat 201 write(fnum,
'("Number of crystal symmetries : ",I4)')
nsymcrys 203 write(fnum,
'("Crystal has inversion symmetry")')
205 write(fnum,
'("Crystal has no inversion symmetry")')
208 write(fnum,
'("Real symmetric eigensolver will be used")')
210 write(fnum,
'("Complex Hermitian eigensolver will be used")')
214 write(fnum,
'("Radius of sphere used to determine k-point grid density : ",& 217 write(fnum,
'("k-point grid : ",3I6)')
ngridk 218 write(fnum,
'("k-point offset : ",3G18.10)')
vkloff 220 write(fnum,
'("k-point set is not reduced")')
222 write(fnum,
'("k-point set is reduced with full crystal symmetry group")')
224 write(fnum,
'("k-point set is reduced with symmorphic symmetries only")')
227 write(*,
'("Error(writeinfo): undefined k-point reduction type : ",I0)') &
232 write(fnum,
'("Total number of k-points : ",I8)')
nkpt 234 write(fnum,
'("Muffin-tin radius times maximum |G+k| : ",G18.10)')
rgkmax 237 write(fnum,
'(" using largest radius")')
239 write(fnum,
'(" using smallest radius")')
241 write(fnum,
'(" using gkmax = rgkmax / 2")')
243 write(fnum,
'(" using average radius")')
246 write(fnum,
'(" using radius of species ",I4," (",A,")")')
isgkmax, &
250 write(*,
'("Error(writeinfo): isgkmax > nspecies :",2(X,I0))')
isgkmax, &
256 write(fnum,
'("Maximum |G+k| for APW functions : ",G18.10)')
gkmax 257 write(fnum,
'("Maximum (1/2)|G+k|² : ",G18.10)') 0.5d0*
gkmax**2
258 write(fnum,
'("Maximum |G| for potential and density : ",G18.10)')
gmaxvr 259 write(fnum,
'("Constant for pseudocharge density : ",I4)')
npsd 260 write(fnum,
'("Radial integration step length : ",I4)')
lradstp 262 write(fnum,
'("G-vector grid sizes : ",3I6)')
ngridg(:)
263 write(fnum,
'("Number of G-vectors : ",I8)')
ngvec 265 write(fnum,
'("Maximum angular momentum used for")')
266 write(fnum,
'(" APW functions : ",I4)')
lmaxapw 267 write(fnum,
'(" outer part of muffin-tin : ",I4)')
lmaxo 268 write(fnum,
'(" inner part of muffin-tin : ",I4)')
lmaxi 270 write(fnum,
'("Total nuclear charge : ",G18.10)')
chgzn 271 write(fnum,
'("Total core charge : ",G18.10)')
chgcrtot 272 write(fnum,
'("Total valence charge : ",G18.10)')
chgval 273 write(fnum,
'("Total excess charge : ",G18.10)')
chgexs 274 write(fnum,
'("Total electronic charge : ",G18.10)')
chgtot 276 write(fnum,
'("Effective Wigner radius, rₛ : ",G18.10)')
rwigner 278 write(fnum,
'("Number of empty states : ",I4)')
nempty 279 write(fnum,
'("Total number of valence states : ",I4)')
nstsv 280 write(fnum,
'("Total number of core states : ",I4)')
nstcr 283 write(fnum,
'("Conduction state local-orbitals added automatically")')
285 write(fnum,
'("Total number of local-orbitals : ",I4)')
nlotot 288 write(fnum,
'("Using iterative diagonalisation for the first-variational & 289 &eigenvalue equation")')
293 write(fnum,
'("Hartree-Fock calculation using Kohn-Sham states")')
295 write(fnum,
'(" hybrid functional, coefficient : ",G18.10)')
hybridc 298 if (
xctype(1) == 100)
then 299 write(fnum,
'("Using Libxc version ",I0,".",I0,".",I0)') libxcv(:)
302 write(fnum,
'("Optimised effective potential (OEP) and exact exchange (EXX)")')
303 write(fnum,
'(" Phys. Rev. B 53, 7024 (1996)")')
304 write(fnum,
'("Correlation functional : ",3I6)') abs(
xctype(1)),
xctype(2:3)
305 write(fnum,
'(" ",A)') trim(
xcdescr)
307 write(fnum,
'("Exchange-correlation functional : ",3I6)')
xctype(:)
308 write(fnum,
'(" ",A)') trim(
xcdescr)
309 write(fnum,
'(" gradient requirement : ",I4)')
xcgrad 312 write(fnum,
'(" local density approximation (LDA)")')
314 write(fnum,
'(" generalised gradient approximation (GGA)")')
315 else if (any(
xcgrad == [3,4,5,6]))
then 316 write(fnum,
'(" meta-GGA")')
318 write(fnum,
'(" fully deorbitalised functional")')
319 else if (
xcgrad == 6)
then 320 write(fnum,
'(" potential-only functional")')
322 write(fnum,
'(" partially deorbitalised functional")')
323 write(fnum,
'(" using Kohn-Sham orbital kinetic energy density τ(r)")')
324 write(fnum,
'(" kinetic energy functional used for δτ(r'')/δρ(r) : ",3I6)') &
326 write(fnum,
'(" ",A)') trim(
kdescr)
327 write(fnum,
'(" gradient requirement : ",I4)')
kgrad 332 write(fnum,
'("Kohn-Sham density determined via the GW Green''s function")')
336 write(fnum,
'("DFT+U calculation")')
338 write(fnum,
'(" fully localised limit (FLL)")')
339 write(fnum,
'(" see Phys. Rev. B 52, R5467 (1995)")')
340 else if (
dftu == 2)
then 341 write(fnum,
'(" around mean field (AMF)")')
342 write(fnum,
'(" see Phys. Rev. B 49, 14211 (1994)")')
345 write(*,
'("Error(writeinfo): dftu not defined : ",I0)')
dftu 353 write(fnum,
'(" species : ",I4," (",A,")",", l = ",I2,", U = ",F12.8, & 356 write(fnum,
'(" species : ",I4," (",A,")",", l = ",I2)') is, &
358 write(fnum,
'(" Slater integrals are provided as input")')
360 write(fnum,
'(" F^(",I1,") = ",F12.8)') k,
fdu(k,i)
363 write(fnum,
'(" species : ",I4," (",A,")",", l = ",I2)') is, &
365 write(fnum,
'(" Racah parameters are provided as input")')
367 write(fnum,
'(" E^(",I1,") = ",F12.8)') k,
edu(k,i)
370 write(fnum,
'(" species : ",I4," (",A,")",", l = ",I2)') is, &
372 write(fnum,
'(" Slater integrals are calculated by means of Yukawa & 374 write(fnum,
'(" Yukawa potential screening length (a.u.⁻¹) : ",F12.8)') &
377 write(fnum,
'(" species : ",I4," (",A,")",", l = ",I2)') is, &
379 write(fnum,
'(" Slater integrals are calculated by means of Yukawa & 381 write(fnum,
'(" Yukawa potential screening length corresponds to U = ",& 386 if (
task == 300)
then 388 write(fnum,
'("RDMFT calculation")')
389 write(fnum,
'(" see Phys. Rev. B 78, 201103 (2008)")')
390 write(fnum,
'(" RDMFT exchange-correlation type : ",I4)')
rdmxctype 392 write(fnum,
'(" Hartree-Fock functional")')
394 write(fnum,
'(" Power functional, exponent : ",G18.10)')
rdmalpha 398 write(fnum,
'("Smearing type : ",I4)')
stype 399 write(fnum,
'(" ",A)') trim(
sdescr)
401 write(fnum,
'("Automatic determination of smearing width")')
403 write(fnum,
'("Smearing width : ",G18.10)')
swidth 404 write(fnum,
'("Effective electronic temperature (K) : ",G18.10)')
tempk 407 write(fnum,
'("Mixing type : ",I4)')
mixtype 408 write(fnum,
'(" ",A)') trim(
mixdescr)
real(8), dimension(maxspecies) rnucl
integer, dimension(3) ktype
integer, dimension(3) ngridg
integer, dimension(3) xctype
real(8), dimension(0:2 *lmaxdm, maxdftu) fdu
subroutine writeinfo(fnum)
character(256), dimension(maxspecies) spfname
real(8), dimension(3) vkloff
real(8), dimension(3) vqlss
real(8), dimension(3) momfix
integer, dimension(2, maxdftu) isldu
real(8), dimension(3, maxatoms, maxspecies) atposl
real(8), dimension(maxdftu) lamdu
real(8), dimension(0:lmaxdm, maxdftu) edu
real(8), dimension(3, 3) avec
real(8), dimension(maxspecies) spmass
integer, dimension(3) ngridk
real(8), dimension(3) afieldc
real(8), dimension(3, maxatoms, maxspecies) mommtfix
real(8), dimension(maxspecies) rmt
real(8), dimension(3, 3) bvec
real(8), dimension(maxspecies) spze
real(8), dimension(3, maxatoms, maxspecies) bfcmt
real(8), dimension(3) vqcss
integer, dimension(maxspecies) natoms
real(8), dimension(maxdftu) udufix
character(64), dimension(maxspecies) spname
integer, dimension(maxspecies) nrnucl
subroutine writebox(fnum, str)
integer, dimension(3), parameter version
real(8), dimension(maxspecies) spzn
real(8), dimension(2, maxdftu) ujdu
character(256), dimension(:), allocatable notes
integer, dimension(maxspecies) nrmti
real(8), dimension(3) efieldc
character(64), dimension(maxspecies) spsymb
real(8), dimension(3) bfieldc
integer, dimension(maxspecies) nrmt