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

Comparing trunk/OOPSE-4/src/UseTheForce/doForces_interface.F90 (file contents):
Revision 1948 by gezelter, Fri Jan 14 20:31:16 2005 UTC vs.
Revision 3129 by chrisfen, Fri Apr 20 18:15:48 2007 UTC

# Line 1 | Line 1
1   !! Interfaces for C programs to module....
2  
3 < subroutine initFortranFF(use_RF_c, thisStat)
3 > subroutine initFortranFF(thisStat)
4    use doForces, ONLY: init_FF
5 <  logical, intent(in) :: use_RF_c
5 >  use definitions, ONLY : dp
6 >
7 >  integer, intent(out) :: thisStat
8    
9 <  integer, intent(out) :: thisStat  
10 <  call init_FF(use_RF_c, thisStat)
9 <  
9 >  call init_FF(thisStat)
10 >
11   end subroutine initFortranFF
12  
13   subroutine doForceloop(q, q_group, A, eFrame, f, t, tau, pot, &
14       do_pot_c, do_stress_c, error)
15 <  
15 >
16    use definitions, ONLY: dp
17    use simulation
18    use doForces, ONLY: do_force_loop
19 +
20 + #define __FORTRAN90
21 + #include "UseTheForce/DarkSide/fInteractionMap.h"
22 +
23    !! Position array provided by C, dimensioned by getNlocal
24    real ( kind = dp ), dimension(3, nLocal) :: q
25    !! molecular center-of-mass position array
# Line 27 | Line 32 | subroutine doForceloop(q, q_group, A, eFrame, f, t, ta
32    real ( kind = dp ), dimension(3,nLocal) :: f
33    !! Torsion array provided by C, dimensioned by getNlocal
34    real( kind = dp ), dimension(3,nLocal) :: t    
35 <  
35 >
36    !! Stress Tensor
37    real( kind = dp), dimension(9) :: tau  
38 <  real ( kind = dp ) :: pot
38 >  real ( kind = dp ),dimension(LR_POT_TYPES) :: pot
39    logical ( kind = 2) :: do_pot_c, do_stress_c
40    integer :: error
41 <  
41 >
42    call do_force_loop(q, q_group, A, eFrame, f, t, tau, pot, &
43         do_pot_c, do_stress_c, error)
44 <  
44 >
45   end subroutine doForceloop
46 +
47 + subroutine getAccumulatedBoxDipole( box_dipole )
48 +  
49 +  use definitions, ONLY: dp
50 +  use doForces, ONLY: getBoxDipole
51 +
52 +  !! simulation box dipole moment
53 +  real ( kind = dp ), dimension(3) :: box_dipole
54 +  
55 +  call getBoxDipole( box_dipole )
56 +  
57 + end subroutine getAccumulatedBoxDipole
58 +
59 + subroutine setAccumulateBoxDipole()
60 +
61 +  use doForces, ONLY: setBoxDipole
62 +
63 +  call setBoxDipole()
64 +  
65 + end subroutine setAccumulateBoxDipole
66 +
67 + subroutine setFortranElectrostaticMethod(electrostaticMethod)
68 +  use doForces, ONLY : setElectrostaticMethod
69 +
70 +  integer, intent(in) :: electrostaticMethod
71 +
72 +  call setElectrostaticMethod(electrostaticMethod)
73 +
74 + end subroutine setFortranElectrostaticMethod
75 +
76 + subroutine notifyFortranCutoffPolicy(cutPolicy)
77 +  use doForces, ONLY : setCutoffPolicy
78 +
79 +  integer, intent(in) :: cutPolicy
80 +
81 +  call setCutoffPolicy( cutPolicy )
82 +
83 + end subroutine notifyFortranCutoffPolicy
84 +
85 + subroutine notifyFortranSkinThickness(this_skin)
86 +  use doForces, ONLY : setSkinThickness
87 +  use definitions, ONLY : dp
88 +
89 +  real(kind=dp), intent(in) :: this_skin
90 +
91 +  call setSkinThickness( this_skin )
92 +
93 + end subroutine notifyFortranSkinThickness
94 +
95 + subroutine notifyFortranCutoffs(this_rcut, this_rsw, this_sp, this_sf)
96 +  use doForces, ONLY : setCutoffs
97 +  use definitions, ONLY : dp
98 +
99 +  real(kind=dp), intent(in) :: this_rcut, this_rsw
100 +  logical, intent(in) :: this_sp, this_sf
101 +
102 +  call setCutoffs(this_rcut, this_rsw, this_sp, this_sf)
103 +
104 + end subroutine notifyFortranCutoffs
105 +
106 + subroutine notifyFortranYouAreOnYourOwn()
107 +  use doForces, ONLY : cWasLame
108 +
109 +  call cWasLame()
110 + end subroutine notifyFortranYouAreOnYourOwn

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines