f2c.h
上传用户:zslianheng
上传日期:2013-04-03
资源大小:946k
文件大小:5k
- /*
- $Log: f2c.h,v $
- Revision 1.1.1.1 2002/07/28 05:23:38 freeman_yong
- lpc10 codec
- * Revision 1.2 1996/08/20 20:26:28 jaf
- * Any typedef defining a type that was used in lpc10_encoder_state or
- * lpc10_decoder_state struct's was commented out here and added to
- * lpc10.h.
- *
- * Revision 1.1 1996/08/19 22:32:13 jaf
- * Initial revision
- *
- */
- /*
- * f2c.h
- *
- * SCCS ID: @(#)f2c.h 1.2 96/05/19
- */
- /* 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
- #include "lpc10.h"
- /*typedef long int integer;*/
- /*typedef INT32 integer;*/
- /*typedef short int shortint;*/
- /*typedef INT16 shortint;*/
- /*typedef float real;*/
- /* doublereal only used for function arguments to sqrt, exp, etc. */
- typedef double doublereal;
- /* 32 bits seems wasteful, but there really aren't that many logical
- * variables around, and making them 32 bits could avoid word
- * alignment problems, perhaps. */
- /*typedef long int logical;*/
- /*typedef INT32 logical;*/
- /* The following types are not used in the translated C code for the
- * LPC-10 coder, but they might be needed by the definitions down
- * below, so they don't cause compilation errors. */
- typedef char *address;
- typedef struct { real r, i; } complex;
- typedef struct { doublereal r, i; } doublecomplex;
- typedef short int shortlogical;
- typedef char logical1;
- typedef char integer1;
- /* typedef long long longint; */ /* system-dependent */
- #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)
- /* 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