ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/branches/development/src/brains/SimCreator.cpp
(Generate patch)

Comparing branches/development/src/brains/SimCreator.cpp (file contents):
Revision 1803 by gezelter, Wed Oct 3 14:20:07 2012 UTC vs.
Revision 1825 by gezelter, Wed Jan 9 19:27:52 2013 UTC

# Line 44 | Line 44
44   * @file SimCreator.cpp
45   * @author tlin
46   * @date 11/03/2004
47 * @time 13:51am
47   * @version 1.0
48   */
49   #include <exception>
# Line 255 | Line 254 | namespace OpenMD {
254      std::string mdRawData;
255      int metaDataBlockStart = -1;
256      int metaDataBlockEnd = -1;
257 <    int i;
257 >    int i, j;
258      streamoff mdOffset;
259      int mdFileVersion;
260  
261 +    // Create a string for embedding the version information in the MetaData
262 +    std::string version;
263 +    version.assign("## Last run using OpenMD Version: ");
264 +    version.append(OPENMD_VERSION_MAJOR);
265 +    version.append(".");
266 +    version.append(OPENMD_VERSION_MINOR);
267  
268 +    std::string svnrev;
269 +    //convert a macro from compiler to a string in c++
270 +    STR_DEFINE(svnrev, SVN_REV );
271 +    version.append(" Revision: ");
272 +    // If there's no SVN revision, just call this the RELEASE revision.
273 +    if (!svnrev.empty()) {
274 +      version.append(svnrev);
275 +    } else {
276 +      version.append("RELEASE");
277 +    }
278 +  
279   #ifdef IS_MPI            
280      const int masterNode = 0;
281      if (worldRank == masterNode) {
# Line 354 | Line 370 | namespace OpenMD {
370  
371        mdRawData.clear();
372  
373 +      bool foundVersion = false;
374 +
375        for (int i = 0; i < metaDataBlockEnd - metaDataBlockStart - 1; ++i) {
376          mdFile_.getline(buffer, bufferSize);
377 <        mdRawData += buffer;
377 >        std::string line = trimLeftCopy(buffer);
378 >        j = CaseInsensitiveFind(line, "## Last run using OpenMD Version");
379 >        if (static_cast<size_t>(j) != string::npos) {
380 >          foundVersion = true;
381 >          mdRawData += version;
382 >        } else {
383 >          mdRawData += buffer;
384 >        }
385          mdRawData += "\n";
386        }
387 <
387 >      
388 >      if (!foundVersion) mdRawData += version + "\n";
389 >      
390        mdFile_.close();
391  
392   #ifdef IS_MPI
# Line 941 | Line 968 | namespace OpenMD {
968    }
969    
970    void SimCreator::loadCoordinates(SimInfo* info, const std::string& mdFileName) {
944    Globals* simParams;
945
946    simParams = info->getSimParams();
971      
972      DumpReader reader(info, mdFileName);
973      int nframes = reader.getNFrames();
974 <
974 >    
975      if (nframes > 0) {
976        reader.readFrame(nframes - 1);
977      } else {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines