bfread((void *)&(d.elem()), sizeof(typename WordType<T>::Type_t), sizeof(T) / sizeof(typename WordType<T>::Type_t), bin.get());
if (bfread((void *)&d, sizeof(T), 1, bin.get()) != 1) QDP_error_exit("BinaryReader: failed to read");
BinaryReader& read(BinaryReader& bin, OScalar<T>& d){  if (Layout::primaryNode())     bfread((void *)&(d.elem()), sizeof(typename WordType<T>::Type_t), 	   sizeof(T) / sizeof(typename WordType<T>::Type_t), bin.get());   // Now broadcast back out to all nodes  Internal::broadcast(d);  return bin;}