|INOUT comm||communicator to be destroyed (handle)|
int MPI_Comm_free(MPI_Comm *comm)
TYPE(MPI_Comm), INTENT(INOUT) :: comm
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
INTEGER COMM, IERROR
This collective operation marks the communication object for deallocation. The handle is set to MPI_COMM_NULL. Any pending operations that use this communicator will complete normally; the object is actually deallocated only if there are no other active references to it. This call applies to intra- and inter-communicators. The delete callback functions for all cached attributes (see Section Caching ) are called in arbitrary order.
Advice to implementors.
A reference-count mechanism may be used: the reference count is incremented by each call to MPI_COMM_DUP or MPI_COMM_IDUP, and decremented by each call to MPI_COMM_FREE. The object is ultimately deallocated when the count reaches zero.
Though collective, it is anticipated that this operation will normally
be implemented to be local, though
debugging version of an MPI library might
choose to synchronize.
( End of advice to implementors.)