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 290 by chuckv, Thu Feb 27 21:25:47 2003 UTC vs.
Revision 312 by gezelter, Tue Mar 11 17:46:18 2003 UTC

# Line 10 | Line 10 | module simulation
10    PRIVATE
11  
12   #define __FORTRAN90
13 < #include "../headers/fsimulation.h"
13 > #include "fSimulation.h"
14  
15    type (simtype), public :: thisSim
16  
17    logical :: setSim = .false.
18  
19 +  integer,public :: natoms
20  
20  public :: wrap
21    public :: getBox
22    public :: getRcut
23    public :: getRlist
24 +  public :: getRrf
25 +  public :: getRt
26    public :: getNlocal
27    public :: setSimulation
28    public :: isEnsemble
29    public :: isPBC
30    public :: getStringLen
31    public :: returnMixingRules
32 +  public :: doStress
33  
34   !  public :: setRcut
32
33  interface wrap
34     module procedure wrap_1d
35     module procedure wrap_3d
36  end interface
37
35    interface getBox
36       module procedure getBox_3d
37       module procedure getBox_dim
38    end interface
39  
43
44
45
40   contains
41  
42    subroutine setSimulation(setThisSim,error)
# Line 52 | Line 46 | contains
46  
47      error = 0
48      setSim = .true.
49 <
56 < ! copy C struct into fortran type
49 >    ! copy C struct into fortran type
50      thisSim = setThisSim
51    end subroutine setSimulation
52  
# Line 62 | Line 55 | contains
55      nparticles = thisSim%nLRparticles
56    end function getNparticles
57  
65
58    subroutine change_box_size(new_box_size)
59      real(kind=dp), dimension(3) :: new_box_size
68
60      thisSim%box = new_box_size
70
61    end subroutine change_box_size
62  
73
63    function getBox_3d() result(thisBox)
64      real( kind = dp ), dimension(3) :: thisBox
65      thisBox = thisSim%box
# Line 79 | Line 68 | contains
68    function getBox_dim(dim) result(thisBox)
69      integer, intent(in) :: dim
70      real( kind = dp ) :: thisBox
71 <
71 >    
72      thisBox = thisSim%box(dim)
73    end function getBox_dim
74 <  
86 <
87 <  function wrap_1d(r,dim) result(this_wrap)
88 <    
89 <    
90 <    real( kind = DP ) :: r
91 <    real( kind = DP ) :: this_wrap
92 <    integer           :: dim
93 <    
94 <    if (use_pbc) then
95 <       !     this_wrap = r - box(dim)*dsign(1.0E0_DP,r)*int(abs(r/box(dim)) + 0.5E0_DP)
96 <       this_wrap = r - thisSim%box(dim)*nint(r/thisSim%box(dim))
97 <    else
98 <       this_wrap = r
99 <    endif
100 <    
101 <    return
102 <  end function wrap_1d
103 <
104 <  function wrap_3d(r) result(this_wrap)
105 <    real( kind = dp ), dimension(3), intent(in) :: r
106 <    real( kind = dp ), dimension(3) :: this_wrap
107 <
108 <    
109 <    if (this_sim%use_pbc) then
110 <       !     this_wrap = r - box(dim)*dsign(1.0E0_DP,r)*int(abs(r/box(dim)) + 0.5E0_DP)
111 <       this_wrap = r - thisSim%box*nint(r/thisSim%box)
112 <    else
113 <       this_wrap = r
114 <    endif
115 <  end function wrap_3d
116 <
117 <  
118 <
74 >    
75    subroutine getRcut(thisrcut,rcut2,rcut6,status)
76      real( kind = dp ), intent(out) :: thisrcut
77      real( kind = dp ), intent(out), optional :: rcut2
# Line 132 | Line 88 | contains
88      thisrcut = thisSim%rcut
89      if(present(rcut2)) rcut2 = thisSim%rcutsq
90      if(present(rcut6)) rcut6 = thisSim%rcut6
135
91    end subroutine getRcut
92    
138  
139  
140
93    subroutine getRlist(thisrlist,rlist2,status)
94      real( kind = dp ), intent(out) :: thisrlist
95      real( kind = dp ), intent(out), optional :: rlist2
# Line 153 | Line 105 | contains
105      
106      thisrlist = thisSim%rlist
107      if(present(rlist2)) rlist2 = thisSim%rlistsq
156
157
108    end subroutine getRlist
159  
160  
109  
110 < pure function getNlocal() result(nlocal)
110 >  function getRrf() result(rrf)
111 >    real( kind = dp ) :: rrf
112 >    rrf = thisSim%rrf
113 >  end function getRrf
114 >  
115 >  function getRt() result(rt)
116 >    real( kind = dp ) :: rt
117 >    rt = thisSim%rt
118 >  end function getRt
119 >  
120 >  pure function getNlocal() result(nlocal)
121      integer :: nlocal
122      nlocal = thisSim%nLRparticles
123    end function getNlocal
124 <
125 <
124 >  
125 >  function doStress() result(do_stress)
126 >    logical :: do_stress
127 >    do_stress = thisSim%do_stress
128 >  end function doStress
129 >  
130    function isEnsemble(this_ensemble) result(is_this_ensemble)
131      character(len = *) :: this_ensemble
132 <    logical :: is_this_enemble
132 >    logical :: is_this_ensemble
133      is_this_ensemble = .false.
134      if (this_ensemble == thisSim%ensemble) is_this_ensemble = .true.
135    end function isEnsemble
136 <
136 >  
137    function returnEnsemble() result(thisEnsemble)
138      character (len = len(thisSim%ensemble)) :: thisEnsemble
139      thisEnsemble = thisSim%ensemble
140    end function returnEnsemble
141 <
141 >  
142    function returnMixingRules() result(thisMixingRule)
143      character (len = len(thisSim%ensemble)) :: thisMixingRule
144      thisMixingRule = thisSim%MixingRule
145    end function returnMixingRules
146 <
146 >  
147    function isPBC() result(PBCset)
148      logical :: PBCset
149      PBCset = .false.
150      if (thisSim%use_pbc) PBCset = .true.
151    end function isPBC
152 <
152 >  
153    pure function getStringLen() result (thislen)
154      integer :: thislen    
155      thislen = string_len
156 <  end function setStringLen
157 <
156 >  end function getStringLen
157 >  
158   end module simulation

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines