for(int j=0; j < d.size2(); ++j) for(int i=0; i < d.size1(); ++i) write(bin, d[j][i]);  return bin;
for(int j=0; j < s1.size1(); ++j) for(int i=0; i < s1.size2(); ++i) { std::ostringstream ost; if (Layout::primaryNode()) ost << s << "[ " << i << " ][ " << j << " ]"; write(nml, ost.str(), s1[i][j]); } return nml;
BinaryWriter& write(BinaryWriter& bin, const multi2d<T>& d){  for(int j=0; j < d.size2(); ++j)    for(int i=0; i < d.size1(); ++i)      write(bin, d[j][i]);  return bin;}