double ecl_sum_data_get_from_sim_time( const ecl_sum_data_type * data , time_t sim_time , const smspec_node_type * smspec_node) { int params_index = smspec_node_get_params_index( smspec_node ); if (smspec_node_is_rate( smspec_node )) { int time_index = ecl_sum_data_get_index_from_sim_time( data , sim_time ); return ecl_sum_data_iget( data , time_index , params_index); } else { /* Interpolated lookup based on two (hopefully) consecutive ministeps. */ double weight1 , weight2; int time_index1 , time_index2; ecl_sum_data_init_interp_from_sim_time( data , sim_time , &time_index1 , &time_index2 , &weight1 , &weight2); return ecl_sum_data_interp_get( data , time_index1 , time_index2 , weight1 , weight2 , params_index); } }
static int ecl_sum_get_limiting(const ecl_sum_type * ecl_sum , int smspec_index , double limit , bool gt) { const int length = ecl_sum_data_get_length( ecl_sum->data ); int internal_index = 0; do { double value = ecl_sum_data_iget( ecl_sum->data , internal_index , smspec_index ); if (gt) { if (value > limit) break; } else { if (value < limit) break; } internal_index++; } while (internal_index < length); if (internal_index == length) /* Did not find it */ internal_index = -1; return internal_index; }
double ecl_sum_iget( const ecl_sum_type * ecl_sum , int time_index , int param_index) { return ecl_sum_data_iget(ecl_sum->data , time_index , param_index); }
double ecl_sum_get_general_var(const ecl_sum_type * ecl_sum , int time_index , const char * lookup_kw) { int params_index = ecl_sum_get_general_var_params_index(ecl_sum , lookup_kw); return ecl_sum_data_iget( ecl_sum->data , time_index , params_index); }
double ecl_sum_get_well_completion_var(const ecl_sum_type * ecl_sum , int time_index , const char * well , const char *var, int cell_nr) { int index = ecl_sum_get_well_completion_var_index(ecl_sum , well , var , cell_nr); return ecl_sum_data_iget( ecl_sum->data , time_index , index); }
double ecl_sum_get_misc_var(const ecl_sum_type * ecl_sum , int time_index , const char *var) { int index = ecl_sum_get_misc_var_index( ecl_sum , var); return ecl_sum_data_iget( ecl_sum->data , time_index , index); }
double ecl_sum_get_region_var(const ecl_sum_type * ecl_sum , int time_index , const char *var , int region_nr) { int params_index = ecl_smspec_get_region_var_params_index( ecl_sum->smspec , var , region_nr); return ecl_sum_data_iget( ecl_sum->data , time_index , params_index); }
double ecl_sum_get_block_var_ijk(const ecl_sum_type * ecl_sum , int time_index , const char * block_var , int i , int j , int k) { int index = ecl_sum_get_block_var_index_ijk( ecl_sum , block_var , i , j , k); return ecl_sum_data_iget( ecl_sum->data , time_index , index); }
double ecl_sum_get_block_var(const ecl_sum_type * ecl_sum , int time_index , const char * block_var , int block_nr) { int params_index = ecl_smspec_get_block_var_params_index( ecl_sum->smspec , block_var , block_nr); return ecl_sum_data_iget( ecl_sum->data , time_index , params_index); }
double ecl_sum_get_group_var(const ecl_sum_type * ecl_sum , int time_index , const char * group , const char *var) { int params_index = ecl_smspec_get_group_var_params_index( ecl_sum->smspec , group , var ); return ecl_sum_data_iget( ecl_sum->data , time_index , params_index); }