|
|
1.1 root 1: /*
2: * fortran file i/o type definitions
3: */
4:
5: #include <stdio.h>
6:
7: /* Logical Unit Table Size */
8: #define MXUNIT _NFILE
9:
10: #define GLITCH '\2' /* special quote for Stu, generated in f77pass1 */
11:
12: #define LISTDIRECTED -1
13: #define FORMATTED 1
14:
15: #define ERROR 1
16: #define OK 0
17: #define YES 1
18: #define NO 0
19:
20: #define STDERR 0
21: #define STDIN 5
22: #define STDOUT 6
23:
24: #define WRITE 1
25: #define READ 2
26: #define SEQ 3
27: #define DIR 4
28: #define FMT 5
29: #define UNF 6
30: #define EXT 7
31: #define INT 8
32:
33: typedef char ioflag;
34: typedef long ftnint;
35: typedef ftnint flag;
36: typedef long ftnlen;
37:
38: typedef struct /*external read, write*/
39: { flag cierr;
40: ftnint ciunit;
41: flag ciend;
42: char *cifmt;
43: ftnint cirec;
44: } cilist;
45:
46: typedef struct /*internal read, write*/
47: { flag icierr;
48: char *iciunit;
49: flag iciend;
50: char *icifmt;
51: ftnint icirlen;
52: ftnint icirnum;
53: ftnint icirec;
54: } icilist;
55:
56: typedef struct /*open*/
57: { flag oerr;
58: ftnint ounit;
59: char *ofnm;
60: ftnlen ofnmlen;
61: char *osta;
62: char *oacc;
63: char *ofm;
64: ftnint orl;
65: char *oblnk;
66: } olist;
67:
68: typedef struct /*close*/
69: { flag cerr;
70: ftnint cunit;
71: char *csta;
72: } cllist;
73:
74: typedef struct /*rewind, backspace, endfile*/
75: { flag aerr;
76: ftnint aunit;
77: } alist;
78:
79: typedef struct /*units*/
80: { FILE *ufd; /*0=unconnected*/
81: char *ufnm;
82: long uinode;
83: int url; /*0=sequential*/
84: flag useek; /*true=can backspace, use dir, ...*/
85: flag ufmt;
86: flag uprnt;
87: flag ublnk;
88: flag uend;
89: flag uwrt; /*last io was write*/
90: flag uscrtch;
91: } unit;
92:
93: typedef struct /* inquire */
94: { flag inerr;
95: ftnint inunit;
96: char *infile;
97: ftnlen infilen;
98: ftnint *inex; /*parameters in standard's order*/
99: ftnint *inopen;
100: ftnint *innum;
101: ftnint *innamed;
102: char *inname;
103: ftnlen innamlen;
104: char *inacc;
105: ftnlen inacclen;
106: char *inseq;
107: ftnlen inseqlen;
108: char *indir;
109: ftnlen indirlen;
110: char *inform;
111: ftnlen informlen;
112: char *infmt;
113: ftnint infmtlen;
114: char *inunf;
115: ftnlen inunflen;
116: ftnint *inrecl;
117: ftnint *innrec;
118: char *inblank;
119: ftnlen inblanklen;
120: } inlist;
121:
122: typedef union
123: { float pf;
124: double pd;
125: } ufloat;
126:
127: typedef union
128: { short is;
129: char ic;
130: long il;
131: } uint;
132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.