[BACK]Return to wmain.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / hgm / mh / src

Diff for /OpenXM/src/hgm/mh/src/wmain.c between version 1.2 and 1.3

version 1.2, 2013/02/19 08:03:14 version 1.3, 2013/02/20 01:06:38
Line 1 
Line 1 
 /*  /*
 $OpenXM$  $OpenXM: OpenXM/src/hgm/mh/src/wmain.c,v 1.2 2013/02/19 08:03:14 takayama Exp $
 License: LGPL  License: LGPL
  */   */
 #include <stdio.h>  #include <stdio.h>
Line 8  License: LGPL
Line 8  License: LGPL
 #include <string.h>  #include <string.h>
 #define SMAX 4096  #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(-1); }}
   int MH_deallocate=0;
   
 extern char *MH_Gfname;  extern char *MH_Gfname;
 extern char *MH_Dfname;  extern char *MH_Dfname;
   
Line 43  int mh_gopen_file(void) { }
Line 45  int mh_gopen_file(void) { }
 double mh_rkmain(double x0,double y0[],double xn) { }  double mh_rkmain(double x0,double y0[],double xn) { }
 #endif  #endif
   
   void mh_freeWorkArea(void) {
     extern int MH_deallocate;
     MH_deallocate=1; /* switch to deallocation mode. */
     mh_main(0,NULL);
     setParam(NULL);
     mh_rkmain(0.0, NULL, 0.0);
     mh_rf(0.0, NULL, 0, NULL, 0);
     MH_deallocate=0; /* switch to the normal mode. */
   }
 void *mh_malloc(int s) {  void *mh_malloc(int s) {
   void *p;    void *p;
   p = (void*)malloc(s);    p = (void*)malloc(s);
Line 63  static mypower(int x,int n) {
Line 74  static mypower(int x,int n) {
 }  }
 #ifdef STANDALONE  #ifdef STANDALONE
 main(int argc,char *argv[]) {  main(int argc,char *argv[]) {
   return mh_main(argc,char *argv[]);    mh_main(argc,argv);
     mh_freeWorkArea();
     return mh_main(argc,argv);
 }  }
 #endif  #endif
 mh_main(int argc,char *argv[]) {  mh_main(int argc,char *argv[]) {
   double *y0;    static double *y0;
   double x0,xn;    double x0,xn;
   double ef;    double ef;
   int i,rank;    int i,rank;
     extern int MH_deallocate;
     if (MH_deallocate) { if (y0) mh_free(y0); return(0); }
   setParam(NULL); MH_Gfname = MH_Dfname = NULL; MH_Verbose=1;    setParam(NULL); MH_Gfname = MH_Dfname = NULL; MH_Verbose=1;
   for (i=1; i<argc; i++) {    for (i=1; i<argc; i++) {
         if (strcmp(argv[i],"--idata")==0) {          if (strcmp(argv[i],"--idata")==0) {
Line 204  static setParam(char *fname) {
Line 219  static setParam(char *fname) {
   char s[SMAX];    char s[SMAX];
   FILE *fp;    FILE *fp;
   int i;    int i;
     extern int MH_deallocate;
     if (MH_deallocate) {
           if (MH_Beta) mh_free(MH_Beta);
           if (MH_Ng) mh_free(MH_Ng);
           if (Iv) mh_free(Iv);
           return(0);
     }
   if (fname == NULL) return(setParamDefault());    if (fname == NULL) return(setParamDefault());
   
   if ((fp=fopen(fname,"r")) == NULL) {    if ((fp=fopen(fname,"r")) == NULL) {
Line 269  mh_exit(int n) {
Line 291  mh_exit(int n) {
 #ifdef STANDALONE  #ifdef STANDALONE
   exit(n);    exit(n);
 #else  #else
     /* todo, use setjmp, longjmp */
   fprintf(stderr,"Fatal error mh_exit(%d) in mh-w-n.\n",n);    fprintf(stderr,"Fatal error mh_exit(%d) in mh-w-n.\n",n);
 #endif  #endif
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>