diff --git a/src/tools/PDB.cpp b/src/tools/PDB.cpp index b42d8fd06b896eaedb1af343000522047b20be0a..77e7e464df9e4a8ed982cfaa7eee611ec19803e8 100644 --- a/src/tools/PDB.cpp +++ b/src/tools/PDB.cpp @@ -546,8 +546,12 @@ void PDB::print( const double& lunits, SetupMolInfo* mymoldat, OFile& ofile, con } } else { for(unsigned i=0; i<positions.size(); ++i) { - ofile.printf("ATOM %5d %-4s %3s %4u %8.3f%8.3f%8.3f%6.2f%6.2f\n", - numbers[i].serial(), mymoldat->getAtomName(numbers[i]).c_str(), + std::array<char,6> at; + const char* msg = h36::hy36encode(5,numbers[i].serial(),&at[0]); + plumed_assert(msg==nullptr) << msg; + at[5]=0; + ofile.printf("ATOM %s %-4s %3s %4u %8.3f%8.3f%8.3f%6.2f%6.2f\n", + &at[0], mymoldat->getAtomName(numbers[i]).c_str(), mymoldat->getResidueName(numbers[i]).c_str(), mymoldat->getResidueNumber(numbers[i]), lunits*positions[i][0], lunits*positions[i][1], lunits*positions[i][2], occupancy[i], beta[i] );