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