|
|
| version 1.29, 2002/03/06 19:02:50 | version 1.30, 2002/03/08 16:17:18 |
|---|---|
| Line 1443 void concatwav(int wav[], int **dh, int | Line 1443 void concatwav(int wav[], int **dh, int |
| if (j >= jmax) jmax=j; | if (j >= jmax) jmax=j; |
| if (j <= jmin) jmin=j; | if (j <= jmin) jmin=j; |
| sum=sum+j; | sum=sum+j; |
| /* if (j<10) printf("j=%d num=%d ",j,i); */ | /*if (j<0) printf("j=%d num=%d \n",j,i); */ |
| } | } |
| } | } |
| else{ | else{ |
| Line 1451 void concatwav(int wav[], int **dh, int | Line 1451 void concatwav(int wav[], int **dh, int |
| k=k+1; | k=k+1; |
| if (j >= jmax) jmax=j; | if (j >= jmax) jmax=j; |
| else if (j <= jmin)jmin=j; | else if (j <= jmin)jmin=j; |
| /* if (j<10) printf("j=%d jmin=%d num=%d ",j,jmin,i); */ | /* if (j<10) printf("j=%d jmin=%d num=%d ",j,jmin,i); */ |
| sum=sum+j; | sum=sum+j; |
| } | } |
| jk= j/stepm; | jk= j/stepm; |
| Line 1546 void evsij(char fileres[], double ***eij | Line 1546 void evsij(char fileres[], double ***eij |
| /* nhstepm age range expressed in number of stepm */ | /* nhstepm age range expressed in number of stepm */ |
| nhstepm=(int) rint((agelim-age)*YEARM/stepm); | nhstepm=(int) rint((agelim-age)*YEARM/stepm); |
| /* Typically if 20 years = 20*12/6=40 stepm */ | /* Typically if 20 years = 20*12/6=40 stepm */ |
| if (stepm >= YEARM) hstepm=1; | /*if (stepm >= YEARM) hstepm=1;*/ |
| hstepm=1; | |
| nhstepm = nhstepm/hstepm;/* Expressed in hstepm, typically 40/4=10 */ | nhstepm = nhstepm/hstepm;/* Expressed in hstepm, typically 40/4=10 */ |
| p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); | p3mat=ma3x(1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
| /* Computed by stepm unit matrices, product of hstepm matrices, stored | /* Computed by stepm unit matrices, product of hstepm matrices, stored |
| in an array of nhstepm length: nhstepm=10, hstepm=4, stepm=6 months */ | in an array of nhstepm length: nhstepm=10, hstepm=4, stepm=6 months */ |
| hpxij(p3mat,nhstepm,age,hstepm,x,nlstate,stepm,oldm, savm, ij); | hpxij(p3mat,nhstepm,age,hstepm,x,nlstate,stepm,oldm, savm, ij); |
| hf=stepm/YEARM; | |
| /*printf("stepm=%d nhstepm=%d hstepm=%d age=%lf ",stepm, nhstepm, hstepm, age);*/ | |
| for(i=1; i<=nlstate;i++) | for(i=1; i<=nlstate;i++) |
| for(j=1; j<=nlstate;j++) | for(j=1; j<=nlstate;j++) |
| for (h=0, eij[i][j][(int)age]=0; h<=nhstepm-1; h++){ | for (h=0, eij[i][j][(int)age]=0; h<=nhstepm-1; h++){ |
| eij[i][j][(int)age] +=(p3mat[i][j][h]+p3mat[i][j][h+1])/2.0; | eij[i][j][(int)age] +=hf*(p3mat[i][j][h]+p3mat[i][j][h+1])/2.0; |
| } | } |
| hf=1; | /* hf=1; |
| if (stepm >= YEARM) hf=stepm/YEARM; | if (stepm >= YEARM) hf=stepm/YEARM;*/ |
| hf=stepm/YEARM; | |
| for(i=1; i<=nlstate;i++) | |
| for(j=1; j<=nlstate;j++){ | |
| if (j==i) eij[i][j][(int)age]= (eij[i][j][(int)age]-0.5*stepm/12./hf); | |
| } | |
| fprintf(ficreseij,"%3.0f",age ); | fprintf(ficreseij,"%3.0f",age ); |
| for(i=1; i<=nlstate;i++) | for(i=1; i<=nlstate;i++) |
| for(j=1; j<=nlstate;j++){ | for(j=1; j<=nlstate;j++){ |
| fprintf(ficreseij," %9.4f", hf*eij[i][j][(int)age]); | fprintf(ficreseij," %9.4f", eij[i][j][(int)age]); |
| } | } |
| fprintf(ficreseij,"\n"); | fprintf(ficreseij,"\n"); |
| free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); | free_ma3x(p3mat,1,nlstate+ndeath,1, nlstate+ndeath, 0,nhstepm); |
| Line 3171 while((c=getc(ficpar))=='#' && c!= EOF){ | Line 3168 while((c=getc(ficpar))=='#' && c!= EOF){ |
| /*---------- Forecasting ------------------*/ | /*---------- Forecasting ------------------*/ |
| if(stepm == 1) { | if((stepm == 1) && (model==".")){ |
| prevforecast(fileres, anproj1,mproj1,jproj1, agemin,agemax, dateprev1, dateprev2,mobilav, agedeb, fage, popforecast, popfile, anproj2,p, i1); | prevforecast(fileres, anproj1,mproj1,jproj1, agemin,agemax, dateprev1, dateprev2,mobilav, agedeb, fage, popforecast, popfile, anproj2,p, i1); |
| if (popforecast==1) populforecast(fileres, anpyram,mpyram,jpyram, agemin,agemax, dateprev1, dateprev2,mobilav, agedeb, fage, popforecast, popfile, anpyram1,p, i1); | if (popforecast==1) populforecast(fileres, anpyram,mpyram,jpyram, agemin,agemax, dateprev1, dateprev2,mobilav, agedeb, fage, popforecast, popfile, anpyram1,p, i1); |
| free_matrix(mint,1,maxwav,1,n); | free_matrix(mint,1,maxwav,1,n); |