diff --git a/src/Distribution/Distribution.cpp b/src/Distribution/Distribution.cpp index 160e4ffec3713801cdf9c1b9e5534895c01a6ee3..9fcf78a14567143cd9a3ba0fd1c2a92555503983 100644 --- a/src/Distribution/Distribution.cpp +++ b/src/Distribution/Distribution.cpp @@ -1011,13 +1011,17 @@ void Distribution::createDistributionFromFile(size_t /*numberOfParticles*/, doub // Data input file is only read by node 0. std::ifstream inputFile; std::string fileName = Attributes::getString(itsAttr[Attrib::Distribution::FNAME]); + bool failedOpen = 0; if (Ippl::myNode() == 0) { inputFile.open(fileName.c_str()); + failedOpen = static_cast<bool>(inputFile.fail()); } - if (inputFile.fail()) { + reduce(failedOpen,failedOpen,OpAddAssign()); + if (failedOpen) { throw OpalException("Distribution::createDistributionFromFile", "Open file operation failed, please check if \"" - + fileName + "\" really exists."); + + fileName + + "\" really exists."); } size_t numberOfParticlesRead = getNumberOfParticlesInFile(inputFile);