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 832 by gezelter, Tue Oct 28 17:04:06 2003 UTC vs.
Revision 836 by mmeineke, Tue Oct 28 22:25:46 2003 UTC

# Line 4 | Line 4
4   #include "fSimulation.h"
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" {
9  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                                                 );
18    
19 <  void F90_FUNC(wrapsimmod, WRAPSIMMOD) (void (*wrapFunction)(void (*p1) setFortranSimList,
20 <                                                              void (*p2) setFortranBoxList,
21 <                                                              void (*p3) notifyFortranCutOffList)
22 <                                         );
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)( ffWrapFunction_TD myWF );
27    
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 F90_FUNC(wrapsimparallelmod, 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 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
28 <             void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
29 <             void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List);
40 > #endif // is_mpi
41   }
42  
43 < /*
44 < void (*makeAtype) makeAtypeList;
45 < void (*initFortranFF) initFortranFFList;
46 < void (*set_sticky_params) set_sticky_params_List;
47 < void (*set_gb_pair_params) set_gb_pair_params_List;
48 < void (*newEAMtype) newEAMtype_List;
49 < */
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 < extern "C" {
53 < void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
54 <                  void (*p3) notifyFortranCutOffList );
55 <
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  
61   // take care of the ForceField functions
# Line 55 | 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 66 | Line 80 | void wrapFF( void (*p1) makeAtypeList, void (*p2) init
80    set_sticky_params = p4;
81    set_gb_pair_params = p5;
82    newEAMtype = p6;
69  
83   }
84  
85  
# Line 80 | Line 93 | extern "C" void wrapSimInfo( void (*p1) setFortranSimL
93   }
94  
95  
83 extern "C" void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
84                  void (*p3) notifyFortranCutOffList){
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 98 | 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   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines