ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/electrostatic_interface.F90
Revision: 2301
Committed: Thu Sep 15 22:05:21 2005 UTC (18 years, 11 months ago) by gezelter
File size: 3731 byte(s)
Log Message:
Working on adding WOLF

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