.\"Copyright 2006-2008 Sun Microsystems, Inc.
.\" Copyright (c) 1996 Thinking Machines Corporation
.TH MPI_Win_create_errhandler 3 "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
.SH NAME
\fBMPI_Win_create_errhandler\fP \- Creates an error handler for a window.

.SH SYNTAX
.ft R
.SH C Syntax
.nf
#include <mpi.h>
int MPI_Win_create_errhandler(MPI_Win_errhandler_fn *\fIfunction\fP, 
	MPI_Errhandler *\fIerrhandler\fP) 

.SH Fortran Syntax
.nf
INCLUDE 'mpif.h'
MPI_WIN_CREATE_ERRHANDLER(\fIFUNCTION, ERRHANDLER, IERROR\fP) 
	EXTERNAL \fIFUNCTION\fP 
	INTEGER \fIERRHANDLER, IERROR\fP 

.SH C++ Syntax
.nf
#include <mpi.h>
static MPI::Errhandler MPI::Win::Create_errhandler(MPI::Win::
	Errhandler_fn* \fIfunction\fP) 

.SH INPUT PARAMETER
.ft R
.TP 1i
function
User-defined error-handling procedure (function). 

.SH OUTPUT PARAMETERS
.ft R
.TP 1i
errhandler
MPI error handler (handle).
.TP 1i
IERROR
Fortran only: Error status (integer). 

.SH DESCRIPTION
.ft R
MPI_Win_create_errhandler should be, in C, a function of type MPI_Win_errhandler_fn, which is defined as 
.sp
.nf
typedef void MPI_Win_errhandler_fn(MPI Win *, int *, ...);
.fi
.sp
The first argument is the window in use, the second is the error code to be returned. 
.sp
In Fortran, the user routine should be of the form:
.sp
.nf
SUBROUTINE WIN_ERRHANDLER_FN(WIN, ERROR_CODE, ...)
    INTEGER WIN, ERROR_CODE
.fi
.sp
In C++, the user routine should be of the form:
.sp
.nf
typedef void MPI::Win::Errhandler_fn(MPI::Win &, int *, ...);
.fi

.SH ERRORS
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
.sp
Before the error value is returned, the current MPI error handler is
called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.