//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RifReaderEclipseSummary::open(const std::string& headerFileName, const std::vector<std::string>& dataFileNames) { assert(ecl_sum == NULL); if (headerFileName.empty() || dataFileNames.size() == 0) return false; assert(!headerFileName.empty()); assert(dataFileNames.size() > 0); stringlist_type* dataFiles = stringlist_alloc_new(); for (size_t i = 0; i < dataFileNames.size(); i++) { stringlist_append_copy(dataFiles, dataFileNames[i].data()); } std::string itemSeparatorInVariableNames = ":"; ecl_sum = ecl_sum_fread_alloc(headerFileName.data(), dataFiles, itemSeparatorInVariableNames.data()); stringlist_free(dataFiles); if (ecl_sum) { eclSmSpec = ecl_sum_get_smspec(ecl_sum); assert(eclSmSpec != NULL); assert(ecl_sum != NULL); for ( int time_index = 0; time_index < timeStepCount(); time_index++ ) { time_t sim_time = ecl_sum_iget_sim_time(ecl_sum, time_index); m_timeSteps.push_back(sim_time); } return true; } return false; }
static void __ecl_sum_fprintf_line( const ecl_sum_type * ecl_sum , FILE * stream , int internal_index , const bool_vector_type * has_var , const int_vector_type * var_index , char * date_string , const ecl_sum_fmt_type * fmt) { fprintf(stream , fmt->days_fmt , ecl_sum_iget_sim_days(ecl_sum , internal_index)); fprintf(stream , "%s", fmt->sep ); { struct tm ts; time_t sim_time = ecl_sum_iget_sim_time(ecl_sum , internal_index ); util_localtime( &sim_time , &ts); strftime( date_string , DATE_STRING_LENGTH - 1 , fmt->date_fmt , &ts); fprintf(stream , "%s", date_string ); } { int ivar; for (ivar = 0; ivar < int_vector_size( var_index ); ivar++) { if (bool_vector_iget( has_var , ivar )) { fprintf(stream , "%s", fmt->sep); fprintf(stream , fmt->value_fmt , ecl_sum_iget(ecl_sum , internal_index, int_vector_iget( var_index , ivar ))); } } } fprintf(stream , "%s", fmt->newline); }