ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/simulation_module.F90
(Generate patch)

Comparing trunk/OOPSE/libmdtools/simulation_module.F90 (file contents):
Revision 378 by mmeineke, Fri Mar 21 17:42:12 2003 UTC vs.
Revision 482 by chuckv, Tue Apr 8 22:38:43 2003 UTC

# Line 6 | Line 6 | module simulation
6    use force_globals
7    use vector_class
8    use atype_module
9  use lj
9   #ifdef IS_MPI
10    use mpiSimulation
11   #endif
# Line 26 | Line 25 | module simulation
25    integer, public, save :: nExcludes_Local = 0
26    integer, allocatable, dimension(:,:), public :: excludesLocal
27    integer, allocatable, dimension(:), public :: excludesGlobal
28 +  integer, allocatable, dimension(:), public :: molMembershipList
29  
30    real(kind=dp), save :: rcut2 = 0.0_DP
31    real(kind=dp), save :: rcut6 = 0.0_DP
# Line 68 | Line 68 | contains
68   contains
69    
70    subroutine SimulationSetup(setThisSim, nComponents, c_idents, &
71 <       CnLocalExcludes, CexcludesLocal, CnGlobalExcludes, CexcludesGlobal, &
71 >       CnLocalExcludes, CexcludesLocal, CnGlobalExcludes, CexcludesGlobal, CmolMembership, &
72         status)    
73  
74      type (simtype) :: setThisSim
# Line 79 | Line 79 | contains
79      integer, dimension(2,CnLocalExcludes), intent(in) :: CexcludesLocal
80      integer :: CnGlobalExcludes
81      integer, dimension(CnGlobalExcludes), intent(in) :: CexcludesGlobal
82 +    integer, dimension(nComponents),intent(in) :: CmolMembership
83      !!  Result status, success = 0, status = -1
84      integer, intent(out) :: status
85      integer :: i, me, thisStat, alloc_stat, myNode
# Line 105 | Line 106 | contains
106  
107      call InitializeForceGlobals(natoms, thisStat)
108      if (thisStat /= 0) then
109 +       write(default_error,*) "SimSetup: InitializeForceGlobals error"
110         status = -1
111         return
112      endif
113  
114      call InitializeSimGlobals(thisStat)
115      if (thisStat /= 0) then
116 +       write(default_error,*) "SimSetup: InitializeSimGlobals error"
117         status = -1
118         return
119      endif
# Line 168 | Line 171 | contains
171      enddo
172   #endif
173  
171    !! Create neighbor lists
172    call expandNeighborList(nComponents, thisStat)
173    if (thisStat /= 0) then
174       status = -1
175       return
176    endif
174  
175 +
176      do i = 1, nExcludes_Local
177         excludesLocal(1,i) = CexcludesLocal(1,i)
178         excludesLocal(2,i) = CexcludesLocal(2,i)
# Line 183 | Line 181 | contains
181      do i = 1, nExcludes_Global
182         excludesGlobal(i) = CexcludesGlobal(i)
183      enddo
184 <    
184 >
185 >    molMemberShipList = CmolMembership
186 >
187      if (status == 0) simulation_setup_complete = .true.
188      
189    end subroutine SimulationSetup
# Line 195 | Line 195 | contains
195      thisSim%box = new_box_size
196      box = thisSim%box
197  
198    smallest = 1
199    do i = 2, 3
200       if (new_box_size(i) .lt. new_box_size(smallest)) smallest = i
201    end do
202    if (thisSim%rcut .gt. 0.5_dp * new_box_size(smallest)) &
203         call setRcut(0.5_dp * new_box_size(smallest), status)
198      return    
199    end subroutine setBox_3d
200  
# Line 209 | Line 203 | contains
203      real(kind=dp) :: new_box_size
204      thisSim%box(dim) = new_box_size
205      box(dim) = thisSim%box(dim)
212    if (thisSim%rcut .gt. 0.5_dp * new_box_size) &
213         call setRcut(0.5_dp * new_box_size, status)
206    end subroutine setBox_1d
207  
208    subroutine setRcut(new_rcut, status)
# Line 219 | Line 211 | contains
211      thisSim%rcut = new_rcut
212      rcut2 = thisSim%rcut * thisSim%rcut
213      rcut6 = rcut2 * rcut2 * rcut2
222    myStatus = 0
223    call LJ_new_rcut(new_rcut, myStatus)
224    if (myStatus .ne. 0) then
225       write(default_error, *) 'LJ module refused our rcut!'
226       status = -1
227       return
228    endif
214      status = 0
215      return
216    end subroutine setRcut
# Line 280 | Line 265 | contains
265    function getRrf() result(rrf)
266      real( kind = dp ) :: rrf
267      rrf = thisSim%rrf
268 +    write(*,*) 'getRrf = ', rrf, thisSim%rrf
269    end function getRrf
270    
271    function getRt() result(rt)
# Line 362 | Line 348 | contains
348         thisStat = -1
349         return
350      endif
351 +
352 +    allocate(molMembershipList(getNlocal()), stat=alloc_stat)
353 +    if (alloc_stat /= 0 ) then
354 +       thisStat = -1
355 +       return
356 +    endif
357      
358    end subroutine InitializeSimGlobals
359    
# Line 371 | Line 363 | contains
363      
364      if (allocated(excludesGlobal)) deallocate(excludesGlobal)
365      if (allocated(excludesLocal)) deallocate(excludesLocal)
366 <
366 >    if (allocated(molMembershipList)) deallocate(molMembershipList)
367    end subroutine FreeSimGlobals
368  
369    pure function getNlocal() result(nlocal)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines