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 747 by gezelter, Fri Sep 5 21:28:52 2003 UTC vs.
Revision 836 by mmeineke, Tue Oct 28 22:25:46 2003 UTC

# Line 2 | Line 2
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 F90_FUNC(wrapforcefield, WRAPFORCEFIELD) (void (*wrapFunction)(void (*p1) makeAtypeList,
10 <                                                                      void (*p2) initFortranFFList,
11 <                                                                      void (*p3) doForceLoopList,
12 <                                                                      void (*p4) set_sticky_params_List,
13 <                                                                      void (*p5) set_gb_pair_params_List,
14 <                                                                      void (*p6) newEAMtype_List)
15 <                                  );
26 >  void F90_FUNC(wrapforcefield, WRAPFORCEFIELD)( ffWrapFunction_TD myWF );
27    
28 <  void F90_FUNC(wrapsimmod, WRAPSIMMOD) (void (*wrapFunction)(void (*p1) setFortranSimList,
29 <                                                              void (*p2) setFortranBoxList,
30 <                                                              void (*p3) notifyFortranCutOffList)
20 <                             );
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
23  void F90_FUNC(wrapsimparallelmod, WRAPSIMPARALLELMOD) (void (*wrapFunction)(void (*p1) setFortranMPIlist) );
24 #endif // is_mpi
35    
36 < }
36 >  typedef void (*spmWrapFunction_TD)( setFortranMPI_TD p1 );
37  
38 +  void F90_FUNC(wrapsimparallelmod, WRAPSIMPARALLELMOD)(spmWrapFunction_TD myWF);
39  
40 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
41 <             void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
31 <             void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List);
32 < void (*makeAtype) makeAtypeList;
33 < void (*initFortranFF) initFortranFFList;
34 < void (*set_sticky_params) set_sticky_params_List;
35 < void (*set_gb_pair_params) set_gb_pair_params_List;
36 < void (*newEAMtype) newEAMtype_List;
40 > #endif // is_mpi
41 > }
42  
43 < void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
44 <                  void (*p3) notifyFortranCutOffList );
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 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  
45
61   // take care of the ForceField functions
62  
63   ForceFields* currentFF;
# Line 52 | Line 67 | void wrapMeFF( ForceFields* thisFF ){
67    F90_FUNC(wrapforcefield, WRAPFORCEFIELD)( wrapFF );
68   }
69  
70 <
71 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
72 <             void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
73 <             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 63 | Line 80 | void wrapFF( void (*p1) makeAtypeList, void (*p2) init
80    set_sticky_params = p4;
81    set_gb_pair_params = p5;
82    newEAMtype = p6;
66  
83   }
84  
85  
# Line 76 | Line 92 | void wrapSimInfo( void (*p1) setFortranSimList, void (
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   }
103  
104  
105 +
106   #ifdef IS_MPI
107  
108   // wrap the mpiSim functions
# Line 94 | Line 114 | void wrapSimParallel(void (*p1) setFortranMPIlist ){
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