MPI_COMM_CREATE_KEYVAL(3)MPI_COMM_CREATE_KEYVAL(3)NAMEMPI_Comm_create_keyval - Generates a new communicator attribute key
SYNOPSIS
C:
#include <mpi.h>
int MPI_Comm_create_keyval ( comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval,
extra_state)
MPI_Comm_copy_attr_function *comm_copy_attr_fn;
MPI_Comm_delete_attr_function *comm_delete_attr_fn;
int *comm_keyval;
void *extra_state;
Fortran:
INCLUDE "mpif.h" (or USE MPI)
EXTERNAL comm_copy_attr_fn, comm_delete_attr_fn
INTEGER keyval, ierror
INTEGER(KIND=MPI_ADDRESS_KIND) extra_state
CALL MPI_COMM_CREATE_KEYVAL(comm_copy_attr_fn, comm_delete_attr_fn, comm_keyval,
extra_state, ierror)
STANDARDS
This function is defined in the MPI-2 standard.
This release implements the MPI 1.2 standard, as documented by the MPI
Forum in the spring 1997 release of MPI: A Message Passing Interface
Standard.
DESCRIPTION
The MPI_Comm_create_keyval routine generates a new communicator attribute
key. This function replaces MPI_Keyval_create which has been deprecated.
This routine accepts the following parameters:
comm_copy_attr_fn
Specifies the copy callback function for keyval
comm_delete_attr_fn
Specifies the delete callback function for keyval
extra_state Specifies an extra state for callback functions
keyval Returns the key value for future access (integer)
Page 1
MPI_COMM_CREATE_KEYVAL(3)MPI_COMM_CREATE_KEYVAL(3)
ierror Specifies the return code value for successful completion,
which is in MPI_SUCCESS. MPI_SUCCESS is defined in the
mpif.h file.
NOTES
Key values are global (available for any and all communicators).
There are subtle differences between C and Fortran that require that
comm_copy_attr_fn be written in the same language as that from which
MPI_Comm_create_keyval is called. This should not be a problem for most
users; only programers using both Fortran and C in the same program need
to be sure that they follow this rule. Also, the attribute types for
Fortran call back functions are integers of kind MPI_ADDRESS_KIND. Note
this is different from the callback routines used with the deprecated
MPI_Keyval_create routine. Thus, replacement of calls to the Fortran
version of MPI_Keyval_create with MPI_Comm_create_keyval may require
changes to the accompanying callback functions.
Page 2