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

Comparing trunk/mdtools/md_code/simulation_module.F90 (file contents):
Revision 247 by chuckv, Mon Jan 27 18:28:11 2003 UTC vs.
Revision 253 by chuckv, Thu Jan 30 15:20:21 2003 UTC

# Line 53 | Line 53 | module simulation
53    public :: getRcut
54    public :: getRlist
55    public :: getNlocal
56 +  public :: setSimulation
57   !  public :: setRcut
58  
59    interface wrap
# Line 81 | Line 82 | contains
82      real(kind = dp ), intent(in), dimension(3) :: box
83      real(kind = dp ), intent(in) :: rlist
84      real(kind = dp ), intent(in) :: rcut
85 <
85 >    integer :: alloc_stat
86      if( setsim ) return  ! simulation is already initialized
87      setSim = .true.
88  
89      thisSim%nLRParticles = nLRParticles
90      thisSim%box          = box
91      thisSim%rlist        = rlist
92 +    thisSIm%rlistsq      = rlist * rlist
93      thisSim%rcut         = rcut
94      thisSim%rcutsq       = rcut * rcut
95      thisSim%rcut6        = thisSim%rcutsq * thisSim%rcutsq * thisSim%rcutsq
96 <
96 >    
97 >    if (.not. allocated(q0)) then
98 >       allocate(q0(3,nLRParticles),stat=alloc_stat)
99 >    endif
100    end subroutine setSimulation
101  
102    function getNparticles() result(nparticles)
# Line 136 | Line 141 | contains
141      
142   #ifdef MPI
143      dispmx_tmp = 0.0E0_DP
144 <    do i = 1, nlocal
144 >    do i = 1, thisSim%nLRparticles
145         dispmx_tmp = max( abs ( q(1,i) - q0(1,i) ), dispmx )
146         dispmx_tmp = max( abs ( q(2,i) - q0(2,i) ), dispmx )
147         dispmx_tmp = max( abs ( q(3,i) - q0(3,i) ), dispmx )
# Line 144 | Line 149 | contains
149      call mpi_allreduce(dispmx_tmp,dispmx,1,mpi_double_precision, &
150         mpi_max,mpi_comm_world,mpi_err)
151   #else
152 <    do i = 1, natoms
152 >
153 >    do i = 1, thisSim%nLRparticles
154         dispmx = max( abs ( q(1,i) - q0(1,i) ), dispmx )
155         dispmx = max( abs ( q(2,i) - q0(2,i) ), dispmx )
156         dispmx = max( abs ( q(3,i) - q0(3,i) ), dispmx )
# Line 224 | Line 230 | contains
230      
231      thisrcut = thisSim%rcut
232      if(present(rcut2)) rcut2 = thisSim%rcutsq
233 <    if(present(rcut2)) rcut6 = thisSim%rcut6
233 >    if(present(rcut6)) rcut6 = thisSim%rcut6
234  
235    end subroutine getRcut
236    
# Line 247 | Line 253 | contains
253      thisrlist = thisSim%rlist
254      if(present(rlist2)) rlist2 = thisSim%rlistsq
255  
256 +
257    end subroutine getRlist
258    
259    

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines