|
|
1.1 root 1: #include "f2c.h"
2: #include "fio.h"
3: #include "lio.h"
4: #include "fmt.h"
5:
6: static VOID
7: nl_donewrec(Void)
8: {
9: (*f__donewrec)();
10: PUT(' ');
11: }
12:
13: #ifdef KR_headers
14: x_wsne(a) cilist *a;
15: #else
16: #include "string.h"
17:
18: VOID
19: x_wsne(cilist *a)
20: #endif
21: {
22: Namelist *nl;
23: char *s;
24: Vardesc *v, **vd, **vde;
25: ftnint *number, type;
26: ftnlen *dims;
27: ftnlen size;
28: static ftnint one = 1;
29: extern ftnlen f__typesize[];
30:
31: nl = (Namelist *)a->cifmt;
32: PUT('&');
33: for(s = nl->name; *s; s++)
34: PUT(*s);
35: PUT(' ');
36: vd = nl->vars;
37: vde = vd + nl->nvars;
38: while(vd < vde) {
39: v = *vd++;
40: s = v->name;
41: #ifdef No_Extra_Namelist_Newlines
42: if (f__recpos+strlen(s)+2 >= L_len)
43: #endif
44: nl_donewrec();
45: while(*s)
46: PUT(*s++);
47: PUT(' ');
48: PUT('=');
49: number = (dims = v->dims) ? dims + 1 : &one;
50: type = v->type;
51: if (type < 0) {
52: size = -type;
53: type = TYCHAR;
54: }
55: else
56: size = f__typesize[type];
57: l_write(number, v->addr, size, type);
58: if (vd < vde) {
59: if (f__recpos+2 >= L_len)
60: nl_donewrec();
61: PUT(',');
62: PUT(' ');
63: }
64: else if (f__recpos+1 >= L_len)
65: nl_donewrec();
66: }
67: PUT('/');
68: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.