アットウィキロゴ

fghfgh

/*************************************
*                                    *
*    外枠システム  setjinko.c        *
*  (人口設定)                      *
*                                    *
*************************************/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "set.h"
#include "cntl.h"


void setjinko(void) {


int  TMP ;
double  TMQ ;
double  TMR ;



/*  年央人口  */
  for ( sei=1; sei<=2; sei++ ) {
    for ( nenrei=1; nenrei<=120; nenrei++ ) {
      if ( jinko_c[KE-1-STARTY][sei][nenrei-1] > 0.0 ) {
        jinko_c[KE+1-STARTY][sei][nenrei]
          = round( jinko_c[KE-STARTY][sei][nenrei-1]
                 * jinko_c[KE-STARTY][sei][nenrei]
                 / jinko_c[KE-1-STARTY][sei][nenrei-1] , 0 ) ;
      }
      else {
        jinko_c[KE+1-STARTY][sei][nenrei] = 0.0 ;
      }
      if ( st_jinko_c[KE-1-STARTY][sei][nenrei-1] > 0.0 ) {
        st_jinko_c[KE+1-STARTY][sei][nenrei]
          = round ( st_jinko_c[KE-STARTY][sei][nenrei-1]
                  * st_jinko_c[KE-STARTY][sei][nenrei]
                  / st_jinko_c[KE-1-STARTY][sei][nenrei-1] , 0 );
      }
      else {
        st_jinko_c[KE+1-STARTY][sei][nenrei] = 0.0 ;
      }
    }
  }
  TMQ = 0.0 ; TMR = 0.0 ;
  for ( nenrei=18; nenrei<=42; nenrei++ ) {
    TMQ += jinko_c[KE+1-STARTY][2][nenrei] ;
    TMR += jinko_c[KE-STARTY][2][nenrei] ;
  }
  if ( TMR > 0.0 ) {
    for ( sei=1; sei<=2; sei++ ) {
      jinko_c[KE+1-STARTY][sei][0]
        = round( jinko_c[KE-STARTY][sei][0] * TMQ / TMR , 0 );
    }
  }
  TMQ = 0.0 ; TMR = 0.0 ;
  for ( nenrei=18; nenrei<=42; nenrei++ ) {
    TMQ += st_jinko_c[KE+1-STARTY][2][nenrei] ;
    TMR += st_jinko_c[KE-STARTY][2][nenrei] ;
  }
  if ( TMR > 0.0 ) {
    for ( sei=1; sei<=2; sei++ ) {
      st_jinko_c[KE+1-STARTY][sei][0]
         = round( st_jinko_c[KE-STARTY][sei][0] * TMQ / TMR , 0 );
    }
  }
  /*  100歳以上を100歳に */
  for ( nendo=STARTY+1; nendo<=KE+1; nendo++ ) {
    for ( sei=1; sei<=2; sei++ ) {
      for ( nenrei=101; nenrei<=120; nenrei++ ) {
        if ( jinko_c[nendo-STARTY][sei][nenrei] > 0.0 ) {
            jinko_c[nendo-STARTY][sei][100] += jinko_c[nendo-STARTY][sei][nenrei] ;
            jinko_c[nendo-STARTY][sei][nenrei] = 0.0 ;
        }
        if ( st_jinko_c[nendo-STARTY][sei][nenrei] > 0.0 ) {
            st_jinko_c[nendo-STARTY][sei][100] += st_jinko_c[nendo-STARTY][sei][nenrei] ;
            st_jinko_c[nendo-STARTY][sei][nenrei] = 0.0 ;
        }
      }
    }
  }


/*  年央人口→年度末人口の作成  */

  for ( nendo=STARTY+1; nendo<=KE; nendo++ ) {
    for ( nenrei=0; nenrei<=100; nenrei++) {
      for ( sei=1; sei<=2; sei++){
         if ( nenrei+SJINKOY-nendo > 0 ) {  
             TMP = 0;
             TMP = nenrei + SJINKOY - nendo;
             if (( nenrei > 0 ) && ( nenrei < 100 )) {
                 jinko_m[nendo-STARTY][sei][nenrei] =
                   ( jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
                   + jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
                 st_jinko_m[nendo-STARTY][sei][nenrei] =
                   ( st_jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + st_jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
             }
             else if ( nenrei==0 ) {    
                 jinko_m[nendo-STARTY][sei][nenrei] =
                   ( jinko_c[nendo-STARTY][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP] )
                   + jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
                   + jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
                 st_jinko_m[nendo-STARTY][sei][nenrei] =
                   ( st_jinko_c[nendo-STARTY][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP] )
                   + st_jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei+1] * jinko_wari[sei][TMP] ) / 2.0;
             }
             else if ( nenrei==100 ) {    
                 jinko_m[nendo-STARTY][sei][nenrei] =
                   ( jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
                   + jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + jinko_c[nendo-STARTY+1][sei][nenrei] * jinko_wari[sei][TMP-1] ) / 2.0;
                 st_jinko_m[nendo-STARTY][sei][nenrei] =
                   ( st_jinko_c[nendo-STARTY][sei][nenrei-1] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + st_jinko_c[nendo-STARTY][sei][nenrei] * jinko_wari[sei][TMP]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei] * ( 1.0 - jinko_wari[sei][TMP-1] )
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei] * jinko_wari[sei][TMP-1] ) / 2.0;
             }
         }
         else {
             if (( nenrei > 0 ) && ( nenrei < 100 )) {
                 jinko_m[nendo-STARTY][sei][nenrei] =
                   ( jinko_c[nendo-STARTY][sei][nenrei-1]
                   + jinko_c[nendo-STARTY][sei][nenrei]
                   + jinko_c[nendo-STARTY+1][sei][nenrei]
                   + jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
                 st_jinko_m[nendo-STARTY][sei][nenrei] =
                   ( st_jinko_c[nendo-STARTY][sei][nenrei-1]
                   + st_jinko_c[nendo-STARTY][sei][nenrei]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
             }
             else if ( nenrei==0 ) {    
                 jinko_m[nendo-STARTY][sei][nenrei] =
                   ( jinko_c[nendo-STARTY][sei][nenrei]
                   + jinko_c[nendo-STARTY][sei][nenrei]
                   + jinko_c[nendo-STARTY+1][sei][nenrei]
                   + jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
                 st_jinko_m[nendo-STARTY][sei][nenrei] =
                   ( st_jinko_c[nendo-STARTY][sei][nenrei]
                   + st_jinko_c[nendo-STARTY][sei][nenrei]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei+1] ) / 4.0;
             }
             else if ( nenrei==100 ) {    
                 jinko_m[nendo-STARTY][sei][nenrei] =
                   ( jinko_c[nendo-STARTY][sei][nenrei-1]
                   + jinko_c[nendo-STARTY][sei][nenrei]
                   + jinko_c[nendo-STARTY+1][sei][nenrei]
                   + jinko_c[nendo-STARTY+1][sei][nenrei] ) / 4.0;
                 st_jinko_m[nendo-STARTY][sei][nenrei] =
                   ( st_jinko_c[nendo-STARTY][sei][nenrei-1]
                   + st_jinko_c[nendo-STARTY][sei][nenrei]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei]
                   + st_jinko_c[nendo-STARTY+1][sei][nenrei] ) / 4.0;
             }
         }
        
         jinko_c[nendo-STARTY][0][nenrei]
           = jinko_c[nendo-STARTY][1][nenrei] + jinko_c[nendo-STARTY][2][nenrei] ;
         jinko_m[nendo-STARTY][0][nenrei]
           = jinko_m[nendo-STARTY][1][nenrei] + jinko_m[nendo-STARTY][2][nenrei] ;
         st_jinko_c[nendo-STARTY][0][nenrei]
           = st_jinko_c[nendo-STARTY][1][nenrei] + st_jinko_c[nendo-STARTY][2][nenrei] ;
         st_jinko_m[nendo-STARTY][0][nenrei]
           = st_jinko_m[nendo-STARTY][1][nenrei] + st_jinko_m[nendo-STARTY][2][nenrei] ;

      }
    }
  }



/*  女性有配偶、無配偶別人口  */

  
  for ( nendo=YUHAIGY+1; nendo<=KE+1; nendo++ ) {
    for ( nenrei=0; nenrei<=100; nenrei++) {
      yuhaigr_c[nendo-STARTY][nenrei] = yuhaigr_c[nendo-1-STARTY][nenrei] ;
    }
  }

  for ( nendo=STARTY+1; nendo<=KE; nendo++ ) {
    for ( nenrei=0; nenrei<=100; nenrei++) {
      /*  年度末有配偶率  */
        yuhaigr_m[nendo-STARTY][nenrei] =
          ( yuhaigr_c[nendo-STARTY][nenrei] + yuhaigr_c[nendo+1-STARTY][nenrei] ) / 2.0 ;
      /*  有配偶、無配偶別人口  */
        jinko_c[nendo-STARTY][3][nenrei] =
          jinko_c[nendo-STARTY][2][nenrei] * yuhaigr_c[nendo-STARTY][nenrei] ;
        jinko_c[nendo-STARTY][4][nenrei] =
          jinko_c[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_c[nendo-STARTY][nenrei] ) ;
        jinko_m[nendo-STARTY][3][nenrei] =
          jinko_m[nendo-STARTY][2][nenrei] * yuhaigr_m[nendo-STARTY][nenrei] ;
        jinko_m[nendo-STARTY][4][nenrei] =
          jinko_m[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_m[nendo-STARTY][nenrei] ) ;
        st_jinko_c[nendo-STARTY][3][nenrei] =
          st_jinko_c[nendo-STARTY][2][nenrei] * yuhaigr_c[nendo-STARTY][nenrei] ;
        st_jinko_c[nendo-STARTY][4][nenrei] =
          st_jinko_c[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_c[nendo-STARTY][nenrei] ) ;
        st_jinko_m[nendo-STARTY][3][nenrei] =
          st_jinko_m[nendo-STARTY][2][nenrei] * yuhaigr_m[nendo-STARTY][nenrei] ;
        st_jinko_m[nendo-STARTY][4][nenrei] =
          st_jinko_m[nendo-STARTY][2][nenrei] * (1.0 - yuhaigr_m[nendo-STARTY][nenrei] ) ;
    }
  }

