string.h is ANSI C include file
[unix-history] / usr / src / usr.bin / f77 / libI77 / nmlio.h
CommitLineData
cababfa2
JB
1/*
2 * Copyright (c) 1980 Regents of the University of California.
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 *
b49cc1f9 6 * @(#)nmlio.h 5.1 %G%
cababfa2
JB
7 */
8
9/* header for namelist I/O */
10
11#define ERRNM(x) if(n=(x)) return(n);
12#define VL 16 /* variable name length from f77pass1/defs.h */
13
14extern char namelistkey_;
15
16typedef struct
17{
18 char namelistname[VL+4]; /* 4 for padding */
19 struct namelistentry
20 {
21 char varname[VL+4]; /* 4 for padding */
22 char *varaddr;
23 short int type;
24 short int typelen;
25 /*
26 * If dimp is not null, then the corner element of the array is
27 * at varaddr. However, the element with subscripts:
28 * (i1,...,in) is at
29 *
30 * varaddr - dimp->baseoffset + sizeoftype *
31 * ((i1-1)+span[0]*((i2-1)+span[1]*...)
32 */
33 int *dimp; /* dimension info: (null means scalar)
34 *dimp: numb. of dim.,
35 dimp[0]: number of dimensions
36 dimp[1]: total number of elements,
37 dimp[2]: base offset,
38 dimp[3]: span of 1st dimension
39 dimp[4]: span of 2nd dimension
40 ... */
41 } names[1]; /* actually one per name in the namelist */
42} Namelist;
43
44typedef struct
45{ flag cierr;
46 ftnint ciunit;
47 flag ciend;
48 Namelist *namelist;
49} namelist_arglist;