diff --git a/src/MOLECULE/angle_table.cpp b/src/MOLECULE/angle_table.cpp index b53ba799f7..4890a11975 100644 --- a/src/MOLECULE/angle_table.cpp +++ b/src/MOLECULE/angle_table.cpp @@ -506,9 +506,9 @@ void AngleTable::param_extract(Table *tb, char *line) tb->fpflag = 0; tb->theta0 = MY_PI; - ValueTokenizer values(line); - try { + ValueTokenizer values(line); + while (values.has_next()) { std::string word = values.next_string(); diff --git a/src/MOLECULE/bond_table.cpp b/src/MOLECULE/bond_table.cpp index 5833b62267..66ac30df2c 100644 --- a/src/MOLECULE/bond_table.cpp +++ b/src/MOLECULE/bond_table.cpp @@ -476,21 +476,26 @@ void BondTable::param_extract(Table *tb, char *line) tb->fpflag = 0; tb->r0 = 0.0; - ValueTokenizer values(line); - while (values.has_next()) { - std::string word = values.next_string(); + try { + ValueTokenizer values(line); - if (word == "N") { - tb->ninput = values.next_int(); - } else if (word == "FP") { - tb->fpflag = 1; - tb->fplo = values.next_double(); - tb->fphi = values.next_double(); - } else if (word == "EQ") { - tb->r0 = values.next_double(); - } else { - error->one(FLERR,"Invalid keyword in bond table parameters"); + while (values.has_next()) { + std::string word = values.next_string(); + + if (word == "N") { + tb->ninput = values.next_int(); + } else if (word == "FP") { + tb->fpflag = 1; + tb->fplo = values.next_double(); + tb->fphi = values.next_double(); + } else if (word == "EQ") { + tb->r0 = values.next_double(); + } else { + error->one(FLERR,"Invalid keyword in bond table parameters"); + } } + } catch(TokenizerException & e) { + error->one(FLERR, e.what()); } if (tb->ninput == 0) error->one(FLERR,"Bond table parameters did not set N"); diff --git a/src/pair_table.cpp b/src/pair_table.cpp index 4ed07d937a..312420c354 100644 --- a/src/pair_table.cpp +++ b/src/pair_table.cpp @@ -557,25 +557,29 @@ void PairTable::param_extract(Table *tb, char *line) tb->rflag = NONE; tb->fpflag = 0; - ValueTokenizer values(line); + try { + ValueTokenizer values(line); - while (values.has_next()) { - std::string word = values.next_string(); - if (word == "N") { - tb->ninput = values.next_int(); - } else if ((word == "R") || (word == "RSQ") || (word == "BITMAP")) { - if (word == "R") tb->rflag = RLINEAR; - else if (word == "RSQ") tb->rflag = RSQ; - else if (word == "BITMAP") tb->rflag = BMP; - tb->rlo = values.next_double(); - tb->rhi = values.next_double(); - } else if (word == "FPRIME") { - tb->fpflag = 1; - tb->fplo = values.next_double(); - tb->fphi = values.next_double(); - } else { - error->one(FLERR,fmt::format("Invalid keyword {} in pair table parameters", word).c_str()); + while (values.has_next()) { + std::string word = values.next_string(); + if (word == "N") { + tb->ninput = values.next_int(); + } else if ((word == "R") || (word == "RSQ") || (word == "BITMAP")) { + if (word == "R") tb->rflag = RLINEAR; + else if (word == "RSQ") tb->rflag = RSQ; + else if (word == "BITMAP") tb->rflag = BMP; + tb->rlo = values.next_double(); + tb->rhi = values.next_double(); + } else if (word == "FPRIME") { + tb->fpflag = 1; + tb->fplo = values.next_double(); + tb->fphi = values.next_double(); + } else { + error->one(FLERR,fmt::format("Invalid keyword {} in pair table parameters", word).c_str()); + } } + } catch (TokenizerException & e) { + error->one(FLERR, e.what()); } if (tb->ninput == 0) error->one(FLERR,"Pair table parameters did not set N");