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

Comparing trunk/OOPSE/libmdtools/fortranWrappers.cpp (file contents):
Revision 631 by chuckv, Thu Jul 17 19:25:51 2003 UTC vs.
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,
11 <                                              void (*p4) set_sticky_params_List,
12 <                                              void (*p5) set_gb_pair_params_List,
13 <                                              void (*p6) newEAMtype_List)
14 <                        );
26 >  void F90_FUNC(wrapforcefield, WRAPFORCEFIELD)( ffWrapFunction_TD myWF );
27    
28 <  void wrapsimmod_ ( void (*wrapFunction)( void (*p1) setFortranSimList,
29 <                                           void (*p2) setFortranBoxList,
30 <                                           void (*p3) notifyFortranCutOffList) );
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, void (*p4) set_sticky_params_List,
54 <             void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List);
55 < void (*makeAtype) makeAtypeList;
31 < void (*initFortranFF) initFortranFFList;
32 < void (*set_sticky_params) set_sticky_params_List;
33 < void (*set_gb_pair_params) set_gb_pair_params_List;
34 < void (*newEAMtype) newEAMtype_List;
35 <
36 < void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
37 <                  void (*p3) notifyFortranCutOffList );
38 <
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  
43
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   }
52  
69  
70 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
71 <             void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
72 <             void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List){
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;
# Line 61 | Line 80 | void wrapFF( void (*p1) makeAtypeList, void (*p2) init
80    set_sticky_params = p4;
81    set_gb_pair_params = p5;
82    newEAMtype = p6;
64
83   }
84  
85  
# Line 71 | 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,
96 <                  void (*p3) notifyFortranCutOffList){
95 >
96 >
97 > extern "C" void wrapSimInfo( setFortranSim_TD p1,
98 >                             setFortranBox_TD p2,
99 >                             notifyFortranCutOff_TD p3 ){
100    
101    currentPlug->setInternal( p1, p2, p3 );
102   }
82  
103  
104 +
105 +
106   #ifdef IS_MPI
107  
108   // wrap the mpiSim functions
# Line 89 | 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