diff --git a/Grid/parallelIO/IldgIO.h b/Grid/parallelIO/IldgIO.h index 5f0e7ffc..518a84a9 100644 --- a/Grid/parallelIO/IldgIO.h +++ b/Grid/parallelIO/IldgIO.h @@ -167,14 +167,6 @@ namespace QCD { //////////////////////////////////////////////////////////////////////////////////// class GridLimeReader : public BinaryIO { public: - // error codes - enum - { - LIME_READ_SUCCESS = 0, - LIME_READ_CHECKSUM = 1, - LIME_READ_FAILURE = -1 - }; - /////////////////////////////////////////////////// // FIXME: format for RNG? Now just binary out instead /////////////////////////////////////////////////// @@ -209,7 +201,7 @@ class GridLimeReader : public BinaryIO { // Read a generic lattice field and verify checksum //////////////////////////////////////////// template - int readLimeLatticeBinaryObject(Lattice &field, std::string record_name, const bool fatalChecksum = true) + void readLimeLatticeBinaryObject(Lattice &field,std::string record_name) { typedef typename vobj::scalar_object sobj; scidacChecksum scidacChecksum_; @@ -225,47 +217,36 @@ class GridLimeReader : public BinaryIO { // std::cout << GridLogMessage<< " readLimeObject seeking "<< record_name <<" found record :" <_gsites; + // std::cout << GridLogMessage<< " readLimeLatticeBinaryObject matches ! " <_gsites<_gsites; - assert(PayloadSize == file_bytes);// Must match or user error + // std::cout << "R sizeof(sobj)= " <_gsites< munge; - BinaryIO::readLatticeObject< vobj, sobj >(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb); - std::cout << GridLogMessage << "SciDAC checksum A " << std::hex << scidac_csuma << std::dec << std::endl; - std::cout << GridLogMessage << "SciDAC checksum B " << std::hex << scidac_csumb << std::dec << std::endl; - ///////////////////////////////////////////// - // Insist checksum is next record - ///////////////////////////////////////////// - readLimeObject(scidacChecksum_,std::string("scidacChecksum"),std::string(SCIDAC_CHECKSUM)); + assert(PayloadSize == file_bytes);// Must match or user error - ///////////////////////////////////////////// - // Verify checksums - ///////////////////////////////////////////// - bool checksumCorrect = (scidacChecksumVerify(scidacChecksum_,scidac_csuma,scidac_csumb) == 1); + uint64_t offset= ftello(File); + // std::cout << " ReadLatticeObject from offset "< munge; + BinaryIO::readLatticeObject< vobj, sobj >(field, filename, munge, offset, format,nersc_csum,scidac_csuma,scidac_csumb); + std::cout << GridLogMessage << "SciDAC checksum A " << std::hex << scidac_csuma << std::dec << std::endl; + std::cout << GridLogMessage << "SciDAC checksum B " << std::hex << scidac_csumb << std::dec << std::endl; + ///////////////////////////////////////////// + // Insist checksum is next record + ///////////////////////////////////////////// + readLimeObject(scidacChecksum_,std::string("scidacChecksum"),std::string(SCIDAC_CHECKSUM)); - if (fatalChecksum) - { - assert(checksumCorrect); - } - else if (!checksumCorrect) - { - return LIME_READ_CHECKSUM; - } - - return LIME_READ_SUCCESS; + ///////////////////////////////////////////// + // Verify checksums + ///////////////////////////////////////////// + assert(scidacChecksumVerify(scidacChecksum_,scidac_csuma,scidac_csumb)==1); + return; } } - - return LIME_READ_FAILURE; } //////////////////////////////////////////// // Read a generic serialisable object @@ -532,7 +513,7 @@ class ScidacReader : public GridLimeReader { // Write generic lattice field in scidac format //////////////////////////////////////////////// template - int readScidacFieldRecord(Lattice &field, userRecord &_userRecord, const bool fatalChecksum = true) + void readScidacFieldRecord(Lattice &field,userRecord &_userRecord) { typedef typename vobj::scalar_object sobj; GridBase * grid = field._grid; @@ -550,10 +531,8 @@ class ScidacReader : public GridLimeReader { readLimeObject(header ,std::string("FieldMetaData"),std::string(GRID_FORMAT)); // Open message readLimeObject(_userRecord,_userRecord.SerialisableClassName(),std::string(SCIDAC_RECORD_XML)); readLimeObject(_scidacRecord,_scidacRecord.SerialisableClassName(),std::string(SCIDAC_PRIVATE_RECORD_XML)); - - return readLimeLatticeBinaryObject(field, std::string(ILDG_BINARY_DATA), fatalChecksum); + readLimeLatticeBinaryObject(field,std::string(ILDG_BINARY_DATA)); } - void skipPastBinaryRecord(void) { std::string rec_name(ILDG_BINARY_DATA); while ( limeReaderNextRecord(LimeR) == LIME_SUCCESS ) {