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 569 by mmeineke, Tue Jul 1 21:33:45 2003 UTC vs.
Revision 941 by gezelter, Tue Jan 13 23:01:43 2004 UTC

# Line 16 | Line 16 | module simulation
16   #define __FORTRAN90
17   #include "fSimulation.h"
18  
19 <  type (simtype), public :: thisSim
19 >  type (simtype), public, save :: thisSim
20  
21    logical, save :: simulation_setup_complete = .false.
22  
# Line 27 | Line 27 | module simulation
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
32  real(kind=dp), save :: rlist2 = 0.0_DP
30    real(kind=dp), public, dimension(3,3), save :: Hmat, HmatInv
31 <  logical, save :: boxIsOrthorhombic
31 >  logical, public, save :: boxIsOrthorhombic
32    
33    public :: SimulationSetup
34    public :: getNlocal
35    public :: setBox
39  public :: setRcut
40  public :: getRcut
41  public :: getRlist
42  public :: getRrf
43  public :: getRt
36    public :: getDielect
37    public :: SimUsesPBC
38    public :: SimUsesLJ
39 +  public :: SimUsesCharges
40    public :: SimUsesDipoles
41    public :: SimUsesSticky
42    public :: SimUsesRF
# Line 88 | Line 81 | contains
81      nGlobal = CnGlobal
82  
83      thisSim = setThisSim
91    rcut2 = thisSim%rcut * thisSim%rcut
92    rcut6 = rcut2 * rcut2 * rcut2
93    rlist2 = thisSim%rlist * thisSim%rlist
94    box = thisSim%box
84  
85      nExcludes_Global = CnGlobalExcludes
86      nExcludes_Local = CnLocalExcludes
# Line 154 | Line 143 | contains
143         deallocate(c_idents_Row)
144      endif
145      
146 < #else
146 > #endif
147 >
148 > ! We build the local atid's for both mpi and nonmpi
149      do i = 1, nLocal
150        
151         me = getFirstMatchingElement(atypes, "c_ident", c_idents(i))
152         atid(i) = me
153    
154      enddo
164 #endif
155  
156  
157  
158 +
159      do i = 1, nExcludes_Local
160         excludesLocal(1,i) = CexcludesLocal(1,i)
161         excludesLocal(2,i) = CexcludesLocal(2,i)
# Line 183 | Line 174 | contains
174    end subroutine SimulationSetup
175    
176    subroutine setBox(cHmat, cHmatInv, cBoxIsOrthorhombic)
177 <    real(kind=dp), dimension(3,3) :: cHmat, cHamtInv
177 >    real(kind=dp), dimension(3,3) :: cHmat, cHmatInv
178      integer :: cBoxIsOrthorhombic
179      integer :: smallest, status, i
180 <
180 >    
181      Hmat = cHmat
182      HmatInv = cHmatInv
183 <    if(cBoxisOrthorhombic .eq. 0 )then
183 >    if (cBoxIsOrthorhombic .eq. 0 ) then
184         boxIsOrthorhombic = .false.
185 <    else boxIsOrthorhombic = .true.
185 >    else
186 >       boxIsOrthorhombic = .true.
187      endif
188      
197
189      return    
190    end subroutine setBox
200
201  subroutine setRcut(new_rcut, status)
202    real(kind = dp) :: new_rcut
203    integer :: myStatus, status
204    thisSim%rcut = new_rcut
205    rcut2 = thisSim%rcut * thisSim%rcut
206    rcut6 = rcut2 * rcut2 * rcut2
207    status = 0
208    return
209  end subroutine setRcut
210    
211  subroutine getRcut(thisrcut,rc2,rc6,status)
212    real( kind = dp ), intent(out) :: thisrcut
213    real( kind = dp ), intent(out), optional :: rc2
214    real( kind = dp ), intent(out), optional :: rc6
215    integer, optional :: status
191  
217    if (present(status)) status = 0
218    
219    if (.not.simulation_setup_complete ) then
220       if (present(status)) status = -1
221       return
222    end if
223    
224    thisrcut = thisSim%rcut
225    if(present(rc2)) rc2 = rcut2
226    if(present(rc6)) rc6 = rcut6
227  end subroutine getRcut
228  
229  subroutine getRlist(thisrlist,rl2,status)
230    real( kind = dp ), intent(out) :: thisrlist
231    real( kind = dp ), intent(out), optional :: rl2
232
233    integer, optional :: status
234
235    if (present(status)) status = 0
236
237    if (.not.simulation_setup_complete ) then
238       if (present(status)) status = -1
239       return
240    end if
241    
242    thisrlist = thisSim%rlist
243    if(present(rl2)) rl2 = rlist2
244  end subroutine getRlist
245
246  function getRrf() result(rrf)
247    real( kind = dp ) :: rrf
248    rrf = thisSim%rrf
249    write(*,*) 'getRrf = ', rrf, thisSim%rrf
250  end function getRrf
251  
252  function getRt() result(rt)
253    real( kind = dp ) :: rt
254    rt = thisSim%rt
255  end function getRt
256
192    function getDielect() result(dielect)
193      real( kind = dp ) :: dielect
194      dielect = thisSim%dielect
# Line 274 | Line 209 | contains
209      doesit = thisSim%SIM_uses_sticky
210    end function SimUsesSticky
211  
212 +  function SimUsesCharges() result(doesit)
213 +    logical :: doesit
214 +    doesit = thisSim%SIM_uses_charges
215 +  end function SimUsesCharges
216 +
217    function SimUsesDipoles() result(doesit)
218      logical :: doesit
219      doesit = thisSim%SIM_uses_dipoles

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines