void ensemble_config_init(ensemble_config_type * ensemble_config , const config_type * config , ecl_grid_type * grid, const ecl_sum_type * refcase) { int i; ensemble_config_set_refcase( ensemble_config , refcase ); if (config_item_set( config , GEN_KW_TAG_FORMAT_KEY)) ensemble_config_set_gen_kw_format( ensemble_config , config_iget( config , GEN_KW_TAG_FORMAT_KEY , 0 , 0 )); ensemble_config_init_GEN_PARAM( ensemble_config , config ); ensemble_config_init_GEN_DATA( ensemble_config , config ); ensemble_config_init_GEN_KW(ensemble_config , config ); ensemble_config_init_SURFACE( ensemble_config , config ); ensemble_config_init_SUMMARY( ensemble_config , config , refcase ); ensemble_config_init_FIELD( ensemble_config , config , grid ); /* Containers - this must come last, to ensure that the other nodes have been added. */ { for (i=0; i < config_get_occurences(config , CONTAINER_KEY ); i++) { const stringlist_type * container_kw_list = config_iget_stringlist_ref(config , CONTAINER_KEY , i); const char * container_key = stringlist_iget( container_kw_list , 0 ); enkf_config_node_type * container_node = ensemble_config_add_container( ensemble_config , container_key ); for (int j= 1; j < stringlist_get_size( container_kw_list ); j++) { const char * child_key = stringlist_iget( container_kw_list , j); enkf_config_node_update_container( container_node , ensemble_config_get_node( ensemble_config , child_key )); } } } /*****************************************************************/ }
int main(int argc , char ** argv) { const char * config_file = argv[1]; config_parser_type * config = config_alloc(); config_content_type * content; ensemble_config_type * ensemble = ensemble_config_alloc(); enkf_config_node_add_GEN_PARAM_config_schema( config ); content = config_parse( config , config_file , "--" , NULL , NULL , CONFIG_UNRECOGNIZED_WARN , true ); test_assert_true( config_content_is_valid( content ) ); ensemble_config_init_GEN_PARAM( ensemble, content ); config_content_free( content ); config_free( config ); ensemble_config_free( ensemble ); exit(0); }