1*47943Sbostic /*- 2*47943Sbostic * Copyright (c) 1980 The Regents of the University of California. 3*47943Sbostic * All rights reserved. 42507Sdlw * 5*47943Sbostic * %sccs.include.proprietary.c% 6*47943Sbostic * 7*47943Sbostic * @(#)fiodefs.h 5.3 (Berkeley) 04/12/91 823059Skre */ 923059Skre 1023059Skre /* 112507Sdlw * fortran file i/o type definitions 122507Sdlw */ 132507Sdlw 142507Sdlw #include <stdio.h> 152507Sdlw #include "f_errno.h" 162507Sdlw 172507Sdlw /* Logical Unit Table Size */ 1819919Slibs #define MXUNIT 100 192507Sdlw 202507Sdlw #define GLITCH '\2' /* special quote for Stu, generated in f77pass1 */ 212507Sdlw 2224101Sjerry #define NAMELIST -2 232507Sdlw #define LISTDIRECTED -1 242507Sdlw #define FORMATTED 1 252507Sdlw 262507Sdlw #define ERROR 1 272507Sdlw #define OK 0 282507Sdlw #define YES 1 292507Sdlw #define NO 0 302507Sdlw 312507Sdlw #define STDERR 0 322507Sdlw #define STDIN 5 332507Sdlw #define STDOUT 6 342507Sdlw 352507Sdlw #define WRITE 1 362507Sdlw #define READ 2 372507Sdlw #define SEQ 3 382507Sdlw #define DIR 4 392507Sdlw #define FMT 5 402507Sdlw #define UNF 6 412507Sdlw #define EXT 7 422507Sdlw #define INT 8 432507Sdlw 442507Sdlw typedef char ioflag; 452507Sdlw typedef long ftnint; 462507Sdlw typedef ftnint flag; 472507Sdlw typedef long ftnlen; 482507Sdlw 492507Sdlw typedef struct /*external read, write*/ 502507Sdlw { flag cierr; 512507Sdlw ftnint ciunit; 522507Sdlw flag ciend; 532507Sdlw char *cifmt; 542507Sdlw ftnint cirec; 552507Sdlw } cilist; 562507Sdlw 572507Sdlw typedef struct /*internal read, write*/ 582507Sdlw { flag icierr; 592507Sdlw char *iciunit; 602507Sdlw flag iciend; 612507Sdlw char *icifmt; 622507Sdlw ftnint icirlen; 632507Sdlw ftnint icirnum; 642507Sdlw ftnint icirec; 652507Sdlw } icilist; 662507Sdlw 672507Sdlw typedef struct /*open*/ 682507Sdlw { flag oerr; 692507Sdlw ftnint ounit; 702507Sdlw char *ofnm; 712507Sdlw ftnlen ofnmlen; 722507Sdlw char *osta; 732507Sdlw char *oacc; 742507Sdlw char *ofm; 752507Sdlw ftnint orl; 762507Sdlw char *oblnk; 772507Sdlw } olist; 782507Sdlw 792507Sdlw typedef struct /*close*/ 802507Sdlw { flag cerr; 812507Sdlw ftnint cunit; 822507Sdlw char *csta; 832507Sdlw } cllist; 842507Sdlw 852507Sdlw typedef struct /*rewind, backspace, endfile*/ 862507Sdlw { flag aerr; 872507Sdlw ftnint aunit; 882507Sdlw } alist; 892507Sdlw 902507Sdlw typedef struct /*units*/ 912507Sdlw { FILE *ufd; /*0=unconnected*/ 922507Sdlw char *ufnm; 932507Sdlw long uinode; 942507Sdlw int url; /*0=sequential*/ 952507Sdlw flag useek; /*true=can backspace, use dir, ...*/ 962507Sdlw flag ufmt; 972507Sdlw flag uprnt; 982507Sdlw flag ublnk; 992507Sdlw flag uend; 1002507Sdlw flag uwrt; /*last io was write*/ 1012507Sdlw flag uscrtch; 1022507Sdlw } unit; 1032507Sdlw 1042507Sdlw typedef struct /* inquire */ 1052507Sdlw { flag inerr; 1062507Sdlw ftnint inunit; 1072507Sdlw char *infile; 1082507Sdlw ftnlen infilen; 1092507Sdlw ftnint *inex; /*parameters in standard's order*/ 1102507Sdlw ftnint *inopen; 1112507Sdlw ftnint *innum; 1122507Sdlw ftnint *innamed; 1132507Sdlw char *inname; 1142507Sdlw ftnlen innamlen; 1152507Sdlw char *inacc; 1162507Sdlw ftnlen inacclen; 1172507Sdlw char *inseq; 1182507Sdlw ftnlen inseqlen; 1192507Sdlw char *indir; 1202507Sdlw ftnlen indirlen; 1212507Sdlw char *inform; 1222507Sdlw ftnlen informlen; 1232507Sdlw char *infmt; 1242507Sdlw ftnint infmtlen; 1252507Sdlw char *inunf; 1262507Sdlw ftnlen inunflen; 1272507Sdlw ftnint *inrecl; 1282507Sdlw ftnint *innrec; 1292507Sdlw char *inblank; 1302507Sdlw ftnlen inblanklen; 1312507Sdlw } inlist; 1322507Sdlw 1332507Sdlw typedef union 1342507Sdlw { float pf; 1352507Sdlw double pd; 1362507Sdlw } ufloat; 1372507Sdlw 1382507Sdlw typedef union 1392507Sdlw { short is; 1402507Sdlw char ic; 1412507Sdlw long il; 1422507Sdlw } uint; 1432507Sdlw 14412020Sdlw struct ioiflg { 14512037Sdlw short if_oeof; 14612020Sdlw short if_ctrl; 14712020Sdlw short if_bzro; 14812020Sdlw }; 14912037Sdlw #define opneof ioiflg_.if_oeof 15012020Sdlw #define ccntrl ioiflg_.if_ctrl 15112020Sdlw #define blzero ioiflg_.if_bzro 152