| 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 |
|
|
| 36 |
|
public :: getDielect |
| 37 |
|
public :: SimUsesPBC |
| 38 |
|
public :: SimUsesLJ |
| 39 |
+ |
public :: SimUsesCharges |
| 40 |
|
public :: SimUsesDipoles |
| 41 |
|
public :: SimUsesSticky |
| 42 |
|
public :: SimUsesRF |
| 50 |
|
|
| 51 |
|
subroutine SimulationSetup(setThisSim, CnGlobal, CnLocal, c_idents, & |
| 52 |
|
CnLocalExcludes, CexcludesLocal, CnGlobalExcludes, CexcludesGlobal, & |
| 53 |
< |
CmolMembership, & |
| 53 |
> |
CmolMembership, mfact, ngroup, groupList, groupStart, & |
| 54 |
|
status) |
| 55 |
|
|
| 56 |
|
type (simtype) :: setThisSim |
| 65 |
|
!! Result status, success = 0, status = -1 |
| 66 |
|
integer, intent(out) :: status |
| 67 |
|
integer :: i, me, thisStat, alloc_stat, myNode |
| 68 |
+ |
|
| 69 |
+ |
!! mass factors used for molecular cutoffs |
| 70 |
+ |
real ( kind = dp ), dimension(3,nLocal) :: mfact |
| 71 |
+ |
integer, intent(in):: ngroup |
| 72 |
+ |
integer, dimension(nLocal),intent(in) :: groupList |
| 73 |
+ |
integer, dimension(ngroup),intent(in) :: groupStart |
| 74 |
+ |
|
| 75 |
|
#ifdef IS_MPI |
| 76 |
|
integer, allocatable, dimension(:) :: c_idents_Row |
| 77 |
|
integer, allocatable, dimension(:) :: c_idents_Col |
| 150 |
|
deallocate(c_idents_Row) |
| 151 |
|
endif |
| 152 |
|
|
| 153 |
< |
#else |
| 153 |
> |
#endif |
| 154 |
> |
|
| 155 |
> |
! We build the local atid's for both mpi and nonmpi |
| 156 |
|
do i = 1, nLocal |
| 157 |
|
|
| 158 |
|
me = getFirstMatchingElement(atypes, "c_ident", c_idents(i)) |
| 159 |
|
atid(i) = me |
| 160 |
|
|
| 161 |
|
enddo |
| 152 |
– |
#endif |
| 162 |
|
|
| 163 |
|
|
| 164 |
|
|
| 165 |
+ |
|
| 166 |
|
do i = 1, nExcludes_Local |
| 167 |
|
excludesLocal(1,i) = CexcludesLocal(1,i) |
| 168 |
|
excludesLocal(2,i) = CexcludesLocal(2,i) |
| 216 |
|
doesit = thisSim%SIM_uses_sticky |
| 217 |
|
end function SimUsesSticky |
| 218 |
|
|
| 219 |
+ |
function SimUsesCharges() result(doesit) |
| 220 |
+ |
logical :: doesit |
| 221 |
+ |
doesit = thisSim%SIM_uses_charges |
| 222 |
+ |
end function SimUsesCharges |
| 223 |
+ |
|
| 224 |
|
function SimUsesDipoles() result(doesit) |
| 225 |
|
logical :: doesit |
| 226 |
|
doesit = thisSim%SIM_uses_dipoles |