ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-2.0/src/UseTheForce/DarkSide/electrostatic_interface.F90
Revision: 2229
Committed: Tue May 17 22:35:01 2005 UTC (19 years, 2 months ago) by chrisfen
File size: 2760 byte(s)
Log Message:
Modifications to tap.  Also correcting changes to the previous merge that were not caught

File Contents

# User Rev Content
1 gezelter 2095 subroutine newElectrostaticType(atp, status)
2 gezelter 2204
3 gezelter 2095 use electrostatic_module, ONLY : module_newElectrostaticType => newElectrostaticType
4 gezelter 2204
5 gezelter 2095 #define __FORTRAN90
6     #include "types/AtomTypeProperties.h"
7 gezelter 2204
8 gezelter 2095 type(AtomTypeProperties), intent(in) :: atp
9     integer, intent(inout) :: status
10    
11     integer :: ident
12     logical :: is_Electrostatic, is_Charge, is_Dipole
13 chrisfen 2229 logical :: is_SplitDipole, is_Quadrupole, is_Tap
14 gezelter 2095
15     ident = atp%ident
16     is_Electrostatic = ((atp%is_Charge .ne. 0) .or. &
17     (atp%is_Dipole .ne. 0)) .or. &
18     (atp%is_Quadrupole .ne. 0)
19     is_Charge = (atp%is_Charge .ne. 0)
20     is_Dipole = (atp%is_Dipole .ne. 0)
21     is_SplitDipole = (atp%is_SplitDipole .ne. 0)
22     is_Quadrupole = (atp%is_Quadrupole .ne. 0)
23 chrisfen 2229 is_Tap = (atp%is_StickyPower .ne. 0)
24 gezelter 2204
25 gezelter 2095 call module_newElectrostaticType(ident, is_Charge, is_Dipole, &
26 chrisfen 2229 is_SplitDipole, is_Quadrupole, is_Tap, status)
27 gezelter 2204
28 gezelter 2095 end subroutine newElectrostaticType
29    
30     subroutine setCharge(ident, charge, status)
31    
32     use electrostatic_module, ONLY : module_setCharge => setCharge
33    
34     integer, parameter :: DP = selected_real_kind(15)
35     integer,intent(inout) :: ident
36     real(kind=dp),intent(inout) :: charge
37     integer,intent(inout) :: status
38 gezelter 2204
39 gezelter 2095 call module_setCharge(ident, charge, status)
40 gezelter 2204
41 gezelter 2095 end subroutine setCharge
42    
43     subroutine setDipoleMoment(ident, dipole_moment, status)
44    
45     use electrostatic_module, ONLY : module_setDipoleMoment => setDipoleMoment
46    
47     integer, parameter :: DP = selected_real_kind(15)
48     integer,intent(inout) :: ident
49     real(kind=dp),intent(inout) :: dipole_moment
50     integer,intent(inout) :: status
51 gezelter 2204
52 gezelter 2095 call module_setDipoleMoment(ident, dipole_moment, status)
53 gezelter 2204
54 gezelter 2095 end subroutine setDipoleMoment
55    
56     subroutine setSplitDipoleDistance(ident, split_dipole_distance, status)
57    
58     use electrostatic_module, ONLY : module_setSplitDipoleDistance => setSplitDipoleDistance
59    
60     integer, parameter :: DP = selected_real_kind(15)
61     integer,intent(inout) :: ident
62     real(kind=dp),intent(inout) :: split_dipole_distance
63     integer,intent(inout) :: status
64 gezelter 2204
65 gezelter 2095 call module_setSplitDipoleDistance(ident, split_dipole_distance, status)
66 gezelter 2204
67 gezelter 2095 end subroutine setSplitDipoleDistance
68    
69     subroutine setQuadrupoleMoments(ident, quadrupole_moments, status)
70 gezelter 2204
71 gezelter 2095 use electrostatic_module, ONLY : module_setQuadrupoleMoments => setQuadrupoleMoments
72 gezelter 2204
73 gezelter 2095 integer, parameter :: DP = selected_real_kind(15)
74     integer,intent(inout) :: ident
75     real(kind=dp),intent(inout),dimension(3) :: quadrupole_moments
76     integer,intent(inout) :: status
77 gezelter 2204
78 gezelter 2095 call module_setQuadrupoleMoments(ident, quadrupole_moments, status)
79 gezelter 2204
80 gezelter 2095 end subroutine setQuadrupoleMoments
81 chuckv 2189
82     subroutine destroyElectrostaticTypes()
83 chuckv 2194 use electrostatic_module, ONLY: m_destroyElectrostaticTypes =>destroyElectrostaticTypes
84 chuckv 2189
85 chuckv 2194 call m_destroyElectrostaticTypes()
86 chuckv 2189
87     end subroutine destroyElectrostaticTypes