00001 00002 // * Copyright (C) 2008 Battelle Memorial Institute 00003 // */ 00004 // 00005 //#include <stdlib.h> 00006 //#include <stdio.h> 00007 //#include <errno.h> 00008 //#include <math.h> 00009 //#include "network.h" 00010 // 00012 //typedef struct { 00013 // char *name; 00014 // double *addr; 00015 // double min, max; 00016 //} VARMAP; 00017 //VARMAP varmap[] = { 00018 //#define MAP(X,LO,HI) {#X,&X,LO,HI} 00019 // /* add global variables you want to be available to core */ 00020 // //MAP(convergence_limit,1e-8,1e-0), 00021 // //MAP(acceleration_factor,0.5,2.0), 00022 // //MAP(mvabase,0.0,0.0), 00023 //0}; 00024 // 00025 //EXPORT int setvar(char *varname, char *value) 00026 //{ 00027 // VARMAP *p; 00028 // for (p=varmap; p<varmap+sizeof(varmap)/sizeof(varmap[0]); p++) 00029 // { 00030 // if (strcmp(p->name,varname)==0) 00031 // { 00032 // double v = atof(value); 00033 // if (p->min<p->max && v>=p->min && v<=p->max) 00034 // { *(p->addr) = v; return 1;} 00035 // else 00036 // return 0; 00037 // } 00038 // } 00039 // return 0; 00040 //} 00041 // 00042 //EXPORT void* getvar(char *varname, char *value, unsigned int size) 00043 //{ 00044 // VARMAP *p; 00045 // if (value==NULL && varname[0]=='\0') // first iterator 00046 // { 00047 // strcpy(varname,varmap[0].name); 00048 // return (void*)1; 00049 // } 00050 // for (p=varmap; p<varmap+sizeof(varmap)/sizeof(varmap[0]); p++) 00051 // { 00052 // if (strcmp(p->name,varname)==0) 00053 // { 00054 // if (size==-1) // indicates the addr is desired 00055 // { 00056 // return (void*)p->addr; 00057 // } 00058 // else if (value==NULL) // next iterator 00059 // { 00060 // if (p+1<varmap+sizeof(varmap)/sizeof(varmap[0])) 00061 // { 00062 // strcpy(varname,(p+1)->name); 00063 // return (void*)1; 00064 // } 00065 // else 00066 // { 00067 // return (void*)0; // done iterating 00068 // } 00069 // } 00070 // else { 00071 // double *v = p->addr; 00072 // sprintf(value,"%lg",*v); 00073 // return (void*)1; 00074 // } 00075 // } 00076 // } 00077 // return (void*)0; 00078 //}