/* ******************************************************************* * * * Copyright (c) L-DGO/MIT/JGOFS * * * * * * File : math.c * * * * Purpose : * * * * Version Number : 1.1 * * * * Revision History : * * * * Date Developer * * ---- --------- * * * * Sat Oct 17 1992 10.00 Glenn Flierl * * * * * ******************************************************************* */ #include #include double atof(); #include /* #define DEBUG */ #define TOKEN 40 #define NVAR 20 char names[NVAR][TOKEN]; char values[NVAR][TOKEN]; int vpntr[NVAR]; char comments[810]; char pstrings[10][255]; int npstrings; int nvars; float x,dx,xmax; int calclev; err(s1,s2) char *s1,*s2; { printf("&x error %s %s\n"); exit(1); } docalc(n) int n; { int i; for(i=n;ixmax) return 0; sprintf(values[0],"%f",x); docalc(calclev); return 1; } else { docalc(calclev); x=atof(values[0]); calclev=1; return 1; }; } ioclose_() { } int ioopen_(s,nparams,ntotal) char *s[]; int *nparams; int *ntotal; { *comments=0; doinit(nparams,s); calclev=0; *ntotal=nvars; return 0; } int iovarlevel_(vn) int *vn; { return 0; } int ioattrout_(vn,str) int *vn; char *str; { return 0; } iovalreal_(vn,f) int *vn; float *f; { if(strspn(values[*vn],"0123456789.+-")) *f=atof(values[*vn]); else *f= -9999.0; } char *iovalstr_(vn,tmp) int *vn; char *tmp; { char *s; s=values[*vn]; s=s+strspn(s," "); strcpy(tmp,s); } char *ioname_(vn,s) int *vn; char *s; { strcpy(s,names[*vn]); } int iocommout_(str) char *str; { char *at; if (comments[0]){ at=strchr(comments,'\n'); if(at){ *at = '\0'; strcpy(str,comments); strcpy(comments,at+1); } else { strcpy(str,comments); comments[0]='\0'; }; return 1; } else return 0; }