void enkf_tui_fs_copy_ensemble_of_parameters(void * arg) { int prompt_len = 35; char * source_case; int last_report; int report_step_from; char * report_step_from_as_char; int report_step_to; state_enum state_from; state_enum state_to; enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); source_case = util_alloc_string_copy(enkf_main_get_current_fs( enkf_main )); last_report = enkf_main_get_history_length( enkf_main ); report_step_from_as_char = util_scanf_int_with_limits_return_char("Source report step",prompt_len , 0 , last_report); if(strlen(report_step_from_as_char) !=0){ util_sscanf_int(report_step_from_as_char , &report_step_from); state_from = enkf_tui_util_scanf_state("Source analyzed/forecast [a|f]" , prompt_len , false); if(state_from != UNDEFINED){ util_printf_prompt("Target case" , prompt_len , '=' , "=> "); char target_case[256]; if ( fgets(target_case, prompt_len, stdin) ) { char *newline = strchr(target_case, '\n'); if (newline) *newline = 0; } if (strlen(target_case)) { char * report_step_to_as_char = util_scanf_int_with_limits_return_char("Target report step",prompt_len , 0 , last_report); if(strlen(report_step_to_as_char) !=0){ util_sscanf_int(report_step_to_as_char , &report_step_to); state_to = enkf_tui_util_scanf_state("Target analyzed/forecast [a|f]" , prompt_len , false); if(state_to != UNDEFINED){ enkf_tui_fs_copy_ensemble__(enkf_main, source_case, target_case, report_step_from, state_from, report_step_to, state_to, true); } } free(report_step_to_as_char); } } } free(source_case); free(report_step_from_as_char); }
void enkf_tui_run_restart__(void * enkf_main) { const int ens_size = enkf_main_get_ensemble_size( enkf_main ); const int last_report = enkf_main_get_history_length( enkf_main ); int start_report; char * start_report_as_char; bool wronginput = false; state_enum state; bool_vector_type * iactive = bool_vector_alloc(0,true); bool_vector_iset( iactive , ens_size - 1 , true ); start_report_as_char = util_scanf_int_with_limits_return_char("Report step",PROMPT_LEN , 0 , last_report); if(strlen(start_report_as_char) != 0){ util_sscanf_int(start_report_as_char , &start_report); } else wronginput = true; if(!wronginput){ state = enkf_tui_util_scanf_state("Analyzed/forecast" , PROMPT_LEN , false); if(state == UNDEFINED) wronginput = true; } if(!wronginput) enkf_main_run_assimilation(enkf_main , iactive , start_report , start_report , state); bool_vector_free(iactive); free(start_report_as_char); }
void enkf_tui_fs_initialize_case_from_copy(void * arg) { int prompt_len =50; char * source_case; int ens_size; int last_report; int src_step; state_enum src_state; enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); ens_size = enkf_main_get_ensemble_size( enkf_main ); last_report = enkf_main_get_history_length( enkf_main ); source_case = enkf_tui_fs_alloc_existing_case( enkf_main , "Initialize from case" , prompt_len); if (source_case != NULL) { src_step = util_scanf_int_with_limits("Source report step",prompt_len , 0 , last_report); src_state = enkf_tui_util_scanf_state("Source analyzed/forecast [A|F]" , prompt_len , false); enkf_fs_type * source_fs = enkf_main_mount_alt_fs( enkf_main , source_case , false ); enkf_main_init_current_case_from_existing(enkf_main, source_fs , src_step , src_state); enkf_fs_decref(source_fs); } util_safe_free( source_case ); }
void enkf_tui_fs_initialize_case_from_copy(void * arg) { int prompt_len =50; char * source_case; int ens_size; int last_report; int src_step; state_enum src_state; enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); ens_size = enkf_main_get_ensemble_size( enkf_main ); last_report = enkf_main_get_history_length( enkf_main ); source_case = enkf_tui_fs_alloc_existing_case( enkf_main , "Initialize from case" , prompt_len); if (source_case != NULL) { char * ranking_key = NULL; bool_vector_type * iens_mask = bool_vector_alloc( 0 , true ); src_step = util_scanf_int_with_limits("Source report step",prompt_len , 0 , last_report); src_state = enkf_tui_util_scanf_state("Source analyzed/forecast [A|F]" , prompt_len , false); enkf_main_initialize_from_existing( enkf_main , source_case , src_step , src_state , iens_mask , ranking_key ); bool_vector_free( iens_mask ); } util_safe_free( source_case ); }