00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00045 #ifndef _F2C_INCLUDE_H
00046 #define _F2C_INCLUDE_H
00047
00048 typedef long int integer;
00049 typedef char *address;
00050 typedef short int shortint;
00051 typedef float f2c_real;
00052 typedef double doublereal;
00053 typedef struct
00054 {
00055 f2c_real r, i;
00056 } f2c_complex;
00064 typedef struct
00065 {
00066 doublereal r, i;
00067 } doublecomplex;
00068 typedef long int logical;
00069 typedef short int shortlogical;
00070
00071 #define TRUE_ (1)
00072 #define FALSE_ (0)
00073
00074
00075 #ifndef Extern
00076 #define Extern extern
00077 #endif
00078
00079 extern int ungetc();
00080
00081
00082 #ifndef DOXYGEN_IGNORE
00083
00084 #ifdef f2c_i2
00085
00086 typedef short flag;
00087 typedef short ftnlen;
00088 typedef short ftnint;
00089 #else
00090 typedef long flag;
00091 typedef long ftnlen;
00092 typedef long ftnint;
00093 #endif
00094
00095
00096 typedef struct
00097 {
00098 flag cierr;
00099 ftnint ciunit;
00100 flag ciend;
00101 char *cifmt;
00102 ftnint cirec;
00103 } cilist;
00104
00105
00106 typedef struct
00107 {
00108 flag icierr;
00109 char *iciunit;
00110 flag iciend;
00111 char *icifmt;
00112 ftnint icirlen;
00113 ftnint icirnum;
00114 } icilist;
00115
00116
00117 typedef struct
00118 {
00119 flag oerr;
00120 ftnint ounit;
00121 char *ofnm;
00122 ftnlen ofnmlen;
00123 char *osta;
00124 char *oacc;
00125 char *ofm;
00126 ftnint orl;
00127 char *oblnk;
00128 } olist;
00129
00130
00131 typedef struct
00132 {
00133 flag cerr;
00134 ftnint cunit;
00135 char *csta;
00136 } cllist;
00137
00138
00139 typedef struct
00140 {
00141 flag aerr;
00142 ftnint aunit;
00143 } alist;
00144
00145
00146 typedef struct
00147 {
00148 flag inerr;
00149 ftnint inunit;
00150 char *infile;
00151 ftnlen infilen;
00152 ftnint *inex;
00153 ftnint *inopen;
00154 ftnint *innum;
00155 ftnint *innamed;
00156 char *inname;
00157 ftnlen innamlen;
00158 char *inacc;
00159 ftnlen inacclen;
00160 char *inseq;
00161 ftnlen inseqlen;
00162 char *indir;
00163 ftnlen indirlen;
00164 char *infmt;
00165 ftnlen infmtlen;
00166 char *inform;
00167 ftnint informlen;
00168 char *inunf;
00169 ftnlen inunflen;
00170 ftnint *inrecl;
00171 ftnint *innrec;
00172 char *inblank;
00173 ftnlen inblanklen;
00174 } inlist;
00175
00176 #define VOID void
00177
00178 union Multitype
00179 {
00180 shortint h;
00181 integer i;
00182 f2c_real r;
00183 doublereal d;
00184 f2c_complex c;
00185 doublecomplex z;
00186 };
00187
00188 typedef union Multitype Multitype;
00189
00190 typedef long Long;
00191
00192 struct Vardesc
00193 {
00194 char *name;
00195 char *addr;
00196 ftnlen *dims;
00197 int type;
00198 };
00199 typedef struct Vardesc Vardesc;
00200
00201 struct Namelist
00202 {
00203 char *name;
00204 Vardesc **vars;
00205 int nvars;
00206 };
00207 typedef struct Namelist Namelist;
00208
00209
00210 #endif
00211
00212 #define F2C_proc_par_types 1
00213 #ifdef __cplusplus
00214 typedef int (*U_fp)(...);
00215 typedef shortint (*J_fp)(...);
00216 typedef integer (*I_fp)(...);
00217 typedef f2c_real (*R_fp)(...);
00218 typedef doublereal (*D_fp)(...), (*E_fp)(...);
00219 typedef VOID (*C_fp)(...);
00220 typedef VOID (*Z_fp)(...);
00221 typedef logical (*L_fp)(...);
00222 typedef shortlogical (*K_fp)(...);
00223 typedef VOID (*H_fp)(...);
00224 typedef int (*S_fp)(...);
00225 #else
00226 typedef int (*U_fp)();
00227 typedef shortint (*J_fp)();
00228 typedef integer (*I_fp)();
00229 typedef f2c_real (*R_fp)();
00230 typedef doublereal (*D_fp)(), (*E_fp)();
00231 typedef VOID (*C_fp)();
00232 typedef VOID (*Z_fp)();
00233 typedef logical (*L_fp)();
00234 typedef shortlogical (*K_fp)();
00235 typedef VOID (*H_fp)();
00236 typedef int (*S_fp)();
00237 #endif
00238
00239 typedef VOID C_f;
00240 typedef VOID H_f;
00241 typedef VOID Z_f;
00242 typedef doublereal E_f;
00243
00244
00245
00246 #ifndef Skip_f2c_Undefs
00247 #undef cray
00248 #undef gcos
00249 #undef mc68010
00250 #undef mc68020
00251 #undef mips
00252 #undef pdp11
00253 #undef sgi
00254 #undef sparc
00255 #undef sun
00256 #undef sun2
00257 #undef sun3
00258 #undef sun4
00259 #undef u370
00260 #undef u3b
00261 #undef u3b2
00262 #undef u3b5
00263 #undef unix
00264 #undef vax
00265 #endif
00266
00267
00268
00269
00270
00271 #ifdef __cplusplus
00272 extern "C" {
00273 extern int abort_(void);
00274 extern double c_abs(f2c_complex *);
00275 extern void c_cos(f2c_complex *, f2c_complex *);
00276 extern void c_div(f2c_complex *, f2c_complex *, f2c_complex *);
00277 extern void c_exp(f2c_complex *, f2c_complex *);
00278 extern void c_log(f2c_complex *, f2c_complex *);
00279 extern void c_sin(f2c_complex *, f2c_complex *);
00280 extern void c_sqrt(f2c_complex *, f2c_complex *);
00281 extern double d_abs(double *);
00282 extern double d_acos(double *);
00283 extern double d_asin(double *);
00284 extern double d_atan(double *);
00285 extern double d_atn2(double *, double *);
00286 extern void d_cnjg(doublecomplex *, doublecomplex *);
00287 extern double d_cos(double *);
00288 extern double d_cosh(double *);
00289 extern double d_dim(double *, double *);
00290 extern double d_exp(double *);
00291 extern double d_imag(doublecomplex *);
00292 extern double d_int(double *);
00293 extern double d_lg10(double *);
00294 extern double d_log(double *);
00295 extern double d_mod(double *, double *);
00296 extern double d_nint(double *);
00297 extern double d_prod(float *, float *);
00298 extern double d_sign(double *, double *);
00299 extern double d_sin(double *);
00300 extern double d_sinh(double *);
00301 extern double d_sqrt(double *);
00302 extern double d_tan(double *);
00303 extern double d_tanh(double *);
00304 extern double derf_(double *);
00305 extern double derfc_(double *);
00306 extern integer do_fio(ftnint *, char *, ftnlen);
00307 extern integer do_lio(ftnint *, ftnint *, char *, ftnlen);
00308 extern integer do_uio(ftnint *, char *, ftnlen);
00309 extern integer e_rdfe(void);
00310 extern integer e_rdue(void);
00311 extern integer e_rsfe(void);
00312 extern integer e_rsfi(void);
00313 extern integer e_rsle(void);
00314 extern integer e_rsli(void);
00315 extern integer e_rsue(void);
00316 extern integer e_wdfe(void);
00317 extern integer e_wdue(void);
00318 extern integer e_wsfe(void);
00319 extern integer e_wsfi(void);
00320 extern integer e_wsle(void);
00321 extern integer e_wsli(void);
00322 extern integer e_wsue(void);
00323 extern int ef1asc_(ftnint *, ftnlen *, ftnint *, ftnlen *);
00324 extern integer ef1cmc_(ftnint *, ftnlen *, ftnint *, ftnlen *);
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337 extern double erf_(float *);
00338 extern double erfc_(float *);
00339 extern integer f_back(alist *);
00340 extern integer f_clos(cllist *);
00341 extern integer f_end(alist *);
00342 extern void f_exit(void);
00343 extern integer f_inqu(inlist *);
00344 extern integer f_open(olist *);
00345 extern integer f_rew(alist *);
00346 extern int flush_(void);
00347 extern void getarg_(integer *, char *, ftnlen);
00348 extern void getenv_(char *, char *, ftnlen, ftnlen);
00349 extern short h_abs(short *);
00350 extern short h_dim(short *, short *);
00351 extern short h_dnnt(double *);
00352 extern short h_indx(char *, char *, ftnlen, ftnlen);
00353 extern short h_len(char *, ftnlen);
00354 extern short h_mod(short *, short *);
00355 extern short h_nint(float *);
00356 extern short h_sign(short *, short *);
00357 extern short hl_ge(char *, char *, ftnlen, ftnlen);
00358 extern short hl_gt(char *, char *, ftnlen, ftnlen);
00359 extern short hl_le(char *, char *, ftnlen, ftnlen);
00360 extern short hl_lt(char *, char *, ftnlen, ftnlen);
00361 extern integer i_abs(integer *);
00362 extern integer i_dim(integer *, integer *);
00363 extern integer i_dnnt(double *);
00364 extern integer i_indx(char *, char *, ftnlen, ftnlen);
00365 extern integer i_len(char *, ftnlen);
00366 extern integer i_mod(integer *, integer *);
00367 extern integer i_nint(float *);
00368 extern integer i_sign(integer *, integer *);
00369 extern integer iargc_(void);
00370 extern ftnlen l_ge(char *, char *, ftnlen, ftnlen);
00371 extern ftnlen l_gt(char *, char *, ftnlen, ftnlen);
00372 extern ftnlen l_le(char *, char *, ftnlen, ftnlen);
00373 extern ftnlen l_lt(char *, char *, ftnlen, ftnlen);
00374 extern void pow_ci(f2c_complex *, f2c_complex *, integer *);
00375 extern double pow_dd(double *, double *);
00376 extern double pow_di(double *, integer *);
00377 extern short pow_hh(short *, shortint *);
00378 extern integer pow_ii(integer *, integer *);
00379
00380 extern void pow_zi(doublecomplex *, doublecomplex *, integer *);
00381 extern void pow_zz(doublecomplex *, doublecomplex *, doublecomplex *);
00382 extern double r_abs(float *);
00383 extern double r_acos(float *);
00384 extern double r_asin(float *);
00385 extern double r_atan(float *);
00386 extern double r_atn2(float *, float *);
00387 extern void r_cnjg(f2c_complex *, f2c_complex *);
00388 extern double r_cos(float *);
00389 extern double r_cosh(float *);
00390 extern double r_dim(float *, float *);
00391 extern double r_exp(float *);
00392 extern double r_imag(f2c_complex *);
00393 extern double r_int(float *);
00394 extern double r_lg10(float *);
00395 extern double r_log(float *);
00396 extern double r_mod(float *, float *);
00397 extern double r_nint(float *);
00398 extern double r_sign(float *, float *);
00399 extern double r_sin(float *);
00400 extern double r_sinh(float *);
00401 extern double r_sqrt(float *);
00402 extern double r_tan(float *);
00403 extern double r_tanh(float *);
00404 extern void s_cat(char *, char **, integer *, integer *, ftnlen);
00405 extern integer s_cmp(char *, char *, ftnlen, ftnlen);
00406 extern void s_copy(char *, char *, ftnlen, ftnlen);
00407 extern int s_paus(char *, ftnlen);
00408 extern integer s_rdfe(cilist *);
00409 extern integer s_rdue(cilist *);
00410 extern integer s_rnge(char *, integer, char *, integer);
00411 extern integer s_rsfe(cilist *);
00412 extern integer s_rsfi(icilist *);
00413 extern integer s_rsle(cilist *);
00414 extern integer s_rsli(icilist *);
00415 extern integer s_rsne(cilist *);
00416 extern integer s_rsni(icilist *);
00417 extern integer s_rsue(cilist *);
00418 extern int s_stop(char *, ftnlen);
00419 extern integer s_wdfe(cilist *);
00420 extern integer s_wdue(cilist *);
00421 extern integer s_wsfe(cilist *);
00422 extern integer s_wsfi(icilist *);
00423 extern integer s_wsle(cilist *);
00424 extern integer s_wsli(icilist *);
00425 extern integer s_wsne(cilist *);
00426 extern integer s_wsni(icilist *);
00427 extern integer s_wsue(cilist *);
00428 extern void sig_die(char *, int);
00429 extern integer signal_(integer *, void (*)(int));
00430 extern int system_(char *, ftnlen);
00431 extern double z_abs(doublecomplex *);
00432 extern void z_cos(doublecomplex *, doublecomplex *);
00433 extern void z_div(doublecomplex *, doublecomplex *, doublecomplex *);
00434 extern void z_exp(doublecomplex *, doublecomplex *);
00435 extern void z_log(doublecomplex *, doublecomplex *);
00436 extern void z_sin(doublecomplex *, doublecomplex *);
00437 extern void z_sqrt(doublecomplex *, doublecomplex *);
00438 }
00439 #endif
00440
00441 #endif