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, 10 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

# Content
1 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 use definitions, ONLY : dp
10 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 use definitions, ONLY : dp
17 real(kind=dp),intent(inout) :: the_alpha
18 call module_setDWA(the_alpha)
19 end subroutine setDampedWolfAlpha
20
21 subroutine setReactionFieldDielectric(the_dielectric)
22 use electrostatic_module, ONLY : module_setRFD => setReactionFieldDielectric
23 use definitions, ONLY : dp
24 real(kind=dp),intent(inout) :: the_dielectric
25 call module_setRFD(the_dielectric)
26 end subroutine setReactionFieldDielectric
27
28 subroutine newElectrostaticType(atp, status)
29
30 use electrostatic_module, ONLY : module_newElectrostaticType => newElectrostaticType
31
32 #define __FORTRAN90
33 #include "types/AtomTypeProperties.h"
34
35 type(AtomTypeProperties), intent(in) :: atp
36 integer, intent(inout) :: status
37
38 integer :: ident
39 logical :: is_Electrostatic, is_Charge, is_Dipole
40 logical :: is_SplitDipole, is_Quadrupole, is_Tap
41
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 is_Tap = (atp%is_StickyPower .ne. 0)
51
52 call module_newElectrostaticType(ident, is_Charge, is_Dipole, &
53 is_SplitDipole, is_Quadrupole, is_Tap, status)
54
55 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
66 call module_setCharge(ident, charge, status)
67
68 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
79 call module_setDipoleMoment(ident, dipole_moment, status)
80
81 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
92 call module_setSplitDipoleDistance(ident, split_dipole_distance, status)
93
94 end subroutine setSplitDipoleDistance
95
96 subroutine setQuadrupoleMoments(ident, quadrupole_moments, status)
97
98 use electrostatic_module, ONLY : module_setQuadrupoleMoments => setQuadrupoleMoments
99
100 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
105 call module_setQuadrupoleMoments(ident, quadrupole_moments, status)
106
107 end subroutine setQuadrupoleMoments
108
109 subroutine destroyElectrostaticTypes()
110 use electrostatic_module, ONLY: m_destroyElectrostaticTypes =>destroyElectrostaticTypes
111
112 call m_destroyElectrostaticTypes()
113
114 end subroutine destroyElectrostaticTypes