|
|
1.1 ! root 1: #include "fio.h" ! 2: #include "lio.h" ! 3: extern int l_write(); ! 4: int t_putc(); ! 5: s_wsle(a) cilist *a; ! 6: { ! 7: int n; ! 8: if(!init) f_init(); ! 9: if(n=c_le(a,WRITE)) return(n); ! 10: reading=0; ! 11: external=1; ! 12: formatted=1; ! 13: putn = t_putc; ! 14: lioproc = l_write; ! 15: if(!curunit->uwrt) ! 16: return(nowwriting(curunit)); ! 17: else return(0); ! 18: } ! 19: e_wsle() ! 20: { ! 21: t_putc('\n'); ! 22: recpos=0; ! 23: return(0); ! 24: } ! 25: t_putc(c) ! 26: { ! 27: recpos++; ! 28: putc(c,cf); ! 29: } ! 30: lwrt_I(n) ftnint n; ! 31: { ! 32: char buf[LINTW],*p; ! 33: sprintf(buf," %ld",(long)n); ! 34: if(recpos+strlen(buf)>=LINE) ! 35: { t_putc('\n'); ! 36: recpos=0; ! 37: } ! 38: for(p=buf;*p;t_putc(*p++)); ! 39: } ! 40: lwrt_L(n) ftnint n; ! 41: { ! 42: if(recpos+LLOGW>=LINE) ! 43: { t_putc('\n'); ! 44: recpos=0; ! 45: } ! 46: wrt_L(&n,LLOGW); ! 47: } ! 48: lwrt_A(p,len) char *p; ftnlen len; ! 49: { ! 50: int i; ! 51: if(recpos+len>=LINE) ! 52: { ! 53: t_putc('\n'); ! 54: recpos=0; ! 55: } ! 56: t_putc(' '); ! 57: for(i=0;i<len;i++) t_putc(*p++); ! 58: } ! 59: lwrt_F(n) double n; ! 60: { ! 61: if(LLOW<=n && n<LHIGH) ! 62: { ! 63: if(recpos+LFW>=LINE) ! 64: { ! 65: t_putc('\n'); ! 66: recpos=0; ! 67: } ! 68: scale=0; ! 69: wrt_F(&n,LFW,LFD,(ftnlen)sizeof(n)); ! 70: } ! 71: else ! 72: { ! 73: if(recpos+LEW>=LINE) ! 74: { t_putc('\n'); ! 75: recpos=0; ! 76: } ! 77: wrt_E(&n,LEW,LED,LEE,(ftnlen)sizeof(n)); ! 78: } ! 79: } ! 80: lwrt_C(a,b) double a,b; ! 81: { ! 82: if(recpos+2*LFW+3>=LINE) ! 83: { t_putc('\n'); ! 84: recpos=0; ! 85: } ! 86: t_putc(' '); ! 87: t_putc('('); ! 88: lwrt_F(a); ! 89: t_putc(','); ! 90: lwrt_F(b); ! 91: t_putc(')'); ! 92: } ! 93: l_write(number,ptr,len,type) ftnint *number,type; flex *ptr; ftnlen len; ! 94: { ! 95: int i; ! 96: ftnint x; ! 97: double y,z; ! 98: float *xx; ! 99: double *yy; ! 100: for(i=0;i< *number; i++) ! 101: { ! 102: switch((int)type) ! 103: { ! 104: default: fatal(204,"unknown type in lio"); ! 105: case TYSHORT: x=ptr->flshort; ! 106: goto xint; ! 107: case TYLONG: x=ptr->flint; ! 108: xint: lwrt_I(x); ! 109: break; ! 110: case TYREAL: y=ptr->flreal; ! 111: goto xfloat; ! 112: case TYDREAL: y=ptr->fldouble; ! 113: xfloat: lwrt_F(y); ! 114: break; ! 115: case TYCOMPLEX: xx= &(ptr->flreal); ! 116: y = *xx++; ! 117: z = *xx; ! 118: goto xcomplex; ! 119: case TYDCOMPLEX: yy = &(ptr->fldouble); ! 120: y= *yy++; ! 121: z = *yy; ! 122: xcomplex: lwrt_C(y,z); ! 123: break; ! 124: case TYLOGICAL: lwrt_L(ptr->flint); ! 125: break; ! 126: case TYCHAR: lwrt_A((char *)ptr,len); ! 127: break; ! 128: } ! 129: ptr = (char *)ptr + len; ! 130: } ! 131: return(0); ! 132: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.