TIMEEV does not write out dielectric function for IEPSILON>1
When running ALGO=TIMEEV, only the 11 component of the dielectric tensor is written out. Specifically, IEPSILON=1 produces the expected output for the dielectric tensor; IEPSILON=2,3 write out all zeros; IEPSILON=4 writes out the 11 component correctly and then all zeros.
I believe this is due to a bug in SUBROUTINE XML_EPSILON_E_DIR where EPSILON(:,:,:) is passed correctly but then declared internally as COMPLEX(q) :: EPSILON(1:NEDOS,3) when it should be COMPLEX(q) :: EPSILON(1:NEDOS,3,3) to be consistent with the declaration in time_propagation.F. Thereafter, the arrays should be written out as:
! cap values to avoid ****** output
DO N=1,Nedos
tmp(1)= E(N)
DO I=DIR_MIN,DIR_MAX
tmp(2+I-DIR_MIN)= MIN(AIMAG(EPSILON(N,I,I)),99999._q)
ENDDO
CALL XML_ROW_DATA( tmp(1:2+DIR_MAX-DIR_MIN), form='(F10.4,1X)')
ENDDO
and similarly for the real part.
This bug affects VASP 6.6.0 and 6.6.1 (possibly prior versions too but I did not check those).
Also, is there a reason that the off-diagonal components are not computed when using TIMEEV?