if (offnodeP) {  QMP_info("Map: off-node communications required");
  operator()(const QDPType<T1,C1> & l)    {      QMP_TRACE("Map()");      C1 d = zero;  // For the moment, zero it out to help debugging//      if (srcenodes_num.size() != 2)      int dstnum = destnodes_num;      int srcnum = srcenodes_num;      T1 *send_buf = new T1[dstnum];  // QMP_allocate_aligned_memory(count)      T1 *recv_buf = new T1[srcnum];      QMP_msgmem_t msg[2];      QMP_msghandle_t mh_a[2], mh;      QMP_status_t err;      QMP_info("QMP_sendrecv_wait: send = 0x%x  recv = 0x%x\n",send_buf,recv_buf);      msg[0]  = QMP_declare_msgmem(send_buf, dstnum*sizeof(T1));      msg[1]  = QMP_declare_msgmem(recv_buf, srcnum*sizeof(T1));      mh_a[0] = QMP_declare_send_to(msg[0], 0);      mh_a[1] = QMP_declare_receive_from(msg[1], 0);      mh      = QMP_declare_multiple(mh_a, 2);      // Launch the faces      if ((err = QMP_start(mh)) != QMP_SUCCESS)	QMP_error_exit(QMP_error_string(err));      // Do an internal copy            // Wait on the faces      if ((err = QMP_wait(mh)) != QMP_SUCCESS)	QMP_error_exit(QMP_error_string(err));      QMP_free_msghandle(mh_a[1]);      QMP_free_msghandle(mh_a[0]);      QMP_free_msghandle(mh);      QMP_free_msgmem(msg[1]);      QMP_free_msgmem(msg[0]);      QMP_info("shift(QDPType,%d)\n",isign);      QMP_TRACE("exiting Map()");      return d;    }