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 793 by mmeineke, Mon Sep 29 22:06:40 2003 UTC vs.
Revision 836 by mmeineke, Tue Oct 28 22:25:46 2003 UTC

# Line 4 | Line 4 | extern "C"{
4   #include "fSimulation.h"
5   #include "fortranWrappers.hpp"
6  
7 < extern "C"{
7 > // declare the actual instances of the function pointers
8  
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 <                                                 );
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 <  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) );
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 < void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
44 <             void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
45 <             void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List);
46 < void (*makeAtype) makeAtypeList;
47 < void (*initFortranFF) initFortranFFList;
48 < void (*set_sticky_params) set_sticky_params_List;
49 < void (*set_gb_pair_params) set_gb_pair_params_List;
50 < void (*newEAMtype) newEAMtype_List;
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( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
53 <                  void (*p3) notifyFortranCutOffList );
54 <
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;
# Line 50 | 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 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 74 | 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 92 | 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