#include "mpi.h"
int MPI_Buffer_detach( bufferptr, size )
void *bufferptr;
int *size;
int size, mysize, idummy;
void *ptr, *myptr, *dummy;
MPI_Buffer_detach( &ptr, &size );
MPI_Buffer_attach( myptr, mysize );
...
... library code ...
...
MPI_Buffer_detach( &dummy, &idummy );
MPI_Buffer_attach( ptr, size );
This is much like the action of the Unix signal routine and has the same strengths (it is simple) and weaknesses (it only works for nested usages).
All MPI objects (e.g., MPI_Datatype, MPI_Comm) are of type INTEGER in Fortran.
The Fortran binding for this routine is different. Because Fortran does not have pointers, it is impossible to provide a way to use the output of this routine to exchange buffers. In this case, only the size field is set.
Location:buffree.c