ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE-4/src/UseTheForce/DarkSide/simulation.F90
(Generate patch)

Comparing trunk/OOPSE-4/src/UseTheForce/DarkSide/simulation.F90 (file contents):
Revision 1608 by gezelter, Wed Oct 20 04:02:48 2004 UTC vs.
Revision 1948 by gezelter, Fri Jan 14 20:31:16 2005 UTC

# Line 1 | Line 1
1 + !!
2 + !! Copyright (c) 2005 The University of Notre Dame. All Rights Reserved.
3 + !!
4 + !! The University of Notre Dame grants you ("Licensee") a
5 + !! non-exclusive, royalty free, license to use, modify and
6 + !! redistribute this software in source and binary code form, provided
7 + !! that the following conditions are met:
8 + !!
9 + !! 1. Acknowledgement of the program authors must be made in any
10 + !!    publication of scientific results based in part on use of the
11 + !!    program.  An acceptable form of acknowledgement is citation of
12 + !!    the article in which the program was described (Matthew
13 + !!    A. Meineke, Charles F. Vardeman II, Teng Lin, Christopher
14 + !!    J. Fennell and J. Daniel Gezelter, "OOPSE: An Object-Oriented
15 + !!    Parallel Simulation Engine for Molecular Dynamics,"
16 + !!    J. Comput. Chem. 26, pp. 252-271 (2005))
17 + !!
18 + !! 2. Redistributions of source code must retain the above copyright
19 + !!    notice, this list of conditions and the following disclaimer.
20 + !!
21 + !! 3. Redistributions in binary form must reproduce the above copyright
22 + !!    notice, this list of conditions and the following disclaimer in the
23 + !!    documentation and/or other materials provided with the
24 + !!    distribution.
25 + !!
26 + !! This software is provided "AS IS," without a warranty of any
27 + !! kind. All express or implied conditions, representations and
28 + !! warranties, including any implied warranty of merchantability,
29 + !! fitness for a particular purpose or non-infringement, are hereby
30 + !! excluded.  The University of Notre Dame and its licensors shall not
31 + !! be liable for any damages suffered by licensee as a result of
32 + !! using, modifying or distributing the software or its
33 + !! derivatives. In no event will the University of Notre Dame or its
34 + !! licensors be liable for any lost revenue, profit or data, or for
35 + !! direct, indirect, special, consequential, incidental or punitive
36 + !! damages, however caused and regardless of the theory of liability,
37 + !! arising out of the use of or inability to use software, even if the
38 + !! University of Notre Dame has been advised of the possibility of
39 + !! such damages.
40 + !!
41 +
42   !! Fortran interface to C entry plug.
43  
44   module simulation
# Line 49 | Line 90 | module simulation
90    public :: setBox
91    public :: getDielect
92    public :: SimUsesPBC
93 <  public :: SimUsesLJ
93 >
94 >  public :: SimUsesDirectionalAtoms
95 >  public :: SimUsesLennardJones
96 >  public :: SimUsesElectrostatics
97    public :: SimUsesCharges
98    public :: SimUsesDipoles
99    public :: SimUsesSticky
100 <  public :: SimUsesRF
57 <  public :: SimUsesGB
100 >  public :: SimUsesGayBerne
101    public :: SimUsesEAM
102 +  public :: SimUsesShapes
103 +  public :: SimUsesFLARB
104 +  public :: SimUsesRF
105    public :: SimRequiresPrepairCalc
106    public :: SimRequiresPostpairCalc
107 <  public :: SimUsesDirectionalAtoms
107 >
108    
109   contains
110    
# Line 440 | Line 486 | contains
486      doesit = thisSim%SIM_uses_PBC
487    end function SimUsesPBC
488  
489 <  function SimUsesLJ() result(doesit)
489 >  function SimUsesDirectionalAtoms() result(doesit)
490      logical :: doesit
491 <    doesit = thisSim%SIM_uses_LJ
492 <  end function SimUsesLJ
493 <
494 <  function SimUsesSticky() result(doesit)
491 >    doesit = thisSim%SIM_uses_dipoles .or. thisSim%SIM_uses_sticky .or. &
492 >         thisSim%SIM_uses_GayBerne .or. thisSim%SIM_uses_Shapes
493 >  end function SimUsesDirectionalAtoms
494 >
495 >  function SimUsesLennardJones() result(doesit)
496      logical :: doesit
497 <    doesit = thisSim%SIM_uses_sticky
498 <  end function SimUsesSticky
497 >    doesit = thisSim%SIM_uses_LennardJones
498 >  end function SimUsesLennardJones
499  
500 +  function SimUsesElectrostatics() result(doesit)
501 +    logical :: doesit
502 +    doesit = thisSim%SIM_uses_Electrostatics
503 +  end function SimUsesElectrostatics
504 +
505    function SimUsesCharges() result(doesit)
506      logical :: doesit
507 <    doesit = thisSim%SIM_uses_charges
507 >    doesit = thisSim%SIM_uses_Charges
508    end function SimUsesCharges
509  
510    function SimUsesDipoles() result(doesit)
511      logical :: doesit
512 <    doesit = thisSim%SIM_uses_dipoles
512 >    doesit = thisSim%SIM_uses_Dipoles
513    end function SimUsesDipoles
514  
515 <  function SimUsesRF() result(doesit)
516 <    logical :: doesit
517 <    doesit = thisSim%SIM_uses_RF
518 <  end function SimUsesRF
515 >  function SimUsesSticky() result(doesit)
516 >    logical :: doesit
517 >    doesit = thisSim%SIM_uses_Sticky
518 >  end function SimUsesSticky
519  
520 <  function SimUsesGB() result(doesit)
520 >  function SimUsesGayBerne() result(doesit)
521      logical :: doesit
522 <    doesit = thisSim%SIM_uses_GB
523 <  end function SimUsesGB
524 <
522 >    doesit = thisSim%SIM_uses_GayBerne
523 >  end function SimUsesGayBerne
524 >  
525    function SimUsesEAM() result(doesit)
526      logical :: doesit
527      doesit = thisSim%SIM_uses_EAM
528    end function SimUsesEAM
529  
530 <  function SimUsesDirectionalAtoms() result(doesit)
530 >  function SimUsesShapes() result(doesit)
531      logical :: doesit
532 <    doesit = thisSim%SIM_uses_dipoles .or. thisSim%SIM_uses_sticky .or. &
533 <         thisSim%SIM_uses_GB .or. thisSim%SIM_uses_RF
482 <  end function SimUsesDirectionalAtoms
532 >    doesit = thisSim%SIM_uses_Shapes
533 >  end function SimUsesShapes
534  
535 +  function SimUsesFLARB() result(doesit)
536 +    logical :: doesit
537 +    doesit = thisSim%SIM_uses_FLARB
538 +  end function SimUsesFLARB
539 +
540 +  function SimUsesRF() result(doesit)
541 +    logical :: doesit
542 +    doesit = thisSim%SIM_uses_RF
543 +  end function SimUsesRF
544 +
545    function SimRequiresPrepairCalc() result(doesit)
546      logical :: doesit
547      doesit = thisSim%SIM_uses_EAM
# Line 543 | Line 604 | contains
604      n = nLocal
605    end function getNlocal
606    
546  
607   end module simulation
548
549
550 subroutine setFortranSim(setThisSim, CnGlobal, CnLocal, c_idents, &
551       CnLocalExcludes, CexcludesLocal, CnGlobalExcludes, CexcludesGlobal, &
552       CmolMembership, Cmfact, CnGroups, CglobalGroupMembership, &
553       status)
554       use definitions, ONLY : dp    
555       use simulation
556    
557    type (simtype) :: setThisSim
558    integer, intent(inout) :: CnGlobal, CnLocal
559    integer, dimension(CnLocal),intent(inout) :: c_idents
560
561    integer :: CnLocalExcludes
562    integer, dimension(2,CnLocalExcludes), intent(inout) :: CexcludesLocal
563    integer :: CnGlobalExcludes
564    integer, dimension(CnGlobalExcludes), intent(inout) :: CexcludesGlobal
565    integer, dimension(CnGlobal),intent(inout) :: CmolMembership
566    !!  Result status, success = 0, status = -1
567    integer, intent(inout) :: status
568    
569    !! mass factors used for molecular cutoffs
570    real ( kind = dp ), dimension(CnLocal) :: Cmfact
571    integer, intent(in):: CnGroups
572    integer, dimension(CnGlobal), intent(inout):: CglobalGroupMembership
573    integer :: status
574    
575    call SimulationSetup(setThisSim, CnGlobal, CnLocal, c_idents, &
576       CnLocalExcludes, CexcludesLocal, CnGlobalExcludes, CexcludesGlobal, &
577       CmolMembership, Cmfact, CnGroups, CglobalGroupMembership, &
578       status)
579 end subroutine setFortranSim
580
581 subroutine setFortranBox(cHmat, cHmatInv, cBoxIsOrthorhombic)
582    use simulation, only : setBox
583    use definitions, ONLY : dp
584    real(kind=dp), dimension(3,3) :: cHmat, cHmatInv
585    integer :: cBoxIsOrthorhombic
586  
587   call setBox(cHmat, cHmatInv, cBoxIsOrthorhombic)
588    
589 end subroutine setFortranBox

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines