/*D
   MPI_Comm_create_errhandler - Create a communicator error handler

Synopsis:
.vb
int MPI_Comm_create_errhandler(MPI_Comm_errhandler_function *comm_errhandler_fn,
                               MPI_Errhandler *errhandler)
.ve

Input Parameters:
. comm_errhandler_fn - user defined error handling procedure (function)

Output Parameters:
. errhandler - MPI error handler (handle)

Notes:
The MPI Standard states that an implementation may make the output value
(errhandler) simply the address of the function.  However, the action of
'MPI_Errhandler_free' makes this impossible, since it is required to set the
value of the argument to 'MPI_ERRHANDLER_NULL'.  In addition, the actual
error handler must remain until all communicators that use it are
freed.

.N ThreadSafe

.N Fortran

.N Errors
.N MPI_SUCCESS
.N MPI_ERR_ARG
.N MPI_ERR_OTHER

D*/

/*D
   MPI_Errhandler_create - Creates an MPI-style errorhandler

Synopsis:
.vb
int MPI_Errhandler_create(MPI_Comm_errhandler_function *comm_errhandler_fn,
                          MPI_Errhandler *errhandler)
.ve

Input Parameters:
. comm_errhandler_fn - user defined error handling procedure (function)

Output Parameters:
. errhandler - MPI error handler (handle)

.N Removed
   The replacement for this routine is 'MPI_Comm_create_errhandler'.

.N ThreadSafe

.N Fortran

.N Errors
.N MPI_SUCCESS
.N MPI_ERR_ARG
.N MPI_ERR_OTHER

.seealso: MPI_Comm_create_errhandler, MPI_Errhandler_free
D*/

