((rank + size - 1) % size), tag + i, comm, &status);
// compute result to rbuf+recv_offset
- smpi_op_apply(op, (char *) sbuf + recv_offset, (char *) rbuf + recv_offset,
+ if(op!=MPI_OP_NULL) op->apply( (char *) sbuf + recv_offset, (char *) rbuf + recv_offset,
&count, &dtype);
}