Obscure G-ordering (?) problem
Primitive lattice vectors (variables "at", "bg") are written to and read from xml file. There can be a small loss of precision (presumably the last bit) in this process. Under some rare but not impossible circumstances, this may lead to errors, as demonstrated in the attached examples scf0.in and bands0.in. Note that there is no such problem for examples scf.in and bands.in, corresponding to the same system (note the energy) but using ibrav=-5 instead of ibrav=0. Also note that the problem disappears if, in the block starting at line 1848 of PW/src/input.f90 and executed for calculation='bands', the call to "read_conf_from_file", or just to "recips", is commented out, or if "at" is not read, or is read unformatted.
The problem is visibile in the difference between scf and recomputed eigenvalues, but it shows up already when the charge density is read: note the large negative charge. This clearly points to a mismatch between the ordering of G-vectors in data files and the expected ordering (recomputed) when data is read (NB: I have no hard evidence for this but nothing else may explain the observed phenomenology).
While rare, and likely related to the usage of ibrav=0 for lattices possessing some symmetry, this points to a deeper problem: the ordering of G-vectors is too sensitive to anything, and we should either 1) not rely upon its reproducibility (i.e. use the ordering saved to file), or 2) make it more robust with respect to small differences.
Note that something similar emerged in phonon calculations as well: see the call to "recips" in PW/src/pw_restart_new.f90, line 1081 and the FIXME just above it.
Thanks to Jung-Hoon Lee for pointing out this problem.
EDIT: data attached strange.tar.gz