/*  総人口、生産年齢人口  */

  for ( nendo=KS-1; nendo<=KE; nendo++ ) {
    sojinko_c[nendo-STARTY][0] = sojinko_c[nendo-STARTY][1] + sojinko_c[nendo-STARTY][2] ;
    for ( nenrei=0; nenrei<=100; nenrei++) {
      for ( sei=1; sei<=4; sei++){
        sojinko_m[nendo-STARTY][sei] += jinko_m[nendo-STARTY][sei][nenrei] ;
        if ( sei<=2 ) {
          sojinko_m[nendo-STARTY][0] += jinko_m[nendo-STARTY][sei][nenrei] ;
        }
        if (( nenrei >= 15 ) && ( nenrei <= 64 )) {
          seisanj_c[nendo-STARTY][sei] += jinko_c[nendo-STARTY][sei][nenrei] ;
          seisanj_m[nendo-STARTY][sei] += jinko_m[nendo-STARTY][sei][nenrei] ;
          st_seisanj_c[nendo-STARTY][sei] += st_jinko_c[nendo-STARTY][sei][nenrei] ;
          st_seisanj_m[nendo-STARTY][sei] += st_jinko_m[nendo-STARTY][sei][nenrei] ;
          if ( sei<=2 ) {
            seisanj_c[nendo-STARTY][0] += jinko_c[nendo-STARTY][sei][nenrei] ;
            seisanj_m[nendo-STARTY][0] += jinko_m[nendo-STARTY][sei][nenrei] ;
            st_seisanj_c[nendo-STARTY][0] += st_jinko_c[nendo-STARTY][sei][nenrei] ;
            st_seisanj_m[nendo-STARTY][0] += st_jinko_m[nendo-STARTY][sei][nenrei] ;
          }
        }
      }
    }
  }


}
最終更新:2010年03月11日 02:35