ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/fortranWrappers.cpp
Revision: 460
Committed: Fri Apr 4 22:22:30 2003 UTC (21 years, 2 months ago) by chuckv
File size: 2358 byte(s)
Log Message:
Breaking c and fortran, c gets smarter, fortran gets dumber...

File Contents

# Content
1 #define __C
2 #include "fSimulation.h"
3 #include <fortranWrappers.hpp>
4
5
6 extern "C" {
7
8 void wrapforcefield_( void (*wrapFunction)( void (*p1) makeAtypeList,
9 void (*p2) initFortranFFList,
10 void (*p3) doForceLoopList,
11 void (*p4) LJ_new_rcut_List,
12 void (*p5) set_sticky_params_List,
13 void (*p6) set_gp_pair_params_List )
14 );
15
16 void wrapsimmod_ ( void (*wrapFunction)( void (*p1) setFortranSimList,
17 void (*p2) setFortranBoxList) );
18
19 #ifdef IS_MPI
20 void wrapsimparallelmod_( void (*wrapFunction)(void (*p1) setFortranMPIlist ) );
21 #endif // is_mpi
22
23 }
24
25
26 void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
27 void (*p3) doForceLoopList, void (*p4) LJ_new_rcut_List,
28 void (*p5) set_sticky_params_List,
29 void (*p6) set_gb_pair_params_List );
30 void (*makeAtype) makeAtypeList;
31 void (*initFortranFF) initFortranFFList;
32 void (*LJ_new_rcut) LJ_new_rcut_List;
33 void (*set_sticky_params) set_sticky_params_List;
34 void (*set_gb_pair_params) set_gb_pair_params_List;
35
36 void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList );
37
38 #ifdef IS_MPI
39 void wrapSimParallel(void (*p1) setFortranMPIlist );
40 #endif // is_mpi
41
42
43 // take care of the ForceField functions
44
45 ForceFields* currentFF;
46 void wrapMeFF( ForceFields* thisFF ){
47
48 currentFF = thisFF;
49 wrapforcefield_( wrapFF );
50 }
51
52
53 void wrapFF( void (*p1) makeAtypeList, void (*p2) initFortranFFList,
54 void (*p3) doForceLoopList, void (*p4) LJ_new_rcut_List,
55 void (*p5) set_sticky_params_List,
56 void (*p6) set_gb_pair_params_List ){
57
58 makeAtype = p1;
59 initFortranFF = p2;
60 currentFF->setFortranForceLoop( p3 );
61 LJ_new_rcut = p4;
62 set_sticky_params = p5;
63 set_gb_pair_params = p6;
64
65 }
66
67
68 // wrap the SimInfo functions
69
70 SimInfo* currentPlug;
71 void wrapMeSimInfo( SimInfo* thePlug ){
72
73 currentPlug = thePlug;
74 wrapsimmod_( wrapSimInfo );
75 }
76
77 void wrapSimInfo( void (*p1) setFortranSimList, void (*p2) setFortranBoxList ){
78
79 currentPlug->setInternal( p1, p2 );
80 }
81
82
83 #ifdef IS_MPI
84
85 // wrap the mpiSim functions
86
87 mpiSimulation* currentMPIsim;
88 void wrapMeSimParallel( mpiSimulation* thisMPIsim ){
89
90 currentMPIsim = thisMPIsim;
91 wrapsimparallelmod_( wrapSimParallel );
92 }
93
94 void wrapSimParallel(void (*p1) setFortranMPIlist ){
95
96 currentMPIsim->setInternal( p1 );
97 }
98
99
100 #endif // is_mpi