ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/fortranWrapDefines.hpp
Revision: 836
Committed: Tue Oct 28 22:25:46 2003 UTC (20 years, 8 months ago) by mmeineke
File size: 2372 byte(s)
Log Message:
did a complete overhaul of how c calls fortran. All function pointers and fortran calls are rigidly typecast now.

File Contents

# User Rev Content
1 mmeineke 377 #ifndef __FORTRAN_WRAP_DEFINES_H__
2     #define __FORTRAN_WRAP_DEFINES_H__
3    
4 mmeineke 836 #define __C
5     #include "fSimulation.h"
6 mmeineke 377
7 mmeineke 836 // here we declare the function pointer typedefs for fortran functions
8 mmeineke 377
9 mmeineke 836 extern "C" {
10    
11     typedef void (*makeAtype_TD) ( int* unique_ident,
12     int* isLJ,
13     int* isSticky,
14     int* isDipole,
15     int* isGB,
16     int* isEAM,
17     double* lj_epslon,
18     double* lj_sigma,
19     double* dipole_moment,
20     int* status );
21    
22     typedef void (*newEAMtype_TD)( double* lattice_constant,
23     int* eam_nrho,
24     double* eam_drho,
25     int* eam_nr,
26     double* eam_dr,
27     double* eam_rcut,
28     double* eam_rvals,
29     double* eam_rhovals,
30     double* eam_Frhovals,
31     int* eam_ident,
32     int* status );
33    
34     typedef void (*initFortranFF_TD)( int* LJ_mix_policy,
35     int* useReactionField,
36     int *isError );
37    
38     typedef void (*doForceLoop_TD)( double* positionArray,
39     double* RotationMatrixArray,
40     double* unitVectorArray_l,
41     double* forceArray,
42     double *torqueArray,
43     double* StressTensor,
44     double* potentialEnergy,
45     short int* doPotentialCalc,
46     short int* doStressCalc,
47     int* isError );
48    
49     typedef void (*set_sticky_params_TD)( double* sticky_w0,
50     double* sticky_v0,
51     double* sticky_v0p,
52     double* sticky_rl,
53     double* sticky_ru,
54     double* sticky_rlp,
55     double* sticky_rup );
56 chuckv 631
57 mmeineke 836 typedef void (*set_gb_pair_params_TD)( double* GB_sigma,
58     double* GB_l2b_ratio,
59     double* GB_eps,
60     double* GB_eps_ratio,
61     double* GB_mu,
62     double* GB_nu );
63 chuckv 631
64 mmeineke 836 typedef void (*setFortranSim_TD)( simtype* the_Info,
65     int* nGlobal,
66     int* nLocal,
67     int* identArray,
68     int* nLocalExcludes,
69     int* excludesLocalArray,
70     int* nGloabalsExcludes,
71     int* excludesGlobalArray,
72     int* molMembershipArray,
73     int* isError );
74 chuckv 631
75 mmeineke 836 typedef void (*setFortranBox_TD) ( double *Hmat,
76     double *HmatI,
77     int* orthoRhombic );
78 mmeineke 377
79 mmeineke 836 typedef void (*notifyFortranCutOff_TD) ( double *rCut,
80     double *rList,
81     double *ecr,
82     double *est );
83     }
84 mmeineke 377
85 chuckv 460
86 mmeineke 836 #ifdef IS_MPI
87 chuckv 460
88 mmeineke 836 #include "mpiComponentPlan.h"
89 mmeineke 377
90    
91 mmeineke 626
92 mmeineke 836 extern "C" {
93    
94     typedef void (*setFortranMPI_TD)( mpiSimData* the_mpiPlug,
95     int *nLocal,
96     int* globalIndexArray,
97     int* isError );
98 mmeineke 377
99 mmeineke 836 }
100 mmeineke 377
101     #endif // is_mpi
102    
103     #endif // frotranWrapDefines.hpp