From f5edbe9c4b695fe0f1f1c7e4f863cef21f0854f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atgeirr=20Fl=C3=B8=20Rasmussen?= Date: Tue, 3 Jan 2012 16:06:15 +0100 Subject: [PATCH] Improved robustness of WCONINJE and WCONPROD reading. --- opm/core/eclipse/SpecialEclipseFields.hpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/opm/core/eclipse/SpecialEclipseFields.hpp b/opm/core/eclipse/SpecialEclipseFields.hpp index 1990f824..5cd51488 100644 --- a/opm/core/eclipse/SpecialEclipseFields.hpp +++ b/opm/core/eclipse/SpecialEclipseFields.hpp @@ -868,7 +868,7 @@ struct CompdatLine skin_factor_(0.0), D_factor_(-1e100), penetration_direct_("Z"), - r0_(0.0) + r0_(-1.0) { grid_ind_.resize(4); } @@ -1018,13 +1018,18 @@ struct WCONINJE : public SpecialBase double_data[2] = wconinje_line.BHP_limit_; double_data[4] = wconinje_line.VFP_table_number_; double_data[5] = wconinje_line.concentration_; - readDefaultedVectorData(is, double_data, 6); + const int num_to_read = 6; + int num_read = readDefaultedVectorData(is, double_data, num_to_read); wconinje_line.surface_flow_max_rate_ = double_data[0]; wconinje_line.fluid_volume_max_rate_ = double_data[1]; wconinje_line.BHP_limit_ = double_data[2]; wconinje_line.THP_limit_ = double_data[3]; wconinje_line.VFP_table_number_ = (int)double_data[4]; wconinje_line.concentration_ = double_data[5]; + // HACK! Ignore any further items + if (num_read == num_to_read) { + ignoreSlashLine(is); + } wconinje.push_back(wconinje_line); } } @@ -1127,7 +1132,8 @@ struct WCONPROD : public SpecialBase double_data[6] = wconprod_line.THP_limit_; double_data[7] = wconprod_line.VFP_table_number_; double_data[8] = wconprod_line.artif_lift_quantity_; - readDefaultedVectorData(is, double_data, 9); + const int num_to_read = 9; + int num_read = readDefaultedVectorData(is, double_data, num_to_read); wconprod_line.oil_max_rate_ = double_data[0]; wconprod_line.water_max_rate_ = double_data[1]; wconprod_line.gas_max_rate_ = double_data[2]; @@ -1138,6 +1144,11 @@ struct WCONPROD : public SpecialBase wconprod_line.VFP_table_number_ = (int)double_data[7]; wconprod_line.artif_lift_quantity_ = double_data[8]; wconprod.push_back(wconprod_line); + // HACK! Ignore any further items + if (num_read == num_to_read) { + ignoreSlashLine(is); + } + } }