ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/electrostatic_interface.F90
Revision: 2303
Committed: Fri Sep 16 19:00:12 2005 UTC (18 years, 11 months ago) by chrisfen
File size: 3830 byte(s)
Log Message:
it builds now, but there are known issues - particularly with reaction field...

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