text: #include <mpi.h>
  #include <stdio.h>
  int main(int argc, char *argv[]) {
      int numtasks, rank, dest, source, rc, count, tag=1;
      // char inmsg, outmsg='Y';
      double inmsg = 50.5;
      double outmsg = 3.2;
      MPI_Status Stat;
      MPI_Init(&argc,&argv);
      MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
      MPI_Comm_rank(MPI_COMM_WORLD, &rank);
      if (rank == 0) {
          dest = 1;
          source = 1;
          // rc= MPI_Send(&outmsg, 1, MPI_CHAR, dest, tag, MPI_COMM_WORLD);
          // rc= MPI_Recv(&inmsg, 1, MPI_CHAR, source, tag, MPI_COMM_WORLD,&Stat);
          rc= MPI_Send(&outmsg, 1, MPI_DOUBLE, dest, tag, MPI_COMM_WORLD);
          rc= MPI_Recv(&inmsg, 1, MPI_DOUBLE, source, tag, MPI_COMM_WORLD, &Stat);
      }
      else if (rank == 1) {
          dest = 0;
          source = 0;
          rc= MPI_Recv(&inmsg, 1, MPI_DOUBLE, source, tag, MPI_COMM_WORLD, &Stat);
          printf ("Task 1: Received '%f' \n", inmsg);
          rc= MPI_Send(&outmsg, 1, MPI_DOUBLE, dest, tag, MPI_COMM_WORLD);
      }  
      rc= MPI_Get_count(&Stat, MPI_DOUBLE, &count);
      printf("Task%d: Received %d double(s) from task %d with tag %d \n",
      rank, count, Stat.MPI_SOURCE, Stat.MPI_TAG);
      MPI_Finalize();
      return(0);
  }