#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "set.h"
#include "glva.h"


void set_filenum(void); 


void cntl(void){

	Cntlset = 1 ;
	

	Seidn = 0;
	
	
	switch(Seidn){
		case 1: 
			Useid = 0;	break;
		case 2:  
			Useid = 1;	break;
		case 3:  
			Useid = 4;	break;
		case 4: 
			Useid = 5;	break;
		case 5:  
			Useid = 2;	break;
		case 6: 
			Useid = 3;	break;
		case 7:  
			Useid = 6;	break;
		case 8: 
			Useid = 7;	break;
		default:
			Useid = -99;	break;
	}
	
	if(Seidn==0){
		Pseid = 0;
	} else if(Seidn>=5) {
		Pseid = 1;
	} else{
		Pseid = Seidn;
	}
	
	printf("    「Useid=%d」「Pseid=%d」に設定しました。\n", Useid, Pseid);
	
	if(1){
		printf("\n試算の種類を指定してください。\n");
		printf("   0:通常試算\n");
		printf("   1:過去分試算\n");
		printf("   2:受給者分試算\n");
		scanf("%d%*c",&Saimu);
		printf("\n 試算種類を「Saimu=%d」に設定しました。\n", Saimu);
	} else {
		Saimu = 0;
		printf("\n 試算の種類を「0:通常試算」に設定しました。Saimu=%d\n", Saimu);
	}
	if(Saimu<0 || Saimu>2){
		printf(" 試算の種類の設定が不適切です Saimu=%d\n", Saimu);
		exit(1);
	}
	
	
	if(Saimu!=0){  
		printf("基準年度を入力して下さい。（２桁）\n");
		printf("  20:2020(H32)年度〜\n");
		scanf("%d%*c",&Psly);
		
		printf("障害、遺族の扱いを指定してください\n");
		printf("  2:すべて将来分として扱う\n");
		scanf("%d%*c",&Pslsi);
		
		printf("加給、振替加算等の扱いを指定してください\n");
		printf("  1:すべて将来分として扱う\n");
		scanf("%d%*c",&Pslsi2);
		

		Seitaikey = 0;
		
		
		printf("死亡率改善を指定してください\n");
		printf("  3:将来推計人口の最終年まで見込んだベース(下限なし)\n");
		
		scanf("%d%*c",&Kzn);
		
		if(Kzn<3 || Kzn>5){
			printf(" 想定していない設定値ですKzn=%d\n", Kzn);
			exit(1);
		}

		Kzny = 100;

	} else {
		Psly = Pslsi = Pslsi2 = Seitaikey = 0;
		Kzn = Kzny = 0;
	}
	
	
	if(Saimu!=1 && Saimu!=2){
		printf("\n給付水準の決定方法のセット\n");
		printf("  8 : 国年先決め均衡計算（有限均衡）  ＜通常計算＞ \n");
		printf("  9 : カット率ファイル指定 \n");
		
		scanf("%d%*c",&Fpset);
	} else {  
		Fpset = 9;
	}
	
	if(Fpset==8 || Fpset==9){
		printf(" 給付水準の決定方法を「Fpset=%d」に設定しました。\n", Fpset);
	} else {
		printf(" 現在対応していない試算モードです。\n");
		exit(1);
	}
	
	

	Kijun=17;

	Flg_Kaisho=2;
	
	if(1){
		printf("\nパート適用の拡大を行いますか？\n");
		printf("   0：行わない、通常試算\n");
		printf("   1：行う（１段階125万人、325万人、1050万人\n");
		scanf("%d%*c",&Flg_Part);
		if(Flg_Part<0 || Flg_Part>2){
			printf("パートフラグ設定エラー Flg_Part=%d\n", Flg_Part);
			exit(1);
		} else {
			printf("\n パート適用拡大を「Flg_Part=%d」に設定しました。\n", Flg_Part);
		}
	} else {
		Flg_Part = 0;
		printf("\n パート適用拡大を「0:行わない(通常試算)」に設定しました。Flg_Part=%d\n", Flg_Part);
	}
	
	
	if(Flg_Part>0){
		Part_Yr1 = 24;
		if(Flg_Part==1) Part_Yr2 = 120;
		else            Part_Yr2 =  120;
		Cbm_Pt1 = 5.;  
		Cbm_Pt2 =11.; 
	} else {
		Part_Yr1 = 0;
		Part_Yr2 = 0;
		Cbm_Pt1 = Cbm_Pt2 = 0.;
	}
	
	Kkuci = 0;


	Sienset = 1;
	if(Pseid!=0 && Sienset==0){
		printf(" 現在想定外の組み合わせです Sienset=%d, Pseid=%d\n", Sienset, Pseid);
		exit(1);
	}
	
	
	Flg_Jimu = 2;
	
	if(1){
		printf("\n繰越マクロを行いますか？(1:あり法律、3:廃止)\n");
		printf(" （発動は平成30（2018）年度）\n");
		scanf("%d%*c", &Flg_Kmakuro);
		if(Flg_Kmakuro < 0 || Flg_Kmakuro>3){
			printf("  繰り越しマクロの設定が間違っていますFlg_Kmakuro=%d\n", Flg_Kmakuro);
			exit(1);
		} else if(Flg_Kmakuro>=1) {
			Kmakuro_Yr = 18;
		} else {
			Kmakuro_Yr = 0;
		}
	} else {
		Flg_Kmakuro = 1;
		Kmakuro_Yr = 18;
	}

	
	if(1){
		printf("\nデフレ下マクロを行いますか？(Yes:1, No:0)\n");
		printf(" （発動は2020年度以降）\n");
		scanf("%d%*c", &Flg_Dmakuro);
		if(Flg_Dmakuro < 0 || Flg_Dmakuro>1){
			printf("  デフレ下マクロの設定が間違っていますFlg_Dmakuro=%d\n", Flg_Dmakuro);
			exit(1);
		} else if(Flg_Dmakuro==1) {
			Dmakuro_Yr = 20;
		} else {
			Dmakuro_Yr = 0;
		}
		
	} else {
		Flg_Dmakuro = 0;
		Dmakuro_Yr = 0;
	}

	Kozai = 0; 
	

	Flg_Houjou = 0;

	
	Flg_Rima=0;
	Drima  =0.;
	Rima_Yr_Str = 999;
	Rima_Yr_End =-999;
	



	if(1){
		printf("\n７０歳以上も被保険者化の試算を行いますか(０：行わない、１：行う）\n");
		scanf("%d%*c", &hiho74);
		if(hiho74<0 || hiho74>1){
			printf(" 設定値が間違っています hiho74\n");
			exit(1);
		} else if(hiho74==1){
			printf(" ７４歳まで被保険者とします\n");
		}
	}
	Touitu = 0;

	
	Shunor = 0.998;  
	Ca = 1.0;        
	
	Misyu = 0.;
	Tumawake = 0.;
	
	Kyoskijun = 15;
	
	Nenbeex  = 0;
	Nenbeex2 = 1;
	
}


int ii2usd(int ii){
	int usd;
	
	if(ii<0 || 4<ii){
		printf("ii2usd関数の引数が間違っています ii=%d\n", ii);
		exit(1);
	}
	
	if(Seidn!=0){
		usd=Useid;
	} else {
		if(ii==1){ 
			usd=0;
		} else if(ii==2){  
			usd=1;
		} else if(ii==3){ 
			usd=4;
		} else if(ii==4){ 
			usd=5;
		} else {
			printf("ii2usd関数の引数が間違っています Seidn=%d, ii=%d\n", Seidn, ii);
			exit(1);
		}
	}
	return(usd);
}


int ii2psd(int ii){
	int psd;
	
	if(ii<0 || 4<ii){
		printf("ii2psd関数の引数が間違っています ii=%d\n", ii);
		exit(1);
	}
	
	if(Seidn!=0){
		if(Seidn<=4) psd=Seidn;
		else         psd=1;
	} else {
		if(ii<1 || 4<ii){
			printf("ii2psd関数の引数が間違っています Seidn=%d, ii=%d\n", Seidn, ii);
			exit(1);
		}
		psd=ii;
	}
	
	return(psd);
}



