Skip to content

Refactoring output partial charges in scf.F90

The following block should not be done in scf.F90

SAFE_ALLOCATE(hirshfeld_charges(1:ions%natoms))
call partial_charges_calculate(gr, st, ions, hirshfeld_charges) 
if(mpi_grp_is_root(mpi_world)) then
  write(iunit,'(a)') 'Partial ionic charges'
  write(iunit,'(a)') ' Ion                     Hirshfeld'  
  do iatom = 1, ions%natoms
    write(iunit,'(i4,a10,f16.3)') iatom, trim(species_label(ions%atom(iatom)%species)), hirshfeld_charges(iatom) 
  end do
end if   
SAFE_DEALLOCATE_A(hirshfeld_charges)

If this is moved to the hirshfeld.F90, we can drop the dependence on the species_m module in scf_m.