|
|
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.