In MPI-1.1, it is explicitly stated that an implementation is allowed to require that the arguments argc and argv passed by an application to MPI_INIT in C be the same arguments passed into the application as the arguments to main. In MPI-2 implementations are not allowed to impose this requirement. Conforming implementations of MPI are required to allow applications to pass NULL for both the argc and argv arguments of main. In C++, there is an alternative binding for MPI::Init that does not have these arguments at all.
 
 
 
 Rationale.  
 
In some applications, libraries may be making the call to  MPI_Init,  
and may not have access to  argc and  argv from  main.  
It is anticipated that applications requiring special information about  
the environment or information supplied by  mpiexec can get that  
information from environment variables.  
 ( End of rationale.)