ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/fortranWrappers.cpp
Revision: 832
Committed: Tue Oct 28 17:04:06 2003 UTC (20 years, 8 months ago) by gezelter
File size: 3024 byte(s)
Log Message:
started trying to understand extern "C" stuff for pointers

File Contents

# User Rev Content
1 mmeineke 377 #define __C
2 gezelter 747
3     #include "config.h"
4 mmeineke 377 #include "fSimulation.h"
5 mmeineke 790 #include "fortranWrappers.hpp"
6 mmeineke 377
7    
8 gezelter 832 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     );
16 mmeineke 377
17 gezelter 832 void F90_FUNC(wrapsimmod, WRAPSIMMOD) (void (*wrapFunction)(void (*p1) setFortranSimList,
18 mmeineke 790 void (*p2) setFortranBoxList,
19     void (*p3) notifyFortranCutOffList)
20     );
21    
22 mmeineke 377 #ifdef IS_MPI
23 gezelter 832 void F90_FUNC(wrapsimparallelmod, WRAPSIMPARALLELMOD) (void (*wrapFunction)(void (*p1) setFortranMPIlist) );
24 mmeineke 377 #endif // is_mpi
25    
26 gezelter 832
27 mmeineke 377 void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
28 mmeineke 626 void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
29 chuckv 631 void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List);
30 gezelter 832 }
31    
32     /*
33 mmeineke 377 void (*makeAtype) makeAtypeList;
34     void (*initFortranFF) initFortranFFList;
35 chuckv 460 void (*set_sticky_params) set_sticky_params_List;
36     void (*set_gb_pair_params) set_gb_pair_params_List;
37 chuckv 631 void (*newEAMtype) newEAMtype_List;
38 gezelter 832 */
39 mmeineke 377
40 gezelter 832 extern "C" {
41 mmeineke 626 void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
42     void (*p3) notifyFortranCutOffList );
43 mmeineke 377
44     #ifdef IS_MPI
45     void wrapSimParallel(void (*p1) setFortranMPIlist );
46     #endif // is_mpi
47 gezelter 832 }
48 mmeineke 377
49     // take care of the ForceField functions
50    
51     ForceFields* currentFF;
52     void wrapMeFF( ForceFields* thisFF ){
53    
54     currentFF = thisFF;
55 gezelter 747 F90_FUNC(wrapforcefield, WRAPFORCEFIELD)( wrapFF );
56 mmeineke 377 }
57    
58 gezelter 747
59 mmeineke 377 void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
60 mmeineke 626 void (*p3) doForceLoopList, void (*p4) set_sticky_params_List,
61 chuckv 631 void (*p5) set_gb_pair_params_List, void (*p6) newEAMtype_List){
62 mmeineke 377
63     makeAtype = p1;
64     initFortranFF = p2;
65     currentFF->setFortranForceLoop( p3 );
66 mmeineke 626 set_sticky_params = p4;
67     set_gb_pair_params = p5;
68 chuckv 631 newEAMtype = p6;
69 gezelter 747
70 mmeineke 377 }
71    
72    
73     // wrap the SimInfo functions
74    
75     SimInfo* currentPlug;
76     void wrapMeSimInfo( SimInfo* thePlug ){
77    
78     currentPlug = thePlug;
79 gezelter 747 F90_FUNC(wrapsimmod, WRAPSIMMOD) ( wrapSimInfo );
80 mmeineke 377 }
81    
82 gezelter 832
83     extern "C" void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList,
84 mmeineke 626 void (*p3) notifyFortranCutOffList){
85 gezelter 832
86 mmeineke 626 currentPlug->setInternal( p1, p2, p3 );
87 mmeineke 377 }
88    
89 gezelter 747
90 mmeineke 377 #ifdef IS_MPI
91    
92     // wrap the mpiSim functions
93    
94     mpiSimulation* currentMPIsim;
95     void wrapMeSimParallel( mpiSimulation* thisMPIsim ){
96    
97     currentMPIsim = thisMPIsim;
98 gezelter 747 F90_FUNC(wrapsimparallelmod, WRAPSIMPARALLELMOD) ( wrapSimParallel );
99 mmeineke 377 }
100    
101     void wrapSimParallel(void (*p1) setFortranMPIlist ){
102    
103     currentMPIsim->setInternal( p1 );
104     }
105    
106    
107     #endif // is_mpi
108 mmeineke 790