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 570 by gezelter, Tue Jul 1 22:29:40 2003 UTC vs.
Revision 1138 by gezelter, Wed Apr 28 21:39:22 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, 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 52 | Line 45 | module simulation
45    public :: SimRequiresPrepairCalc
46    public :: SimRequiresPostpairCalc
47    public :: SimUsesDirectionalAtoms
48 +  public :: SimUsesMolecularCutoffs
49    
50   contains
51    
# Line 88 | Line 82 | contains
82      nGlobal = CnGlobal
83  
84      thisSim = setThisSim
91    rcut2 = thisSim%rcut * thisSim%rcut
92    rcut6 = rcut2 * rcut2 * rcut2
93    rlist2 = thisSim%rlist * thisSim%rlist
85  
86      nExcludes_Global = CnGlobalExcludes
87      nExcludes_Local = CnLocalExcludes
# Line 153 | Line 144 | contains
144         deallocate(c_idents_Row)
145      endif
146      
147 < #else
147 > #endif
148 >
149 > ! We build the local atid's for both mpi and nonmpi
150      do i = 1, nLocal
151        
152         me = getFirstMatchingElement(atypes, "c_ident", c_idents(i))
153         atid(i) = me
154    
155      enddo
163 #endif
156  
157  
158  
159 +
160      do i = 1, nExcludes_Local
161         excludesLocal(1,i) = CexcludesLocal(1,i)
162         excludesLocal(2,i) = CexcludesLocal(2,i)
# Line 197 | Line 190 | contains
190      return    
191    end subroutine setBox
192  
200  subroutine setRcut(new_rcut, status)
201    real(kind = dp) :: new_rcut
202    integer :: myStatus, status
203    thisSim%rcut = new_rcut
204    rcut2 = thisSim%rcut * thisSim%rcut
205    rcut6 = rcut2 * rcut2 * rcut2
206    status = 0
207    return
208  end subroutine setRcut
209    
210  subroutine getRcut(thisrcut,rc2,rc6,status)
211    real( kind = dp ), intent(out) :: thisrcut
212    real( kind = dp ), intent(out), optional :: rc2
213    real( kind = dp ), intent(out), optional :: rc6
214    integer, optional :: status
215
216    if (present(status)) status = 0
217    
218    if (.not.simulation_setup_complete ) then
219       if (present(status)) status = -1
220       return
221    end if
222    
223    thisrcut = thisSim%rcut
224    if(present(rc2)) rc2 = rcut2
225    if(present(rc6)) rc6 = rcut6
226  end subroutine getRcut
227  
228  subroutine getRlist(thisrlist,rl2,status)
229    real( kind = dp ), intent(out) :: thisrlist
230    real( kind = dp ), intent(out), optional :: rl2
231
232    integer, optional :: status
233
234    if (present(status)) status = 0
235
236    if (.not.simulation_setup_complete ) then
237       if (present(status)) status = -1
238       return
239    end if
240    
241    thisrlist = thisSim%rlist
242    if(present(rl2)) rl2 = rlist2
243  end subroutine getRlist
244
245  function getRrf() result(rrf)
246    real( kind = dp ) :: rrf
247    rrf = thisSim%rrf
248    write(*,*) 'getRrf = ', rrf, thisSim%rrf
249  end function getRrf
250  
251  function getRt() result(rt)
252    real( kind = dp ) :: rt
253    rt = thisSim%rt
254  end function getRt
255
193    function getDielect() result(dielect)
194      real( kind = dp ) :: dielect
195      dielect = thisSim%dielect
# Line 273 | Line 210 | contains
210      doesit = thisSim%SIM_uses_sticky
211    end function SimUsesSticky
212  
213 +  function SimUsesCharges() result(doesit)
214 +    logical :: doesit
215 +    doesit = thisSim%SIM_uses_charges
216 +  end function SimUsesCharges
217 +
218    function SimUsesDipoles() result(doesit)
219      logical :: doesit
220      doesit = thisSim%SIM_uses_dipoles
# Line 299 | Line 241 | contains
241           thisSim%SIM_uses_GB .or. thisSim%SIM_uses_RF
242    end function SimUsesDirectionalAtoms
243  
244 +  function SimUsesMolecularCutoffs() result(doesit)
245 +    logical :: doesit
246 +    doesit = thisSim%SIM_uses_molecular_cutoffs
247 +  end function SimUsesMolecularCutoffs
248 +
249    function SimRequiresPrepairCalc() result(doesit)
250      logical :: doesit
251      doesit = thisSim%SIM_uses_EAM

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines