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

Comparing trunk/OOPSE_old/src/mdtools/libmdCode/simulation_module.F90 (file contents):
Revision 285 by mmeineke, Wed Feb 26 18:45:57 2003 UTC vs.
Revision 295 by chuckv, Thu Mar 6 19:57:03 2003 UTC

# Line 1 | Line 1
1 + !! Fortran interface to C entry plug.
2 +
3   module simulation
4    use definitions, ONLY :dp
5   #ifdef IS_MPI
# Line 11 | Line 13 | module simulation
13   #include "../headers/fsimulation.h"
14  
15    type (simtype), public :: thisSim
14 !! Tag for MPI calculations  
15  integer, allocatable, dimension(:) :: tag
16  
17 < #ifdef IS_MPI
18 <  integer, allocatable, dimension(:) :: tag_row
19 <  integer, allocatable, dimension(:) :: tag_column
20 < #endif
17 >  logical :: setSim = .false.
18  
22 !! WARNING: use_pbc hardcoded, fixme
23   logical :: setSim = .false.
19  
25 !! array for saving previous positions for neighbor lists.  
26  real( kind = dp ), allocatable,dimension(:,:),save :: q0
20  
28
29  public :: wrap
21    public :: getBox
22    public :: getRcut
23    public :: getRlist
# Line 38 | Line 29 | module simulation
29    public :: returnMixingRules
30  
31   !  public :: setRcut
41
42  interface wrap
43     module procedure wrap_1d
44     module procedure wrap_3d
45  end interface
46
32    interface getBox
33       module procedure getBox_3d
34       module procedure getBox_dim
# Line 52 | Line 37 | module simulation
37  
38  
39  
55
56
57
58
59
60
40   contains
41  
42 <  subroutine setSimulation(nLRParticles,box,rlist,rcut,ensemble,mixingRule,use_pbc)
43 <    integer, intent(in) :: nLRParticles
44 <    real(kind = dp ), intent(in), dimension(3) :: box
66 <    real(kind = dp ), intent(in) :: rlist
67 <    real(kind = dp ), intent(in) :: rcut
68 <    character( len = stringLen), intent(in)  :: ensemble
69 <    character( len = stringLen), intent(in)  :: mixingRule
70 <    logical, intent(in) :: use_pbc
42 >  subroutine setSimulation(setThisSim,error)
43 >    type (simtype) :: setThisSim
44 >    integer :: error
45      integer :: alloc_stat
46 <    if( setsim ) return  ! simulation is already initialized
46 >
47 >    error = 0
48      setSim = .true.
49  
50 <    thisSim%nLRParticles = nLRParticles
51 <    thisSim%box          = box
77 <    thisSim%rlist        = rlist
78 <    thisSIm%rlistsq      = rlist * rlist
79 <    thisSim%rcut         = rcut
80 <    thisSim%rcutsq       = rcut * rcut
81 <    thisSim%rcut6        = thisSim%rcutsq * thisSim%rcutsq * thisSim%rcutsq
82 <    
83 <    thisSim%ensemble = ensemble
84 <    thisSim%mixingRule = mixingRule
85 <    thisSim%use_pbc = use_pbc
86 <
87 <    if (.not. allocated(q0)) then
88 <       allocate(q0(3,nLRParticles),stat=alloc_stat)
89 <    endif
50 > ! copy C struct into fortran type
51 >    thisSim = setThisSim
52    end subroutine setSimulation
53  
54    function getNparticles() result(nparticles)
# Line 115 | Line 77 | contains
77      thisBox = thisSim%box(dim)
78    end function getBox_dim
79    
118
119  function wrap_1d(r,dim) result(this_wrap)
120    
121    
122    real( kind = DP ) :: r
123    real( kind = DP ) :: this_wrap
124    integer           :: dim
125    
126    if (use_pbc) then
127       !     this_wrap = r - box(dim)*dsign(1.0E0_DP,r)*int(abs(r/box(dim)) + 0.5E0_DP)
128       this_wrap = r - thisSim%box(dim)*nint(r/thisSim%box(dim))
129    else
130       this_wrap = r
131    endif
132    
133    return
134  end function wrap_1d
135
136  function wrap_3d(r) result(this_wrap)
137    real( kind = dp ), dimension(3), intent(in) :: r
138    real( kind = dp ), dimension(3) :: this_wrap
139
140    
141    if (this_sim%use_pbc) then
142       !     this_wrap = r - box(dim)*dsign(1.0E0_DP,r)*int(abs(r/box(dim)) + 0.5E0_DP)
143       this_wrap = r - thisSim%box*nint(r/thisSim%box)
144    else
145       this_wrap = r
146    endif
147  end function wrap_3d
148
80    
81  
82    subroutine getRcut(thisrcut,rcut2,rcut6,status)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines