00001
00002
00007 #ifndef F2C_INCLUDE
00008 #define F2C_INCLUDE
00009
00010 typedef long 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 long int logical;
00018 typedef short int shortlogical;
00019 typedef char logical1;
00020 typedef char integer1;
00021
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 long int flag;
00040 typedef long int ftnlen;
00041 typedef long 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 integer1 g;
00123 shortint h;
00124 integer i;
00125
00126 real r;
00127 doublereal d;
00128 complex c;
00129 doublecomplex z;
00130 };
00131
00132 typedef union Multitype Multitype;
00133
00134
00135
00136 struct Vardesc {
00137 char *name;
00138 char *addr;
00139 ftnlen *dims;
00140 int type;
00141 };
00142 typedef struct Vardesc Vardesc;
00143
00144 struct Namelist {
00145 char *name;
00146 Vardesc **vars;
00147 int nvars;
00148 };
00149 typedef struct Namelist Namelist;
00150
00151 #define abs(x) ((x) >= 0 ? (x) : -(x))
00152 #define dabs(x) (doublereal)abs(x)
00153 #define min(a,b) ((a) <= (b) ? (a) : (b))
00154 #define max(a,b) ((a) >= (b) ? (a) : (b))
00155 #define dmin(a,b) (doublereal)min(a,b)
00156 #define dmax(a,b) (doublereal)max(a,b)
00157
00158
00159
00160 #define F2C_proc_par_types 1
00161 #ifdef __cplusplus
00162 typedef int (*U_fp)(...);
00163 typedef shortint (*J_fp)(...);
00164 typedef integer (*I_fp)(...);
00165 typedef real (*R_fp)(...);
00166 typedef doublereal (*D_fp)(...), (*E_fp)(...);
00167 typedef VOID (*C_fp)(...);
00168 typedef VOID (*Z_fp)(...);
00169 typedef logical (*L_fp)(...);
00170 typedef shortlogical (*K_fp)(...);
00171 typedef VOID (*H_fp)(...);
00172 typedef int (*S_fp)(...);
00173 #else
00174 typedef int (*U_fp)();
00175 typedef shortint (*J_fp)();
00176 typedef integer (*I_fp)();
00177 typedef real (*R_fp)();
00178 typedef doublereal (*D_fp)(), (*E_fp)();
00179 typedef VOID (*C_fp)();
00180 typedef VOID (*Z_fp)();
00181 typedef logical (*L_fp)();
00182 typedef shortlogical (*K_fp)();
00183 typedef VOID (*H_fp)();
00184 typedef int (*S_fp)();
00185 #endif
00186
00187 typedef VOID C_f;
00188 typedef VOID H_f;
00189 typedef VOID Z_f;
00190 typedef doublereal E_f;
00191
00192
00193
00194 #ifndef Skip_f2c_Undefs
00195 #undef cray
00196 #undef gcos
00197 #undef mc68010
00198 #undef mc68020
00199 #undef mips
00200 #undef pdp11
00201 #undef sgi
00202 #undef sparc
00203 #undef sun
00204 #undef sun2
00205 #undef sun3
00206 #undef sun4
00207 #undef u370
00208 #undef u3b
00209 #undef u3b2
00210 #undef u3b5
00211 #undef unix
00212 #undef vax
00213 #endif
00214 #endif