/***************************************
*                                      *
*      経年変化用データの読み込み      *
*                                      *
*                                      *
***************************************/

#include <iostream>
#include <cstdlib>
#include "snaps.h"
#include "cntl.h"
#include "file_open.h"
#include "kisoritu.h"

void kaizen()
{
	// 変数宣言
	int data_number;
	int nendo;
	int nenrei;
	int seibetu;
	double buffer[120];
	
	using namespace std;
	
	// 生命表ファイルの読込
	if( read_data( buffer , fp_lifetable , &data_number ) != EOF )
	{
		
	}
	else
	{
		cout << "生命表ファイル読込途中にＥＯＦを検出しました" << endl;
		exit( 1 );
	}
	
	for( seibetu = 0 ; seibetu <= 1 ; seibetu++ )
	{
		for( nendo = SHIKKENRITU_MIN ; nendo <= SHIKKENRITU_MAX ; nendo++ )
		{
			if( read_data( buffer , fp_lifetable , &data_number ) != EOF )
			{
				for( nenrei = 0 + 1 ; nenrei <= MAX_ROREI_JUKYU - 1 + 1 ; nenrei++ )
				{
					q[nendo - SHIKKENRITU_MIN][nenrei - 1][seibetu] = buffer[nenrei];
					q[nendo - SHIKKENRITU_MIN][nenrei - 1][seibetu] /= 100000.;
				}
			}
			else
			{
				cout << "生命表ファイル読込途中にＥＯＦを検出しました" << endl;
				exit( 1 );
			}
		}
	}
	
	// 老齢年金経年変化用ファイル読込
	for( nendo = 2006 ; nendo <= R_KEINEN_SAISHUNENDO ; nendo++ )
	{
		if( read_data( buffer , fp_rorei_keinen , &data_number ) != EOF && nendo == 2000 + (int)buffer[0] )
		{
			if( nendo < R_KEINEN_SHONENDO )
			{
				continue;
			}
			
			for( seibetu = 0 ; seibetu <= 1 ; seibetu++ )
			{
				Rorei_Keinen[nendo - R_KEINEN_SHONENDO][seibetu] = buffer[seibetu + 1];
			}
		}
		else
		{
			cout << "老齢年金発生割合年次推移ファイル読込途中にＥＯＦを検出しました" << endl;
			exit( 1 );
		}
	}
	for( nendo = R_KEINEN_SAISHUNENDO + 1 ; nendo <= SAISHUNENDO ; nendo++ )
	{
		for( seibetu = 0 ; seibetu <= 1 ; seibetu++ )
		{
			Rorei_Keinen[nendo - R_KEINEN_SHONENDO][seibetu] = Rorei_Keinen[R_KEINEN_SAISHUNENDO - R_KEINEN_SHONENDO][seibetu];
		}
	}
	
	
	// 遺族年金経年変化用及び寡婦年金経年変化用）
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		for( nenrei = MIN_HIHO_NENREI ; nenrei <= MAX_HIHO_NENREI ; nenrei++ )
		{
			Izoku_Keinen[nendo - SHONENDO][nenrei - MIN_HIHO_NENREI] = 0.;
		}
	}
	
	if( read_data( buffer , fp_izoku_keinen , &data_number ) != EOF )
	{
		
	}
	else
	{
		printf( "有遺族率ファイル読込途中にＥＯＦを検出しました\n" );
		exit( 1 );
	}
	for( nenrei = MIN_HIHO_NENREI ; nenrei <= MAX_HIHO_NENREI ; nenrei++ )
	{
		if( read_data( buffer , fp_izoku_keinen , &data_number ) != EOF && buffer[0] == nenrei )
		{
			for( nendo = 2005 ; nendo <= I_KEINEN_SAISHUNENDO ; nendo++ )
			{
				if(nendo < SHONENDO)
				{
					continue;
				}
				Izoku_Keinen[nendo - SHONENDO][nenrei - MIN_HIHO_NENREI] = buffer[nendo - ( 2005 - 1 )];
			}
		}
		else
		{
			printf( "有遺族率ファイル読込途中にＥＯＦを検出しました\n" );
			exit( 1 );
		}
	}
	for( nendo = I_KEINEN_SAISHUNENDO + 1 ; nendo <= SAISHUNENDO ; nendo++ )
	{
		for( nenrei = MIN_HIHO_NENREI ; nenrei <= MAX_HIHO_NENREI ; nenrei++ )
		{
			Izoku_Keinen[nendo - SHONENDO][nenrei - MIN_HIHO_NENREI]
			 = Izoku_Keinen[I_KEINEN_SAISHUNENDO - SHONENDO][nenrei - MIN_HIHO_NENREI];
		}
	}
}
