#include "mpi.h" 
#include "nxtval.h" 
#include <stdio.h> 
 
int main( int argc, char *argv[] ) 
{ 
  MPI_Comm counter_comm, worker_comm; 
 
  MPI_Init( &argc, &argv ); 
   
  MPE_Counter_create( MPI_COMM_WORLD, &worker_comm, &counter_comm ); 
   
  if (worker_comm != MPI_COMM_NULL) { 
    /* I am one of the workers; the master doesn't exit create until 
       MPE_Counter_free is called */ 
    int value, rank; 
    MPI_Comm_rank( counter_comm, &rank ); 
    MPE_Counter_nxtval( counter_comm, &value ); 
    printf( "[%d] received value %d\n", rank, value ); 
    MPE_Counter_free( &worker_comm, &counter_comm ); 
  } 
 
  MPI_Finalize( ); 
  return 0; 
}