Hi Sergey,
The code works well and can indeed reduce the number of required SCF iterations considerably. There is one caveat though, I had to add the following lines to qs_initial_guess.F before the call to
CALL calculate_atomic_orbitals(atomic_kind, qs_kind, iunit=ounit, &
pmat=pmat(ikind)%mat, nocc=nocc)
in SUBROUTINE calculate_atomic_block_dm
write(*,*) ikind, nkind
write(*,*) nocc
write(*,*) TRIM(atomic_kind%name)
Without them I always got an undefined reference error and cp2k crashed, with them everything works as intended. This happens only with the ATOMIC_RESTART. Using the ATOMIC guess cp2k runs without the print statements.
To compile cp2k I use the toolchain with gfortran both on Piz Daint and a local cluster.
Thanks again for the feature,
Fabian