⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lwrite.c

📁 gcc-2.95.3 Linux下最常用的C编译器
💻 C
字号:
#include "f2c.h"#include "fio.h"#include "fmt.h"#include "lio.h"ftnint L_len;int f__Aquote; static VOIDdonewrec(Void){	if (f__recpos)		(*f__donewrec)();	} static VOID#ifdef KR_headerslwrt_I(n) longint n;#elselwrt_I(longint n)#endif{	char *p;	int ndigit, sign;	p = f__icvt(n, &ndigit, &sign, 10);	if(f__recpos + ndigit >= L_len)		donewrec();	PUT(' ');	if (sign)		PUT('-');	while(*p)		PUT(*p++);} static VOID#ifdef KR_headerslwrt_L(n, len) ftnint n; ftnlen len;#elselwrt_L(ftnint n, ftnlen len)#endif{	if(f__recpos+LLOGW>=L_len)		donewrec();	wrt_L((Uint *)&n,LLOGW, len);} static VOID#ifdef KR_headerslwrt_A(p,len) char *p; ftnlen len;#elselwrt_A(char *p, ftnlen len)#endif{	int a;	char *p1, *pe;	a = 0;	pe = p + len;	if (f__Aquote) {		a = 3;		if (len > 1 && p[len-1] == ' ') {			while(--len > 1 && p[len-1] == ' ');			pe = p + len;			}		p1 = p;		while(p1 < pe)			if (*p1++ == '\'')				a++;		}	if(f__recpos+len+a >= L_len)		donewrec();	if (a#ifndef OMIT_BLANK_CC		|| !f__recpos#endif		)		PUT(' ');	if (a) {		PUT('\'');		while(p < pe) {			if (*p == '\'')				PUT('\'');			PUT(*p++);			}		PUT('\'');		}	else		while(p < pe)			PUT(*p++);} static int#ifdef KR_headersl_g(buf, n) char *buf; double n;#elsel_g(char *buf, double n)#endif{#ifdef Old_list_output	doublereal absn;	char *fmt;	absn = n;	if (absn < 0)		absn = -absn;	fmt = LLOW <= absn && absn < LHIGH ? LFFMT : LEFMT;#ifdef USE_STRLEN	sprintf(buf, fmt, n);	return strlen(buf);#else	return sprintf(buf, fmt, n);#endif#else	register char *b, c, c1;	b = buf;	*b++ = ' ';	if (n < 0) {		*b++ = '-';		n = -n;		}	else		*b++ = ' ';	if (n == 0) {		*b++ = '0';		*b++ = '.';		*b = 0;		goto f__ret;		}	sprintf(b, LGFMT, n);	switch(*b) {#ifndef WANT_LEAD_0		case '0':			while(b[0] = b[1])				b++;			break;#endif		case 'i':		case 'I':			/* Infinity */		case 'n':		case 'N':			/* NaN */			while(*++b);			break;		default:	/* Fortran 77 insists on having a decimal point... */		    for(;; b++)			switch(*b) {			case 0:				*b++ = '.';				*b = 0;				goto f__ret;			case '.':				while(*++b);				goto f__ret;			case 'E':				for(c1 = '.', c = 'E';  *b = c1;					c1 = c, c = *++b);				goto f__ret;			}		} f__ret:	return b - buf;#endif	} static VOID#ifdef KR_headersl_put(s) register char *s;#elsel_put(register char *s)#endif{#ifdef KR_headers	register void (*pn)() = f__putn;#else	register void (*pn)(int) = f__putn;#endif	register int c;	while(c = *s++)		(*pn)(c);	} static VOID#ifdef KR_headerslwrt_F(n) double n;#elselwrt_F(double n)#endif{	char buf[LEFBL];	if(f__recpos + l_g(buf,n) >= L_len)		donewrec();	l_put(buf);} static VOID#ifdef KR_headerslwrt_C(a,b) double a,b;#elselwrt_C(double a, double b)#endif{	char *ba, *bb, bufa[LEFBL], bufb[LEFBL];	int al, bl;	al = l_g(bufa, a);	for(ba = bufa; *ba == ' '; ba++)		--al;	bl = l_g(bufb, b) + 1;	/* intentionally high by 1 */	for(bb = bufb; *bb == ' '; bb++)		--bl;	if(f__recpos + al + bl + 3 >= L_len)		donewrec();#ifdef OMIT_BLANK_CC	else#endif	PUT(' ');	PUT('(');	l_put(ba);	PUT(',');	if (f__recpos + bl >= L_len) {		(*f__donewrec)();#ifndef OMIT_BLANK_CC		PUT(' ');#endif		}	l_put(bb);	PUT(')');}#ifdef KR_headersl_write(number,ptr,len,type) ftnint *number,type; char *ptr; ftnlen len;#elsel_write(ftnint *number, char *ptr, ftnlen len, ftnint type)#endif{#define Ptr ((flex *)ptr)	int i;	longint x;	double y,z;	real *xx;	doublereal *yy;	for(i=0;i< *number; i++)	{		switch((int)type)		{		default: f__fatal(204,"unknown type in lio");		case TYINT1:			x = Ptr->flchar;			goto xint;		case TYSHORT:			x=Ptr->flshort;			goto xint;#ifdef Allow_TYQUAD		case TYQUAD:			x = Ptr->fllongint;			goto xint;#endif		case TYLONG:			x=Ptr->flint;		xint:	lwrt_I(x);			break;		case TYREAL:			y=Ptr->flreal;			goto xfloat;		case TYDREAL:			y=Ptr->fldouble;		xfloat: lwrt_F(y);			break;		case TYCOMPLEX:			xx= &Ptr->flreal;			y = *xx++;			z = *xx;			goto xcomplex;		case TYDCOMPLEX:			yy = &Ptr->fldouble;			y= *yy++;			z = *yy;		xcomplex:			lwrt_C(y,z);			break;		case TYLOGICAL1:			x = Ptr->flchar;			goto xlog;		case TYLOGICAL2:			x = Ptr->flshort;			goto xlog;		case TYLOGICAL:			x = Ptr->flint;		xlog:	lwrt_L(Ptr->flint, len);			break;		case TYCHAR:			lwrt_A(ptr,len);			break;		}		ptr += len;	}	return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -