The C and Fortran bindings of MPI_Pcontrol are:
int MPI_Pcontrol(const int level, ...)
MPI_Pcontrol(level)
INTEGER, INTENT(IN) :: level
Being a variadic function in C, there is no way to call the C function from Fortran, so the only option is to call the Fortran API function with the limitation of having only a single integer value.
The OMPT interface has a similar function defined as omp_control_tool(int command, int modifier, void* arg). Using bind-c, Fortran applications can use this function to pass information like a string to the tool.
The idea is to introduce a new MPI_P function to pass information to tools:
int MPI_Px(int level, void* arg)
Suggested names in the discussion: MPI_Pcontrol_tool, MPI_Pcontrol_x, MPI_Pinstrument
The C and Fortran bindings of MPI_Pcontrol are:
Being a variadic function in C, there is no way to call the C function from Fortran, so the only option is to call the Fortran API function with the limitation of having only a single integer value.
The OMPT interface has a similar function defined as
omp_control_tool(int command, int modifier, void* arg). Using bind-c, Fortran applications can use this function to pass information like a string to the tool.The idea is to introduce a new MPI_P function to pass information to tools:
Suggested names in the discussion:
MPI_Pcontrol_tool,MPI_Pcontrol_x,MPI_Pinstrument