ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/electrostatic_interface.F90
Revision: 2381
Committed: Tue Oct 18 15:01:42 2005 UTC (18 years, 10 months ago) by chrisfen
File size: 3890 byte(s)
Log Message:
merged reaction field with electrostatics.F90

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