Diff for /imach/src/imach.c between versions 1.147 and 1.154

version 1.147, 2014/06/16 10:33:11 version 1.154, 2014/06/20 17:32:08
Line 1 Line 1
 /* $Id$  /* $Id$
   $State$    $State$
   $Log$    $Log$
     Revision 1.154  2014/06/20 17:32:08  brouard
     Summary: Outputs now all graphs of convergence to period prevalence
   
     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
   
     Revision 1.148  2014/06/17 17:38:48  brouard
     Summary: Nothing new
     Author: Brouard
   
     Just a new packaging for OS/X version 0.98nS
   
   Revision 1.147  2014/06/16 10:33:11  brouard    Revision 1.147  2014/06/16 10:33:11  brouard
   *** empty log message ***    *** empty log message ***
   
Line 489  extern int errno; Line 516  extern int errno;
 /* $Id$ */  /* $Id$ */
 /* $State$ */  /* $State$ */
   
 char version[]="Imach version 0.98nR2, January 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121)";  char version[]="Imach version 0.98nU, January 2014,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121)";
 char fullversion[]="$Revision$ $Date$";   char fullversion[]="$Revision$ $Date$"; 
 char strstart[80];  char strstart[80];
 char optionfilext[10], optionfilefiname[FILENAMELENGTH];  char optionfilext[10], optionfilefiname[FILENAMELENGTH];
Line 3868  fprintf(fichtm," \n<ul><li><b>Graphs</b> Line 3895  fprintf(fichtm," \n<ul><li><b>Graphs</b>
  before but expressed in per year i.e. quasi incidences if stepm is small and probabilities too: <a href=\"%s%d_2.png\">%s%d_2.png</a><br> \   before but expressed in per year i.e. quasi incidences if stepm is small and probabilities too: <a href=\"%s%d_2.png\">%s%d_2.png</a><br> \
 <img src=\"%s%d_2.png\">",stepm,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1);   <img src=\"%s%d_2.png\">",stepm,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1,subdirf2(optionfilefiname,"pe"),jj1); 
        /* Period (stable) prevalence in each health state */         /* Period (stable) prevalence in each health state */
        for(cpt=1; cpt<nlstate;cpt++){         for(cpt=1; cpt<=nlstate;cpt++){
          fprintf(fichtm,"<br>- Period (stable) prevalence in each health state : <a href=\"%s%d_%d.png\">%s%d_%d.png</a><br> \           fprintf(fichtm,"<br>- Convergence from each state (1 to %d) to period (stable) prevalence in state %d <a href=\"%s%d_%d.png\">%s%d_%d.png</a><br> \
 <img src=\"%s%d_%d.png\">",subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1);  <img src=\"%s%d_%d.png\">",nlstate, cpt, subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1,subdirf2(optionfilefiname,"p"),cpt,jj1);
        }         }
      for(cpt=1; cpt<=nlstate;cpt++) {       for(cpt=1; cpt<=nlstate;cpt++) {
         fprintf(fichtm,"\n<br>- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies : <a href=\"%s%d%d.png\">%s%d%d.png</a> <br> \          fprintf(fichtm,"\n<br>- Life expectancy by health state (%d) at initial age and its decomposition into health expectancies in each alive state (1 to %d) : <a href=\"%s%d%d.png\">%s%d%d.png</a> <br> \
 <img src=\"%s%d%d.png\">",cpt,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1);  <img src=\"%s%d%d.png\">",cpt,nlstate,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1,subdirf2(optionfilefiname,"exp"),cpt,jj1);
      }       }
    } /* end i1 */     } /* end i1 */
  }/* End k1 */   }/* End k1 */
Line 3970  void printinggnuplot(char fileres[], cha Line 3997  void printinggnuplot(char fileres[], cha
   strcpy(dirfileres,optionfilefiname);    strcpy(dirfileres,optionfilefiname);
   strcpy(optfileres,"vpl");    strcpy(optfileres,"vpl");
  /* 1eme*/   /* 1eme*/
     fprintf(ficgp,"\n# 1st: Period (stable) prevalence with CI: 'vpl' files\n");
   for (cpt=1; cpt<= nlstate ; cpt ++) {    for (cpt=1; cpt<= nlstate ; cpt ++) {
     for (k1=1; k1<= m ; k1 ++) { /* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */      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);       fprintf(ficgp,"\nset out \"%s%d_%d.png\" \n",subdirf2(optionfilefiname,"v"),cpt,k1);
Line 3997  plot [%.f:%.f] \"%s\" every :::%d::%d u Line 4025  plot [%.f:%.f] \"%s\" every :::%d::%d u
    }     }
   }    }
   /*2 eme*/    /*2 eme*/
       fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files\n");
   for (k1=1; k1<= m ; k1 ++) {     for (k1=1; k1<= m ; k1 ++) { 
     fprintf(ficgp,"\nset out \"%s%d.png\" \n",subdirf2(optionfilefiname,"e"),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);      fprintf(ficgp,"set ylabel \"Years\" \nset ter png small size 320, 240\nplot [%.f:%.f] ",ageminpar,fage);
Line 4054  plot [%.f:%.f] \"%s\" every :::%d::%d u Line 4082  plot [%.f:%.f] \"%s\" every :::%d::%d u
   }    }
       
   /* CV preval stable (period) */    /* CV preval stable (period) */
   for (k1=1; k1<= m ; k1 ++) {     for (k1=1; k1<= m ; k1 ++) { /* For each multivariate if any */
     for (cpt=1; cpt<=nlstate ; cpt ++) {      for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */
       k=3;        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);        fprintf(ficgp,"\nset out \"%s%d_%d.png\" \n",subdirf2(optionfilefiname,"p"),cpt,k1);
       fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\        fprintf(ficgp,"set xlabel \"Age\" \nset ylabel \"Probability\" \n\
 set ter png small size 320, 240\n\  set ter png small size 320, 240\n\
 unset log y\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);  plot [%.f:%.f]  ", ageminpar, agemaxpar);
               for (i=1; i<= nlstate ; i ++){
       for (i=1; i< nlstate ; i ++)          if(i==1)
         fprintf(ficgp,"+$%d",k+i+1);            fprintf(ficgp,"\"%s\"",subdirf2(fileres,"pij"));
       fprintf(ficgp,")) t\"prev(%d,%d)\" w l",cpt,cpt+1);          else
                   fprintf(ficgp,", '' ");
       l=3+(nlstate+ndeath)*cpt;          l=(nlstate+ndeath)*(i-1)+1;
       fprintf(ficgp,",\"%s\" u ($1==%d ? ($3):1/0):($%d/($%d",subdirf2(fileres,"pij"),k1,l+cpt+1,l+1);          fprintf(ficgp," u ($1==%d ? ($3):1/0):($%d/($%d",k1,k+l+(cpt-1),k+l);
       for (i=1; i< nlstate ; i ++) {          for (j=1; j<= (nlstate-1) ; j ++)
         l=3+(nlstate+ndeath)*cpt;            fprintf(ficgp,"+$%d",k+l+j);
         fprintf(ficgp,"+$%d",l+i+1);          fprintf(ficgp,")) t \"prev(%d,%d)\" w l",i,cpt);
       }        } /* nlstate */
       fprintf(ficgp,")) t\"prev(%d,%d)\" w l\n",cpt+1,cpt+1);           fprintf(ficgp,"\n");
     }       } /* end cpt state*/ 
   }      } /* end covariate */  
       
   /* proba elementaires */    /* proba elementaires */
   for(i=1,jk=1; i <=nlstate; i++){    for(i=1,jk=1; i <=nlstate; i++){
Line 5379  int main(int argc, char *argv[]) Line 5408  int main(int argc, char *argv[])
   /*---------arguments file --------*/    /*---------arguments file --------*/
   
   if((ficpar=fopen(optionfile,"r"))==NULL)    {    if((ficpar=fopen(optionfile,"r"))==NULL)    {
     printf("Problem with optionfile %s\n",optionfile);      printf("Problem with optionfile %s with errno=%s\n",optionfile,strerror(errno));
     fprintf(ficlog,"Problem with optionfile %s\n",optionfile);      fprintf(ficlog,"Problem with optionfile %s with errno=%s\n",optionfile,strerror(errno));
     fflush(ficlog);      fflush(ficlog);
     goto end;      /* goto end; */
       exit(70); 
   }    }
   
   
Line 6652  Interval (in months) between two waves: Line 6682  Interval (in months) between two waves:
   printf("Starting graphs with: %s\n",plotcmd);fflush(stdout);    printf("Starting graphs with: %s\n",plotcmd);fflush(stdout);
   
   if((outcmd=system(plotcmd)) != 0){    if((outcmd=system(plotcmd)) != 0){
     printf("\n Problem with gnuplot\n");      printf("gnuplot command might not be in your path: %s, err=%d\n", plotcmd, outcmd);
       printf("\n Trying if gnuplot resides on the same directory that IMaCh\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...");    printf(" Successul, please wait...");
   while (z[0] != 'q') {    while (z[0] != 'q') {
     /* chdir(path); */      /* chdir(path); */
     printf("\nType e to edit output files, g to graph again and q for exiting: ");      printf("\nType e to edit results with your browser, g to graph again and q for exit: ");
     scanf("%s",z);      scanf("%s",z);
 /*     if (z[0] == 'c') system("./imach"); */  /*     if (z[0] == 'c') system("./imach"); */
     if (z[0] == 'e') {      if (z[0] == 'e') {
       printf("Starting browser with: %s",optionfilehtm);fflush(stdout);  #ifdef OSX
       system(optionfilehtm);        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] == 'g') system(plotcmd);
     else if (z[0] == 'q') exit(0);      else if (z[0] == 'q') exit(0);

Removed from v.1.147  
changed lines
  Added in v.1.154


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