- buf = (int *)malloc( count * 3 * sizeof(int) );
- if (!buf) {
- MPI_Abort( comm, 1 );
- exit(1);
- }
- for (i=0; i<3*count; i++) buf[i] = -1;
- if (rank == source) {
- for (i=0; i<count; i++) buf[3*i] = i;
- MPI_Send( buf, count, newtype, dest, 0, comm );
- MPI_Send( buf, count, newtype, dest, 1, comm );
- }
- else if (rank == dest) {
- MPI_Recv( buf, count, MPI_INT, source, 0, comm, &status );
- for (i=0; i<count; i++) {
- if (buf[i] != i) {
- errs++;
- if (errs < 10) {
- printf( "buf[%d] = %d\n", i, buf[i] );
- }
- }
- }
- for (i=0; i<count*3; i++) buf[i] = -1;
- MPI_Recv( buf, count, newtype, source, 1, comm, &status );
- for (i=0; i<count; i++) {
- if (buf[3*i] != i) {
- errs++;
- if (errs < 10) {
- printf( "buf[3*%d] = %d\n", i, buf[i] );
- }
- }
- }
- }
+ buf = (int *) malloc(count * 3 * sizeof(int));
+ if (!buf) {
+ MPI_Abort(comm, 1);
+ }
+ for (i = 0; i < 3 * count; i++)
+ buf[i] = -1;
+ if (rank == source) {
+ for (i = 0; i < count; i++)
+ buf[3 * i] = i;
+ MPI_Send(buf, count, newtype, dest, 0, comm);
+ MPI_Send(buf, count, newtype, dest, 1, comm);
+ }
+ else if (rank == dest) {
+ MPI_Recv(buf, count, MPI_INT, source, 0, comm, &status);
+ for (i = 0; i < count; i++) {
+ if (buf[i] != i) {
+ errs++;
+ if (errs < 10) {
+ printf("buf[%d] = %d\n", i, buf[i]);
+ }
+ }
+ }
+ for (i = 0; i < count * 3; i++)
+ buf[i] = -1;
+ MPI_Recv(buf, count, newtype, source, 1, comm, &status);
+ for (i = 0; i < count; i++) {
+ if (buf[3 * i] != i) {
+ errs++;
+ if (errs < 10) {
+ printf("buf[3*%d] = %d\n", i, buf[i]);
+ }
+ }
+ }
+ }
+ free(buf);