アットウィキロゴ

dfghjk

/*************************************
*                                    *
*    外枠システム  readdata.c        *
*  (入力ファイル読み込み)          *
*      共済部分は除く                *
*                                    *
*************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
#include "set.h"
#include "cntl.h"
#include "file_open.h"


void readdata(void)
{

/* 変数定義 */
    int     ii               ;
    int     jj               ;
    int     kk               ;
    previous_buffer0 = -1000 ;
    char    filename[250]    ;
    char    pathname[250]    ;


/*  出力先のディレクトリを作成  */
    sprintf(pathname, "/rev21/wakuc/rslt/ver_6/rslt%04d", BANGO ) ;
    mkdir( pathname, 0755 );


/*  エラー出力用ファイル  */
    sprintf(filename, "/rev21/wakuc/rslt/ver_6/rslt%04d/waku%04d-err.csv" , BANGO, BANGO);
    if ((fp_err = fopen(filename, "w")) == NULL) {
        fprintf(stderr, "エラー出力用ファイルを開けません!\n");
        exit (2);
    }


/* 人口関係 */

  /* (1)推計人口その1  */

      switch ( JIN ) {
          /* H18(新)人口推計 */
          case 1: /* 18年(新)出生率中位推計 */
              if ( QX == 1 ) { /* 死亡率中位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fm-dm.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fm-dm.csv");
              }
              else if ( QX == 2 ) { /* 死亡率高位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fm-dh.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fm-dh.csv");
              }
              else if ( QX == 3 ) { /* 死亡率低位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fm-dl.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fm-dl.csv");
              }
              break ;
          case 2: /* 18年(新)出生率高位推計 */
              if ( QX == 1 ) { /* 死亡率中位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fh-dm.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fh-dm.csv");
              }
              else if ( QX == 2 ) { /* 死亡率高位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fh-dh.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fh-dh.csv");
              }
              else if ( QX == 3 ) { /* 死亡率低位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fh-dl.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fh-dl.csv");
              }
              break ;
          case 3: /* 18年(新)出生率低位推計 */
              if ( QX == 1 ) { /* 死亡率中位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fl-dm.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fl-dm.csv");
              }
              else if ( QX == 2 ) { /* 死亡率高位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fl-dh.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fl-dh.csv");
              }
              else if ( QX == 3 ) { /* 死亡率低位推計 */
                sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fl-dl.csv");
                sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fl-dl.csv");
              }
              break ;
      }

      if ((fp_jinkom = fopen(filename_m, "r")) == NULL) {
          fprintf(stderr, "男性人口推計ファイルを開けません!\n");
          exit (2);
      }
      if ((fp_jinkof = fopen(filename_f, "r")) == NULL) {
          fprintf(stderr, "女性人口推計ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_jinkom ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkom, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "男性人口ファイルエラー\n");
              exit (2);
          }
          sojinko_c[nendo-STARTY][1] = buffer[2];
          for ( nenrei=0; nenrei<=120; nenrei++) {
              jinko_c[nendo-STARTY][1][nenrei] = buffer[nenrei+3];
          }
          previous_buffer0 = buffer[0] ;
      }

      karayomi( fp_jinkof ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkof, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "女性人口ファイルエラー\n");
              exit (2);
          }
          sojinko_c[nendo-STARTY][2] = buffer[2];
          for ( nenrei=0; nenrei<=120; nenrei++) {
              jinko_c[nendo-STARTY][2][nenrei] = buffer[nenrei+3];
          }
          previous_buffer0 = buffer[0] ;
      }

      fclose(fp_jinkom);
      fclose(fp_jinkof);


  /* (2)推計人口その2  */

      if (( KYOREQZ <= 0 ) || ( KYOREQZ >= 4 )) {  KYOREQZ=1 ; }
      switch ( KYOREQZ ) {
          case 1: /* 18年・出生率中位推計・死亡率中位推計 */
              sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fm-dm.csv");
              sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fm-dm.csv");
              break ;
          case 2: /* 18年・出生率高位推計・死亡率中位推計 */
              sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fh-dm.csv");
              sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fh-dm.csv");
              break ;
          case 3: /* 18年・出生率低位推計・死亡率中位推計 */
              sprintf(filename_m, "/rev21/wakuc/data/jinko/jinko18/popm-fl-dm.csv");
              sprintf(filename_f, "/rev21/wakuc/data/jinko/jinko18/popf-fl-dm.csv");
              break ;
      }
      if ((fp_jinkom = fopen(filename_m, "r")) == NULL) {
          fprintf(stderr, "男性人口推計(その2)ファイルを開けません!\n");
          exit (2);
      }
      if ((fp_jinkof = fopen(filename_f, "r")) == NULL) {
          fprintf(stderr, "女性人口推計(その2)ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_jinkom ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkom, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "男性人口(その2)ファイルエラー\n");
              exit (2);
          }
          for ( nenrei=0; nenrei<=120; nenrei++) {
              st_jinko_c[nendo-STARTY][1][nenrei] = buffer[nenrei+3];
          }
          previous_buffer0 = buffer[0] ;
      }

      karayomi( fp_jinkof ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkof, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "女性人口(その2)ファイルエラー\n");
              exit (2);
          }
          for ( nenrei=0; nenrei<=120; nenrei++) {
              st_jinko_c[nendo-STARTY][2][nenrei] = buffer[nenrei+3];
          }
          previous_buffer0 = buffer[0] ;
      }

      fclose(fp_jinkom);
      fclose(fp_jinkof);


  /* (3)実績人口 */

      sprintf(filename_m, "/rev21/wakuc/data/jinko/popm-jisseki.csv");
      sprintf(filename_f, "/rev21/wakuc/data/jinko/popf-jisseki.csv");
      if ((fp_jinkom = fopen(filename_m, "r")) == NULL) {
          fprintf(stderr, "実績男性人口ファイルを開けません!\n");
          exit (2);
      }
      if ((fp_jinkof = fopen(filename_f, "r")) == NULL) {
          fprintf(stderr, "実績女性人口ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_jinkom ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkom, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "実績男性人口ファイルエラー\n");
              exit (2);
          }
          sojinko_c[nendo-STARTY][1] = buffer[2];
          for ( nenrei=0; nenrei<=120; nenrei++) {
              jinko_c[nendo-STARTY][1][nenrei] = buffer[nenrei+3];
              st_jinko_c[nendo-STARTY][1][nenrei] = buffer[nenrei+3];
          }
          previous_buffer0 = buffer[0] ;
      }

      karayomi( fp_jinkof ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkof, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "実績女性人口ファイルエラー!\n");
              exit (2);
          }
          sojinko_c[nendo-STARTY][2] = buffer[2];
          for ( nenrei=0; nenrei<=120; nenrei++) {
              jinko_c[nendo-STARTY][2][nenrei] = buffer[nenrei+3];
              st_jinko_c[nendo-STARTY][2][nenrei] = buffer[nenrei+3];
          }
          previous_buffer0 = buffer[0] ;
      }

      fclose(fp_jinkom);
      fclose(fp_jinkof);



  /* (4)人口を年度前半、後半に分ける率 */

      sprintf(filename, "/rev21/wakuc/data/jinko/wari-2005.csv");
      if ((fp_jinkow = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "人口割合ファイルを開けません!\n");
          exit (2);
      }

      while (( read_csv( buffer, fp_jinkow, &data_number ) != EOF ) ) {
          nenrei = (int)(buffer[0]) ;
          if (( nenrei < 0 ) || ( nenrei > 120 )) {
              fprintf(stderr, "人口割合ファイルエラー\n");
              exit (2);
          }
          jinko_wari[1][nenrei] = buffer[1];
          jinko_wari[2][nenrei] = buffer[2];
      }

      /* ファイルクローズ */
      fclose(fp_jinkow);


  /* (5)女性有配偶者割合(推計) */

      sprintf(filename, "/rev21/wakuc/data/jinko/yuhaigr_suikei.csv");
      if ((fp_jinkoy = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "女性有配偶割合(推計)ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_jinkoy ) ;
      karayomi( fp_jinkoy ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkoy, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "女性有配偶(推計)ファイルエラー\n");
              exit (2);
          }
          sei = (int)(buffer[1]) ;
          if ( sei != 2 ) {
              fprintf(stderr, "女性有配偶(推計)ファイルエラー\n");
              exit (2);
          }
          for ( nenrei=15; nenrei<=100; nenrei++) {
              yuhaigr_c[nendo-STARTY][nenrei] = buffer[nenrei-12] / 100.0 ;
          }
          previous_buffer0 = buffer[0] ;
      }

      fclose(fp_jinkoy);


  /* (6)女性有配偶者割合(実績) */

      sprintf(filename, "/rev21/wakuc/data/jinko/yuhaigr_jisseki.csv");
      /*  ファイルを開く */
      if ((fp_jinkoy = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "女性有配偶割合(実績)ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_jinkoy ) ;
      karayomi( fp_jinkoy ) ;
      previous_buffer0 = -1000 ;
      while (( read_csv( buffer, fp_jinkoy, &data_number ) != EOF ) && (buffer[0] > previous_buffer0 )) {
          nendo = (int)(buffer[0]) ;
          if (( nendo < STARTY ) || ( nendo > ENDY )) {
              fprintf(stderr, "女性有配偶(実績)ファイルエラー\n");
              exit (2);
          }
          sei = (int)(buffer[1]) ;
          if ( sei != 2 ) {
              fprintf(stderr, "女性有配偶(実績)ファイルエラー\n");
              exit (2);
          }
          for ( nenrei=15; nenrei<=100; nenrei++) {
              yuhaigr_c[nendo-STARTY][nenrei] = buffer[nenrei-12] / 100.0 ;
          }
          previous_buffer0 = buffer[0] ;
      }

      fclose(fp_jinkoy);


  /* (7)生産年齢人口  */

      sprintf(filename, "/rev21/wakuc/data/jinko/jissekiseisan.csv") ;
      if ((fp_jinkoy = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "生産年齢人口ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_jinkoy ) ;
      while ( read_csv( buffer, fp_jinkoy, &data_number ) != EOF ) {
          nendo = (int) (buffer[0]) ;
          seisanj_j_c[nendo-STARTY][0] = buffer[1] * 1000 ;
          seisanj_j_c[nendo-STARTY][1] = buffer[2] * 1000 ;
          seisanj_j_c[nendo-STARTY][2] = buffer[3] * 1000 ;
          seisanj_j_m[nendo-STARTY][0] = buffer[4] * 1000 ;
          seisanj_j_m[nendo-STARTY][1] = buffer[5] * 1000 ;
          seisanj_j_m[nendo-STARTY][2] = buffer[6] * 1000 ;
      }

      fclose( fp_jinkoy ) ;




/* 労働力関係 */


  /* (1)労働力率(ケースA) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      sprintf(filename, "/rev21/wakuc/data/roudou/roudou20-3-a.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "労働力率ファイル(ケースA)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            roudr_a_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }

  /* (2)労働力率(ケース毎) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      switch ( ROUDR ) {
          case 1:
              sprintf(filename, "/rev21/wakuc/data/roudou/roudou20-3-a.csv");
              break ;
          case 3:
              sprintf(filename, "/rev21/wakuc/data/roudou/roudou20-3-c.csv");
              break ;
      }
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "労働力率ファイル(ケース毎)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            roudr_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }

  /* (3)就業者割合(ケースA) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      sprintf(filename, "/rev21/wakuc/data/roudou/syuwari20-3-a.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "就業者割合ファイル(ケースA)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            syuwari_a_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }

  /* (4)就業者割合(ケース毎) */


      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      switch ( ROUDR ) {
          case 1:
              sprintf(filename, "/rev21/wakuc/data/roudou/syuwari20-3-a.csv");
              break ;
          case 3:
              sprintf(filename, "/rev21/wakuc/data/roudou/syuwari20-3-cd.csv");
              break ;
      }
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "就業者割合ファイル(ケース毎)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            syuwari_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }


  /* (5)就業率(ケースA) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      sprintf(filename, "/rev21/wakuc/data/roudou/syugyor20-3-a.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "就業率ファイル(ケースA)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            syugyor_a_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }

  /* (6)就業率(ケース毎) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      switch ( ROUDR ) {
          case 1:
              sprintf(filename, "/rev21/wakuc/data/roudou/syugyor20-3-a.csv");
              break ;
          case 3:
              sprintf(filename, "/rev21/wakuc/data/roudou/syugyor20-3-cd.csv");
              break ;
      }
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "就業率ファイル(ケース毎)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            syugyor_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }

  /* (7)雇用者割合(実績) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      sprintf(filename, "/rev21/wakuc/data/roudou/koyour.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "雇用者割合ファイル(実績)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            koyour_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
            koyour_a_c[nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }

  /* (8)年齢別短時間雇用者割合(実績) */

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            TEMP[nendo-STARTY][sei][nenrei] = 0.0 ;
          }
        }
      }

      sprintf(filename, "/rev21/wakuc/data/roudou/tankor.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
         fprintf(stderr, "年齢別短時間雇用者割合ファイル(実績)を開けません!\n");
         exit (2);
      }
      read_roud( fp_roudritu, 1996, ROUDYR );
      fclose( fp_roudritu );

      for ( nendo=1996; nendo<=ROUDYR; nendo++ ) {
        for ( sei=1; sei<=4; sei++ ) {
          for ( nenrei=15; nenrei<=100; nenrei++ ) {
            tankor_c[2][nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
            tankor_c[3][nendo-STARTY][sei][nenrei] = TEMP[nendo-STARTY][sei][nenrei] ;
            tankor_c[1][nendo-STARTY][sei][nenrei] = 1.0 - TEMP[nendo-STARTY][sei][nenrei] ;
          }
        }
      }


  /* (9)諸設定値 */

      sprintf(filename, "/rev21/wakuc/data/roudou/syosettei-ac.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "諸設定値ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_roudritu );

      for ( ii=1; ii<=2; ii++ ) {
          karayomi( fp_roudritu );
          karayomi( fp_roudritu );
          for ( jj=1996; jj<=ROUDYR; jj++ ) {
              read_csv( buffer, fp_roudritu, &data_number );
              nendo = buffer[0] ;
              kk = buffer[1] ;
              if ( kk == ROUDR ) {
                  tankor_all_c[2][nendo-STARTY] = buffer[2] ;
                  heikinh_c[1][nendo-STARTY] = buffer[3] ;    
                  heikinh_c[3][nendo-STARTY] = buffer[4] ;    
                  heikinh_c[6][nendo-STARTY] = buffer[5] ;    
                  heikinh_c[2][nendo-STARTY] = buffer[6] ;    
                  tankor_all_c[4][nendo-STARTY] = buffer[9] + buffer[10] ;
                  kounenteki_c[1][nendo-STARTY] = buffer[12] ;
                  kounenteki_c[2][nendo-STARTY] = buffer[13] ;
              }
          }
      }

      fclose( fp_roudritu ) ;



/*  被保険者数過去実績の読み込み  */

    /*  平成8年度  */
    if ( STARTY <= 1996 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H08n.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成8年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 1996 );
         fclose( fp_map );
    }

    /*  平成9年度  */
    if ( STARTY <= 1997 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H09n.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成9年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 1997 );
         fclose( fp_map );
    }

    /*  平成10年度  */
    if ( STARTY <= 1998 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H10n.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成10年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 1998 );
         fclose( fp_map );
    }

    /*  平成11年度  */
    if ( STARTY <= 1999 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H11n.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成11年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 1999 );
         fclose( fp_map );
    }

    /*  平成12年度  */
    if ( STARTY <= 2000 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H12n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成12年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2000 );
         fclose( fp_map );
    }

    /*  平成13年度  */
    if ( STARTY <= 2001 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H13n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成13年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2001 );
         fclose( fp_map );
    }

    /*  平成14年度  */
    if ( STARTY <= 2002 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H14n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成14年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2002 );
         fclose( fp_map );
    }

    /*  平成15年度  */
    if ( STARTY <= 2003 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H15n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成15年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2003 );
         fclose( fp_map );
    }

    /*  平成16年度  */
    if ( STARTY <= 2004 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H16n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成16年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2004 );
         fclose( fp_map );
    }

    /*  平成17年度  */
    if ( STARTY <= 2005 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H17n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成17年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2005 );
         fclose( fp_map );
    }

    /*  平成18年度  */
    if ( STARTY <= 2006 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H18n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成18年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2006 );
         fclose( fp_map );
    }

    /*  平成19年度  */
    if ( STARTY <= 2006 ) {
         sprintf(filename, "/rev21/wakuc/data/map/H19n-kokn.csv");
         if ((fp_map = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "平成18年度の被保険者数を開けません!\n");
             exit (2);
         }
         read_map( fp_map, 2007 );
         fclose( fp_map );
    }


