1 /*****************************************************************************/
2 /*                     McDonnell Douglas Corporation                         */
3 /*****************************************************************************/
4 /*                                                                           */
5 /*****************************************************************************/
6 /*      'typedefs' and macro definitions for interfacing FORTRAN and C       */
7 /*****************************************************************************/
8 
9 #if defined(SYSTYPE)
10 #undef SYSTYPE
11 #endif
12 
13 #ifndef USE_ADF_MACROS
14 /* use the CGNS Fortran macros */
15 #include "fortran_macros.h"
16 #define SYSTYPE
17 typedef	VINTEGER		Fint;
18 typedef	VFLOAT			Freal;
19 typedef VREAL			Fdouble;
20 typedef VCHARACTER		*Fchar;
21 #define F2CP(FCHAR) STR_PTR(FCHAR)
22 #define FNAME(A,B) FMNAME(A,B)
23 
24 #else
25 #if defined(__convexc__)
26 /* Convex */
27 #define SYSTYPE
28 typedef	int			Fint;
29 typedef	float			Freal;
30 typedef double			Fdouble;
31 typedef char			*Fchar;
32 #define F2CP(FCHAR) (FCHAR)
33 #define FNAME(A,B) A ## _
34 
35 #elif defined(cray)
36 /* Cray */
37 #define SYSTYPE
38 #include <fortran.h>
39 typedef	int			Fint;
40 typedef	float			Freal;
41 typedef double			Fdouble;
42 typedef _fcd			Fchar;
43 #define F2CP(FCHAR) (_fcdtocp(FCHAR))
44 #define FNAME(A,B) B
45 
46 #elif defined(__hpux)
47 /* Hewlett Packard HP-UX */
48 #define SYSTYPE
49 typedef	int			Fint;
50 typedef	float			Freal;
51 typedef double			Fdouble;
52 typedef char			*Fchar;
53 #define F2CP(FCHAR) (FCHAR)
54 #define FNAME(A,B) A
55 
56 #elif defined(_AIX)
57 /* IBM RS/6000 */
58 #define SYSTYPE
59 typedef	int			Fint;
60 typedef	float			Freal;
61 typedef double			Fdouble;
62 typedef char			*Fchar;
63 #define F2CP(FCHAR) (FCHAR)
64 #define FNAME(A,B) A
65 
66 #elif defined(__PARAGON__)
67 /* Intel Paragon */
68 #define SYSTYPE
69 typedef	int			Fint;
70 typedef	float			Freal;
71 typedef double			Fdouble;
72 typedef char			*Fchar;
73 #define F2CP(FCHAR) (FCHAR)
74 #define FNAME(A,B) A ## _
75 
76 #elif defined(sgi)
77 /* Silicon Graphics */
78 #define SYSTYPE
79 typedef	int			Fint;
80 typedef	float			Freal;
81 typedef double			Fdouble;
82 typedef char			*Fchar;
83 #define F2CP(FCHAR) (FCHAR)
84 #define FNAME(A,B) A ## _
85 
86 #elif defined(VMS)
87 /* DEC VAX/VMS */
88 #define SYSTYPE
89 typedef	int			Fint;
90 typedef	float			Freal;
91 typedef double			Fdouble;
92 typedef struct dsc$descriptor_s	*Fchar;
93 #define F2CP(FCHAR) ((FCHAR)->dsc$a_pointer)
94 #define FNAME(A,B) A
95 #include <descrip.h>
96 
97 #elif defined(__alpha)
98 /* DEC ALPHA OSF/1 */
99 #define SYSTYPE
100 typedef	int			Fint;
101 typedef	float			Freal;
102 typedef double			Fdouble;
103 typedef char			*Fchar;
104 #define F2CP(FCHAR) (FCHAR)
105 #define FNAME(A,B) A ## _
106 
107 #elif defined(PPRO)
108 /* Pentium Pro (P6) using the Intel Reference Compiler */
109 #define SYSTYPE
110 typedef	int			Fint;
111 typedef	float			Freal;
112 typedef double			Fdouble;
113 typedef char			*Fchar;
114 #define F2CP(FCHAR) (FCHAR)
115 #define FNAME(A,B) A
116 
117 #elif defined(sun)
118 /* Sun */
119 #define SYSTYPE
120 typedef	int			Fint;
121 typedef	float			Freal;
122 typedef double			Fdouble;
123 typedef char			*Fchar;
124 #define F2CP(FCHAR) (FCHAR)
125 #define FNAME(A,B) A ## _
126 
127 #elif defined(_WIN32)
128 /* WIN32  */
129 #define SYSTYPE
130 typedef	int				Fint;
131 typedef	float			Freal;
132 typedef double			Fdouble;
133 typedef char			*Fchar;
134 #define F2CP(FCHAR) (FCHAR)
135 #define FNAME(A,B) B
136 
137 #elif defined(_CX_UX)
138 /* Harris Nighthawk */
139 #define SYSTYPE
140 typedef	int			Fint;
141 typedef	float			Freal;
142 typedef double			Fdouble;
143 typedef char			*Fchar;
144 #define F2CP(FCHAR) (FCHAR)
145 #define FNAME(A,B) A ## _
146 
147 #elif defined(m88k)
148 #define SYSTYPE
149 typedef	int			Fint;
150 typedef	float			Freal;
151 typedef double			Fdouble;
152 typedef char			*Fchar;
153 #define F2CP(FCHAR) (FCHAR)
154 #define FNAME(A,B) A/**/_
155 
156 #elif defined(__linux__)
157 /* LINUX on Intel */
158 #define SYSTYPE
159 typedef	int			Fint;
160 typedef	float			Freal;
161 typedef double			Fdouble;
162 typedef char			*Fchar;
163 #define F2CP(FCHAR) (FCHAR)
164 #define FNAME(A,B) A ## _
165 
166 #else
167 typedef	int			Fint;
168 typedef	float			Freal;
169 typedef double			Fdouble;
170 typedef char			*Fchar;
171 #define F2CP(FCHAR) (FCHAR)
172 #define FNAME(A,B) A
173 #endif
174 #endif
175