=================================================================== RCS file: /home/cvs/OpenXM/src/hgm/mh/src/wmain.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- OpenXM/src/hgm/mh/src/wmain.c 2013/02/20 01:06:38 1.3 +++ OpenXM/src/hgm/mh/src/wmain.c 2013/02/20 05:20:49 1.4 @@ -1,19 +1,21 @@ /* -$OpenXM: OpenXM/src/hgm/mh/src/wmain.c,v 1.2 2013/02/19 08:03:14 takayama Exp $ +$OpenXM: OpenXM/src/hgm/mh/src/wmain.c,v 1.3 2013/02/20 01:06:38 takayama Exp $ License: LGPL */ #include #include #include #include +#include "sfile.h" #define SMAX 4096 -#define inci(i) { i++; if (i >= argc) { fprintf(stderr,"Option argument is not given.\n"); return(-1); }} +#define inci(i) { i++; if (i >= argc) { fprintf(stderr,"Option argument is not given.\n"); return(NULL); }} int MH_deallocate=0; extern char *MH_Gfname; extern char *MH_Dfname; /* global variables. They are set in setParam() */ +int MH_byFile=1; int MH_RANK; int MH_M; @@ -32,7 +34,6 @@ extern int MH_Verbose; extern int MH_P95; /* 95 % points */ int mh_gopen_file(void); -double mh_rkmain(double x0,double y0[],double xn); static int setParamTest(void); static int setParamDefault(void); static int setParam(char *fname); @@ -42,7 +43,7 @@ static int showParam(void); #ifdef DEBUG char *MH_Dfname; char *MH_Gfname; double MH_Hg; int mh_gopen_file(void) { } -double mh_rkmain(double x0,double y0[],double xn) { } +struct MH_RESULT mh_rkmain(double x0,double y0[],double xn) { } #endif void mh_freeWorkArea(void) { @@ -74,18 +75,21 @@ static mypower(int x,int n) { } #ifdef STANDALONE main(int argc,char *argv[]) { +/* mh_main(argc,argv); + mh_freeWorkArea(); */ mh_main(argc,argv); - mh_freeWorkArea(); - return mh_main(argc,argv); } #endif -mh_main(int argc,char *argv[]) { +struct MH_RESULT *mh_main(int argc,char *argv[]) { static double *y0; double x0,xn; double ef; int i,rank; + struct MH_RESULT *rp=NULL; extern int MH_deallocate; - if (MH_deallocate) { if (y0) mh_free(y0); return(0); } + extern int MH_byFile; + MH_byFile=1; + if (MH_deallocate) { if (y0) mh_free(y0); return(rp); } setParam(NULL); MH_Gfname = MH_Dfname = NULL; MH_Verbose=1; for (i=1; i