[memory] pdos calculations and eigenvalue array
There is an unnecessary memory usage in PDOS calculations when using very high PDOS kpoints.
The PDOS calculations only ever require 1 array of eigenvalues corresponding to the number of states. This is because we don't store the values subsequently.
A simple fix would be to have a local array in each of the routines
pdos*.F with this and omit all use of
Additionally it might be nice to have an additional file
siesta.PDOS.EIG which contains the full eigenvalue spectrum? Currently
.EIG is a bit bad to use for DOS since it contains the SCF eigenvalues which are typically not having the same precision as what is required for accurate DOS calculations. In master we have
kpoint_dos.F90 which is the default for LDOS+PDOS. So perhaps we should have additional files:
siesta.[PL]DOS.EIG for the explicit calculations.
Note, the same won't apply to LDOS since that requires the full set of eigenvalues, on the other hand
eo does not contain SCF eigenvalues.