17 integer,
parameter ::
dp = kind(1.0d0)
36 character(len=*),
intent(in) :: filename
38 integer,
intent(in) :: npts
40 real(
dp),
allocatable :: loads(:)
41 real(
dp),
intent(in) :: eigenvals(:), emax, emin, gamma
45 de = (emax-emin)/real(npts)
47 allocate(loads(
size(eigenvals)))
50 write(io,*)
"# Energy DOS"
52 write(io,*) emin + de*i,
lorentz(emin + de*i, eigenvals, loads, gamma)
60 do i = 1,
size(eigenvals,dim=1)
61 write(io,*) i, eigenvals(i)
76 real(
dp) function
lorentz(energy, eigenvals, loads, gamma)
79 real(
dp) :: auxfactor, auxterm, pi
80 real(
dp),
intent(in) :: gamma, eigenvals(:), energy, loads(:)
82 nstates =
size(eigenvals,dim=1)
83 pi = 3.14159265358979323846264338327950_dp
86 auxfactor = gamma/(2.0_dp*pi)
87 auxterm = (gamma/2.0_dp)**2
A module to compute the Density of state (DOS) and lDOS.
subroutine, public prg_write_tdos(eigenvals, gamma, npts, emin, emax, filename)
Writes the total DOS into a file. Where .
real(dp) function lorentz(energy, eigenvals, loads, Gamma)
Lorentzian Function.
Module to handle input output files for the PROGRESS lib.
subroutine, public prg_open_file(io, name)
Opens a file to write.
Periodic table of elements.