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