~ubuntu-branches/ubuntu/trusty/libf2c2/trusty

« back to all changes in this revision

Viewing changes to f2c_master.h

  • Committer: Bazaar Package Importer
  • Author(s): Alan Bain
  • Date: 2008-05-19 22:50:54 UTC
  • mfrom: (2.1.4 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080519225054-jlymia0wdvvfq7dg
Tags: 20061008-4
Remove CVS directory left in source package

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* f2c.h  --  Standard Fortran to C header file */
 
2
 
 
3
/**  barf  [ba:rf]  2.  "He suggested using FORTRAN, and everybody barfed."
 
4
 
 
5
        - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
 
6
 
 
7
#ifndef F2C_INCLUDE
 
8
#define F2C_INCLUDE
 
9
 
 
10
typedef long int integer;
 
11
typedef unsigned long int uinteger;
 
12
typedef char *address;
 
13
typedef short int shortint;
 
14
typedef float real;
 
15
typedef double doublereal;
 
16
typedef struct { real r, i; } complex;
 
17
typedef struct { doublereal r, i; } doublecomplex;
 
18
typedef long int logical;
 
19
typedef short int shortlogical;
 
20
typedef char logical1;
 
21
typedef char integer1;
 
22
#ifdef INTEGER_STAR_8   /* Adjust for integer*8. */
 
23
typedef long long longint;              /* system-dependent */
 
24
typedef unsigned long long ulongint;    /* system-dependent */
 
25
#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
 
26
#define qbit_set(a,b)   ((a) |  ((ulongint)1 << (b)))
 
27
#endif
 
28
 
 
29
#define TRUE_ (1)
 
30
#define FALSE_ (0)
 
31
 
 
32
/* Extern is for use with -E */
 
33
#ifndef Extern
 
34
#define Extern extern
 
35
#endif
 
36
 
 
37
/* I/O stuff */
 
38
 
 
39
#ifdef f2c_i2
 
40
/* for -i2 */
 
41
typedef short flag;
 
42
typedef short ftnlen;
 
43
typedef short ftnint;
 
44
#else
 
45
typedef long int flag;
 
46
typedef long int ftnlen;
 
47
typedef long int ftnint;
 
48
#endif
 
49
 
 
50
/*external read, write*/
 
51
typedef struct
 
52
{       flag cierr;
 
53
        ftnint ciunit;
 
54
        flag ciend;
 
55
        char *cifmt;
 
56
        ftnint cirec;
 
57
} cilist;
 
58
 
 
59
/*internal read, write*/
 
60
typedef struct
 
61
{       flag icierr;
 
62
        char *iciunit;
 
63
        flag iciend;
 
64
        char *icifmt;
 
65
        ftnint icirlen;
 
66
        ftnint icirnum;
 
67
} icilist;
 
68
 
 
69
/*open*/
 
70
typedef struct
 
71
{       flag oerr;
 
72
        ftnint ounit;
 
73
        char *ofnm;
 
74
        ftnlen ofnmlen;
 
75
        char *osta;
 
76
        char *oacc;
 
77
        char *ofm;
 
78
        ftnint orl;
 
79
        char *oblnk;
 
80
} olist;
 
81
 
 
82
/*close*/
 
83
typedef struct
 
84
{       flag cerr;
 
85
        ftnint cunit;
 
86
        char *csta;
 
87
} cllist;
 
88
 
 
89
/*rewind, backspace, endfile*/
 
90
typedef struct
 
91
{       flag aerr;
 
92
        ftnint aunit;
 
93
} alist;
 
94
 
 
95
/* inquire */
 
96
typedef struct
 
97
{       flag inerr;
 
98
        ftnint inunit;
 
99
        char *infile;
 
100
        ftnlen infilen;
 
101
        ftnint  *inex;  /*parameters in standard's order*/
 
102
        ftnint  *inopen;
 
103
        ftnint  *innum;
 
104
        ftnint  *innamed;
 
105
        char    *inname;
 
106
        ftnlen  innamlen;
 
107
        char    *inacc;
 
108
        ftnlen  inacclen;
 
109
        char    *inseq;
 
110
        ftnlen  inseqlen;
 
111
        char    *indir;
 
112
        ftnlen  indirlen;
 
113
        char    *infmt;
 
114
        ftnlen  infmtlen;
 
115
        char    *inform;
 
116
        ftnint  informlen;
 
117
        char    *inunf;
 
118
        ftnlen  inunflen;
 
119
        ftnint  *inrecl;
 
120
        ftnint  *innrec;
 
121
        char    *inblank;
 
122
        ftnlen  inblanklen;
 
123
} inlist;
 
124
 
 
125
#define VOID void
 
126
 
 
127
union Multitype {       /* for multiple entry points */
 
128
        integer1 g;
 
129
        shortint h;
 
130
        integer i;
 
131
        /* longint j; */
 
132
        real r;
 
133
        doublereal d;
 
134
        complex c;
 
135
        doublecomplex z;
 
136
        };
 
137
 
 
138
typedef union Multitype Multitype;
 
139
 
 
140
/*typedef long int Long;*/      /* No longer used; formerly in Namelist */
 
141
 
 
142
struct Vardesc {        /* for Namelist */
 
143
        char *name;
 
144
        char *addr;
 
145
        ftnlen *dims;
 
146
        int  type;
 
147
        };
 
148
typedef struct Vardesc Vardesc;
 
149
 
 
150
struct Namelist {
 
151
        char *name;
 
152
        Vardesc **vars;
 
153
        int nvars;
 
154
        };
 
155
typedef struct Namelist Namelist;
 
156
 
 
157
#define abs(x) ((x) >= 0 ? (x) : -(x))
 
158
#define dabs(x) (doublereal)abs(x)
 
159
#define min(a,b) ((a) <= (b) ? (a) : (b))
 
160
#define max(a,b) ((a) >= (b) ? (a) : (b))
 
161
#define dmin(a,b) (doublereal)min(a,b)
 
162
#define dmax(a,b) (doublereal)max(a,b)
 
163
#define bit_test(a,b)   ((a) >> (b) & 1)
 
164
#define bit_clear(a,b)  ((a) & ~((uinteger)1 << (b)))
 
165
#define bit_set(a,b)    ((a) |  ((uinteger)1 << (b)))
 
166
 
 
167
/* procedure parameter types for -A and -C++ */
 
168
 
 
169
#define F2C_proc_par_types 1
 
170
#ifdef __cplusplus
 
171
typedef int /* Unknown procedure type */ (*U_fp)(...);
 
172
typedef shortint (*J_fp)(...);
 
173
typedef integer (*I_fp)(...);
 
174
typedef real (*R_fp)(...);
 
175
typedef doublereal (*D_fp)(...), (*E_fp)(...);
 
176
typedef /* Complex */ VOID (*C_fp)(...);
 
177
typedef /* Double Complex */ VOID (*Z_fp)(...);
 
178
typedef logical (*L_fp)(...);
 
179
typedef shortlogical (*K_fp)(...);
 
180
typedef /* Character */ VOID (*H_fp)(...);
 
181
typedef /* Subroutine */ int (*S_fp)(...);
 
182
#else
 
183
typedef int /* Unknown procedure type */ (*U_fp)();
 
184
typedef shortint (*J_fp)();
 
185
typedef integer (*I_fp)();
 
186
typedef real (*R_fp)();
 
187
typedef doublereal (*D_fp)(), (*E_fp)();
 
188
typedef /* Complex */ VOID (*C_fp)();
 
189
typedef /* Double Complex */ VOID (*Z_fp)();
 
190
typedef logical (*L_fp)();
 
191
typedef shortlogical (*K_fp)();
 
192
typedef /* Character */ VOID (*H_fp)();
 
193
typedef /* Subroutine */ int (*S_fp)();
 
194
#endif
 
195
/* E_fp is for real functions when -R is not specified */
 
196
typedef VOID C_f;       /* complex function */
 
197
typedef VOID H_f;       /* character function */
 
198
typedef VOID Z_f;       /* double complex function */
 
199
typedef doublereal E_f; /* real function with -R not specified */
 
200
 
 
201
/* undef any lower-case symbols that your C compiler predefines, e.g.: */
 
202
 
 
203
#ifndef Skip_f2c_Undefs
 
204
#undef cray
 
205
#undef gcos
 
206
#undef mc68010
 
207
#undef mc68020
 
208
#undef mips
 
209
#undef pdp11
 
210
#undef sgi
 
211
#undef sparc
 
212
#undef sun
 
213
#undef sun2
 
214
#undef sun3
 
215
#undef sun4
 
216
#undef u370
 
217
#undef u3b
 
218
#undef u3b2
 
219
#undef u3b5
 
220
#undef unix
 
221
#undef vax
 
222
#endif
 
223
#endif