ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE_old/src/mdtools/libmdCode/calc_LJ_FF.F90
(Generate patch)

Comparing trunk/OOPSE_old/src/mdtools/libmdCode/calc_LJ_FF.F90 (file contents):
Revision 298 by chuckv, Fri Mar 7 18:26:30 2003 UTC vs.
Revision 306 by chuckv, Mon Mar 10 19:26:45 2003 UTC

# Line 2 | Line 2
2   !! Corresponds to the force field defined in lj_FF.cpp
3   !! @author Charles F. Vardeman II
4   !! @author Matthew Meineke
5 < !! @version $Id: calc_LJ_FF.F90,v 1.1 2003-03-07 18:26:30 chuckv Exp $, $Date: 2003-03-07 18:26:30 $, $Name: not supported by cvs2svn $, $Revision: 1.1 $
5 > !! @version $Id: calc_LJ_FF.F90,v 1.2 2003-03-10 19:26:45 chuckv Exp $, $Date: 2003-03-10 19:26:45 $, $Name: not supported by cvs2svn $, $Revision: 1.2 $
6  
7  
8  
9   module lj_ff
10    use simulation
11    use definitions
12 <  use generic_atypes
12 >  use generic_lists
13  
14   #ifdef IS_MPI
15    use mpiSimulation
# Line 25 | Line 25 | module lj_ff
25    public :: getLjPot
26    public :: init_ljFF
27  
28 <  type :: lj_mixed
28 >  type :: lj_mixed_params
29       !! Mass of Particle
30       real ( kind = dp )  :: mass = 0.0_dp
31   !! Lennard-Jones epslon
# Line 36 | Line 36 | module lj_ff
36       real ( kind = dp )  :: sigma2 = 0.0_dp
37   !! Lennard-Jones Sigma to sixth
38       real ( kind = dp )  :: sigma6 = 0.0_dp
39 <  end type lj_mixed
39 >  end type lj_mixed_params
40    
41 +  type (lj_mixed_params), dimension(:,:) :: ljMixed
42  
42
43   contains
44  
45    subroutine init_ljFF(ListHead,status)
# Line 50 | Line 50 | contains
50      integer :: myStatus
51  
52      status = 0
53 <    call createMixinList(ListHead,myStatus)
53 >    call createMixingList(ListHead,myStatus)
54      if (myStatus /= 0) then
55         status = -1
56         return
# Line 65 | Line 65 | contains
65      integer :: i
66      integer :: j
67  
68 <    integer :: outerCounter = 0
69 <    integer :: innerCounter = 0
70 <    type (atype), pointer :: tmpPtrOuter => null()
71 <    type (atype), pointer :: tmpPtrInner => null()
68 >    integer :: i = 0
69 >    integer :: j = 0
70 >    type (atype), pointer :: tmpPtr_i => null()
71 >    type (atype), pointer :: tmpPtr_j => null()
72      status = 0
73  
74      listSize = getListLen(ListHead)
# Line 87 | Line 87 | contains
87  
88      
89  
90 <    tmpPtrOuter => ljListHead
91 <    tmpPtrInner => tmpPtrOuter%next
92 <    do while (associated(tmpPtrOuter))
93 <       outerCounter = outerCounter + 1
90 >    tmpPtr_i => ListHead
91 >    tmpPtr_j => tmpPtr_i%next
92 >    do while (associated(tmpPtr_i))
93 >       i = i + 1
94   ! do self mixing rule
95 <       ljMixed(outerCounter,outerCounter)%sigma  = tmpPtrOuter%sigma
95 >       ljMixed(i,i)%sigma   = tmpPtr_i%sigma
96                                                                                                    
97 <       ljMixed(outerCounter,outerCounter)%sigma2  = ljMixed(outerCounter,outerCounter)%sigma &
98 <            * ljMixed(outerCounter,outerCounter)%sigma
97 >       ljMixed(i,i)%sigma2  = (ljMixed(i,i)%sigma) ** 2
98                                                                                                    
99 <       ljMixed(outerCounter,outerCounter)%sigma6 = ljMixed(outerCounter,outerCounter)%sigma2 &
100 <            * ljMixed(outerCounter,outerCounter)%sigma2 &
102 <            * ljMixed(outerCounter,outerCounter)%sigma2
103 <                                                                                                  
104 <       ljMixed(outerCounter,outerCounter)%epsilon = tmpPtrOuter%epsilon
99 >       ljMixed(i,i)%sigma6  = (ljMixed(i,i)%sigma) ** 6                                                                                                  
100 >       ljMixed(i,i)%epsilon = tmpPtr_i%epsilon
101  
102 <       innerCounter = outerCounter + 1
103 <       do while (associated(tmpPtrInner))
108 <          
109 <          ljMixed(outerCounter,innerCounter)%sigma  =  &
110 <               calcLJMix("sigma",tmpPtrOuter%sigma, &
111 <               tmpPtrInner%sigma)
102 >       j = i + 1
103 >       do while (associated(tmpPtr_j))
104            
105 <          ljMixed(outerCounter,innerCounter)%sigma2  = &
106 <               (ljMixed(outerCounter,innerCounter)%sigma)**2
105 >          ljMixed(i,j)%sigma  =  &
106 >               calcLJMix("sigma",tmpPtr_i%sigma, &
107 >               tmpPtr_j%sigma)
108            
109 <          ljMixed(outerCounter,innerCounter)%sigma6 = &
110 <               (ljMixed(outerCounter,innerCounter)%sigma)**6
109 >          ljMixed(i,j)%sigma2  = &
110 >               (ljMixed(i,j)%sigma)**2
111            
112 <          ljMixed(outerCounter,innerCounter)%epsilon = &
113 <               calcLJMix("epsilon",tmpPtrOuter%epsilon, &
114 <               tmpPtrInner%epsilon)
115 <          ljMixed(innerCounter,outerCounter)%sigma = ljMixed(outerCounter,innerCounter)%sigma
116 <          ljMixed(innerCounter,outerCounter)%sigma2 = ljMixed(outerCounter,innerCounter)%sigma2
117 <          ljMixed(innerCounter,outerCounter)%sigma6 = ljMixed(outerCounter,innerCounter)%sigma6
118 <          ljMixed(innerCounter,outerCounter)%epsilon = ljMixed(outerCounter,innerCounter)%epsilon
112 >          ljMixed(i,j)%sigma6 = &
113 >               (ljMixed(i,j)%sigma)**6
114 >          
115 >          ljMixed(i,j)%epsilon = &
116 >               calcLJMix("epsilon",tmpPtr_i%epsilon, &
117 >               tmpPtr_j%epsilon)
118 >          ljMixed(j,i)%sigma   = ljMixed(i,j)%sigma
119 >          ljMixed(j,i)%sigma2  = ljMixed(i,j)%sigma2
120 >          ljMixed(j,i)%sigma6  = ljMixed(i,j)%sigma6
121 >          ljMixed(j,i)%epsilon = ljMixed(i,j)%epsilon
122  
123  
124 <          tmpPtrInner => tmpPtrInner%next
125 <          innerCounter = innerCounter + 1
124 >          tmpPtr_j => tmpPtr_j%next
125 >          j = j + 1
126         end do
127   ! advance pointers
128 <       tmpPtrOuter => tmpPtrOuter%next
129 <       if (associated(tmpPtrOuter)) then
130 <          tmpPtrInner => tmpPtrOuter%next
128 >       tmpPtr_i => tmpPtr_i%next
129 >       if (associated(tmpPtr_i)) then
130 >          tmpPtr_j => tmpPtr_i%next
131         endif
132        
133      end do
# Line 155 | Line 151 | contains
151   !! Second Derivative, optional, used mainly for normal mode calculations.
152      real( kind = dp ), intent(out), optional :: d2
153      
154 <    type (lj_atype), pointer :: atype1
155 <    type (lj_atype), pointer :: atype2
154 >    type (atype), pointer :: atype1
155 >    type (atype), pointer :: atype2
156  
157      integer, intent(out), optional :: status
158  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines