10 |
|
#endif |
11 |
|
implicit none |
12 |
|
|
13 |
+ |
PRIVATE |
14 |
|
real(kind=dp), save :: rrf = 0.0 |
15 |
|
real(kind=dp), save :: rt = 0.0 |
16 |
< |
real(kind=dp), save :: rrfsq = 0.0 |
16 |
< |
real(kind=dp), save :: pre = 0.0 |
16 |
> |
real(kind=dp), save :: pre = 0.0 |
17 |
|
logical, save :: dipole_initialized = .false. |
18 |
|
|
19 |
+ |
|
20 |
+ |
public::setCutoffsDipole |
21 |
+ |
public::do_dipole_pair |
22 |
+ |
|
23 |
|
contains |
24 |
|
|
25 |
< |
subroutine initialize_dipole(this_rrf, this_rt) |
25 |
> |
subroutine setCutoffsDipole(this_rrf, this_rt) |
26 |
|
real(kind=dp), intent(in) :: this_rrf, this_rt |
27 |
|
rrf = this_rrf |
28 |
|
rt = this_rt |
29 |
< |
rrfsq = rrf * rrf |
26 |
< |
! pre converts from mu in units of debye to kcal/mol |
29 |
> |
! pre converts from mu in units of debye to kcal/mol |
30 |
|
pre = 14.38362_dp |
31 |
|
|
32 |
|
dipole_initialized = .true. |
33 |
|
|
34 |
|
return |
35 |
< |
end subroutine initialize_dipole |
35 |
> |
end subroutine setCutoffsDipole |
36 |
|
|
34 |
– |
|
37 |
|
subroutine do_dipole_pair(atom1, atom2, d, rij, r2, pot, u_l, f, t, & |
38 |
|
do_pot, do_stress) |
39 |
|
|
86 |
|
call getElementProperty(atypes, me1, "dipole_moment", mu1) |
87 |
|
call getElementProperty(atypes, me2, "dipole_moment", mu2) |
88 |
|
|
87 |
– |
|
89 |
|
if (rij.le.rrf) then |
89 |
– |
|
90 |
|
|
91 |
– |
|
91 |
|
if (rij.lt.rt) then |
92 |
|
taper = 1.0d0 |
93 |
|
dtdr = 0.0d0 |