ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/electrostatic_interface.F90
Revision: 2409
Committed: Wed Nov 2 20:36:25 2005 UTC (18 years, 9 months ago) by chrisfen
File size: 4084 byte(s)
Log Message:
changing how we deal with summation and screening methods

File Contents

# User Rev Content
1 gezelter 2301 subroutine setElectrostaticSummationMethod(the_ESM)
2     use electrostatic_module, ONLY : module_setESM => setElectrostaticSummationMethod
3     integer,intent(inout) :: the_ESM
4     call module_setESM(the_ESM)
5     end subroutine setElectrostaticSummationMethod
6    
7 chrisfen 2409 subroutine setScreeningMethod(the_SM)
8     use electrostatic_module, ONLY : module_setSM => setScreeningMethod
9     integer,intent(inout) :: the_SM
10     call module_setSM(the_SM)
11     end subroutine setScreeningMethod
12    
13 chrisfen 2381 subroutine setElectrostaticCutoffRadius(the_rcut, the_rsw)
14 gezelter 2301 use electrostatic_module, ONLY : module_setECR => setElectrostaticCutoffRadius
15 chrisfen 2303 use definitions, ONLY : dp
16 gezelter 2301 real(kind=dp), intent(inout) :: the_rcut
17 chrisfen 2381 real(kind=dp), intent(inout) :: the_rsw
18     call module_setECR(the_rcut, the_rsw)
19 gezelter 2301 end subroutine setElectrostaticCutoffRadius
20    
21 chrisfen 2409 subroutine setDampingAlpha(the_alpha)
22     use electrostatic_module, ONLY : module_setDA => setDampingAlpha
23 chrisfen 2303 use definitions, ONLY : dp
24     real(kind=dp),intent(inout) :: the_alpha
25 chrisfen 2409 call module_setDA(the_alpha)
26     end subroutine setDampingAlpha
27 gezelter 2301
28     subroutine setReactionFieldDielectric(the_dielectric)
29     use electrostatic_module, ONLY : module_setRFD => setReactionFieldDielectric
30 chrisfen 2303 use definitions, ONLY : dp
31     real(kind=dp),intent(inout) :: the_dielectric
32 gezelter 2301 call module_setRFD(the_dielectric)
33     end subroutine setReactionFieldDielectric
34    
35 gezelter 2095 subroutine newElectrostaticType(atp, status)
36 gezelter 2204
37 gezelter 2095 use electrostatic_module, ONLY : module_newElectrostaticType => newElectrostaticType
38 gezelter 2204
39 gezelter 2095 #define __FORTRAN90
40     #include "types/AtomTypeProperties.h"
41 gezelter 2204
42 gezelter 2095 type(AtomTypeProperties), intent(in) :: atp
43     integer, intent(inout) :: status
44    
45     integer :: ident
46     logical :: is_Electrostatic, is_Charge, is_Dipole
47 chrisfen 2229 logical :: is_SplitDipole, is_Quadrupole, is_Tap
48 gezelter 2095
49     ident = atp%ident
50     is_Electrostatic = ((atp%is_Charge .ne. 0) .or. &
51     (atp%is_Dipole .ne. 0)) .or. &
52     (atp%is_Quadrupole .ne. 0)
53     is_Charge = (atp%is_Charge .ne. 0)
54     is_Dipole = (atp%is_Dipole .ne. 0)
55     is_SplitDipole = (atp%is_SplitDipole .ne. 0)
56     is_Quadrupole = (atp%is_Quadrupole .ne. 0)
57 chrisfen 2229 is_Tap = (atp%is_StickyPower .ne. 0)
58 gezelter 2204
59 gezelter 2095 call module_newElectrostaticType(ident, is_Charge, is_Dipole, &
60 chrisfen 2229 is_SplitDipole, is_Quadrupole, is_Tap, status)
61 gezelter 2204
62 gezelter 2095 end subroutine newElectrostaticType
63    
64     subroutine setCharge(ident, charge, status)
65    
66     use electrostatic_module, ONLY : module_setCharge => setCharge
67    
68     integer, parameter :: DP = selected_real_kind(15)
69     integer,intent(inout) :: ident
70     real(kind=dp),intent(inout) :: charge
71     integer,intent(inout) :: status
72 gezelter 2204
73 gezelter 2095 call module_setCharge(ident, charge, status)
74 gezelter 2204
75 gezelter 2095 end subroutine setCharge
76    
77     subroutine setDipoleMoment(ident, dipole_moment, status)
78    
79     use electrostatic_module, ONLY : module_setDipoleMoment => setDipoleMoment
80    
81     integer, parameter :: DP = selected_real_kind(15)
82     integer,intent(inout) :: ident
83     real(kind=dp),intent(inout) :: dipole_moment
84     integer,intent(inout) :: status
85 gezelter 2204
86 gezelter 2095 call module_setDipoleMoment(ident, dipole_moment, status)
87 gezelter 2204
88 gezelter 2095 end subroutine setDipoleMoment
89    
90     subroutine setSplitDipoleDistance(ident, split_dipole_distance, status)
91    
92     use electrostatic_module, ONLY : module_setSplitDipoleDistance => setSplitDipoleDistance
93    
94     integer, parameter :: DP = selected_real_kind(15)
95     integer,intent(inout) :: ident
96     real(kind=dp),intent(inout) :: split_dipole_distance
97     integer,intent(inout) :: status
98 gezelter 2204
99 gezelter 2095 call module_setSplitDipoleDistance(ident, split_dipole_distance, status)
100 gezelter 2204
101 gezelter 2095 end subroutine setSplitDipoleDistance
102    
103     subroutine setQuadrupoleMoments(ident, quadrupole_moments, status)
104 gezelter 2204
105 gezelter 2095 use electrostatic_module, ONLY : module_setQuadrupoleMoments => setQuadrupoleMoments
106 gezelter 2204
107 gezelter 2095 integer, parameter :: DP = selected_real_kind(15)
108     integer,intent(inout) :: ident
109     real(kind=dp),intent(inout),dimension(3) :: quadrupole_moments
110     integer,intent(inout) :: status
111 gezelter 2204
112 gezelter 2095 call module_setQuadrupoleMoments(ident, quadrupole_moments, status)
113 gezelter 2204
114 gezelter 2095 end subroutine setQuadrupoleMoments
115 chuckv 2189
116     subroutine destroyElectrostaticTypes()
117 chuckv 2194 use electrostatic_module, ONLY: m_destroyElectrostaticTypes =>destroyElectrostaticTypes
118 chuckv 2189
119 chuckv 2194 call m_destroyElectrostaticTypes()
120 chuckv 2189
121     end subroutine destroyElectrostaticTypes