« Return to documentation listing
Table of Contents
#include <mpi.h> int MPI_Comm_set_attr(MPI_Comm comm, int comm_keyval, void *attribute_val)
USE MPI ! or the older form: INCLUDE ’mpif.h’ MPI_COMM_SET_ATTR(COMM, COMM_KEYVAL, ATTRIBUTE_VAL, IERROR) INTEGER COMM, COMM_KEYVAL, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) ATTRIBUTE_VAL
USE mpi_f08 MPI_Comm_set_attr(comm, comm_keyval, attribute_val, ierror) TYPE(MPI_Comm), INTENT(IN) :: comm INTEGER, INTENT(IN) :: comm_keyval INTEGER(KIND=MPI_ADDRESS_KIND), INTENT(IN) :: attribute_val INTEGER, OPTIONAL, INTENT(OUT) :: ierror
This function replaces MPI_Attr_put, the use of which is deprecated. The C binding is identical. The Fortran binding differs in that attribute_val is an address-sized integer.
INTEGER*MPI_ADDRESS_KIND ATTRIBUTE_VAL
where MPI_ADDRESS_KIND is a constant defined in mpif.h and gives the length of the declared integer in bytes.
The type of the attribute value depends on whether C or Fortran is being used. In C, an attribute value is a pointer (void *); in Fortran, it is a single, address-size integer system for which a pointer does not fit in an integer.
If an attribute is already present, the delete function (specified when the corresponding keyval was created) will be called.
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.