--- imach/src/imach.c 2014/06/18 15:51:14 1.149 +++ imach/src/imach.c 2014/06/20 16:45:46 1.153 @@ -1,6 +1,20 @@ -/* $Id: imach.c,v 1.149 2014/06/18 15:51:14 brouard Exp $ +/* $Id: imach.c,v 1.153 2014/06/20 16:45:46 brouard Exp $ $State: Exp $ $Log: imach.c,v $ + Revision 1.153 2014/06/20 16:45:46 brouard + Summary: If 3 live state, convergence to period prevalence on same graph + Author: Brouard + + Revision 1.152 2014/06/18 17:54:09 brouard + Summary: open browser, use gnuplot on same dir than imach if not found in the path + + Revision 1.151 2014/06/18 16:43:30 brouard + *** empty log message *** + + Revision 1.150 2014/06/18 16:42:35 brouard + Summary: If gnuplot is not in the path try on same directory than imach binary (OSX) + Author: brouard + Revision 1.149 2014/06/18 15:51:14 brouard Summary: Some fixes in parameter files errors Author: Nicolas Brouard @@ -496,11 +510,11 @@ extern int errno; #define ODIRSEPARATOR '/' #endif -/* $Id: imach.c,v 1.149 2014/06/18 15:51:14 brouard Exp $ */ +/* $Id: imach.c,v 1.153 2014/06/20 16:45:46 brouard Exp $ */ /* $State: Exp $ */ char version[]="Imach version 0.98nT, January 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121)"; -char fullversion[]="$Revision: 1.149 $ $Date: 2014/06/18 15:51:14 $"; +char fullversion[]="$Revision: 1.153 $ $Date: 2014/06/20 16:45:46 $"; char strstart[80]; char optionfilext[10], optionfilefiname[FILENAMELENGTH]; int erreur=0, nberr=0, nbwarn=0; /* Error number, number of errors number of warnings */ @@ -3980,6 +3994,7 @@ void printinggnuplot(char fileres[], cha strcpy(dirfileres,optionfilefiname); strcpy(optfileres,"vpl"); /* 1eme*/ + fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'vpl' files\n"); for (cpt=1; cpt<= nlstate ; cpt ++) { for (k1=1; k1<= m ; k1 ++) { /* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */ fprintf(ficgp,"\nset out \"%s%d_%d.png\" \n",subdirf2(optionfilefiname,"v"),cpt,k1); @@ -4007,7 +4022,7 @@ plot [%.f:%.f] \"%s\" every :::%d::%d u } } /*2 eme*/ - + fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files\n"); for (k1=1; k1<= m ; k1 ++) { fprintf(ficgp,"\nset out \"%s%d.png\" \n",subdirf2(optionfilefiname,"e"),k1); fprintf(ficgp,"set ylabel \"Years\" \nset ter png small size 320, 240\nplot [%.f:%.f] ",ageminpar,fage); @@ -4064,28 +4079,29 @@ plot [%.f:%.f] \"%s\" every :::%d::%d u } /* CV preval stable (period) */ - for (k1=1; k1<= m ; k1 ++) { - for (cpt=1; cpt<=nlstate ; cpt ++) { + for (k1=1; k1<= m ; k1 ++) { /* For each multivariate if any */ + for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */ k=3; + fprintf(ficgp,"\n#\n#\n#CV preval stable (period): 'pij' files, cov=%d state=%d",k1, cpt); fprintf(ficgp,"\nset out \"%s%d_%d.png\" \n",subdirf2(optionfilefiname,"p"),cpt,k1); + l=(nlstate+ndeath)*(cpt-1)+1; fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\ set ter png small size 320, 240\n\ unset log y\n\ -plot [%.f:%.f] \"%s\" u ($1==%d ? ($3):1/0):($%d/($%d",ageminpar,agemaxpar,subdirf2(fileres,"pij"),k1,k+cpt+1,k+1); - - for (i=1; i< nlstate ; i ++) - fprintf(ficgp,"+$%d",k+i+1); - fprintf(ficgp,")) t\"prev(%d,%d)\" w l",cpt,cpt+1); - - l=3+(nlstate+ndeath)*cpt; - fprintf(ficgp,",\"%s\" u ($1==%d ? ($3):1/0):($%d/($%d",subdirf2(fileres,"pij"),k1,l+cpt+1,l+1); - for (i=1; i< nlstate ; i ++) { - l=3+(nlstate+ndeath)*cpt; - fprintf(ficgp,"+$%d",l+i+1); - } - fprintf(ficgp,")) t\"prev(%d,%d)\" w l\n",cpt+1,cpt+1); - } - } +plot [%.f:%.f] ", ageminpar, agemaxpar); + for (i=1; i<= nlstate ; i ++){ + if(i==1) + fprintf(ficgp,"\"%s\"",subdirf2(fileres,"pij")); + else + fprintf(ficgp,", '' "); + fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l,k+l); + for (j=1; j<= (nlstate-1) ; j ++) + fprintf(ficgp,"+$%d",k+l+j); + fprintf(ficgp,")) t \"prev(%d,%d)\" w l",i,cpt); + } /* nlstate */ + fprintf(ficgp,"\n"); + } /* end cpt state*/ + } /* end covariate */ /* proba elementaires */ for(i=1,jk=1; i <=nlstate; i++){ @@ -6663,7 +6679,11 @@ Interval (in months) between two waves: printf("Starting graphs with: %s\n",plotcmd);fflush(stdout); if((outcmd=system(plotcmd)) != 0){ - printf("\n Problem with gnuplot\n"); + printf("\n Problem with gnuplot command %s, err=%d\n", plotcmd, outcmd); + printf("\n Trying on same directory\n"); + sprintf(plotcmd,"%sgnuplot %s", pathimach, optionfilegnuplot); + if((outcmd=system(plotcmd)) != 0) + printf("\n Still a problem with gnuplot command %s, err=%d\n", plotcmd, outcmd); } printf(" Wait..."); while (z[0] != 'q') { @@ -6672,8 +6692,13 @@ Interval (in months) between two waves: scanf("%s",z); /* if (z[0] == 'c') system("./imach"); */ if (z[0] == 'e') { - printf("Starting browser with: %s",optionfilehtm);fflush(stdout); - system(optionfilehtm); +#ifdef OSX + sprintf(pplotcmd, "open %s", optionfilehtm); +#else + sprintf(pplotcmd, "%s", optionfilehtm); +#endif + printf("Starting browser with: %s",pplotcmd);fflush(stdout); + system(pplotcmd); } else if (z[0] == 'g') system(plotcmd); else if (z[0] == 'q') exit(0);