--- branches/new_design/OOPSE-4/src/UseTheForce/ForceField.cpp 2004/11/12 17:40:03 1735 +++ branches/new_design/OOPSE-4/src/UseTheForce/ForceField.cpp 2004/11/15 23:00:32 1740 @@ -117,4 +117,36 @@ double ForceField::getRcutFromAtomType(AtomType* at) { } + +ifstrstream* ForceField::openForceFiledFile(const std::string& filename) { + std::string forceFieldFilename(filename); + ifstrstream* ffStream = new ifstrstream(); + + //try to open the force filed file in current directory first + ffStream.open(forceFieldFilename.c_str()); + if(!ffStream.is_open()){ + + forceFieldFilename = ffPath_ + "/" + forceFieldFilename; + ffStream.open( forceFieldFilename.c_str() ); + + //if current directory does not contain the force field file, + //try to open it in the path + if(!ffStream.is_open()){ + + sprintf( painCave.errMsg, + "Error opening the force field parameter file:\n" + "\t%s\n" + "\tHave you tried setting the FORCE_PARAM_PATH environment " + "variable?\n", + forceFieldFilename.c_str() ); + painCave.severity = OOPSE_ERROR; + painCave.isFatal = 1; + simError(); + } + } + + return ffStream; + +} + } //end namespace oopse