/*************************************
* *
* 外枠システム 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