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 1689 by chrisfen, Fri Oct 29 22:28:45 2004 UTC vs.
Revision 2204 by gezelter, Fri Apr 15 22:04:00 2005 UTC

# Line 1 | Line 1
1 + !!
2 + !! Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3 + !!
4 + !! The University of Notre Dame grants you ("Licensee") a
5 + !! non-exclusive, royalty free, license to use, modify and
6 + !! redistribute this software in source and binary code form, provided
7 + !! that the following conditions are met:
8 + !!
9 + !! 1. Acknowledgement of the program authors must be made in any
10 + !!    publication of scientific results based in part on use of the
11 + !!    program.  An acceptable form of acknowledgement is citation of
12 + !!    the article in which the program was described (Matthew
13 + !!    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 + !!    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 + !!    Parallel Simulation Engine for Molecular Dynamics,"
16 + !!    J. Comput. Chem. 26, pp. 252-271 (2005))
17 + !!
18 + !! 2. Redistributions of source code must retain the above copyright
19 + !!    notice, this list of conditions and the following disclaimer.
20 + !!
21 + !! 3. Redistributions in binary form must reproduce the above copyright
22 + !!    notice, this list of conditions and the following disclaimer in the
23 + !!    documentation and/or other materials provided with the
24 + !!    distribution.
25 + !!
26 + !! This software is provided "AS IS," without a warranty of any
27 + !! kind. All express or implied conditions, representations and
28 + !! warranties, including any implied warranty of merchantability,
29 + !! fitness for a particular purpose or non-infringement, are hereby
30 + !! excluded.  The University of Notre Dame and its licensors shall not
31 + !! be liable for any damages suffered by licensee as a result of
32 + !! using, modifying or distributing the software or its
33 + !! derivatives. In no event will the University of Notre Dame or its
34 + !! licensors be liable for any lost revenue, profit or data, or for
35 + !! direct, indirect, special, consequential, incidental or punitive
36 + !! damages, however caused and regardless of the theory of liability,
37 + !! arising out of the use of or inability to use software, even if the
38 + !! University of Notre Dame has been advised of the possibility of
39 + !! such damages.
40 + !!
41 +
42   !! module defines atypes available to simulation
43  
44   module atype_module
# Line 9 | Line 50 | module atype_module
50    type (Vector), pointer, public :: atypes => null()
51  
52    public :: new_atype
53 <  
53 >  public :: delete_atypes
54 >
55   contains
56 <  
56 >
57    subroutine new_atype(ident, is_Directional, is_LennardJones, &
58 <       is_Electrostatic, is_Charge, is_Dipole, is_Sticky, is_GayBerne, &
59 <       is_EAM, is_Shape, is_FLARB, status)
60 <    
58 >       is_Electrostatic, is_Charge, is_Dipole, is_Quadrupole, &
59 >       is_Sticky, is_GayBerne, is_EAM, is_Shape, is_FLARB, status)
60 >
61      integer,intent(in) :: ident
62      logical,intent(in) :: is_Directional, is_LennardJones, is_Electrostatic
63 <    logical,intent(in) :: is_Charge, is_Dipole, is_Sticky, is_GayBerne, is_EAM
64 <    logical,intent(in) :: is_Shape, is_FLARB
63 >    logical,intent(in) :: is_Charge, is_Dipole, is_Quadrupole
64 >    logical,intent(in) :: is_Sticky, is_GayBerne, is_EAM, is_Shape, is_FLARB
65      integer,intent(out) :: status
66  
67      integer :: me
68 <        
68 >
69      status = 0
70 <    
70 >
71      if (.not. associated(atypes)) then
72 <       !! There are 16 properties to worry about for now.  
72 >       !! There are 17 properties to worry about for now.  
73         !! Fix this if needed for more atomic properties
74 <       atypes => initialize(17)
74 >       atypes => initialize(18)
75         if (.not.associated(atypes)) then
76            status = -1
77            return
78         endif
79      endif
80 <    
80 >
81      me = addElement(atypes)
82  
83      call setElementProperty(atypes, me, "c_ident", ident)
84 <    
84 >
85      call setElementProperty(atypes, me, "is_Directional", is_Directional)
86      call setElementProperty(atypes, me, "is_LennardJones", is_LennardJones)
87      call setElementProperty(atypes, me, "is_Electrostatic", is_Electrostatic)
88      call setElementProperty(atypes, me, "is_Charge", is_Charge)
89      call setElementProperty(atypes, me, "is_Dipole", is_Dipole)
90 +    call setElementProperty(atypes, me, "is_Quadrupole", is_Quadrupole)
91      call setElementProperty(atypes, me, "is_Sticky", is_Sticky)
92      call setElementProperty(atypes, me, "is_GayBerne", is_GayBerne)
93      call setElementProperty(atypes, me, "is_EAM", is_EAM)
94      call setElementProperty(atypes, me, "is_Shape", is_Shape)
95      call setElementProperty(atypes, me, "is_FLARB", is_FLARB)
96 <    
96 >
97    end subroutine new_atype
55  
56 end module atype_module
98  
99 < ! provide interface for c calls....
99 >  subroutine delete_atypes()
100 >    atypes => destroy(atypes)
101 >  end subroutine delete_atypes
102  
103 < subroutine makeatype(atp, status)
61 <  
62 <  use atype_module, ONLY: new_atype
103 > end module atype_module
104  
64 #define __FORTRAN90
65 #include "types/AtomTypeProperties.h"    
66
67  type(AtomTypeProperties), intent(in) :: atp
68  integer, intent(inout) :: status
69
70  integer :: ident
71  logical :: is_Directional, is_LennardJones, is_Electrostatic
72  logical :: is_Charge, is_Dipole, is_Sticky, is_GayBerne, is_EAM
73  logical :: is_Shape, is_FLARB
74
75  ident = atp%ident
76  is_Directional = (atp%is_Directional .ne. 0)
77  is_LennardJones = (atp%is_LennardJones .ne. 0)
78  is_Electrostatic = (atp%is_Electrostatic .ne. 0)
79  is_Charge = (atp%is_Charge .ne. 0)
80  is_Dipole = (atp%is_Dipole .ne. 0)
81  is_Sticky = (atp%is_Sticky .ne. 0)
82  is_GayBerne = (atp%is_GayBerne .ne. 0)
83  is_EAM = (atp%is_EAM .ne. 0)
84  is_Shape = (atp%is_Shape .ne. 0)
85  is_FLARB = (atp%is_FLARB .ne. 0)
86
87  call new_atype(ident, is_Directional, is_LennardJones, is_Electrostatic, &
88       is_Charge, is_Dipole, is_Sticky, is_GayBerne, is_EAM, is_Shape, &
89       is_FLARB, status)
90  
91 end subroutine

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines