]> henry.ined.fr Git - .git/commitdiff
Summary: version 0.99r35
authorN. Brouard <brouard@ined.fr>
Fri, 2 Sep 2022 14:26:02 +0000 (14:26 +0000)
committerN. Brouard <brouard@ined.fr>
Fri, 2 Sep 2022 14:26:02 +0000 (14:26 +0000)
* src/imach.c: Version 0.99r35 because it outputs same results with
1+age+V1+V1*age for females and 1+age for females only
(education=1 noweight)

src/imach.c

index 9dc181674318ccc3a8089fae8bd5554484dd851f..ae856d47cf82492f5d3c0451025f3dcd98c4e834 100644 (file)
@@ -1,6 +1,9 @@
 /* $Id$
   $State$
   $Log$
+  Revision 1.336  2022/08/31 09:52:36  brouard
+  *** empty log message ***
+
   Revision 1.335  2022/08/31 08:23:16  brouard
   Summary: improvements...
 
@@ -1288,7 +1291,7 @@ typedef struct {
 /* $State$ */
 #include "version.h"
 char version[]=__IMACH_VERSION__;
-char copyright[]="August 2022,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015-2020, Nihon University 2021-202, INED 2000-2022";
+char copyright[]="September 2022,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015-2020, Nihon University 2021-202, INED 2000-2022";
 char fullversion[]="$Revision$ $Date$"; 
 char strstart[80];
 char optionfilext[10], optionfilefiname[FILENAMELENGTH];
@@ -1505,6 +1508,7 @@ int **nbcode, *Tvar; /**< model=V2 => Tvar[1]= 2 */
 /*Tvar[k]=     5  4   3   6     5    2    7     1    1 */
 /*    nsd         1   2                              3 */ /* Counting single dummies covar fixed or tv */
 /*TnsdVar[Tvar]   1   2                              3 */ 
+/*Tvaraff[nsd]     4   3                              1 */ /* ID of single dummy cova fixed or timevary*/
 /*TvarsD[nsd]     4   3                              1 */ /* ID of single dummy cova fixed or timevary*/
 /*TvarsDind[k]    2   3                              9 */ /* position K of single dummy cova */
 /*    nsq      1                     2                 */ /* Counting single quantit tv */
@@ -2507,8 +2511,10 @@ void powell(double p[], double **xi, int n, double ftol, int *iter, double *fret
     /* (void) gettimeofday(&curr_time,&tzp); */
     rcurr_time = time(NULL);  
     curr_time = *localtime(&rcurr_time);
-    printf("\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret, rcurr_time-rlast_time, rcurr_time-rstart_time);fflush(stdout);
-    fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog);
+    /* printf("\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret, rcurr_time-rlast_time, rcurr_time-rstart_time);fflush(stdout); */
+    /* fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f gain=%.12f=%.3g %ld sec. %ld sec.",*iter,*fret, fp-*fret,fp-*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog); */
+    printf("\nPowell iter=%d -2*LL=%.12f gain=%.3lg %ld sec. %ld sec.",*iter,*fret,fp-*fret, rcurr_time-rlast_time, rcurr_time-rstart_time);fflush(stdout);
+    fprintf(ficlog,"\nPowell iter=%d -2*LL=%.12f gain=%.3lg %ld sec. %ld sec.",*iter,*fret,fp-*fret,rcurr_time-rlast_time, rcurr_time-rstart_time); fflush(ficlog);
 /*     fprintf(ficrespow,"%d %.12f %ld",*iter,*fret,curr_time.tm_sec-start_time.tm_sec); */
     fp=(*fret); /* From former iteration or initial value */
     for (i=1;i<=n;i++) {
@@ -6539,11 +6545,16 @@ void  concatwav(int wav[], int **dh, int **bh,  int **mw, int **s, double *agedc
    pstamp(ficresprobmorprev);
    fprintf(ficresprobmorprev,"# probabilities of dying before estepm=%d months for people of exact age and weighted probabilities w1*p1j+w2*p2j+... stand dev in()\n",estepm);
    fprintf(ficresprobmorprev,"# Selected quantitative variables and dummies");
-   for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */ /* To be done*/
-     fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
+
+   /* We use TinvDoQresult[nres][resultmodel[nres][j] we sort according to the equation model and the resultline: it is a choice */
+   /* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ /\* To be done*\/ */
+   /*   fprintf(ficresprobmorprev," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+   /* } */
+   for (j=1; j<= cptcovs; j++){ /* For each selected (single) quantitative value */ /* To be done*/
+     fprintf(ficresprobmorprev," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
    }
-   for(j=1;j<=cptcoveff;j++) 
-     fprintf(ficresprobmorprev," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,TnsdVar[Tvaraff[j]])]);
+   /* for(j=1;j<=cptcoveff;j++)  */
+   /*   fprintf(ficresprobmorprev," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(ij,TnsdVar[Tvaraff[j]])]); */
    fprintf(ficresprobmorprev,"\n");
 
    fprintf(ficresprobmorprev,"# Age cov=%-d",ij);
@@ -7214,7 +7225,7 @@ To be simple, these graphs help to understand the significativity of each parame
           }
         }else if(Dummy[modelresult[nres][z1]]==1){ /* Quanti variable */
           /* For each selected (single) quantitative value */
-          fprintf(ficresprob," V%d=%f ",Tvqresult[nres][z1],Tqresult[nres][z1]);
+          fprintf(ficresprob," V%d=%lg ",Tvqresult[nres][z1],Tqresult[nres][z1]);
           if(Fixed[modelresult[nres][z1]]==0){ /* Fixed */
             fprintf(ficresprob,"fixed ");
             fprintf(ficresprobcov,"fixed ");
@@ -7561,29 +7572,38 @@ void printinghtml(char fileresu[], char title[], char datafile[], int firstpass,
    jj1=0;
 
    fprintf(fichtm," \n<ul>");
-   for(nres=1; nres <= nresult; nres++) /* For each resultline */
-   for(k1=1; k1<=m;k1++){ /* For each combination of covariate */
-     if(m != 1 && TKresult[nres]!= k1)
-       continue;
+   for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+     /* k1=nres; */
+     k1= TKresult[nres];
+   /* for(k1=1; k1<=m;k1++){ /\* For each combination of covariate *\/ */
+   /*   if(m != 1 && TKresult[nres]!= k1) */
+   /*     continue; */
      jj1++;
      if (cptcovn > 0) {
        fprintf(fichtm,"\n<li><a  size=\"1\" color=\"#EC5E5E\" href=\"#rescov");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-        fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (cpt=1; cpt<=cptcovs;cpt++){ /**< cptcovs number of SIMPLE covariates in the model V2+V1 =2 (dummy or quantit or time varying) */
+        fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
        }
+       /* for (cpt=1; cpt<=cptcoveff;cpt++){  */
+       /*       fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*       fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+       /* } */
        fprintf(fichtm,"\">");
        
        /* if(nqfveff+nqtveff 0) */ /* Test to be done */
        fprintf(fichtm,"************ Results for covariates");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-        fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (cpt=1; cpt<=cptcovs;cpt++){ 
+        fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
        }
+       /* fprintf(fichtm,"************ Results for covariates"); */
+       /* for (cpt=1; cpt<=cptcoveff;cpt++){  */
+       /*       fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*       fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+       /* } */
        if(invalidvarcomb[k1]){
         fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); 
         continue;
@@ -7595,35 +7615,32 @@ void printinghtml(char fileresu[], char title[], char datafile[], int firstpass,
 
    jj1=0;
 
-   for(nres=1; nres <= nresult; nres++) /* For each resultline */
-   for(k1=1; k1<=m;k1++){ /* For each combination of covariate */
-     if(m != 1 && TKresult[nres]!= k1)
-       continue;
+   for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+     /* k1=nres; */
+     k1= TKresult[nres];
+   /* for(k1=1; k1<=m;k1++){ /\* For each combination of covariate *\/ */
+   /*   if(m != 1 && TKresult[nres]!= k1) */
+   /*     continue; */
 
      /* for(i1=1; i1<=ncodemax[k1];i1++){ */
      jj1++;
      if (cptcovn > 0) {
        fprintf(fichtm,"\n<p><a name=\"rescov");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-        fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (cpt=1; cpt<=cptcovs;cpt++){ 
+        fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
        }
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*       fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+       /* } */
        fprintf(fichtm,"\"</a>");
  
        fprintf(fichtm,"<hr  size=\"2\" color=\"#EC5E5E\">************ Results for covariates");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-        printf(" V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]);fflush(stdout);
+       for (cpt=1; cpt<=cptcovs;cpt++){ 
+        fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
+        printf(" V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
         /* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */
         /* printf(" V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]);fflush(stdout); */
        }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);fflush(stdout);
-      }
-       
        /* if(nqfveff+nqtveff 0) */ /* Test to be done */
        fprintf(fichtm," (model=%s) ************\n<hr size=\"2\" color=\"#EC5E5E\">",model);
        if(invalidvarcomb[k1]){
@@ -7698,7 +7715,7 @@ with weights corresponding to observed prevalence at different ages. <a href=\"%
        fprintf(fichtm,"<img src=\"%s_%d-%d-%d.svg\">", subdirf2(optionfilefiname,"EXP_"),cpt,k1,nres );
      }
      /* } /\* end i1 *\/ */
-   }/* End k1 */
+   }/* End k1=nres */
    fprintf(fichtm,"</ul>");
 
    fprintf(fichtm,"\
@@ -7756,28 +7773,24 @@ See page 'Matrix of variance-covariance of one-step probabilities' below. \n", r
   jj1=0;
 
    fprintf(fichtm," \n<ul>");
-   for(nres=1; nres <= nresult; nres++) /* For each resultline */
-   for(k1=1; k1<=m;k1++){ /* For each combination of covariate */
-     if(m != 1 && TKresult[nres]!= k1)
-       continue;
+   for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+     /* k1=nres; */
+     k1= TKresult[nres];
+     /* for(k1=1; k1<=m;k1++){ /\* For each combination of covariate *\/ */
+     /* if(m != 1 && TKresult[nres]!= k1) */
+     /*   continue; */
      jj1++;
      if (cptcovn > 0) {
        fprintf(fichtm,"\n<li><a  size=\"1\" color=\"#EC5E5E\" href=\"#rescovsecond");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-        fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (cpt=1; cpt<=cptcovs;cpt++){ 
+        fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
        }
        fprintf(fichtm,"\">");
        
        /* if(nqfveff+nqtveff 0) */ /* Test to be done */
        fprintf(fichtm,"************ Results for covariates");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-        fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (cpt=1; cpt<=cptcovs;cpt++){ 
+        fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
        }
        if(invalidvarcomb[k1]){
         fprintf(fichtm," Warning Combination (%d) ignored because no cases ",k1); 
@@ -7785,36 +7798,32 @@ See page 'Matrix of variance-covariance of one-step probabilities' below. \n", r
        }
        fprintf(fichtm,"</a></li>");
      } /* cptcovn >0 */
-   }
+   } /* End nres */
    fprintf(fichtm," \n</ul>");
 
    jj1=0;
 
    for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-   for(k1=1; k1<=m;k1++){
-     if(m != 1 && TKresult[nres]!= k1)
-       continue;
+     /* k1=nres; */
+     k1= TKresult[nres];
+     /* for(k1=1; k1<=m;k1++){ */
+     /* if(m != 1 && TKresult[nres]!= k1) */
+     /*   continue; */
      /* for(i1=1; i1<=ncodemax[k1];i1++){ */
      jj1++;
      if (cptcovn > 0) {
        fprintf(fichtm,"\n<p><a name=\"rescovsecond");
-       for (cpt=1; cpt<=cptcoveff;cpt++){ 
-        fprintf(fichtm,"_V%d=%d_",Tvresult[nres][cpt],(int)Tresult[nres][cpt]);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-        fprintf(fichtm,"_V%d=%f_",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (cpt=1; cpt<=cptcovs;cpt++){ 
+        fprintf(fichtm,"_V%d=%lg_",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
        }
        fprintf(fichtm,"\"</a>");
        
        fprintf(fichtm,"<hr  size=\"2\" color=\"#EC5E5E\">************ Results for covariates");
-       for (cpt=1; cpt<=cptcoveff;cpt++){  /**< cptcoveff number of variables */
-        fprintf(fichtm," V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]);
-        printf(" V%d=%d ",Tvresult[nres][cpt],Tresult[nres][cpt]);fflush(stdout);
+       for (cpt=1; cpt<=cptcovs;cpt++){  /**< cptcoveff number of variables */
+        fprintf(fichtm," V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
+        printf(" V%d=%lg ",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);
         /* fprintf(fichtm," V%d=%d ",Tvaraff[cpt],nbcode[Tvaraff[cpt]][codtabm(jj1,cpt)]); */
        }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       fprintf(fichtm," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-      }
 
        fprintf(fichtm," (model=%s) ************\n<hr size=\"2\" color=\"#EC5E5E\">",model);
 
@@ -7822,7 +7831,7 @@ See page 'Matrix of variance-covariance of one-step probabilities' below. \n", r
         fprintf(fichtm,"\n<h4>Combination (%d) ignored because no cases </h4>\n",k1); 
         continue;
        }
-     }
+     } /* If cptcovn >0 */
      for(cpt=1; cpt<=nlstate;cpt++) {
        fprintf(fichtm,"\n<br>- Observed (cross-sectional with mov_average=%d) and period (incidence based) \
 prevalence (with 95%% confidence interval) in state (%d): <a href=\"%s_%d-%d-%d.svg\"> %s_%d-%d-%d.svg</a>",mobilav,cpt,subdirf2(optionfilefiname,"V_"),cpt,k1,nres,subdirf2(optionfilefiname,"V_"),cpt,k1,nres);
@@ -7837,7 +7846,6 @@ true period expectancies (those weighted with period prevalences are also\
      fprintf(fichtm," (data from text file <a href=\"%s.txt\">%s.txt</a>) \n<br>",subdirf2(optionfilefiname,"T_"),subdirf2(optionfilefiname,"T_"));
      fprintf(fichtm,"<img src=\"%s_%d-%d.svg\">",subdirf2(optionfilefiname,"E_"),k1,nres);
      /* } /\* end i1 *\/ */
-   }/* End k1 */
   }/* End nres */
    fprintf(fichtm,"</ul>");
    fflush(fichtm);
@@ -7915,31 +7923,36 @@ void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar,
   strcpy(optfileres,"vpl");
   /* 1eme*/
   for (cpt=1; cpt<= nlstate ; cpt ++){ /* For each live state */
-    for (k1=1; k1<= m ; k1 ++){ /* For each valid combination of covariate */
+    /* for (k1=1; k1<= m ; k1 ++){ /\* For each valid combination of covariate *\/ */
       for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+       k1=TKresult[nres];
        /* plot [100000000000000000000:-100000000000000000000] "mysbiaspar/vplrmysbiaspar.txt to check */
-       if(m != 1 && TKresult[nres]!= k1)
-         continue;
+       /* if(m != 1 && TKresult[nres]!= k1) */
+       /*   continue; */
        /* We are interested in selected combination by the resultline */
        /* printf("\n# 1st: Period (stable) prevalence with CI: 'VPL_' files and live state =%d ", cpt); */
        fprintf(ficgp,"\n# 1st: Forward (stable period) prevalence with CI: 'VPL_' files  and live state =%d ", cpt);
        strcpy(gplotlabel,"(");
-       for (k=1; k<=cptcoveff; k++){    /* For each covariate k get corresponding value lv for combination k1 */
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the value of the covariate corresponding to k1 combination *\/ */
-         lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         vlv= nbcode[Tvaraff[k]][lv]; /* vlv is the value of the covariate lv, 0 or 1 */
-         /* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv */
-         /* printf(" V%d=%d ",Tvaraff[k],vlv); */
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         /* printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate k get corresponding value lv for combination k1 *\/ */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the value of the covariate corresponding to k1 combination *\\/ *\/ */
+       /*   lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][lv]; /\* vlv is the value of the covariate lv, 0 or 1 *\/ */
+       /*   /\* For each combination of covariate k1 (V1=1, V3=0), we printed the current covariate k and its value vlv *\/ */
+       /*   /\* printf(" V%d=%d ",Tvaraff[k],vlv); *\/ */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   /\* printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
        }
        strcpy(gplotlabel+strlen(gplotlabel),")");
        /* printf("\n#\n"); */
@@ -8052,33 +8065,37 @@ void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar,
        /* fprintf(ficgp,"\nset out ;unset label;\n"); */
        fprintf(ficgp,"\nset out ;unset title;\n");
       } /* nres */
-    } /* k1 */
+    /* } /\* k1 *\/ */
   } /* cpt */
 
   
   /*2 eme*/
-  for (k1=1; k1<= m ; k1 ++){  
+  /* for (k1=1; k1<= m ; k1 ++){   */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+      k1=TKresult[nres];
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
       fprintf(ficgp,"\n# 2nd: Total life expectancy with CI: 't' files ");
       strcpy(gplotlabel,"(");
-      for (k=1; k<=cptcoveff; k++){    /* For each covariate and each value */
-       /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */
-       lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-       /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-       /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-       /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-       /* vlv= nbcode[Tvaraff[k]][lv]; */
-       vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-       fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-      }
-      /* for(k=1; k <= ncovds; k++){ */
-      for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-       fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
+      for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+       fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+      /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate and each value *\/ */
+      /*       /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */
+      /*       lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+      /*       /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+      /*       /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+      /*       /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+      /*       /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+      /*       vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+      /*       fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+      /*       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+      /* } */
+      /* /\* for(k=1; k <= ncovds; k++){ *\/ */
+      /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+      /*       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+      /*       fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+      /*       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
       }
       strcpy(gplotlabel+strlen(gplotlabel),")");
       fprintf(ficgp,"\n#\n");
@@ -8120,33 +8137,37 @@ void printinggnuplot(char fileresu[], char optionfilefiname[], double ageminpar,
       } /* vpopbased */
       fprintf(ficgp,"\nset out;set out \"%s_%d-%d.svg\"; replot; set out; unset label;\n",subdirf2(optionfilefiname,"E_"),k1,nres); /* Buggy gnuplot */
     } /* end nres */
-  } /* k1 end 2 eme*/
+  /* } /\* k1 end 2 eme*\/ */
        
        
   /*3eme*/
-  for (k1=1; k1<= m ; k1 ++){
+  /* for (k1=1; k1<= m ; k1 ++){ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+      k1=TKresult[nres];
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
 
       for (cpt=1; cpt<= nlstate ; cpt ++) { /* Fragile no verification of covariate values */
        fprintf(ficgp,"\n\n# 3d: Life expectancy with EXP_ files:  combination=%d state=%d",k1, cpt);
        strcpy(gplotlabel,"(");
-       for (k=1; k<=cptcoveff; k++){    /* For each covariate and each value */
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */
-         lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         /* vlv= nbcode[Tvaraff[k]][lv]; */
-         vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate and each value *\/ */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */
+       /*   lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]); */
        }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][resultmodel[nres][k4]]);
-       }       
        strcpy(gplotlabel+strlen(gplotlabel),")");
        fprintf(ficgp,"\n#\n");
        if(invalidvarcomb[k1]){
@@ -8177,31 +8198,35 @@ plot [%.f:%.f] \"%s\" every :::%d::%d u 1:%d t \"e%d1\" w l",ageminpar,fage,subd
       }
       fprintf(ficgp,"\nunset label;\n");
     } /* end nres */
-  } /* end kl 3eme */
+  /* } /\* end kl 3eme *\/ */
   
   /* 4eme */
   /* Survival functions (period) from state i in state j by initial state i */
-  for (k1=1; k1<=m; k1++){    /* For each covariate and each value */
+  /* for (k1=1; k1<=m; k1++){    /\* For each covariate and each value *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+      k1=TKresult[nres];
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
       for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state cpt*/
        strcpy(gplotlabel,"(");
-       fprintf(ficgp,"\n#\n#\n# Survival functions in state j : 'LIJ_' files, cov=%d state=%d",k1, cpt);
-       for (k=1; k<=cptcoveff; k++){    /* For each covariate and each value */
-         lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         /* vlv= nbcode[Tvaraff[k]][lv]; */
-         vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
+       fprintf(ficgp,"\n#\n#\n# Survival functions in state %d : 'LIJ_' files, cov=%d state=%d", cpt, k1, cpt);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate and each value *\/ */
+       /*   lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
        }       
        strcpy(gplotlabel+strlen(gplotlabel),")");
        fprintf(ficgp,"\n#\n");
@@ -8230,31 +8255,35 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
        fprintf(ficgp,"\nset out; unset label;\n");
       } /* end cpt state*/ 
     } /* end nres */
-  } /* end covariate k1 */  
+  /* } /\* end covariate k1 *\/   */
 
 /* 5eme */
   /* Survival functions (period) from state i in state j by final state j */
-  for (k1=1; k1<= m ; k1++){ /* For each covariate combination if any */
+  /* for (k1=1; k1<= m ; k1++){ /\* For each covariate combination if any *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+      k1=TKresult[nres];
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
       for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each inital state  */
        strcpy(gplotlabel,"(");
        fprintf(ficgp,"\n#\n#\n# Survival functions in state j and all livestates from state i by final state j: 'lij' files, cov=%d state=%d",k1, cpt);
-       for (k=1; k<=cptcoveff; k++){    /* For each covariate and each value */
-         lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         /* vlv= nbcode[Tvaraff[k]][lv]; */
-         vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate and each value *\/ */
+       /*   lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
        }       
        strcpy(gplotlabel+strlen(gplotlabel),")");
        fprintf(ficgp,"\n#\n");
@@ -8290,32 +8319,36 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
        }
        fprintf(ficgp,"\nset out; unset label;\n");
       } /* end cpt state*/ 
-    } /* end covariate */  
+    /* } /\* end covariate *\/   */
   } /* end nres */
   
 /* 6eme */
   /* CV preval stable (period) for each covariate */
-  for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */
+  /* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */
   for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-    if(m != 1 && TKresult[nres]!= k1)
-      continue;
+     k1=TKresult[nres];
+     /* if(m != 1 && TKresult[nres]!= k1) */
+     /*  continue; */
     for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state of arrival */
       strcpy(gplotlabel,"(");      
       fprintf(ficgp,"\n#\n#\n#CV preval stable (forward): 'pij' files, covariatecombination#=%d state=%d",k1, cpt);
-      for (k=1; k<=cptcoveff; k++){    /* For each covariate and each value */
-       /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */
-       lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-       /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-       /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-       /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-       /* vlv= nbcode[Tvaraff[k]][lv]; */
-       vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-       fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-      }
-      for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
+      for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+       fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+      /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate and each value *\/ */
+      /*       /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */
+      /*       lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+      /*       /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+      /*       /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+      /*       /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+      /*       /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+      /*       vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+      /*       fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+      /*       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+      /* } */
+      /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+      /*       fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+      /*       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
       }        
       strcpy(gplotlabel+strlen(gplotlabel),")");
       fprintf(ficgp,"\n#\n");
@@ -8348,27 +8381,31 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
 /* 7eme */
   if(prevbcast == 1){
     /* CV backward prevalence  for each covariate */
-    for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */
+    /* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+      k1=TKresult[nres];
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
       for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life origin state */
        strcpy(gplotlabel,"(");      
        fprintf(ficgp,"\n#\n#\n#CV Backward stable prevalence: 'pijb' files, covariatecombination#=%d state=%d",k1, cpt);
-       for (k=1; k<=cptcoveff; k++){    /* For each covariate and each value */
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate number corresponding to k1 combination *\/ */
-         lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         /* vlv= nbcode[Tvaraff[k]][lv]; */
-         vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate and each value *\/ */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate number corresponding to k1 combination *\\/ *\/ */
+       /*   lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
        }       
        strcpy(gplotlabel+strlen(gplotlabel),")");
        fprintf(ficgp,"\n#\n");
@@ -8406,27 +8443,31 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
   if(prevfcast==1){
     /* Projection from cross-sectional to forward stable (period) prevalence for each covariate */
     
-    for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */
+    /* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+      k1=TKresult[nres];
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
       for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */
        strcpy(gplotlabel,"(");      
        fprintf(ficgp,"\n#\n#\n#Projection of prevalence to forward stable prevalence (period): 'PROJ_' files, covariatecombination#=%d state=%d",k1, cpt);
-       for (k=1; k<=cptcoveff; k++){    /* For each correspondig covariate value  */
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to k1 combination and kth covariate *\/ */
-         lv=codtabm(k1,TnsdVar[Tvaraff[k]]);
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         /* vlv= nbcode[Tvaraff[k]][lv]; */
-         vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each correspondig covariate value  *\/ */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate value corresponding to k1 combination and kth covariate *\\/ *\/ */
+       /*   lv=codtabm(k1,TnsdVar[Tvaraff[k]]); */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
        }       
        strcpy(gplotlabel+strlen(gplotlabel),")");
        fprintf(ficgp,"\n#\n");
@@ -8523,27 +8564,31 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
   if(prevbcast==1){
     /* Back projection from cross-sectional to stable (mixed) for each covariate */
     
-    for (k1=1; k1<= m ; k1 ++) /* For each covariate combination if any */
+    /* for (k1=1; k1<= m ; k1 ++) /\* For each covariate combination if any *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
+     k1=TKresult[nres];
+       /* if(m != 1 && TKresult[nres]!= k1) */
+       /*      continue; */
       for (cpt=1; cpt<=nlstate ; cpt ++) { /* For each life state */
        strcpy(gplotlabel,"(");      
        fprintf(ficgp,"\n#\n#\n#Back projection of prevalence to stable (mixed) back prevalence: 'BPROJ_' files, covariatecombination#=%d originstate=%d",k1, cpt);
-       for (k=1; k<=cptcoveff; k++){    /* For each correspondig covariate value  */
-         /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to k1 combination and kth covariate *\/ */
-         lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */
-         /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-         /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-         /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-         /* vlv= nbcode[Tvaraff[k]][lv]; */
-         vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-         fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-       }
-       for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-         fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
+       for (k=1; k<=cptcovs; k++){    /* For each covariate k get corresponding value lv for combination k1 */
+         fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+         sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       /* for (k=1; k<=cptcoveff; k++){    /\* For each correspondig covariate value  *\/ */
+       /*   /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate value corresponding to k1 combination and kth covariate *\\/ *\/ */
+       /*   lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */
+       /*   /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+       /*   /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+       /*   /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+       /*   /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+       /*   vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+       /*   fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+       /* } */
+       /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+       /*   fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+       /*   sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
        }       
        strcpy(gplotlabel+strlen(gplotlabel),")");
        fprintf(ficgp,"\n#\n");
@@ -8598,19 +8643,25 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
            fprintf(ficgp," u %d:(",ioffset); 
            kl=0;
            strcpy(gplotcondition,"(");
-           for (k=1; k<=cptcoveff; k++){    /* For each covariate writing the chain of conditions */
-             /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */
-             lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */
-             /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-             /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-             /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-             /* vlv= nbcode[Tvaraff[k]][lv]; /\* Value of the modality of Tvaraff[k] *\/ */
-             vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-             kl++;
-             sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%d " ,kl,Tvaraff[k], kl+1, nbcode[Tvaraff[k]][lv]);
-             kl++;
-             if(k <cptcoveff && cptcoveff>1)
-               sprintf(gplotcondition+strlen(gplotcondition)," && ");
+           for (k=1; k<=cptcovs; k++){    /* For each covariate k of the resultline, get corresponding value lv for combination k1 */
+             if(Dummy[Tvresult[nres][k]]==0){  /* To be verified */
+               /* for (k=1; k<=cptcoveff; k++){    /\* For each covariate writing the chain of conditions *\/ */
+               /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */
+               /* lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */
+               lv=Tvresult[nres][k];
+               vlv=TinvDoQresult[nres][Tvresult[nres][k]];
+               /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
+               /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
+               /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
+               /* vlv= nbcode[Tvaraff[k]][lv]; /\* Value of the modality of Tvaraff[k] *\/ */
+               /* vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+               kl++;
+               /* sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%d " ,kl,Tvaraff[k], kl+1, nbcode[Tvaraff[k]][lv]); */
+               sprintf(gplotcondition+strlen(gplotcondition),"$%d==%d && $%d==%lg " ,kl,Tvresult[nres][k], kl+1,TinvDoQresult[nres][Tvresult[nres][k]]);
+               kl++;
+               if(k <cptcoveff && cptcoveff>1)
+                 sprintf(gplotcondition+strlen(gplotcondition)," && ");
+             }
            }
            strcpy(gplotcondition+strlen(gplotcondition),")");
            /* kl=6+(cpt-1)*(nlstate+1)+1+(i-1); /\* 6+(1-1)*(2+1)+1+(1-1)=7, 6+(2-1)(2+1)+1+(1-1)=10 *\/ */
@@ -8678,28 +8729,39 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
     fprintf(ficgp,"#model=%s \n",model);
     fprintf(ficgp,"# Type of graphic ng=%d\n",ng);
     fprintf(ficgp,"#   k1=1 to 2^%d=%d\n",cptcoveff,m);/* to be checked */
-    for(k1=1; k1 <=m; k1++)  /* For each combination of covariate */
+    /* for(k1=1; k1 <=m; k1++)  /\* For each combination of covariate *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(m != 1 && TKresult[nres]!= k1)
-       continue;
-      fprintf(ficgp,"\n\n# Combination of dummy  k1=%d which is ",k1);
+     /* k1=nres; */
+      k1= TKresult[nres];
+      fprintf(ficgp,"\n\n# Resultline k1=%d ",k1);
       strcpy(gplotlabel,"(");
       /*sprintf(gplotlabel+strlen(gplotlabel)," Dummy combination %d ",k1);*/
-      for (k=1; k<=cptcoveff; k++){    /* For each correspondig covariate value  */
-       /* lv= decodtabm(k1,k,cptcoveff); /\* Should be the covariate value corresponding to k1 combination and kth covariate *\/ */
-       lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /* Should be the covariate value corresponding to combination k1 and covariate k */
-       /* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 */
-       /* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 */
-       /* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 */
-       /* vlv= nbcode[Tvaraff[k]][lv]; */
-       vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])];
-       fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv);
-       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv);
-      }
-      for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]);
-      }        
+      for (k=1; k<=cptcovs; k++){  /**< cptcovs number of SIMPLE covariates in the model V2+V1 =2 (dummy or quantit or time varying) */
+       /* for each resultline nres, and position k, Tvresult[nres][k] gives the name of the variable and
+          TinvDoQresult[nres][Tvresult[nres][k]] gives its value double or integer) */
+       fprintf(ficgp," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%lg ",Tvresult[nres][k],TinvDoQresult[nres][Tvresult[nres][k]]);
+      }
+      /* if(m != 1 && TKresult[nres]!= k1) */
+      /*       continue; */
+      /* fprintf(ficgp,"\n\n# Combination of dummy  k1=%d which is ",k1); */
+      /* strcpy(gplotlabel,"("); */
+      /* /\*sprintf(gplotlabel+strlen(gplotlabel)," Dummy combination %d ",k1);*\/ */
+      /* for (k=1; k<=cptcoveff; k++){    /\* For each correspondig covariate value  *\/ */
+      /*       /\* lv= decodtabm(k1,k,cptcoveff); /\\* Should be the covariate value corresponding to k1 combination and kth covariate *\\/ *\/ */
+      /*       lv= codtabm(k1,TnsdVar[Tvaraff[k]]); /\* Should be the covariate value corresponding to combination k1 and covariate k *\/ */
+      /*       /\* decodtabm(1,1,4) = 1 because h=1  k= (1) 1  1  1 *\/ */
+      /*       /\* decodtabm(1,2,4) = 1 because h=1  k=  1 (1) 1  1 *\/ */
+      /*       /\* decodtabm(13,3,4)= 2 because h=13 k=  1  1 (2) 2 *\/ */
+      /*       /\* vlv= nbcode[Tvaraff[k]][lv]; *\/ */
+      /*       vlv= nbcode[Tvaraff[k]][codtabm(k1,TnsdVar[Tvaraff[k]])]; */
+      /*       fprintf(ficgp," V%d=%d ",Tvaraff[k],vlv); */
+      /*       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%d ",Tvaraff[k],vlv); */
+      /* } */
+      /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+      /*       fprintf(ficgp," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+      /*       sprintf(gplotlabel+strlen(gplotlabel)," V%d=%f ",Tvqresult[nres][resultmodel[nres][k4]],Tqresult[nres][resultmodel[nres][k4]]); */
+      /* }      */
       strcpy(gplotlabel+strlen(gplotlabel),")");
       fprintf(ficgp,"\n#\n");
       fprintf(ficgp,"\nset out \"%s_%d-%d-%d.svg\" ",subdirf2(optionfilefiname,"PE_"),k1,ng,nres);
@@ -8915,7 +8977,7 @@ set ter svg size 640, 480\nunset log y\nplot [%.f:%.f]  ", ageminpar, agemaxpar)
       } /* end k2 */
       /* fprintf(ficgp,"\n set out; unset label;set key default;\n"); */
       fprintf(ficgp,"\n set out; unset title;set key default;\n");
-    } /* end k1 */
+    } /* end resultline */
   } /* end ng */
   /* avoid: */
   fflush(ficgp); 
@@ -9484,23 +9546,26 @@ void prevforecast(char fileres[], double dateintmean, double dateprojd, double d
     i1=pow(2,cptcoveff);
     if (cptcovn < 1){i1=1;}
 
-    for(nres=1; nres <= nresult; nres++) /* For each resultline */
-      for(k=1; k<=i1;k++){ /* We find the combination equivalent to result line values of dummies */
+    for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+       k=TKresult[nres];
+     /* for(k=1; k<=i1;k++){ /\* We find the combination equivalent to result line values of dummies *\/ */
       if(i1 != 1 && TKresult[nres]!= k)
        continue;
       fprintf(ficresvpl,"\n#****** ");
       printf("\n#****** ");
       fprintf(ficlog,"\n#****** ");
-      for(j=1;j<=cptcoveff;j++) {
-       fprintf(ficresvpl,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-       fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-       printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
+      for(j=1;j<=cptcovs;j++) {
+       fprintf(ficresvpl,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+       fprintf(ficlog,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+       printf("V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+       /* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       /* printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
       }
-      for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */
-       printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
-       fprintf(ficresvpl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
-       fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
-      }        
+      /* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */
+      /*       printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+      /*       fprintf(ficresvpl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+      /*       fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+      /* }      */
       fprintf(ficresvpl,"******\n");
       printf("******\n");
       fprintf(ficlog,"******\n");
@@ -9541,22 +9606,27 @@ void prevforecast(char fileres[], double dateintmean, double dateprojd, double d
    i1=pow(2,cptcoveff);
    if (cptcovn < 1){i1=1;}
    
-   for(nres=1; nres <= nresult; nres++) /* For each resultline */
-     for(k=1; k<=i1;k++){
-       if(i1 != 1 && TKresult[nres]!= k)
-        continue;
+   for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+     k=TKresult[nres];
+    /* for(k=1; k<=i1;k++){ */
+    /*    if(i1 != 1 && TKresult[nres]!= k) */
+    /*          continue; */
        fprintf(ficresvbl,"\n#****** ");
        printf("\n#****** ");
        fprintf(ficlog,"\n#****** ");
-       for(j=1;j<=cptcoveff;j++) {
-        fprintf(ficresvbl,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-        fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-        printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-       }
-       for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */
-        printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
-        fprintf(ficresvbl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
-        fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
+       for (j=1; j<= cptcovs; j++){ /* For each selected (single) quantitative value */
+        printf(" V%d=%lg ",Tvqresult[nres][j],TinvDoQresult[nres][resultmodel[nres][j]]);
+        fprintf(ficresvbl," V%d=%lg ",Tvqresult[nres][j],TinvDoQresult[nres][resultmodel[nres][j]]);
+        fprintf(ficlog," V%d=%lg ",Tvqresult[nres][j],TinvDoQresult[nres][resultmodel[nres][j]]);
+       /* for(j=1;j<=cptcoveff;j++) { */
+       /*       fprintf(ficresvbl,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       /*       fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       /*       printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       /* } */
+       /* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */
+       /*       printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+       /*       fprintf(ficresvbl," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+       /*       fprintf(ficlog," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
        }
        fprintf(ficresvbl,"******\n");
        printf("******\n");
@@ -11473,10 +11543,11 @@ int prevalence_limit(double *p, double **prlim, double ageminpar, double agemaxp
   i1=pow(2,cptcoveff); /* Number of combination of dummy covariates */
   if (cptcovn < 1){i1=1;}
 
-  for(k=1; k<=i1;k++){ /* For each combination k of dummy covariates in the model */
+  /* for(k=1; k<=i1;k++){ /\* For each combination k of dummy covariates in the model *\/ */
     for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-      if(i1 != 1 && TKresult[nres]!= k)
-       continue;
+      k=TKresult[nres];
+      /* if(i1 != 1 && TKresult[nres]!= k) /\* We found the combination k corresponding to the resultline value of dummies *\/ */
+      /*       continue; */
 
       /* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */
       /* for(cptcov=1,k=0;cptcov<=1;cptcov++){ */
@@ -11487,17 +11558,19 @@ int prevalence_limit(double *p, double **prlim, double ageminpar, double agemaxp
       fprintf(ficrespl,"#******");
       printf("#******");
       fprintf(ficlog,"#******");
-      for(j=1;j<=cptcoveff ;j++) {/* all covariates */
+      for(j=1;j<=cptcovs ;j++) {/**< cptcovs number of SIMPLE covariates in the model or resultline V2+V1 =2 (dummy or quantit or time varying) */
        /* fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,Tvaraff[j])]); /\* Here problem for varying dummy*\/ */
-       fprintf(ficrespl," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); /* Here problem for varying dummy*/
-       printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-       fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-      }
-      for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-       fprintf(ficrespl," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-       fprintf(ficlog," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-      }
+       /* printf(" V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       /* fprintf(ficlog," V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       fprintf(ficrespl," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+       printf(" V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+       fprintf(ficlog," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+      }
+      /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+      /*       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+      /*       fprintf(ficrespl," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+      /*       fprintf(ficlog," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+      /* } */
       fprintf(ficrespl,"******\n");
       printf("******\n");
       fprintf(ficlog,"******\n");
@@ -11509,18 +11582,24 @@ int prevalence_limit(double *p, double **prlim, double ageminpar, double agemaxp
       }
 
       fprintf(ficrespl,"#Age ");
-      for(j=1;j<=cptcoveff;j++) {
-       fprintf(ficrespl,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
+      /* for(j=1;j<=cptcoveff;j++) { */
+      /*       fprintf(ficrespl,"V%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+      /* } */
+      for(j=1;j<=cptcovs;j++) { /* New the quanti variable is added */
+       fprintf(ficrespl,"V%d %lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
       }
       for(i=1; i<=nlstate;i++) fprintf(ficrespl,"  %d-%d   ",i,i);
       fprintf(ficrespl,"Total Years_to_converge\n");
     
       for (age=agebase; age<=agelim; age++){
        /* for (age=agebase; age<=agebase; age++){ */
-       prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k, nres);
+       /**< Computes the prevalence limit in each live state at age x and for covariate combination (k and) nres */
+       prevalim(prlim, nlstate, p, age, oldm, savm, ftolpl, ncvyearp, k, nres); /* Nicely done */
        fprintf(ficrespl,"%.0f ",age );
-       for(j=1;j<=cptcoveff;j++)
-         fprintf(ficrespl,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
+       /* for(j=1;j<=cptcoveff;j++) */
+       /*   fprintf(ficrespl,"%d %d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+       for(j=1;j<=cptcovs;j++)
+         fprintf(ficrespl,"%d %lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
        tot=0.;
        for(i=1; i<=nlstate;i++){
          tot +=  prlim[i][i];
@@ -11529,8 +11608,8 @@ int prevalence_limit(double *p, double **prlim, double ageminpar, double agemaxp
        fprintf(ficrespl," %.3f %d\n", tot, *ncvyearp);
       } /* Age */
       /* was end of cptcod */
-    } /* cptcov */
-  } /* nres */
+    } /* nres */
+  /* } /\* for each combination *\/ */
   return 0;
 }
 
@@ -11655,69 +11734,71 @@ int hPijx(double *p, int bage, int fage){
   double agedeb;
   double ***p3mat;
 
-    strcpy(filerespij,"PIJ_");  strcat(filerespij,fileresu);
-    if((ficrespij=fopen(filerespij,"w"))==NULL) {
-      printf("Problem with Pij resultfile: %s\n", filerespij); return 1;
-      fprintf(ficlog,"Problem with Pij resultfile: %s\n", filerespij); return 1;
-    }
-    printf("Computing pij: result on file '%s' \n", filerespij);
-    fprintf(ficlog,"Computing pij: result on file '%s' \n", filerespij);
+  strcpy(filerespij,"PIJ_");  strcat(filerespij,fileresu);
+  if((ficrespij=fopen(filerespij,"w"))==NULL) {
+    printf("Problem with Pij resultfile: %s\n", filerespij); return 1;
+    fprintf(ficlog,"Problem with Pij resultfile: %s\n", filerespij); return 1;
+  }
+  printf("Computing pij: result on file '%s' \n", filerespij);
+  fprintf(ficlog,"Computing pij: result on file '%s' \n", filerespij);
   
-    stepsize=(int) (stepm+YEARM-1)/YEARM;
-    /*if (stepm<=24) stepsize=2;*/
-
-    agelim=AGESUP;
-    hstepm=stepsize*YEARM; /* Every year of age */
-    hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */ 
-               
-    /* hstepm=1;   aff par mois*/
-    pstamp(ficrespij);
-    fprintf(ficrespij,"#****** h Pij x Probability to be in state j at age x+h being in i at x ");
-    i1= pow(2,cptcoveff);
-               /* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */
-               /*    /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */
-               /*      k=k+1;  */
-    for(nres=1; nres <= nresult; nres++) /* For each resultline */
-    for(k=1; k<=i1;k++){
-      if(i1 != 1 && TKresult[nres]!= k)
-       continue;
-      fprintf(ficrespij,"\n#****** ");
-      for(j=1;j<=cptcoveff;j++) 
-       fprintf(ficrespij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-      for (k4=1; k4<= nsq; k4++){ /* For each selected (single) quantitative value */
-       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-       fprintf(ficrespij," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]);
-      }
-      fprintf(ficrespij,"******\n");
+  stepsize=(int) (stepm+YEARM-1)/YEARM;
+  /*if (stepm<=24) stepsize=2;*/
+  
+  agelim=AGESUP;
+  hstepm=stepsize*YEARM; /* Every year of age */
+  hstepm=hstepm/stepm; /* Typically 2 years, = 2/6 months = 4 */ 
+  
+  /* hstepm=1;   aff par mois*/
+  pstamp(ficrespij);
+  fprintf(ficrespij,"#****** h Pij x Probability to be in state j at age x+h being in i at x ");
+  i1= pow(2,cptcoveff);
+  /* for(cptcov=1,k=0;cptcov<=i1;cptcov++){ */
+  /*    /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */
+  /*   k=k+1;  */
+  for(nres=1; nres <= nresult; nres++){ /* For each resultline */
+    k=TKresult[nres];
+    /* for(k=1; k<=i1;k++){ */
+    /* if(i1 != 1 && TKresult[nres]!= k) */
+    /*         continue; */
+    fprintf(ficrespij,"\n#****** ");
+    for(j=1;j<=cptcovs;j++){
+      fprintf(ficrespij," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+      /* fprintf(ficrespij,"@wV%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+      /* for (k4=1; k4<= nsq; k4++){ /\* For each selected (single) quantitative value *\/ */
+      /*       printf(" V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+      /*       fprintf(ficrespij," V%d=%f ",Tvqresult[nres][k4],Tqresult[nres][k4]); */
+    }
+    fprintf(ficrespij,"******\n");
+    
+    for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */
+      nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ 
+      nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */
       
-      for (agedeb=fage; agedeb>=bage; agedeb--){ /* If stepm=6 months */
-       nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /* Typically 20 years = 20*12/6=40 */ 
-       nhstepm = nhstepm/hstepm; /* Typically 40/4=10 */
-       
-       /*        nhstepm=nhstepm*YEARM; aff par mois*/
-       
-       p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
-       oldm=oldms;savm=savms;
-       hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k, nres);  
-       fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j=");
+      /*         nhstepm=nhstepm*YEARM; aff par mois*/
+      
+      p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
+      oldm=oldms;savm=savms;
+      hpxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k, nres);  
+      fprintf(ficrespij,"# Cov Agex agex+h hpijx with i,j=");
+      for(i=1; i<=nlstate;i++)
+       for(j=1; j<=nlstate+ndeath;j++)
+         fprintf(ficrespij," %1d-%1d",i,j);
+      fprintf(ficrespij,"\n");
+      for (h=0; h<=nhstepm; h++){
+       /*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/
+       fprintf(ficrespij,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm );
        for(i=1; i<=nlstate;i++)
          for(j=1; j<=nlstate+ndeath;j++)
-           fprintf(ficrespij," %1d-%1d",i,j);
-       fprintf(ficrespij,"\n");
-       for (h=0; h<=nhstepm; h++){
-         /*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/
-         fprintf(ficrespij,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm );
-         for(i=1; i<=nlstate;i++)
-           for(j=1; j<=nlstate+ndeath;j++)
-             fprintf(ficrespij," %.5f", p3mat[i][j][h]);
-         fprintf(ficrespij,"\n");
-       }
-       free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
+           fprintf(ficrespij," %.5f", p3mat[i][j][h]);
        fprintf(ficrespij,"\n");
       }
-      /*}*/
+      free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
+      fprintf(ficrespij,"\n");
     }
-    return 0;
+  }
+  /*}*/
+  return 0;
 }
  
  int hBijx(double *p, int bage, int fage, double ***prevacurrent){
@@ -11757,54 +11838,57 @@ int hPijx(double *p, int bage, int fage){
   /*    /\*for(cptcod=1;cptcod<=ncodemax[cptcov];cptcod++){*\/ */
   /*   k=k+1;  */
   for(nres=1; nres <= nresult; nres++){ /* For each resultline */
-    for(k=1; k<=i1;k++){ /* For any combination of dummy covariates, fixed and varying */
-      if(i1 != 1 && TKresult[nres]!= k)
-       continue;
-      fprintf(ficrespijb,"\n#****** ");
-      for(j=1;j<=cptcoveff;j++)
-       fprintf(ficrespijb,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
-      for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */
-       fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]);
-      }
-      fprintf(ficrespijb,"******\n");
-      if(invalidvarcomb[k]){  /* Is it necessary here? */
-       fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); 
-       continue;
-      }
+    k=TKresult[nres];
+    /* for(k=1; k<=i1;k++){ /\* For any combination of dummy covariates, fixed and varying *\/ */
+    /*    if(i1 != 1 && TKresult[nres]!= k) */
+    /*         continue; */
+    fprintf(ficrespijb,"\n#****** ");
+    for(j=1;j<=cptcovs;j++){
+      fprintf(ficrespij," V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][Tvresult[nres][j]]);
+      /* for(j=1;j<=cptcoveff;j++) */
+      /*       fprintf(ficrespijb,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
+      /* for (j=1; j<= nsq; j++){ /\* For each selected (single) quantitative value *\/ */
+      /*       fprintf(ficrespijb," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); */
+    }
+    fprintf(ficrespijb,"******\n");
+    if(invalidvarcomb[k]){  /* Is it necessary here? */
+      fprintf(ficrespijb,"\n#Combination (%d) ignored because no cases \n",k); 
+      continue;
+    }
+    
+    /* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */
+    for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */
+      /* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */
+      nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm+0.1)-1; /* Typically 20 years = 20*12/6=40 or 55*12/24=27.5-1.1=>27 */
+      nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 or 28*/
       
-      /* for (agedeb=fage; agedeb>=bage; agedeb--){ /\* If stepm=6 months *\/ */
-      for (agedeb=bage; agedeb<=fage; agedeb++){ /* If stepm=6 months and estepm=24 (2 years) */
-       /* nhstepm=(int) rint((agelim-agedeb)*YEARM/stepm); /\* Typically 20 years = 20*12/6=40 *\/ */
-       nhstepm=(int) rint((agedeb-ageminl)*YEARM/stepm+0.1)-1; /* Typically 20 years = 20*12/6=40 or 55*12/24=27.5-1.1=>27 */
-       nhstepm = nhstepm/hstepm; /* Typically 40/4=10, because estepm=24 stepm=6 => hstepm=24/6=4 or 28*/
-       
-       /*        nhstepm=nhstepm*YEARM; aff par mois*/
-       
-       p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); /* We can't have it at an upper level because of nhstepm */
-       /* and memory limitations if stepm is small */
-
-       /* oldm=oldms;savm=savms; */
-       /* hbxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);   */
-       hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm, k, nres);/* Bug valgrind */
-       /* hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm,oldm,savm, dnewm, doldm, dsavm, k); */
-       fprintf(ficrespijb,"# Cov Agex agex-h hbijx with i,j=");
+      /*         nhstepm=nhstepm*YEARM; aff par mois*/
+      
+      p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); /* We can't have it at an upper level because of nhstepm */
+      /* and memory limitations if stepm is small */
+      
+      /* oldm=oldms;savm=savms; */
+      /* hbxij(p3mat,nhstepm,agedeb,hstepm,p,nlstate,stepm,oldm,savm, k);   */
+      hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm, k, nres);/* Bug valgrind */
+      /* hbxij(p3mat,nhstepm,agedeb,hstepm,p,prevacurrent,nlstate,stepm,oldm,savm, dnewm, doldm, dsavm, k); */
+      fprintf(ficrespijb,"# Cov Agex agex-h hbijx with i,j=");
+      for(i=1; i<=nlstate;i++)
+       for(j=1; j<=nlstate+ndeath;j++)
+         fprintf(ficrespijb," %1d-%1d",i,j);
+      fprintf(ficrespijb,"\n");
+      for (h=0; h<=nhstepm; h++){
+       /*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/
+       fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb - h*hstepm/YEARM*stepm );
+       /* fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm ); */
        for(i=1; i<=nlstate;i++)
          for(j=1; j<=nlstate+ndeath;j++)
-           fprintf(ficrespijb," %1d-%1d",i,j);
+           fprintf(ficrespijb," %.5f", p3mat[i][j][h]);/* Bug valgrind */
        fprintf(ficrespijb,"\n");
-       for (h=0; h<=nhstepm; h++){
-         /*agedebphstep = agedeb + h*hstepm/YEARM*stepm;*/
-         fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb - h*hstepm/YEARM*stepm );
-         /* fprintf(ficrespijb,"%d %3.f %3.f",k, agedeb, agedeb + h*hstepm/YEARM*stepm ); */
-         for(i=1; i<=nlstate;i++)
-           for(j=1; j<=nlstate+ndeath;j++)
-             fprintf(ficrespijb," %.5f", p3mat[i][j][h]);/* Bug valgrind */
-         fprintf(ficrespijb,"\n");
-       }
-       free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
-       fprintf(ficrespijb,"\n");
-      } /* end age deb */
-    } /* end combination */
+      }
+      free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm);
+      fprintf(ficrespijb,"\n");
+    } /* end age deb */
+    /* } /\* end combination *\/ */
   } /* end nres */
   return 0;
  } /*  hBijx */
@@ -12777,7 +12861,7 @@ Title=%s <br>Datafile=%s Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age
   fprintf(fichtm,"<hr size=\"2\" color=\"#EC5E5E\"> \n\
 <font size=\"2\">IMaCh-%s <br> %s</font> \
 <hr size=\"2\" color=\"#EC5E5E\"> \n\
-This file: <a href=\"%s\">%s</a>Title=%s <br>Datafile=<a href=\"%s\">%s</a> Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n\
+This file: <a href=\"%s\">%s</a></br>Title=%s <br>Datafile=<a href=\"%s\">%s</a> Firstpass=%d Lastpass=%d Stepm=%d Weight=%d Model=1+age+%s<br>\n\
 \n\
 <hr  size=\"2\" color=\"#EC5E5E\">\
  <ul><li><h4>Parameter files</h4>\n\
@@ -13779,8 +13863,8 @@ Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpa
        printf("V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]);
       }
       for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */
-       printf(" V%d=%f ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); /* TvarsQ[j] gives the name of the jth quantitative (fixed or time v) */
-       fprintf(ficreseij,"V%d=%f ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]);
+       printf(" V%d=%lg ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]); /* TvarsQ[j] gives the name of the jth quantitative (fixed or time v) */
+       fprintf(ficreseij,"V%d=%lg ",TvarsQ[j], TinvDoQresult[nres][TvarsQ[j]]);
       }
       fprintf(ficreseij,"******\n");
       printf("******\n");
@@ -13872,9 +13956,9 @@ Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpa
        printf("\n j=%d In computing T_ Dummy[modelresult[%d][%d]]=%d, modelresult[%d][%d]=%d cptcovs=%d, cptcoveff=%d Fixed[modelresult[nres][j]]=%d\n", j, nres, j, Dummy[modelresult[nres][j]],nres,j,modelresult[nres][j],cptcovs, cptcoveff,Fixed[modelresult[nres][j]]);  /* end if dummy  or quanti */
 
        if(Dummy[modelresult[nres][j]]==0){/* Dummy variable of the variable in position modelresult in the model corresponding to j in resultline  */
-         printf("V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline  */
-         fprintf(ficlog,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline  */
-         fprintf(ficrest,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline  */
+         printf("V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline  */
+         fprintf(ficlog,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline  */
+         fprintf(ficrest,"V%d=%lg ",Tvresult[nres][j],TinvDoQresult[nres][j]); /* Output of each value for the combination TKresult[nres], ordere by the covariate values in the resultline  */
          if(Fixed[modelresult[nres][j]]==0){ /* Fixed */
            printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed ");
          }else{
@@ -13884,7 +13968,9 @@ Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpa
          /* fprintf(ficlog,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
        }else if(Dummy[modelresult[nres][j]]==1){ /* Quanti variable */
          /* For each selected (single) quantitative value */
-         printf(" V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]);
+         printf(" V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][j]);
+         fprintf(ficlog," V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][j]);
+         fprintf(ficrest," V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][j]);
          if(Fixed[modelresult[nres][j]]==0){ /* Fixed */
            printf("fixed ");fprintf(ficlog,"fixed ");fprintf(ficrest,"fixed ");
          }else{
@@ -13907,14 +13993,16 @@ Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpa
       
       fprintf(ficresstdeij,"\n#****** ");
       fprintf(ficrescveij,"\n#****** ");
+      /* It could have been: for(j=1;j<=cptcoveff;j++) {printf("V=%d=%lg",Tvresult[nres][cpt],TinvDoQresult[nres][Tvresult[nres][cpt]]);} */
+      /* But it won't be sorted and depends on how the resultline is ordered */
       for(j=1;j<=cptcoveff;j++) {
        fprintf(ficresstdeij,"V%d=%d ",Tvresult[nres][j],Tresult[nres][j]);
        /* fprintf(ficresstdeij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
        /* fprintf(ficrescveij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[Tvaraff[j]])]); */
       }
       for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value, TvarsQind gives the position of a quantitative in model equation  */
-       fprintf(ficresstdeij," V%d=%f ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]);
-       fprintf(ficrescveij," V%d=%f ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]);
+       fprintf(ficresstdeij," V%d=%lg ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]);
+       fprintf(ficrescveij," V%d=%lg ",Tvar[TvarsQind[j]],Tqresult[nres][resultmodel[nres][TvarsQind[j]]]);
       }        
       fprintf(ficresstdeij,"******\n");
       fprintf(ficrescveij,"******\n");
@@ -13926,7 +14014,7 @@ Please run with mle=-1 to get a correct covariance matrix.\n",ageminpar,agemaxpa
        /* fprintf(ficresvij,"V%d=%d ",Tvaraff[j],nbcode[Tvaraff[j]][codtabm(k,TnsdVar[TnsdVar[Tvaraff[j]]])]); */
       for (j=1; j<= nsq; j++){ /* For each selected (single) quantitative value */
        /* fprintf(ficresvij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][j]); /\* To solve *\/ */
-       fprintf(ficresvij," V%d=%f ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); /* Solved */
+       fprintf(ficresvij," V%d=%lg ",Tvqresult[nres][j],Tqresult[nres][resultmodel[nres][j]]); /* Solved */
       }        
       fprintf(ficresvij,"******\n");