diff --git a/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 b/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 index 2eb91290e4..db2d6c40e0 100644 --- a/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +++ b/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 @@ -19,19 +19,21 @@ SUBROUTINE plugin_forces() USE plugin_flags ! USE cell_base, ONLY : alat, at - USE ions_base, ONLY : tau, nat,amass + USE ions_base, ONLY : tau, nat, amass, ityp USE force_mod, ONLY : force,sigma USE control_flags, ONLY : istep USE ener, ONLY : etot ! IMPLICIT NONE ! - INTEGER:: i,j + INTEGER:: i,j,ia REAL(DP) :: at_plumed(3,3) REAL(DP) :: virial(3,3) REAL(DP) :: volume REAL(DP), ALLOCATABLE :: tau_plumed(:,:) + REAL(DP) :: masses_plumed(nat) ! + masses_plumed = 0.0_DP IF(use_plumed) then IF(ionode)THEN at_plumed=alat*at; ! the cell, rescaled properly @@ -44,9 +46,12 @@ SUBROUTINE plugin_forces() -at_plumed(1,2)*at_plumed(3,3)*at_plumed(2,1) & -at_plumed(1,3)*at_plumed(3,1)*at_plumed(2,2) virial=-sigma*volume - + ! the masses in QE are stored per type, see q-e//Modules/ions_base.f90 + do ia=1,nat + masses_plumed(ia)=amass(ityp(ia)) + end do CALL plumed_f_gcmd("setStep"//char(0),istep) - CALL plumed_f_gcmd("setMasses"//char(0),amass) + CALL plumed_f_gcmd("setMasses"//char(0),masses_plumed) CALL plumed_f_gcmd("setForces"//char(0),force) CALL plumed_f_gcmd("setPositions"//char(0),tau_plumed) CALL plumed_f_gcmd("setBox"//char(0),at_plumed)