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: 2095
Committed: Wed Mar 9 15:44:59 2005 UTC (19 years, 4 months ago) by gezelter
File size: 2527 byte(s)
Log Message:
new electrostatic module

File Contents

# User Rev Content
1 gezelter 2095 subroutine newElectrostaticType(atp, status)
2    
3     use electrostatic_module, ONLY : module_newElectrostaticType => newElectrostaticType
4    
5     #define __FORTRAN90
6     #include "types/AtomTypeProperties.h"
7    
8     type(AtomTypeProperties), intent(in) :: atp
9     integer, intent(inout) :: status
10    
11     integer :: ident
12     logical :: is_Electrostatic, is_Charge, is_Dipole
13     logical :: is_SplitDipole, is_Quadrupole
14    
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    
24     call module_newElectrostaticType(ident, is_Charge, is_Dipole, &
25     is_SplitDipole, is_Quadrupole, status)
26    
27     end subroutine newElectrostaticType
28    
29     subroutine setCharge(ident, charge, status)
30    
31     use electrostatic_module, ONLY : module_setCharge => setCharge
32    
33     integer, parameter :: DP = selected_real_kind(15)
34     integer,intent(inout) :: ident
35     real(kind=dp),intent(inout) :: charge
36     integer,intent(inout) :: status
37    
38     call module_setCharge(ident, charge, status)
39    
40     end subroutine setCharge
41    
42     subroutine setDipoleMoment(ident, dipole_moment, status)
43    
44     use electrostatic_module, ONLY : module_setDipoleMoment => setDipoleMoment
45    
46     integer, parameter :: DP = selected_real_kind(15)
47     integer,intent(inout) :: ident
48     real(kind=dp),intent(inout) :: dipole_moment
49     integer,intent(inout) :: status
50    
51     call module_setDipoleMoment(ident, dipole_moment, status)
52    
53     end subroutine setDipoleMoment
54    
55     subroutine setSplitDipoleDistance(ident, split_dipole_distance, status)
56    
57     use electrostatic_module, ONLY : module_setSplitDipoleDistance => setSplitDipoleDistance
58    
59     integer, parameter :: DP = selected_real_kind(15)
60     integer,intent(inout) :: ident
61     real(kind=dp),intent(inout) :: split_dipole_distance
62     integer,intent(inout) :: status
63    
64     call module_setSplitDipoleDistance(ident, split_dipole_distance, status)
65    
66     end subroutine setSplitDipoleDistance
67    
68     subroutine setQuadrupoleMoments(ident, quadrupole_moments, status)
69    
70     use electrostatic_module, ONLY : module_setQuadrupoleMoments => setQuadrupoleMoments
71    
72     integer, parameter :: DP = selected_real_kind(15)
73     integer,intent(inout) :: ident
74     real(kind=dp),intent(inout),dimension(3) :: quadrupole_moments
75     integer,intent(inout) :: status
76    
77     call module_setQuadrupoleMoments(ident, quadrupole_moments, status)
78    
79     end subroutine setQuadrupoleMoments