/***************************************
*                                      *
*              printout_2              *
*                                      *
*                                      *
***************************************/

#include <iostream>
#include "snaps.h"
#include "kisosu.h"
#include "file_open.h"
#include "cntl.h"
#include "econ.h"
#include "kiso.h"

void printout_2()
{
	// 変数宣言
	int nendo;
	int seido;
	int goubetu;
	int sotai_nendo;
	int shinkyu;
	int kubun;
	int tokubetu_shurui;
	
	// 基礎年金給付費
	for( shinkyu = SUM ; shinkyu <= OLD ; shinkyu++ )
	{
		switch ( shinkyu )
		{
			case SUM :
				fprintf( fpprintout_2 , "基礎年金給付費（新法＋旧法）\n" );
				break;
			case NEW :
				fprintf( fpprintout_2 , "基礎年金給付費（新法）\n" );
				break;
			case OLD :
				fprintf( fpprintout_2 , "基礎年金交付金\n" );
				break;
		}
		fprintf( fpprintout_2 , ",合計,国年,厚年,国共,地共,私学\n");
		for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
		{
			sotai_nendo = nendo - SHONENDO;
			fprintf( fpprintout_2 , "%15d," , nendo );
			for( seido = SUM ; seido <= CHIKYO ; seido++ )
			{
				fprintf( fpprintout_2 , "%20.14le," , Kyufu[seido][sotai_nendo][NENREI_SUM - NENREI_SUM][shinkyu][SUM][SUM][SUM][SUM] );
			}
			fprintf( fpprintout_2 , "%20.14le\n" , Kyufu[SHIGAKU][sotai_nendo][NENREI_SUM - NENREI_SUM][shinkyu][SUM][SUM][SUM][SUM] );
		}
	}
	
	for( kubun = SUM ; kubun <= IZOKU ; kubun++ )
	{
		switch ( kubun )
		{
			case SUM :
				fprintf( fpprintout_2 , "基礎年金給付費（合計）\n" );
				break;
			case ROREI :
				fprintf( fpprintout_2 , "基礎年金給付費（老齢）\n" );
				break;
			case SHOGAI :
				fprintf( fpprintout_2 , "基礎年金給付費（障害）\n" );
				break;
			case IZOKU :
				fprintf( fpprintout_2 , "基礎年金給付費（遺族）\n" );
			break;
		}
		for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
		{
			sotai_nendo = nendo - SHONENDO;
			fprintf( fpprintout_2 , "%15d," , nendo);
			for( seido = SUM ; seido <= CHIKYO ; seido++ )
			{
				fprintf( fpprintout_2 , "%20.14le," , Kyufu[seido][sotai_nendo][NENREI_SUM - NENREI_SUM][SUM][kubun][SUM][SUM][SUM] );
			}
			fprintf( fpprintout_2 , "%20.14le\n" , Kyufu[SHIGAKU][sotai_nendo][NENREI_SUM - NENREI_SUM][SUM][kubun][SUM][SUM][SUM] );
		}
	}
	
	// 基礎年金拠出金
	fprintf( fpprintout_2 , "基礎年金拠出金\n");
	fprintf( fpprintout_2 , ",単価,合計,国年,厚年,国共,地共,私学\n");
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		sotai_nendo = nendo - SHONENDO;
		fprintf( fpprintout_2 , "%15d," , nendo );
		fprintf( fpprintout_2 , "%20.14le," , Tanka[sotai_nendo][NENREI_SUM - NENREI_SUM][SUM] );
		for( seido = SUM ; seido <= SHIGAKU ; seido++ )
		{
			fprintf( fpprintout_2 , "%20.14le," , Kyoshutukin[seido][sotai_nendo][NENREI_SUM - NENREI_SUM][SUM] );
		}
		fprintf( fpprintout_2 , "\n" );
	}
	
	// 基礎年金拠出金（国庫）
	fprintf( fpprintout_2 , "基礎年金拠出金（国庫）\n" );
	fprintf( fpprintout_2 , ",単価,国庫負担割合(年度末),合計,国年,厚年,国共,地共,私学\n" );
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		sotai_nendo = nendo - SHONENDO;
		fprintf( fpprintout_2 , "%15d," , nendo );
		fprintf( fpprintout_2 , "%20.14le," , Tanka_Kokko[sotai_nendo][NENREI_SUM - NENREI_SUM][SUM] );
		fprintf( fpprintout_2 , "%20.14le," , Kokko_Wariai[nendo - ( SHONENDO - 1 )] );
		for( seido = SUM ; seido <= SHIGAKU ; seido++ )
		{
			fprintf( fpprintout_2 , "%20.14le," , Kyoshutukin_Kokko[seido][sotai_nendo][NENREI_SUM - NENREI_SUM][SUM] );
		}
		fprintf( fpprintout_2 , "\n" );
	}
	
	// 拠出金算定対象者
	fprintf( fpprintout_2 , "拠出金算定対象者\n" );
	fprintf( fpprintout_2 , ",合計,１号,厚年２号,厚年３号,国共２号,国共３号,地共２号,地共３号,私学２号,私学３号\n" );
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		sotai_nendo = nendo - SHONENDO;
		fprintf( fpprintout_2 , "%15d," , nendo );
		fprintf( fpprintout_2 , "%20.14le," , SanteiTaishou[SUM][sotai_nendo][SUM] );
		fprintf( fpprintout_2 , "%20.14le," , SanteiTaishou[KOKUNEN][sotai_nendo][1] );
		for( seido = KOUNEN ; seido <= SHIGAKU ; seido++ )
		{
			for( goubetu = 2 ; goubetu <= 3 ; goubetu++ )
			{
				fprintf( fpprintout_2 , "%20.14le," , SanteiTaishou[seido][sotai_nendo][goubetu] );
			}
		}
		fprintf( fpprintout_2 , "\n" );
	}
	
	// 特別国庫
	fprintf( fpprintout_2 , "特別国庫負担内訳\n" );
	fprintf( fpprintout_2 , ",合計,免除,嵩上げ（納付）,嵩上げ（免除）,老福下支え,５年年金,２０歳前\n" );
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		sotai_nendo = nendo - SHONENDO;
		fprintf( fpprintout_2 , "%15d,", nendo );
		for( tokubetu_shurui = SUM ; tokubetu_shurui <= TOKUBETU_20MAE ; tokubetu_shurui++ )
		{
			fprintf( fpprintout_2 , "%20.14le,", Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][tokubetu_shurui][SUM][SUM] );
		}
		fprintf( fpprintout_2 , "\n");
	}
	
	// 独自給付分等
	fprintf( fpprintout_2 , "独自給付費等\n" );
	fprintf( fpprintout_2 , ",一時金納付分,一時金付加分,新法寡婦年金,旧法寡婦年金免除分以外," );
	fprintf( fpprintout_2 , "旧法寡婦年金免除分,付加年金,付加年金（人数）,１号被保険者数,住宅融資債権,業務勘定への繰入\n" );
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		fprintf( fpprintout_2 , "%d," , nendo );
		fprintf( fpprintout_2 , "%20.14le," , Ichijikin[nendo - SHONENDO][NOUFU] );
		fprintf( fpprintout_2 , "%20.14le," , Ichijikin[nendo - SHONENDO][FUKA] );
		fprintf( fpprintout_2 , "%20.14le," , Kafu_Cut[nendo - SHONENDO][NEW] );
		fprintf( fpprintout_2 , "%20.14le," , Kafu_Cut[nendo - SHONENDO][OLD_NOUFU] );
		fprintf( fpprintout_2 , "%20.14le," , Kafu_Cut[nendo - SHONENDO][OLD_MENJO] );
		fprintf( fpprintout_2 , "%20.14le," , Fuka[nendo - SHONENDO][SUM] );
		fprintf( fpprintout_2 , "%20.14le," , Fuka_Ninzu[nendo - SHONENDO] );
		fprintf( fpprintout_2 , "%20.14le," , Hiho_Kokunen[nendo - SHONENDO] );
		fprintf( fpprintout_2 , "%20.14le," , Yuushi_Saiken[nendo - SHONENDO] );
		fprintf( fpprintout_2 , "%20.14le\n" , Fukushi[nendo - SHONENDO] );
	}
	
	// 経済前提
	fprintf( fpprintout_2 , "経済前提\n" );
	fprintf( fpprintout_2 , ",物価上昇率,賃金上昇率,運用利回り\n" );
	for( nendo = ECON_SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		fprintf( fpprintout_2 , "%d," , nendo );
		fprintf( fpprintout_2 , "%20.14le," , cpi_up[nendo - ECON_SHONENDO] );
		fprintf( fpprintout_2 , "%20.14le," , base_up[nendo - ECON_SHONENDO] );
		fprintf( fpprintout_2 , "%20.14le\n" , interest_rate[nendo - ECON_SHONENDO] );
	}
	
	// 妻積
	fprintf( fpprintout_2 , "妻積\n" );
	fprintf( fpprintout_2 , ",国年,厚年,国共,地共,私学\n" );
	
	for( nendo = TUMATUMI_NENDO ; nendo <= TUMATUMI_NENDO + TUMATUMI_KIKAN ; nendo++ )
	{
		fprintf( fpprintout_2 , "%d," , nendo );
		for( seido = KOKUNEN ; seido <= SHIGAKU ; seido++ )
		{
			fprintf( fpprintout_2 , "%20.14e," , Tumatumi[seido][nendo - SHONENDO] );
		}
		fprintf( fpprintout_2 , "\n" );
	}
	
	fprintf( fpprintout_2 , "\n");
	
	// 国庫負担
	fprintf( fpprintout_kokko_2 , "年度,変更月,拠出金算定対象者数,年度末国庫負担割合,拠出金（計）,拠出金（前）,拠出金（後）,拠出金国庫（計）,");
	fprintf( fpprintout_kokko_2 , "拠出金国庫（前）,拠出金国庫（後）,特別国庫（計）,特別国庫（前）,特別国庫（後）,２０前障害（計）（再）,");
	fprintf( fpprintout_kokko_2 , "２０前障害（前）（再）,２０前障害（後）（再）\n");
	for( nendo = SHONENDO ; nendo <= SAISHUNENDO ; nendo++ )
	{
		sotai_nendo = nendo - SHONENDO;
		fprintf( fpprintout_kokko_2 , "%15d," , nendo );
		fprintf( fpprintout_kokko_2 , "%15d," , tuki[sotai_nendo] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , SanteiTaishou[SUM][sotai_nendo][SUM] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kokko_Wariai[nendo - ( SHONENDO - 1 )] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kyoshutukin[SUM][sotai_nendo][NENREI_SUM - NENREI_SUM][SUM] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kyoshutukin[SUM][sotai_nendo][NENREI_SUM - NENREI_SUM][ZENHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kyoshutukin[SUM][sotai_nendo][NENREI_SUM - NENREI_SUM][KOUHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kyoshutukin_Kokko[SUM][sotai_nendo][NENREI_SUM - NENREI_SUM][SUM] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kyoshutukin_Kokko[SUM][sotai_nendo][NENREI_SUM - NENREI_SUM][ZENHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Kyoshutukin_Kokko[SUM][sotai_nendo][NENREI_SUM - NENREI_SUM][KOUHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][SUM][SUM][SUM] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][SUM][SUM][ZENHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][SUM][SUM][KOUHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][TOKUBETU_20MAE][SUM][SUM] );
		fprintf( fpprintout_kokko_2 , "%20.14le," , Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][TOKUBETU_20MAE][SUM][ZENHAN] );
		fprintf( fpprintout_kokko_2 , "%20.14le\n" , Tokubetukokko[sotai_nendo][NENREI_SUM - NENREI_SUM][TOKUBETU_20MAE][SUM][KOUHAN] );
	}
}

