ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/fortranWrappers.cpp
(Generate patch)

Comparing:
branches/mmeineke/OOPSE/libmdtools/fortranWrappers.cpp (file contents), Revision 377 by mmeineke, Fri Mar 21 17:42:12 2003 UTC vs.
trunk/OOPSE/libmdtools/fortranWrappers.cpp (file contents), Revision 836 by mmeineke, Tue Oct 28 22:25:46 2003 UTC

# Line 1 | Line 1
1   #define __C
2 +
3 + #include "config.h"
4   #include "fSimulation.h"
5 < #include <fortranWrappers.hpp>
5 > #include "fortranWrappers.hpp"
6  
7 + // declare the actual instances of the function pointers
8  
9 + makeAtype_TD makeAtype;
10 + initFortranFF_TD initFortranFF;
11 + set_sticky_params_TD set_sticky_params;
12 + set_gb_pair_params_TD set_gb_pair_params;
13 + newEAMtype_TD newEAMtype;
14 +
15 + // declare the functions on the fortran side
16 +
17   extern "C" {
18 +  
19 +  typedef void (*ffWrapFunction_TD)( makeAtype_TD p1,
20 +                                     initFortranFF_TD p2,
21 +                                     doForceLoop_TD p3,
22 +                                     set_sticky_params_TD p4,
23 +                                     set_gb_pair_params_TD p5,
24 +                                     newEAMtype_TD p6 );
25  
26 <  void wrapforcefield_( void (*wrapFunction)( void (*p1) makeAtypeList,
9 <                                              void (*p2) initFortranFFList,
10 <                                              void (*p3) doForceLoopList ));
26 >  void F90_FUNC(wrapforcefield, WRAPFORCEFIELD)( ffWrapFunction_TD myWF );
27    
28 <  void wrapsimmod_ ( void (*wrapFunction)( void (*p1) setFortranSimList,
29 <                                           void (*p2) setFortranBoxList) );
28 >  typedef void (*smWrapFunction_TD)( setFortranSim_TD p1,
29 >                                     setFortranBox_TD p2,
30 >                                     notifyFortranCutOff_TD p3 );
31  
32 +  void F90_FUNC(wrapsimmod, WRAPSIMMOD) ( smWrapFunction_TD myWF );
33 +  
34   #ifdef IS_MPI
35 <  void wrapsimparallelmod_( void (*wrapFunction)(void (*p1) setFortranMPIlist ) );
36 < #endif // is_mpi
35 >  
36 >  typedef void (*spmWrapFunction_TD)( setFortranMPI_TD p1 );
37  
38 +  void F90_FUNC(wrapsimparallelmod, WRAPSIMPARALLELMOD)(spmWrapFunction_TD myWF);
39 +
40 + #endif // is_mpi
41   }
42  
43 + // declare the functions that are defined in this file
44 + extern "C"{
45 +  void wrapFF(makeAtype_TD p1,
46 +              initFortranFF_TD p2,
47 +              doForceLoop_TD p3,
48 +              set_sticky_params_TD p4,
49 +              set_gb_pair_params_TD p5,
50 +              newEAMtype_TD p6 );
51  
52 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
53 <             void (*p3) doForceLoopList );
54 < void (*makeAtype) makeAtypeList;
55 < void (*initFortranFF) initFortranFFList;
26 <
27 < void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList );
28 <
52 >  void wrapSimInfo(setFortranSim_TD p1,
53 >                   setFortranBox_TD p2,
54 >                   notifyFortranCutOff_TD p3 );
55 >  
56   #ifdef IS_MPI
57 < void wrapSimParallel(void (*p1) setFortranMPIlist );
58 < #endif // is_mpi
57 >  void wrapSimParallel( setFortranMPI_TD p1 );
58 > #endif
59 > }
60  
33
61   // take care of the ForceField functions
62  
63   ForceFields* currentFF;
64   void wrapMeFF( ForceFields* thisFF ){
65    
66    currentFF = thisFF;
67 <  wrapforcefield_( wrapFF );
67 >  F90_FUNC(wrapforcefield, WRAPFORCEFIELD)( wrapFF );
68   }
42  
69  
70 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
71 <             void (*p3) doForceLoopList ){
70 > extern "C" void wrapFF( makeAtype_TD p1,
71 >                        initFortranFF_TD p2,
72 >                        doForceLoop_TD p3,
73 >                        set_sticky_params_TD p4,
74 >                        set_gb_pair_params_TD p5,
75 >                        newEAMtype_TD p6 ){
76    
77    makeAtype = p1;
78    initFortranFF = p2;
79    currentFF->setFortranForceLoop( p3 );
80 +  set_sticky_params = p4;
81 +  set_gb_pair_params = p5;
82 +  newEAMtype = p6;
83   }
84  
85  
# Line 56 | Line 89 | void wrapMeSimInfo( SimInfo* thePlug ){
89   void wrapMeSimInfo( SimInfo* thePlug ){
90    
91    currentPlug = thePlug;
92 <  wrapsimmod_( wrapSimInfo );
92 >  F90_FUNC(wrapsimmod, WRAPSIMMOD) ( wrapSimInfo );
93   }
94  
95 < void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList ){
95 >
96 >
97 > extern "C" void wrapSimInfo( setFortranSim_TD p1,
98 >                             setFortranBox_TD p2,
99 >                             notifyFortranCutOff_TD p3 ){
100    
101 <  currentPlug->setInternal( p1, p2 );
101 >  currentPlug->setInternal( p1, p2, p3 );
102   }
66  
103  
104 +
105 +
106   #ifdef IS_MPI
107  
108   // wrap the mpiSim functions
# Line 73 | Line 111 | void wrapMeSimParallel( mpiSimulation* thisMPIsim ){
111   void wrapMeSimParallel( mpiSimulation* thisMPIsim ){
112    
113    currentMPIsim = thisMPIsim;
114 <  wrapsimparallelmod_( wrapSimParallel );
114 >  F90_FUNC(wrapsimparallelmod, WRAPSIMPARALLELMOD) ( wrapSimParallel );
115   }
116  
117 < void wrapSimParallel(void (*p1) setFortranMPIlist ){
117 > extern "C" void wrapSimParallel( setFortranMPI_TD p1 ){
118    
119    currentMPIsim->setInternal( p1 );
120   }
121  
122  
123   #endif // is_mpi
124 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines