a40bb4d345
2000-12-09 Toon Moene <toon@moene.indiv.nluug.nl> Update to Netlib version 20001205. Thanks go to David M. Gay for these updates. * libF77/Version.c: Update version information. * libF77/z_log.c: Improve accuracy of real(log(z)) for z near (+-1,eps) with |eps| small. * libF77/s_cat.c: Adjust call when ftnint and ftnlen are of different size. * libF77/dtime_.c, libF77/etime_.c: Use floating point divide. * libI77/Version.c: Update version information. * libI77/rsne.c, libI77/xwsne.c: Adjust code for when ftnint and ftnlen differ in size. * libI77/lread.c: Fix reading of namelist logical values followed by <name>= where <name> starts with T or F. From-SVN: r38152
72 lines
1.1 KiB
C
72 lines
1.1 KiB
C
#include "f2c.h"
|
|
#include "fio.h"
|
|
#include "lio.h"
|
|
#include "fmt.h"
|
|
|
|
extern int f__Aquote;
|
|
|
|
static VOID
|
|
nl_donewrec(Void)
|
|
{
|
|
(*f__donewrec)();
|
|
PUT(' ');
|
|
}
|
|
|
|
#ifdef KR_headers
|
|
x_wsne(a) cilist *a;
|
|
#else
|
|
#include <string.h>
|
|
|
|
VOID
|
|
x_wsne(cilist *a)
|
|
#endif
|
|
{
|
|
Namelist *nl;
|
|
char *s;
|
|
Vardesc *v, **vd, **vde;
|
|
ftnint number, type;
|
|
ftnlen *dims;
|
|
ftnlen size;
|
|
extern ftnlen f__typesize[];
|
|
|
|
nl = (Namelist *)a->cifmt;
|
|
PUT('&');
|
|
for(s = nl->name; *s; s++)
|
|
PUT(*s);
|
|
PUT(' ');
|
|
f__Aquote = 1;
|
|
vd = nl->vars;
|
|
vde = vd + nl->nvars;
|
|
while(vd < vde) {
|
|
v = *vd++;
|
|
s = v->name;
|
|
#ifdef No_Extra_Namelist_Newlines
|
|
if (f__recpos+strlen(s)+2 >= L_len)
|
|
#endif
|
|
nl_donewrec();
|
|
while(*s)
|
|
PUT(*s++);
|
|
PUT(' ');
|
|
PUT('=');
|
|
number = (dims = v->dims) ? dims[1] : 1;
|
|
type = v->type;
|
|
if (type < 0) {
|
|
size = -type;
|
|
type = TYCHAR;
|
|
}
|
|
else
|
|
size = f__typesize[type];
|
|
l_write(&number, v->addr, size, type);
|
|
if (vd < vde) {
|
|
if (f__recpos+2 >= L_len)
|
|
nl_donewrec();
|
|
PUT(',');
|
|
PUT(' ');
|
|
}
|
|
else if (f__recpos+1 >= L_len)
|
|
nl_donewrec();
|
|
}
|
|
f__Aquote = 0;
|
|
PUT('/');
|
|
}
|