=================================================================== RCS file: /home/cvs/OpenXM/src/hgm/mh/src/jack-n.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -p -r1.42 -r1.43 --- OpenXM/src/hgm/mh/src/jack-n.c 2016/02/09 05:56:38 1.42 +++ OpenXM/src/hgm/mh/src/jack-n.c 2016/02/09 06:38:01 1.43 @@ -7,7 +7,7 @@ #define VSTRING "%!version2.0" /* - $OpenXM: OpenXM/src/hgm/mh/src/jack-n.c,v 1.41 2016/02/09 05:00:31 takayama Exp $ + $OpenXM: OpenXM/src/hgm/mh/src/jack-n.c,v 1.42 2016/02/09 05:56:38 takayama Exp $ Ref: copied from this11/misc-2011/A1/wishart/Prog jack-n.c, translated from mh.rr or tk_jack.rr in the asir-contrib. License: LGPL Koev-Edelman for higher order derivatives. @@ -218,6 +218,7 @@ static int setParamDefault(); static int next(struct SFILE *fp,char *s,char *msg); static int setParam(char *fname); static int showParam(struct SFILE *fp,int fd); +static int showParam_v1(struct SFILE *fp,int fd); static double iv_factor(void); static double gammam(double a,int n); static double mypower(double a,int n); @@ -1739,12 +1740,14 @@ static int next(struct SFILE *sfp,char *s,char *msg) { char *ng="%%Ng="; // int i; s[0] = '%'; - while (s[0] == '%') { + while ((s[0] == '%') || (s[0] == '#')) { if (!mh_fgets(s,SMAX,sfp)) { oxprintfe("Data format error at %s\n",msg); oxprintfe("Is it version 2.0 format? If so, add\n%s\nat the top.\n",VSTRING); mh_exit(-1); } + if ((s[0] == '%') && (s[1] == '%')) continue; + if (s[0] == '#') continue; if (strncmp(s,VSTRING,strlen(VSTRING)) == 0) { return(2); } @@ -2002,6 +2005,9 @@ static int setParam(char *fname) { continue; } if (strcmp(s,"Iv")==0) { + if (mh_getoken(s,SMAX-1,fp).type != MH_TOKEN_EQ) { + oxprintfe("Syntax error at %s\n",s); mh_exit(-1); + } for (i=0; i= 0) { + sprintf(swork,"%%Ng=\n%lf\n",*Ng); mh_fputs(swork,fp); + } + sprintf(swork,"%%X0g=\n%lf\n",X0g); mh_fputs(swork,fp); + sprintf(swork,"%%Iv=\n"); mh_fputs(swork,fp); + for (i=0; i