123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388 |
- /* f2c.h -- Standard Fortran to C header file */
- /** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed."
- - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
- #ifndef F2C_INCLUDE
- #define F2C_INCLUDE
- typedef long int integer;
- typedef unsigned long int uinteger;
- typedef char *address;
- typedef short int shortint;
- typedef float real;
- typedef double doublereal;
- typedef struct { real r, i; } complex;
- typedef struct { doublereal r, i; } doublecomplex;
- typedef long int logical;
- typedef short int shortlogical;
- typedef char logical1;
- typedef char integer1;
- #ifdef INTEGER_STAR_8 /* Adjust for integer*8. */
- typedef long long longint; /* system-dependent */
- typedef unsigned long long ulongint; /* system-dependent */
- #define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
- #define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
- #endif
- #define TRUE_ (1)
- #define FALSE_ (0)
- /* Extern is for use with -E */
- #ifndef Extern
- #define Extern extern
- #endif
- /* I/O stuff */
- #ifdef f2c_i2
- /* for -i2 */
- typedef short flag;
- typedef short ftnlen;
- typedef short ftnint;
- #else
- typedef long int flag;
- typedef long int ftnlen;
- typedef long int ftnint;
- #endif
- /*external read, write*/
- typedef struct
- { flag cierr;
- ftnint ciunit;
- flag ciend;
- char *cifmt;
- ftnint cirec;
- } cilist;
- /*internal read, write*/
- typedef struct
- { flag icierr;
- char *iciunit;
- flag iciend;
- char *icifmt;
- ftnint icirlen;
- ftnint icirnum;
- } icilist;
- /*open*/
- typedef struct
- { flag oerr;
- ftnint ounit;
- char *ofnm;
- ftnlen ofnmlen;
- char *osta;
- char *oacc;
- char *ofm;
- ftnint orl;
- char *oblnk;
- } olist;
- /*close*/
- typedef struct
- { flag cerr;
- ftnint cunit;
- char *csta;
- } cllist;
- /*rewind, backspace, endfile*/
- typedef struct
- { flag aerr;
- ftnint aunit;
- } alist;
- /* inquire */
- typedef struct
- { flag inerr;
- ftnint inunit;
- char *infile;
- ftnlen infilen;
- ftnint *inex; /*parameters in standard's order*/
- ftnint *inopen;
- ftnint *innum;
- ftnint *innamed;
- char *inname;
- ftnlen innamlen;
- char *inacc;
- ftnlen inacclen;
- char *inseq;
- ftnlen inseqlen;
- char *indir;
- ftnlen indirlen;
- char *infmt;
- ftnlen infmtlen;
- char *inform;
- ftnint informlen;
- char *inunf;
- ftnlen inunflen;
- ftnint *inrecl;
- ftnint *innrec;
- char *inblank;
- ftnlen inblanklen;
- } inlist;
- #define VOID void
- union Multitype { /* for multiple entry points */
- integer1 g;
- shortint h;
- integer i;
- /* longint j; */
- real r;
- doublereal d;
- complex c;
- doublecomplex z;
- };
- typedef union Multitype Multitype;
- /*typedef long int Long;*/ /* No longer used; formerly in Namelist */
- struct Vardesc { /* for Namelist */
- char *name;
- char *addr;
- ftnlen *dims;
- int type;
- };
- typedef struct Vardesc Vardesc;
- struct Namelist {
- char *name;
- Vardesc **vars;
- int nvars;
- };
- typedef struct Namelist Namelist;
- #define abs(x) ((x) >= 0 ? (x) : -(x))
- #define dabs(x) (doublereal)abs(x)
- #define min(a,b) ((a) <= (b) ? (a) : (b))
- #define max(a,b) ((a) >= (b) ? (a) : (b))
- #define dmin(a,b) (doublereal)min(a,b)
- #define dmax(a,b) (doublereal)max(a,b)
- #define bit_test(a,b) ((a) >> (b) & 1)
- #define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
- #define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
- /* procedure parameter types for -A and -C++ */
- #define F2C_proc_par_types 1
- #ifdef __cplusplus
- typedef int /* Unknown procedure type */ (*U_fp)(...);
- typedef shortint (*J_fp)(...);
- typedef integer (*I_fp)(...);
- typedef real (*R_fp)(...);
- typedef doublereal (*D_fp)(...), (*E_fp)(...);
- typedef /* Complex */ VOID (*C_fp)(...);
- typedef /* Double Complex */ VOID (*Z_fp)(...);
- typedef logical (*L_fp)(...);
- typedef shortlogical (*K_fp)(...);
- typedef /* Character */ VOID (*H_fp)(...);
- typedef /* Subroutine */ int (*S_fp)(...);
- #else
- typedef int /* Unknown procedure type */ (*U_fp)();
- typedef shortint (*J_fp)();
- typedef integer (*I_fp)();
- typedef real (*R_fp)();
- typedef doublereal (*D_fp)(), (*E_fp)();
- typedef /* Complex */ VOID (*C_fp)();
- typedef /* Double Complex */ VOID (*Z_fp)();
- typedef logical (*L_fp)();
- typedef shortlogical (*K_fp)();
- typedef /* Character */ VOID (*H_fp)();
- typedef /* Subroutine */ int (*S_fp)();
- #endif
- /* E_fp is for real functions when -R is not specified */
- typedef VOID C_f; /* complex function */
- typedef VOID H_f; /* character function */
- typedef VOID Z_f; /* double complex function */
- typedef doublereal E_f; /* real function with -R not specified */
- /* undef any lower-case symbols that your C compiler predefines, e.g.: */
- #ifndef Skip_f2c_Undefs
- #undef cray
- #undef gcos
- #undef mc68010
- #undef mc68020
- #undef mips
- #undef pdp11
- #undef sgi
- #undef sparc
- #undef sun
- #undef sun2
- #undef sun3
- #undef sun4
- #undef u370
- #undef u3b
- #undef u3b2
- #undef u3b5
- #undef unix
- #undef vax
- #endif
- #endif
- /* If you are using a C++ compiler, append the following to f2c.h
- for compiling libF77 and libI77. */
- #ifdef __cplusplus
- extern "C" {
- extern int abort_(void);
- extern double c_abs(complex *);
- extern void c_cos(complex *, complex *);
- extern void c_div(complex *, complex *, complex *);
- extern void c_exp(complex *, complex *);
- extern void c_log(complex *, complex *);
- extern void c_sin(complex *, complex *);
- extern void c_sqrt(complex *, complex *);
- extern double d_abs(double *);
- extern double d_acos(double *);
- extern double d_asin(double *);
- extern double d_atan(double *);
- extern double d_atn2(double *, double *);
- extern void d_cnjg(doublecomplex *, doublecomplex *);
- extern double d_cos(double *);
- extern double d_cosh(double *);
- extern double d_dim(double *, double *);
- extern double d_exp(double *);
- extern double d_imag(doublecomplex *);
- extern double d_int(double *);
- extern double d_lg10(double *);
- extern double d_log(double *);
- extern double d_mod(double *, double *);
- extern double d_nint(double *);
- extern double d_prod(float *, float *);
- extern double d_sign(double *, double *);
- extern double d_sin(double *);
- extern double d_sinh(double *);
- extern double d_sqrt(double *);
- extern double d_tan(double *);
- extern double d_tanh(double *);
- extern double derf_(double *);
- extern double derfc_(double *);
- extern integer do_fio(ftnint *, char *, ftnlen);
- extern integer do_lio(ftnint *, ftnint *, char *, ftnlen);
- extern integer do_uio(ftnint *, char *, ftnlen);
- extern integer e_rdfe(void);
- extern integer e_rdue(void);
- extern integer e_rsfe(void);
- extern integer e_rsfi(void);
- extern integer e_rsle(void);
- extern integer e_rsli(void);
- extern integer e_rsue(void);
- extern integer e_wdfe(void);
- extern integer e_wdue(void);
- extern integer e_wsfe(void);
- extern integer e_wsfi(void);
- extern integer e_wsle(void);
- extern integer e_wsli(void);
- extern integer e_wsue(void);
- extern int ef1asc_(ftnint *, ftnlen *, ftnint *, ftnlen *);
- extern integer ef1cmc_(ftnint *, ftnlen *, ftnint *, ftnlen *);
- extern double erf(double);
- extern double erf_(float *);
- extern double erfc(double);
- extern double erfc_(float *);
- extern integer f_back(alist *);
- extern integer f_clos(cllist *);
- extern integer f_end(alist *);
- extern void f_exit(void);
- extern integer f_inqu(inlist *);
- extern integer f_open(olist *);
- extern integer f_rew(alist *);
- extern int flush_(void);
- extern void getarg_(integer *, char *, ftnlen);
- extern void getenv_(char *, char *, ftnlen, ftnlen);
- extern short h_abs(short *);
- extern short h_dim(short *, short *);
- extern short h_dnnt(double *);
- extern short h_indx(char *, char *, ftnlen, ftnlen);
- extern short h_len(char *, ftnlen);
- extern short h_mod(short *, short *);
- extern short h_nint(float *);
- extern short h_sign(short *, short *);
- extern short hl_ge(char *, char *, ftnlen, ftnlen);
- extern short hl_gt(char *, char *, ftnlen, ftnlen);
- extern short hl_le(char *, char *, ftnlen, ftnlen);
- extern short hl_lt(char *, char *, ftnlen, ftnlen);
- extern integer i_abs(integer *);
- extern integer i_dim(integer *, integer *);
- extern integer i_dnnt(double *);
- extern integer i_indx(char *, char *, ftnlen, ftnlen);
- extern integer i_len(char *, ftnlen);
- extern integer i_mod(integer *, integer *);
- extern integer i_nint(float *);
- extern integer i_sign(integer *, integer *);
- extern integer iargc_(void);
- extern ftnlen l_ge(char *, char *, ftnlen, ftnlen);
- extern ftnlen l_gt(char *, char *, ftnlen, ftnlen);
- extern ftnlen l_le(char *, char *, ftnlen, ftnlen);
- extern ftnlen l_lt(char *, char *, ftnlen, ftnlen);
- extern void pow_ci(complex *, complex *, integer *);
- extern double pow_dd(double *, double *);
- extern double pow_di(double *, integer *);
- extern short pow_hh(short *, shortint *);
- extern integer pow_ii(integer *, integer *);
- extern double pow_ri(float *, integer *);
- extern void pow_zi(doublecomplex *, doublecomplex *, integer *);
- extern void pow_zz(doublecomplex *, doublecomplex *, doublecomplex *);
- extern double r_abs(float *);
- extern double r_acos(float *);
- extern double r_asin(float *);
- extern double r_atan(float *);
- extern double r_atn2(float *, float *);
- extern void r_cnjg(complex *, complex *);
- extern double r_cos(float *);
- extern double r_cosh(float *);
- extern double r_dim(float *, float *);
- extern double r_exp(float *);
- extern double r_imag(complex *);
- extern double r_int(float *);
- extern double r_lg10(float *);
- extern double r_log(float *);
- extern double r_mod(float *, float *);
- extern double r_nint(float *);
- extern double r_sign(float *, float *);
- extern double r_sin(float *);
- extern double r_sinh(float *);
- extern double r_sqrt(float *);
- extern double r_tan(float *);
- extern double r_tanh(float *);
- extern void s_cat(char *, char **, integer *, integer *, ftnlen);
- extern integer s_cmp(char *, char *, ftnlen, ftnlen);
- extern void s_copy(char *, char *, ftnlen, ftnlen);
- extern int s_paus(char *, ftnlen);
- extern integer s_rdfe(cilist *);
- extern integer s_rdue(cilist *);
- extern integer s_rnge(char *, integer, char *, integer);
- extern integer s_rsfe(cilist *);
- extern integer s_rsfi(icilist *);
- extern integer s_rsle(cilist *);
- extern integer s_rsli(icilist *);
- extern integer s_rsne(cilist *);
- extern integer s_rsni(icilist *);
- extern integer s_rsue(cilist *);
- extern int s_stop(char *, ftnlen);
- extern integer s_wdfe(cilist *);
- extern integer s_wdue(cilist *);
- extern integer s_wsfe(cilist *);
- extern integer s_wsfi(icilist *);
- extern integer s_wsle(cilist *);
- extern integer s_wsli(icilist *);
- extern integer s_wsne(cilist *);
- extern integer s_wsni(icilist *);
- extern integer s_wsue(cilist *);
- extern void sig_die(char *, int);
- extern integer signal_(integer *, void (*)(int));
- extern integer system_(char *, ftnlen);
- extern double z_abs(doublecomplex *);
- extern void z_cos(doublecomplex *, doublecomplex *);
- extern void z_div(doublecomplex *, doublecomplex *, doublecomplex *);
- extern void z_exp(doublecomplex *, doublecomplex *);
- extern void z_log(doublecomplex *, doublecomplex *);
- extern void z_sin(doublecomplex *, doublecomplex *);
- extern void z_sqrt(doublecomplex *, doublecomplex *);
- }
- #endif
|