void enkf_config_node_fprintf_config( const enkf_config_node_type * config_node , FILE * stream ) { switch( config_node->impl_type) { case(GEN_KW): fprintf( stream , CONFIG_KEY_FORMAT , GEN_KW_KEY ); fprintf( stream , CONFIG_VALUE_FORMAT , config_node->key ); gen_kw_config_fprintf_config( config_node->data , path_fmt_get_fmt( config_node->enkf_outfile_fmt ) , config_node->min_std_file , stream ); break; case(FIELD): fprintf( stream , CONFIG_KEY_FORMAT , FIELD_KEY ); fprintf( stream , CONFIG_VALUE_FORMAT , config_node->key ); field_config_fprintf_config( config_node->data , config_node->var_type , path_fmt_get_fmt( config_node->enkf_outfile_fmt ) , path_fmt_get_fmt( config_node->enkf_infile_fmt ) , config_node->min_std_file , stream ); break; case(GEN_DATA): if (config_node->var_type == PARAMETER) fprintf( stream , CONFIG_KEY_FORMAT , GEN_PARAM_KEY ); else fprintf( stream , CONFIG_KEY_FORMAT , GEN_DATA_KEY ); gen_data_config_fprintf_config( config_node->data , config_node->var_type , path_fmt_get_fmt( config_node->enkf_outfile_fmt ) , path_fmt_get_fmt( config_node->enkf_infile_fmt ) , config_node->min_std_file , stream ); break; default: util_abort("%s: internal error - function can not store configuration for: %s variables. \n",__func__ , enkf_types_get_impl_name( config_node->impl_type) ); } fprintf( stream , "\n"); }
void model_config_fprintf_config( const model_config_type * model_config , int ens_size , FILE * stream ) { fprintf( stream , CONFIG_COMMENTLINE_FORMAT ); fprintf( stream , CONFIG_COMMENT_FORMAT , "Here comes configuration information related to this model."); if (model_config->case_table_file != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , CASE_TABLE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->case_table_file ); } fprintf( stream , CONFIG_KEY_FORMAT , FORWARD_MODEL_KEY); forward_model_fprintf( model_config->forward_model , stream ); fprintf( stream , CONFIG_KEY_FORMAT , RUNPATH_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , path_fmt_get_fmt( model_config->current_runpath )); if (model_config->enkf_sched_file != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , ENKF_SCHED_FILE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->enkf_sched_file ); } fprintf( stream , CONFIG_KEY_FORMAT , ENSPATH_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->enspath ); fprintf( stream , CONFIG_KEY_FORMAT , RFTPATH_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->rftpath ); if (model_config->select_case != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , SELECT_CASE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , model_config->select_case ); } fprintf( stream , CONFIG_KEY_FORMAT , MAX_RESAMPLE_KEY ); { char max_retry_string[16]; sprintf( max_retry_string , "%d" ,model_config->max_internal_submit); fprintf( stream , CONFIG_ENDVALUE_FORMAT , max_retry_string); } fprintf(stream , CONFIG_KEY_FORMAT , HISTORY_SOURCE_KEY); fprintf(stream , CONFIG_ENDVALUE_FORMAT , history_get_source_string( model_config->history_source )); fprintf(stream , CONFIG_KEY_FORMAT , NUM_REALIZATIONS_KEY); fprintf(stream , CONFIG_INT_FORMAT , ens_size); fprintf(stream , "\n\n"); }
void ecl_config_fprintf_config( const ecl_config_type * ecl_config , FILE * stream ) { fprintf( stream , CONFIG_COMMENTLINE_FORMAT ); fprintf( stream , CONFIG_COMMENT_FORMAT , "Here comes configuration information related to the ECLIPSE model."); fprintf( stream , CONFIG_KEY_FORMAT , DATA_FILE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config->data_file ); fprintf( stream , CONFIG_KEY_FORMAT , SCHEDULE_FILE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , sched_file_iget_filename( ecl_config->sched_file , 0)); fprintf( stream , CONFIG_KEY_FORMAT , ECLBASE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , path_fmt_get_fmt( ecl_config->eclbase )); if (ecl_config->include_all_static_kw) { fprintf( stream , CONFIG_KEY_FORMAT , STATIC_KW_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , DEFAULT_ALL_STATIC_KW ); } { int size = stringlist_get_size( ecl_config->user_static_kw ); if (size > 0) { int i; fprintf( stream , CONFIG_KEY_FORMAT , STATIC_KW_KEY ); for (i=0; i < size; i++) if (i < (size -1 )) fprintf( stream , CONFIG_VALUE_FORMAT , stringlist_iget( ecl_config->user_static_kw , i)); else fprintf( stream , CONFIG_ENDVALUE_FORMAT , stringlist_iget( ecl_config->user_static_kw , i)); } } /* if (ecl_config->refcase != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , REFCASE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_refcase_name( ecl_config )); } */ if (ecl_config->grid != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , GRID_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_gridfile( ecl_config )); } if (ecl_config->schedule_prediction_file != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , SCHEDULE_PREDICTION_FILE_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_schedule_prediction_file( ecl_config )); } if (ecl_config->init_section != NULL) { fprintf( stream , CONFIG_KEY_FORMAT , INIT_SECTION_KEY ); fprintf( stream , CONFIG_ENDVALUE_FORMAT , ecl_config_get_init_section( ecl_config )); } { hash_iter_type * iter = hash_iter_alloc( ecl_config->fixed_length_kw ); while (!hash_iter_is_complete( iter )) { const char * kw = hash_iter_get_next_key( iter ); int length = hash_get_int( ecl_config->fixed_length_kw , kw); fprintf( stream , CONFIG_KEY_FORMAT , ADD_FIXED_LENGTH_SCHEDULE_KW_KEY ); fprintf( stream , CONFIG_VALUE_FORMAT , kw ); fprintf( stream , CONFIG_INT_FORMAT , length ); fprintf( stream , "\n"); } hash_iter_free( iter ); } fprintf(stream , "\n\n"); }
const char * ecl_config_get_eclbase( const ecl_config_type * ecl_config ) { return path_fmt_get_fmt( ecl_config->eclbase ); }
const char * enkf_config_node_get_enkf_infile( const enkf_config_node_type * config_node ) { return path_fmt_get_fmt( config_node->enkf_infile_fmt ); }
const char * model_config_get_runpath_as_char( const model_config_type * model_config ) { return path_fmt_get_fmt( model_config->current_runpath ); }
void enkf_tui_run_menu(void * arg) { enkf_main_type * enkf_main = enkf_main_safe_cast( arg ); model_config_type * model_config = enkf_main_get_model_config( enkf_main ); path_fmt_type * runpath_fmt = model_config_get_runpath_fmt( model_config ); menu_type * menu; { char * title = util_alloc_sprintf("Run menu [case:%s Runpath:%s]" , enkf_main_get_current_fs( enkf_main ) , path_fmt_get_fmt ( runpath_fmt )); menu = menu_alloc(title , "Back" , "bB"); free(title); } menu_add_item(menu , "Ensemble run: history" , "xX" , enkf_tui_run_exp , enkf_main , NULL); menu_add_separator( menu ); { const ecl_config_type * ecl_config = enkf_main_get_ecl_config( enkf_main ); const model_config_type * model_config = enkf_main_get_model_config( enkf_main ); const analysis_config_type * analysis_config = enkf_main_get_analysis_config(enkf_main); menu_item_type * enkf_item = menu_add_item(menu , "Start EnKF run from beginning" , "sS" , enkf_tui_run_start , enkf_main , NULL); menu_item_type * restart_enkf_item = menu_add_item(menu , "Restart EnKF run from arbitrary state" , "rR" , enkf_tui_run_restart__ , enkf_main , NULL); menu_item_type * ES_item = menu_add_item(menu , "Integrated smoother update" , "iI" , enkf_tui_run_smoother , enkf_main , NULL); menu_item_type * it_ES_item = menu_add_item(menu , "Iterated smoother [RML-EnKF]" , "tT" , enkf_tui_run_iterated_ES , enkf_main , NULL); menu_item_type * one_more_item = menu_add_item(menu , "One more iteration (disabled)" , "mM" , enkf_tui_run_one_more_iteration , enkf_main , NULL); if (!ecl_config_has_schedule( ecl_config )) { menu_item_disable( enkf_item ); menu_item_disable( restart_enkf_item ); } if (!ecl_config_has_init_section( ecl_config )) menu_item_disable( enkf_item ); menu_item_disable( one_more_item ); if (!analysis_config_get_module_option(analysis_config , ANALYSIS_ITERABLE)) { menu_item_disable( it_ES_item ); menu_item_disable( one_more_item ); } else { menu_item_disable( enkf_item ); menu_item_disable( restart_enkf_item ); menu_item_disable( ES_item ); } if (!model_config_has_history( model_config )) { menu_item_disable( it_ES_item ); menu_item_disable( ES_item ); menu_item_disable( one_more_item ); } } menu_add_separator(menu); menu_add_item(menu , "Create runpath directories - NO simulation" , "cC" , enkf_tui_run_create_runpath__ , enkf_main , NULL ); menu_add_item(menu , "Load results manually" , "lL" , enkf_tui_run_manual_load__ , enkf_main , NULL); menu_add_separator(menu); { menu_item_type * analysis_item = menu_add_item(menu , "Analysis menu" , "aA" , enkf_tui_analysis_menu , enkf_main , NULL); if (!enkf_main_have_obs( enkf_main )) menu_item_disable( analysis_item ); } /* Option to set runpath runtime - currently dismantled. menu_add_separator(menu); { model_config_type * model_config = enkf_main_get_model_config( enkf_main ); path_fmt_type * runpath_fmt = model_config_get_runpath_fmt( model_config ); arg_pack_type * arg_pack = arg_pack_alloc(); char * runpath_label = util_alloc_sprintf("Set new value for RUNPATH:%s" , path_fmt_get_fmt ( runpath_fmt )); arg_pack_append_ptr(arg_pack , model_config); arg_pack_append_ptr(arg_pack , menu_add_item(menu , runpath_label , "dD" , enkf_tui_run_set_runpath , arg_pack , arg_pack_free__)); free(runpath_label); } */ menu_add_item(menu , "Help" , "hH" , enkf_tui_help_menu_run , enkf_main , NULL); menu_run(menu); menu_free(menu); }