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