-
giannozz authored
- unused array mexx0 was allocated and never deallocated (noticed by Massimiaino Fatica) - a temporary variable was not correctly initialized (most compilers set initial values to zero but this is not guaranteed) - occupancies of Hubbard manifold (variable "ns") were computed independently on all processors, but their consistency was not ensured. Now there is a broadcast in "new_ns" that ensures consistency. While not a bug in principle, in practice this could lead to small divergencies buiding up between the ns on different processors, leading to small divergences of the self-consistency error (dr2), leading to small divergencies of the diagonalization threshold (ethr), leading to different numbers of unconverged eigenvalues on different processors, leading to mysterious MPI crashes. I am not sure about the origin of the divergence, but broadcasting ns seems to fix the problem.
d1bb578d