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