00001
00002
00007 #ifndef F2C_INCLUDE
00008 #define F2C_INCLUDE
00009
00010 typedef int integer;
00011 typedef char *address;
00012 typedef short int shortint;
00013 typedef float real;
00014 typedef double doublereal;
00015 typedef struct { real r, i; } complex;
00016 typedef struct { doublereal r, i; } doublecomplex;
00017 typedef int logical;
00018 typedef short int shortlogical;
00019
00020 #define TRUE_ (1)
00021 #define FALSE_ (0)
00022
00023
00024 #ifndef Extern
00025 #define Extern extern
00026 #endif
00027
00028
00029
00030 #ifdef f2c_i2
00031
00032 typedef short flag;
00033 typedef short ftnlen;
00034 typedef short ftnint;
00035 #else
00036 typedef long flag;
00037 typedef long ftnlen;
00038 typedef long ftnint;
00039 #endif
00040
00041
00042 typedef struct
00043 { flag cierr;
00044 ftnint ciunit;
00045 flag ciend;
00046 char *cifmt;
00047 ftnint cirec;
00048 } cilist;
00049
00050
00051 typedef struct
00052 { flag icierr;
00053 char *iciunit;
00054 flag iciend;
00055 char *icifmt;
00056 ftnint icirlen;
00057 ftnint icirnum;
00058 } icilist;
00059
00060
00061 typedef struct
00062 { flag oerr;
00063 ftnint ounit;
00064 char *ofnm;
00065 ftnlen ofnmlen;
00066 char *osta;
00067 char *oacc;
00068 char *ofm;
00069 ftnint orl;
00070 char *oblnk;
00071 } olist;
00072
00073
00074 typedef struct
00075 { flag cerr;
00076 ftnint cunit;
00077 char *csta;
00078 } cllist;
00079
00080
00081 typedef struct
00082 { flag aerr;
00083 ftnint aunit;
00084 } alist;
00085
00086
00087 typedef struct
00088 { flag inerr;
00089 ftnint inunit;
00090 char *infile;
00091 ftnlen infilen;
00092 ftnint *inex;
00093 ftnint *inopen;
00094 ftnint *innum;
00095 ftnint *innamed;
00096 char *inname;
00097 ftnlen innamlen;
00098 char *inacc;
00099 ftnlen inacclen;
00100 char *inseq;
00101 ftnlen inseqlen;
00102 char *indir;
00103 ftnlen indirlen;
00104 char *infmt;
00105 ftnlen infmtlen;
00106 char *inform;
00107 ftnint informlen;
00108 char *inunf;
00109 ftnlen inunflen;
00110 ftnint *inrecl;
00111 ftnint *innrec;
00112 char *inblank;
00113 ftnlen inblanklen;
00114 } inlist;
00115
00116 #define VOID void
00117
00118 union multitype {
00119 shortint h;
00120 integer i;
00121 real r;
00122 doublereal d;
00123 complex c;
00124 doublecomplex z;
00125 };
00126
00127 typedef union multitype Multitype;
00128
00129 typedef long Long;
00130
00131 struct vardesc {
00132 char *name;
00133 char *addr;
00134 ftnlen *dims;
00135 int type;
00136 };
00137 typedef struct vardesc Vardesc;
00138
00139 struct namelist {
00140 char *name;
00141 Vardesc **vars;
00142 int nvars;
00143 };
00144 typedef struct namelist Namelist;
00145
00146 #define abs(x) ((x) >= 0 ? (x) : -(x))
00147 #define dabs(x) (doublereal)abs(x)
00148 #define min(a,b) ((a) <= (b) ? (a) : (b))
00149 #define max(a,b) ((a) >= (b) ? (a) : (b))
00150 #define dmin(a,b) (doublereal)min(a,b)
00151 #define dmax(a,b) (doublereal)max(a,b)
00152
00153
00154
00155 #define F2C_proc_par_types 1
00156 #ifdef __cplusplus
00157 typedef int (*U_fp)(...);
00158 typedef shortint (*J_fp)(...);
00159 typedef integer (*I_fp)(...);
00160 typedef real (*R_fp)(...);
00161 typedef doublereal (*D_fp)(...), (*E_fp)(...);
00162 typedef VOID (*C_fp)(...);
00163 typedef VOID (*Z_fp)(...);
00164 typedef logical (*L_fp)(...);
00165 typedef shortlogical (*K_fp)(...);
00166 typedef VOID (*H_fp)(...);
00167 typedef int (*S_fp)(...);
00168 #else
00169 typedef int (*U_fp)();
00170 typedef shortint (*J_fp)();
00171 typedef integer (*I_fp)();
00172 typedef real (*R_fp)();
00173 typedef doublereal (*D_fp)(), (*E_fp)();
00174 typedef VOID (*C_fp)();
00175 typedef VOID (*Z_fp)();
00176 typedef logical (*L_fp)();
00177 typedef shortlogical (*K_fp)();
00178 typedef VOID (*H_fp)();
00179 typedef int (*S_fp)();
00180 #endif
00181
00182 typedef VOID C_f;
00183 typedef VOID H_f;
00184 typedef VOID Z_f;
00185 typedef doublereal E_f;
00186
00187
00188
00189 #ifndef Skip_f2c_Undefs
00190 #undef cray
00191 #undef gcos
00192 #undef mc68010
00193 #undef mc68020
00194 #undef mips
00195 #undef pdp11
00196 #undef sgi
00197 #undef sparc
00198 #undef sun
00199 #undef sun2
00200 #undef sun3
00201 #undef sun4
00202 #undef u370
00203 #undef u3b
00204 #undef u3b2
00205 #undef u3b5
00206 #undef unix
00207 #undef vax
00208 #endif
00209 #endif
00210