#include <iostream>
#include <cstdlib>
#include "snaps.h"
#include "mcntl.h"
#include "mfile_open.h"
#include "mkisoritu.h"

void kaizen()
{

	int data_number;
	int nendo;
	int nenrei;
	int seibetu;
	double buffer[120];
	
	using namespace std;
	
	if( read_data( buffer , fp_in[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_in[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 = 2011 ; nendo <= R_KEINEN_SAISHUNENDO ; nendo++ )
	{
		if( read_data( buffer , fp_in[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 <= SUIKEISAISHUNENDO ; nendo++ )
	{
		for( seibetu = 0 ; seibetu <= 1 ; seibetu++ )
		{
			Rorei_Keinen[nendo - R_KEINEN_SHONENDO][seibetu] = Rorei_Keinen[R_KEINEN_SAISHUNENDO - R_KEINEN_SHONENDO][seibetu];
		}
	}
	
	for( seibetu = 0 ; seibetu <= 1 ; 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][seibetu] = 0.;
			}
		}
	}
	
	if( read_data( buffer , fp_in[IZOKU_KEINEN] , &data_number ) != EOF )
	{
		
	}
	else
	{
		printf( "有配偶率ファイル読込途中にＥＯＦを検出しました\n" );
		exit( 1 );
	}
	for( seibetu = 0 ; seibetu <= 1 ; seibetu++ )
	{
		for( nenrei = MIN_HIHO_NENREI ; nenrei <= MAX_HIHO_NENREI ; nenrei++ )
		{
			if( read_data( buffer , fp_in[IZOKU_KEINEN] , &data_number ) != EOF && buffer[0] == seibetu && buffer[1] == nenrei )
			{
				for( nendo = 2010 ; nendo <= I_KEINEN_SAISHUNENDO ; nendo++ )
				{
					if(nendo < SHONENDO)
					{
						continue;
					}
					Izoku_Keinen[nendo - SHONENDO][nenrei - MIN_HIHO_NENREI][seibetu] = buffer[nendo - ( 2010 - 1 ) + 1];
				}
			}
			else
			{
				printf( "有配偶率ファイル読込途中にＥＯＦを検出しました\n" );
				exit( 1 );
			}
		}
	}

	for( seibetu = 0 ; seibetu <= 1 ; seibetu++ )
	{
		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][seibetu]
				 = Izoku_Keinen[I_KEINEN_SAISHUNENDO - SHONENDO][nenrei - MIN_HIHO_NENREI][seibetu];
			}
		}
	}
}

