--- trunk/OOPSE/libmdtools/do_Forces.F90 2004/01/06 18:54:57 900 +++ trunk/OOPSE/libmdtools/do_Forces.F90 2004/01/13 23:01:43 941 @@ -4,7 +4,7 @@ !! @author Charles F. Vardeman II !! @author Matthew Meineke -!! @version $Id: do_Forces.F90,v 1.45 2004-01-06 18:54:57 chuckv Exp $, $Date: 2004-01-06 18:54:57 $, $Name: not supported by cvs2svn $, $Revision: 1.45 $ +!! @version $Id: do_Forces.F90,v 1.46 2004-01-13 23:01:43 gezelter Exp $, $Date: 2004-01-13 23:01:43 $, $Name: not supported by cvs2svn $, $Revision: 1.46 $ module do_Forces use force_globals @@ -15,6 +15,7 @@ module do_Forces use lj use sticky_pair use dipole_dipole + use charge_charge use reaction_field use gb_pair use vector_class @@ -38,12 +39,14 @@ module do_Forces logical, save :: haveSaneForceField = .false. logical, save :: FF_uses_LJ logical, save :: FF_uses_sticky + logical, save :: FF_uses_charges logical, save :: FF_uses_dipoles logical, save :: FF_uses_RF logical, save :: FF_uses_GB logical, save :: FF_uses_EAM logical, save :: SIM_uses_LJ logical, save :: SIM_uses_sticky + logical, save :: SIM_uses_charges logical, save :: SIM_uses_dipoles logical, save :: SIM_uses_RF logical, save :: SIM_uses_GB @@ -73,6 +76,8 @@ module do_Forces logical :: is_dp = .false. logical :: is_gb = .false. logical :: is_eam = .false. + logical :: is_charge = .false. + real(kind=DP) :: charge = 0.0_DP real(kind=DP) :: dipole_moment = 0.0_DP end type Properties @@ -114,6 +119,15 @@ contains do i = 1, nAtypes call getElementProperty(atypes, i, "is_LJ", thisProperty) PropertyMap(i)%is_LJ = thisProperty + + call getElementProperty(atypes, i, "is_Charge", thisProperty) + PropertyMap(i)%is_Charge = thisProperty + + if (thisProperty) then + call getElementProperty(atypes, i, "charge", thisDPproperty) + PropertyMap(i)%charge = thisDPproperty + endif + call getElementProperty(atypes, i, "is_DP", thisProperty) PropertyMap(i)%is_DP = thisProperty @@ -137,6 +151,7 @@ contains subroutine setSimVariables() SIM_uses_LJ = SimUsesLJ() SIM_uses_sticky = SimUsesSticky() + SIM_uses_charges = SimUsesCharges() SIM_uses_dipoles = SimUsesDipoles() SIM_uses_RF = SimUsesRF() SIM_uses_GB = SimUsesGB() @@ -236,12 +251,16 @@ contains FF_uses_LJ = .false. FF_uses_sticky = .false. + FF_uses_charges = .false. FF_uses_dipoles = .false. FF_uses_GB = .false. FF_uses_EAM = .false. call getMatchingElementList(atypes, "is_LJ", .true., nMatches, MatchList) if (nMatches .gt. 0) FF_uses_LJ = .true. + + call getMatchingElementList(atypes, "is_Charge", .true., nMatches, MatchList) + if (nMatches .gt. 0) FF_uses_charges = .true. call getMatchingElementList(atypes, "is_DP", .true., nMatches, MatchList) if (nMatches .gt. 0) FF_uses_dipoles = .true.