int ecl_sum_get_num( const ecl_sum_type * ecl_sum , const char * gen_key ) { const smspec_node_type * node = ecl_sum_get_general_var_node( ecl_sum , gen_key ); return smspec_node_get_num( node ); }
RifEclipseSummaryAddress addressFromErtSmSpecNode(const smspec_node_type * ertSumVarNode) { if (smspec_node_get_var_type(ertSumVarNode) == ECL_SMSPEC_INVALID_VAR) return RifEclipseSummaryAddress(); RifEclipseSummaryAddress::SummaryVarCategory sumCategory(RifEclipseSummaryAddress::SUMMARY_INVALID); std::string quantityName; int regionNumber(-1); int regionNumber2(-1); std::string wellGroupName; std::string wellName; int wellSegmentNumber(-1); std::string lgrName; int cellI(-1); int cellJ(-1); int cellK(-1); quantityName = smspec_node_get_keyword(ertSumVarNode); switch (smspec_node_get_var_type(ertSumVarNode)) { case ECL_SMSPEC_AQUIFER_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_AQUIFER; } break; case ECL_SMSPEC_WELL_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL; wellName = smspec_node_get_wgname(ertSumVarNode); } break; case ECL_SMSPEC_REGION_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_REGION; regionNumber = smspec_node_get_num(ertSumVarNode); } break; case ECL_SMSPEC_FIELD_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_FIELD; } break; case ECL_SMSPEC_GROUP_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_GROUP; wellGroupName = smspec_node_get_wgname(ertSumVarNode); } break; case ECL_SMSPEC_BLOCK_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_BLOCK; const int* ijk = smspec_node_get_ijk(ertSumVarNode); cellI = ijk[0]; cellJ = ijk[1]; cellK = ijk[2]; } break; case ECL_SMSPEC_COMPLETION_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION; wellName = smspec_node_get_wgname(ertSumVarNode); const int* ijk = smspec_node_get_ijk(ertSumVarNode); cellI = ijk[0]; cellJ = ijk[1]; cellK = ijk[2]; } break; case ECL_SMSPEC_LOCAL_BLOCK_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_BLOCK_LGR; lgrName = smspec_node_get_lgr_name(ertSumVarNode); const int* ijk = smspec_node_get_lgr_ijk(ertSumVarNode); cellI = ijk[0]; cellJ = ijk[1]; cellK = ijk[2]; } break; case ECL_SMSPEC_LOCAL_COMPLETION_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_COMPLETION_LGR; wellName = smspec_node_get_wgname(ertSumVarNode); lgrName = smspec_node_get_lgr_name(ertSumVarNode); const int* ijk = smspec_node_get_lgr_ijk(ertSumVarNode); cellI = ijk[0]; cellJ = ijk[1]; cellK = ijk[2]; } break; case ECL_SMSPEC_LOCAL_WELL_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_LGR; wellName = smspec_node_get_wgname(ertSumVarNode); lgrName = smspec_node_get_lgr_name(ertSumVarNode); } break; case ECL_SMSPEC_NETWORK_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_NETWORK; } break; case ECL_SMSPEC_REGION_2_REGION_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_REGION_2_REGION; regionNumber = smspec_node_get_R1(ertSumVarNode); regionNumber2 = smspec_node_get_R2(ertSumVarNode); } break; case ECL_SMSPEC_SEGMENT_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_WELL_SEGMENT; wellSegmentNumber = smspec_node_get_num(ertSumVarNode); } break; case ECL_SMSPEC_MISC_VAR: { sumCategory = RifEclipseSummaryAddress::SUMMARY_MISC; } break; default: CVF_ASSERT(false); break; } return RifEclipseSummaryAddress(sumCategory, quantityName, regionNumber, regionNumber2, wellGroupName, wellName, wellSegmentNumber, lgrName, cellI, cellJ, cellK); }