void ensemble_config_clear_obs_keys(ensemble_config_type * ensemble_config) { hash_iter_type * iter = hash_iter_alloc( ensemble_config->config_nodes ); while (!hash_iter_is_complete( iter )) { enkf_config_node_type * config_node = hash_iter_get_next_value( iter ); enkf_config_node_clear_obs_keys( config_node ); } hash_iter_free( iter ); }
void perturb_wconinje( void * void_kw , int restart_nr , void * arg) { sched_kw_wconinje_type * kw = sched_kw_wconinje_safe_cast( void_kw ); { hash_type * group_hash = hash_safe_cast( arg ); hash_iter_type * group_iter = hash_iter_alloc( group_hash ); while (!hash_iter_is_complete( group_iter )) { group_rate_type * group_rate = hash_iter_get_next_value( group_iter ); if (!group_rate_is_producer( group_rate )) group_rate_update_wconinje( group_rate , kw , restart_nr ); } } }
stringlist_type * local_ministep_alloc_data_keys( const local_ministep_type * ministep ) { stringlist_type * keys = stringlist_alloc_new(); { hash_iter_type * dataset_iter = hash_iter_alloc( ministep->datasets ); while (!hash_iter_is_complete( dataset_iter )) { const local_dataset_type * dataset = hash_iter_get_next_value( dataset_iter ); stringlist_type * node_keys = local_dataset_alloc_keys( dataset ); for (int i=0; i < stringlist_get_size( node_keys ); i++) { const char * data_key = stringlist_iget( node_keys , i ); if (!stringlist_contains(keys , data_key )) stringlist_append_copy( keys , data_key ); } stringlist_free( node_keys ); } hash_iter_free( dataset_iter ); } return keys; }
bool local_ministep_has_data_key(const local_ministep_type * ministep , const char * key) { bool has_key = false; { hash_iter_type * dataset_iter = hash_iter_alloc( ministep->datasets ); while (true) { const local_dataset_type * dataset = hash_iter_get_next_value( dataset_iter ); if (dataset) { if (local_dataset_has_key( dataset , key)) { has_key = true; break; } } else break; } hash_iter_free( dataset_iter ); } return has_key; }
void local_ministep_summary_fprintf( const local_ministep_type * ministep , FILE * stream) { fprintf(stream , "MINISTEP:%s,", ministep->name); { /* Dumping all the DATASET instances. */ { hash_iter_type * dataset_iter = hash_iter_alloc( ministep->datasets ); while (!hash_iter_is_complete( dataset_iter )) { const local_dataset_type * dataset = hash_iter_get_next_value( dataset_iter ); local_dataset_summary_fprintf(dataset, stream); } hash_iter_free( dataset_iter ); } /* Only one OBSDATA */ local_obsdata_type * obsdata = local_ministep_get_obsdata(ministep); local_obsdata_summary_fprintf( obsdata , stream); fprintf(stream, "\n"); } }