/*  70歳以上在職老齢制度  */
    if ( OVER70 == 1 ) {

         sprintf(filename, "/rev21/wakuc/data/sonota/H19-over70data.csv");  
         if ((fp_ov70 = fopen(filename, "r")) == NULL) {
             fprintf(stderr, "70歳以上在職老齢データを開けません!\n");
             exit (2);
         }

         for ( ii=70; ii<=84; ii++) {
             read_csv( buffer, fp_ov70, &data_number );
             nenrei = buffer[0];
             over70h[1][nenrei] = buffer[1];
             over70h[2][nenrei] = buffer[2];
         }

         fclose( fp_ov70 );

    }



/*  1号女性の有配偶率  */

      sprintf(filename, "/rev21/wakuc/data/sonota/ichiyuhaigr.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "1号有配偶率ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_roudritu );

      for ( ii=20; ii<=69; ii++) {
          read_csv( buffer, fp_roudritu, &data_number );
          nenrei = buffer[0];
          ichiyuhaigr[nenrei] = buffer[5] / 100.0 ;
      }

      fclose( fp_roudritu );



/*  人口その他  */

      sprintf(filename, "/rev21/wakuc/data/sonota/noadd.csv");
      if ((fp_roudritu = fopen(filename, "r")) == NULL) {
          fprintf(stderr, "人口その他ファイルを開けません!\n");
          exit (2);
      }

      karayomi( fp_roudritu );

      for ( ii=1; ii<=8; ii++) {
          read_csv( buffer, fp_roudritu, &data_number );
          addfutei[ii] = buffer[1];
      }

      fclose( fp_roudritu );





}



