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