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

#include "set.h"
#include "glvam.h"


void init_gval(void);
void set_filenum(void);  /* main.c */

void cntl(void);	     /* cntl.c */
void econ(void);	     /* econ.c */
void rdfl(void);	     /* rdfl.c */
void shus(void);	     /* shus.c */
void alfopen(void);	     /* fopn.c */
void alfclose(void);	 /* fcls.c */
void flck(void);         /* flck.c */


int main(int ac, char **av){
	
	printf("\n<< 初期化等の処理 >>\n\n");
	init_gval();
	
	printf("<< Cntl開始 >>\n");
	cntl();
	set_filenum();
	
	printf("\n<< FileOpen開始 >>\n\n");
	alfopen();
	
	printf("<< FileCheck開始 >>\n\n");
	flck();
	
	printf("<< Econ開始 >>\n\n");
	econ();
	
	printf("<< Rdfl開始 >>\n\n");
	rdfl();
	
	printf("<< Shus開始 >>\n\n");
	shus();
	
	printf("\n<< FileClose開始 >>\n\n");
	alfclose();
	
	return 0;
}



void init_gval(void){
	int k, x;
	
	for(k=ECSTY; k<=ECEDY; k++){
		for(x=ECXA; x<116; x++){
			Kra[k-ECSTY][x-ECXA] = Krb[k-ECSTY][x-ECXA] = 1.0;
			
			Scutrrh[k-ECSTY][x-ECXA] = Scutrrt[k-ECSTY][x-ECXA] = 1.0;
			Scutrrki[k-ECSTY][x-ECXA] = 1.0;
			Escutrrh[k-ECSTY][x-ECXA] = Escutrrt[k-ECSTY][x-ECXA] = 1.0;
		}
	}
}



void set_filenum(){
	/*************************************/
	/***  入出力ファイル番号等のセット ***/
	/*************************************/
	int itemp;
	
	/*** 試算番号（４桁）***/
	printf("\n試算番号を入力して下さい（４桁）\n");
	scanf("%s%*c", Nfile);
	printf("  試算番号を［%s］に設定しました\n", Nfile);
	
	/*** 拠出金ファイル番号（４桁） ***/
	strcpy(Nfile2, Nfile);
	
	/*** Fpset9カット指定時のカット率ファイル（４桁） ***/
	if(Fpset == 9){
		printf("\nカット率ファイルの指定（４桁）\n");
		scanf("%s%*c", Nfile3);
		printf("  カット率ファイルを［%s］に設定しました\n", Nfile3);
	} else {
		strcpy(Nfile3, Nfile);
	}
	
	/*** 拠出金試算番号NAT番号（４桁） ***/
	printf("\n拠出金番号を入力して下さい（４桁）\n");
	scanf("%s%*c", Nkfile);
	printf("  拠出金番号を［%s］に設定しました\n", Nkfile);
	
	
	/*** 外枠ファイル（４桁） ***/
	printf("\n外枠番号を入力して下さい（４桁）\n");
	scanf("%s%*c", Wcfile);
	itemp=atoi(Wcfile);
	printf("  外枠番号を［%s］に設定しました\n", Wcfile);
	
	/*** 経済前提ファイル（４桁） ***/
	printf("\n経済前提番号を入力して下さい（４桁）\n");
	scanf("%s%*c", Ecfile);
	printf("  経済前提ファイルを［%s］に設定しました\n", Ecfile);
	
	/*** 給付水準の設定方法 ***/
	if(Fpset==8){	/* 国年先決め有限均衡 */
		strcpy(Cutrfile1, "1");
	} else if (Fpset==9) {
		printf("国年先決めの場合は「1」を、厚年先決めの場合は「0」を入力して下さい。");
		scanf("%s%*c", Cutrfile1);
		if(strcmp(Cutrfile1, "1") !=0 && strcmp(Cutrfile1, "0") !=0){
			printf("  入力値が不適切です。\n");
			exit(1);
		}
	} else{
		printf("現在対応していない試算モードです。\n");
		exit(1);
	}
	
	
	/*** 財政方式（1:有限均衡固定） ***/
	strcpy(Cutrfile2, "1");
	
	
	/*** 均衡終了年度 ***/
	strcpy(Cutrfile3, "10");
	
	/*** 予備番号（３桁） ***/
	printf("\n予備番号を入力して下さい（３桁）\n");
	scanf("%s%*c", Cutrfile4);
	printf(" 予備番号を［%s］に設定しました\n", Cutrfile4);
	
	
	/*** 支援額ファイルのセット ***/
	strcpy(Sifile, "100");
	
	/*** 過去分試算の時のファイル名設定 ***/
	Saimushu[0] = '\0';
	strcpy(Saimuski, Saimushu);
	
	/*** その他  ***/
	strcpy(Tumafile, "00");
	
	Siencha[0] = '\0';
}



void print_number(void){
	char ctemp[MAX_REC_LEN+1];
	
	sprintf(ctemp,"%s-%s-%s-%s-%s [%s%s%s], Part=%d, Dmakuro=%d",
	  Nfile, Nkfile, Wcfile, Ecfile, Cutrfile4, Cutrfile1, Cutrfile2, Cutrfile3,
	  Flg_Part, Flg_Dmakuro);
	
	printf("\n%s : 妻[%s]\n", ctemp, Tumafile);
}

