ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/atype.F90
(Generate patch)

Comparing trunk/OOPSE-4/src/UseTheForce/DarkSide/atype.F90 (file contents):
Revision 1930 by gezelter, Wed Jan 12 22:41:40 2005 UTC vs.
Revision 2428 by chuckv, Mon Nov 14 22:03:11 2005 UTC

# Line 49 | Line 49 | module atype_module
49  
50    type (Vector), pointer, public :: atypes => null()
51  
52 +
53    public :: new_atype
54 +  public :: delete_atypes
55 +
56    
57 +
58   contains
59 <  
59 >
60    subroutine new_atype(ident, is_Directional, is_LennardJones, &
61 <       is_Electrostatic, is_Charge, is_Dipole, is_Sticky, is_GayBerne, &
62 <       is_EAM, is_Shape, is_FLARB, status)
63 <    
61 >       is_Electrostatic, is_Charge, is_Dipole, is_Quadrupole, &
62 >       is_Sticky, is_StickyPower, is_GayBerne, is_EAM, is_Shape, &
63 >       is_FLARB,is_SC,is_MEAM, status)
64 >    integer :: myATID, c_ident
65      integer,intent(in) :: ident
66      logical,intent(in) :: is_Directional, is_LennardJones, is_Electrostatic
67 <    logical,intent(in) :: is_Charge, is_Dipole, is_Sticky, is_GayBerne, is_EAM
68 <    logical,intent(in) :: is_Shape, is_FLARB
67 >    logical,intent(in) :: is_Charge, is_Dipole, is_Quadrupole
68 >    logical,intent(in) :: is_Sticky, is_StickyPower, is_GayBerne, is_EAM
69 >    logical,intent(in) :: is_Shape, is_FLARB, is_SC, is_MEAM
70      integer,intent(out) :: status
71  
72      integer :: me
73 <        
73 >
74      status = 0
75 <    
75 >
76      if (.not. associated(atypes)) then
77 <       !! There are 16 properties to worry about for now.  
77 >       !! There are 17 properties to worry about for now.  
78         !! Fix this if needed for more atomic properties
79 <       atypes => initialize(17)
79 >       atypes => initialize(18)
80         if (.not.associated(atypes)) then
81            status = -1
82            return
83         endif
84      endif
85 <    
85 >
86      me = addElement(atypes)
87  
88      call setElementProperty(atypes, me, "c_ident", ident)
83    
89      call setElementProperty(atypes, me, "is_Directional", is_Directional)
90      call setElementProperty(atypes, me, "is_LennardJones", is_LennardJones)
91      call setElementProperty(atypes, me, "is_Electrostatic", is_Electrostatic)
92      call setElementProperty(atypes, me, "is_Charge", is_Charge)
93      call setElementProperty(atypes, me, "is_Dipole", is_Dipole)
94 +    call setElementProperty(atypes, me, "is_Quadrupole", is_Quadrupole)
95      call setElementProperty(atypes, me, "is_Sticky", is_Sticky)
96 +    call setElementProperty(atypes, me, "is_StickyPower", is_StickyPower)
97      call setElementProperty(atypes, me, "is_GayBerne", is_GayBerne)
98      call setElementProperty(atypes, me, "is_EAM", is_EAM)
99      call setElementProperty(atypes, me, "is_Shape", is_Shape)
100      call setElementProperty(atypes, me, "is_FLARB", is_FLARB)
101 <    
101 >    call setElementProperty(atypes, me, "is_SC", is_SC)
102 >    call setElementProperty(atypes, me, "is_MEAM", is_MEAM)
103 >
104    end subroutine new_atype
96  
97 end module atype_module
105  
106 < ! provide interface for c calls....
106 >  subroutine delete_atypes()
107 >    atypes => destroy(atypes)
108 >  end subroutine delete_atypes
109  
101 subroutine makeatype(atp, status)
102  
103  use atype_module, ONLY: new_atype
110  
105 #define __FORTRAN90
106 #include "types/AtomTypeProperties.h"    
111  
108  type(AtomTypeProperties), intent(in) :: atp
109  integer, intent(inout) :: status
112  
113 <  integer :: ident
112 <  logical :: is_Directional, is_LennardJones, is_Electrostatic
113 <  logical :: is_Charge, is_Dipole, is_Sticky, is_GayBerne, is_EAM
114 <  logical :: is_Shape, is_FLARB
113 > end module atype_module
114  
116  ident = atp%ident
117  is_Directional = (atp%is_Directional .ne. 0)
118  is_LennardJones = (atp%is_LennardJones .ne. 0)
119  is_Electrostatic = (atp%is_Charge .ne. 0) .or. (atp%is_Dipole .ne. 0) .and. &
120                     (atp%is_Quadrupole .ne. 0)
121  
122  is_Charge = (atp%is_Charge .ne. 0)
123  is_Dipole = (atp%is_Dipole .ne. 0)
124  is_Sticky = (atp%is_Sticky .ne. 0)
125  is_GayBerne = (atp%is_GayBerne .ne. 0)
126  is_EAM = (atp%is_EAM .ne. 0)
127  is_Shape = (atp%is_Shape .ne. 0)
128  is_FLARB = (atp%is_FLARB .ne. 0)
129
130  call new_atype(ident, is_Directional, is_LennardJones, is_Electrostatic, &
131       is_Charge, is_Dipole, is_Sticky, is_GayBerne, is_EAM, is_Shape, &
132       is_FLARB, status)
133  
134 end subroutine

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines