v3.0
May 2026
- Authorship/copyright transition: sole copyright Lazaro Calderin (2026-).
- Supported QE versions (16 total):
      5.1.2   5.2.1   5.4.0
      6.0     6.1     6.2.1   6.3     6.4.1
      7.0     7.1     7.2     7.3     7.3.1   7.4     7.4.1   7.5
  Select with `make QEV=<version>` from the root Makefile.
- Ported to QE 7.x. Replaces the davcio/iotk reading pattern with
  pw_restart_new::read_collected_wfc and read_file_new(needwf=.false.),
  following PP/src/pp_example.f90.
- Build system: per-version inner makefiles for every supported QE,
  organized via DQEV preprocessor flags (QE7 / QE7N / QE75 within
  the 7.x family).
- gfortran / GCC 15 compatible across all versions.

v2.3.5
Mar 2023
- Fixed bug.
- Clean up.

v2.3.4
Apr 2019
- Ported to QE 6.3 and 6.4.1

v2.3.3
- Update to work with QE 6.2.1
- Review of the workflows

v2.3.2
Feb 25, 2017
- Fixing the sign of sigma2 in both modules (sigma2 and sigma2_w)
- Fixing the magnitude of the absorption coef.
- Implemented the calculation of sigma2 or sigma2_w but not both
- Updated of the sigma2 modules to use the notintra flag
- Reprogramed the intra band decomposition of the sigma2 modules
- Reviewed the issue of low speed for epsilon1 (took the wgrid(iw)**2 variable to just the outer loop)
- Eliminated the writing of the wfc's by the qe input call.
- Added kgec- in front of every data file
- Problem with readgm and npwrecover conficting solved.
- Print out parallel information
- Replace the notintra input keyword by sigma1_notintra and
  added the sigma2_notintra to allow for the option of not
  including intraband contributions for sigma2 when using
  the approximated formulas for sigma1.
- Implemented the calculation of Electron Energy Loss Spectrum
  (in kgrra module which now is kgrrae)

v2.3.1
Nov 16, 2017
- Fixed a problem with write out of the wgrid for epsilon
- Change the epsilon1 name to keep the convention of adding the delta
representation to the name
- Fixed a bug in DC sigma1 tensor decomposition subroutine 
Nov 21, 2017
- Fixed siqma2 names to contain the delta representation as well.
- Fixed units of absorption to in the output 1/m
- Full reference to the KGEC CPC paper given at the output
- Fix reference to npwrecover in the user guide  

v2.3
Sep 18, 2017
- Coded the calculation of the dielectric tensor
- Coded the calculation of the refraction, reflection and absorption coefficients
- Four new modules: kgsigma2_w.f90 (to calculate sigma2/w which is not singular)
  kgepsilon1.f90 kgepsilon2.f90 and kgrra.f90
- introduced new control variables:
  calculate_epsilon1, calculate_epsilon2, calculate_rra
- rest of the files modified accordingly

v2.2

- Reprogrammed the makefiles so they can be used for both
intel and gnu compilers.


v2.1

Major changes:

- Reprogramed for an option to include or not  all the calculation 
of intra band contributions.

- All calculations of DC components coded using the corresponding 
  zero frequency analytical limits.

- Use of either one or the sum of two Gaussians or Lorentzians
implemented and the key deltarep redefined accordingly.

- Values of the deltawidth are written to sigma*dat files.

- G matched widths to obtain the same heights or FWHMs as the 
  Lorentzian are written to the standard output.

- A check of the use of the same number of nodes and tasks
as before when the readgm option is used.

- Calculation of DC and AC components separated and two
new keys introduced dc and ac for direct current and alternating.
dc_only variable eliminated.


TODO
- Calculation of the DC component for the exact and the approximated
formulas using a Lorentzian and a Gaussian matching the width, height
or FWHM of the Lorentzian implemented and a new key 'dc_all' added.

- Implement the calculation for list of delta-widths.

- Exploit symmetries.

