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