:ref:`MPI_Comm_get_parent` |mdash| Returns the parent intercommunicator of current spawned process.
#include <mpi.h>
int MPI_Comm_get_parent(MPI_Comm *parent)
USE MPI
! or the older form: INCLUDE 'mpif.h'
MPI_COMM_GET_PARENT(PARENT, IERROR)
INTEGER PARENT, IERROR
USE mpi_f08
MPI_Comm_get_parent(parent, ierror)
TYPE(MPI_Comm), INTENT(OUT) :: parent
INTEGER, OPTIONAL, INTENT(OUT) :: ierror
parent
: The parent communicator (handle).ierror
: Fortran only: Error status (integer).
If a process was started with :ref:`MPI_Comm_spawn` or :ref:`MPI_Comm_spawn_multiple`, :ref:`MPI_Comm_get_parent` returns the "parent" intercommunicator of the current process. This parent intercommunicator is created implicitly inside of :ref:`MPI_Init` and is the same intercommunicator returned by the spawn call made in the parents.
If the process was not spawned, :ref:`MPI_Comm_get_parent` returns MPI_COMM_NULL.
After the parent communicator is freed or disconnected, :ref:`MPI_Comm_get_parent` returns MPI_COMM_NULL.
:ref:`MPI_Comm_get_parent` returns a handle to a single intercommunicator. Calling :ref:`MPI_Comm_get_parent` a second time returns a handle to the same intercommunicator. Freeing the handle with :ref:`MPI_Comm_disconnect` or :ref:`MPI_Comm_free` will cause other references to the intercommunicator to become invalid (dangling). Note that calling :ref:`MPI_Comm_free` on the parent communicator is not useful.
.. seealso::
* :ref:`MPI_Comm_spawn`
* :ref:`MPI_Comm_spawn_multiple`