/*  労働力率ファイル等を読み込む  */
void read_roud( FILE *fp, int ynendo1, int ynendo2 ) {

    /*  ynendo1 年度から ynendo2 年度までの期間のデータを読む  */

    int  ii;
    int  jj;
    double  buffer[DATA_MAX] ;
    int     data_number      ;

    karayomi( fp );

    for ( jj=1; jj<=4; jj++ ) {
        karayomi( fp );
        karayomi( fp );
        for ( ii=ynendo1; ii<=ynendo2; ii++ ) {
            read_csv( buffer, fp, &data_number );
            nendo = buffer[0] ;
            sei = buffer[1] ;
            for ( nenrei=15; nenrei<=100; nenrei++ ) {
                TEMP[nendo-STARTY][sei][nenrei] = buffer[nenrei-12] / 100.0 ;
            }
        }
    }

/*  read_roud関数の終わり位置  */

}



/*  被保険者過去実績を読み込む作業  */
void read_map(FILE *fp, int nendo) {

    int  ii;
    double  buffer[DATA_MAX] ;
    int     data_number      ;

    for (ii=1; ii<=3; ii++) {
        karayomi( fp );
    }

    for (ii=15; ii<=75; ii++) {
        read_csv( buffer, fp, &data_number );
        nenrei = buffer[0];
        qkou12syu[nendo-STARTY][1][nenrei] = buffer[1];      
        kou3syu[nendo-STARTY][1][nenrei] = buffer[2];      
        kyosai[1][nendo-STARTY][1][nenrei] = buffer[3];    
        kyosai[4][nendo-STARTY][1][nenrei] = buffer[4];    
        kyosai[6][nendo-STARTY][1][nenrei] = buffer[5];    
        kyosai[5][nendo-STARTY][1][nenrei] = buffer[6];    
        kyosai[2][nendo-STARTY][1][nenrei] = buffer[7];    
        kyosai[3][nendo-STARTY][1][nenrei] = buffer[8];    
        kyosai[7][nendo-STARTY][1][nenrei] = buffer[9];    
        qkou12syu3[nendo-STARTY][1][nenrei] = buffer[11];  
        kou3syu3[nendo-STARTY][1][nenrei] = buffer[12];    
        kyosai3[1][nendo-STARTY][1][nenrei] = buffer[13];  
        kyosai3[4][nendo-STARTY][1][nenrei] = buffer[14];  
        kyosai3[6][nendo-STARTY][1][nenrei] = buffer[15];  
        kyosai3[5][nendo-STARTY][1][nenrei] = buffer[16];  
        kyosai3[2][nendo-STARTY][1][nenrei] = buffer[17];  
        kyosai3[3][nendo-STARTY][1][nenrei] = buffer[18];  
        kyosai3[7][nendo-STARTY][1][nenrei] = buffer[19];  
        ichigouip[nendo-STARTY][1][nenrei] = buffer[20];  
        ichigouni[nendo-STARTY][1][nenrei] = buffer[21];  
        ichigougk[nendo-STARTY][1][nenrei] = buffer[22];  
        kikin[nendo-STARTY][1][nenrei] = buffer[24];      
    }

    for (ii=1; ii<=2; ii++) {
        karayomi( fp );
    }

    for (ii=15; ii<=75; ii++) {
        read_csv( buffer, fp, &data_number );
        nenrei = buffer[0];
        qkou12syu[nendo-STARTY][2][nenrei] = buffer[1];      
        kou3syu[nendo-STARTY][2][nenrei] = buffer[2];      
        kyosai[1][nendo-STARTY][2][nenrei] = buffer[3];    
        kyosai[4][nendo-STARTY][2][nenrei] = buffer[4];    
        kyosai[6][nendo-STARTY][2][nenrei] = buffer[5];    
        kyosai[5][nendo-STARTY][2][nenrei] = buffer[6];    
        kyosai[2][nendo-STARTY][2][nenrei] = buffer[7];    
        kyosai[3][nendo-STARTY][2][nenrei] = buffer[8];    
        kyosai[7][nendo-STARTY][2][nenrei] = buffer[9];    
        qkou12syu3[nendo-STARTY][2][nenrei] = buffer[11];  
        kou3syu3[nendo-STARTY][2][nenrei] = buffer[12];    
        kyosai3[1][nendo-STARTY][2][nenrei] = buffer[13];  
        kyosai3[4][nendo-STARTY][2][nenrei] = buffer[14];  
        kyosai3[6][nendo-STARTY][2][nenrei] = buffer[15];  
        kyosai3[5][nendo-STARTY][2][nenrei] = buffer[16];  
        kyosai3[2][nendo-STARTY][2][nenrei] = buffer[17];  
        kyosai3[3][nendo-STARTY][2][nenrei] = buffer[18];  
        kyosai3[7][nendo-STARTY][2][nenrei] = buffer[19];  
        ichigouip[nendo-STARTY][2][nenrei] = buffer[20];  
        ichigouni[nendo-STARTY][2][nenrei] = buffer[21];  
        ichigougk[nendo-STARTY][2][nenrei] = buffer[22];  
        kikin[nendo-STARTY][2][nenrei] = buffer[24];      
    }

    for ( nenrei=15; nenrei<=75; nenrei++ ) {
        qkou12syu[nendo-STARTY][0][nenrei]
          = qkou12syu[nendo-STARTY][1][nenrei] + qkou12syu[nendo-STARTY][2][nenrei] ;
        kou3syu[nendo-STARTY][0][nenrei]
          = kou3syu[nendo-STARTY][1][nenrei] + kou3syu[nendo-STARTY][2][nenrei] ;
        qkou12syu3[nendo-STARTY][0][nenrei]
          = qkou12syu3[nendo-STARTY][1][nenrei] + qkou12syu3[nendo-STARTY][2][nenrei] ;
        kou3syu3[nendo-STARTY][0][nenrei]
          = kou3syu3[nendo-STARTY][1][nenrei] + kou3syu3[nendo-STARTY][2][nenrei] ;
        for ( seido=1; seido<=7; seido++ ) {
          kyosai[seido][nendo-STARTY][0][nenrei]
            = kyosai[seido][nendo-STARTY][1][nenrei] + kyosai[seido][nendo-STARTY][2][nenrei] ;
          kyosai3[seido][nendo-STARTY][0][nenrei]
            = kyosai3[seido][nendo-STARTY][1][nenrei] + kyosai3[seido][nendo-STARTY][2][nenrei] ;
        }
        ichigouip[nendo-STARTY][0][nenrei]
          = ichigouip[nendo-STARTY][1][nenrei] + ichigouip[nendo-STARTY][2][nenrei] ;
        ichigouni[nendo-STARTY][0][nenrei]
          = ichigouni[nendo-STARTY][1][nenrei] + ichigouni[nendo-STARTY][2][nenrei] ;
        ichigougk[nendo-STARTY][0][nenrei]
          = ichigougk[nendo-STARTY][1][nenrei] + ichigougk[nendo-STARTY][2][nenrei] ;
        kikin[nendo-STARTY][0][nenrei]
          = kikin[nendo-STARTY][1][nenrei] + kikin[nendo-STARTY][2][nenrei] ;
    }

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