/*D
   MPI_Session_init - Initialize an MPI session

Synopsis:
.vb
int MPI_Session_init(MPI_Info info, MPI_Errhandler errhandler,
                     MPI_Session *session)
.ve

Input Parameters:
+ info - info object to specify thread support level and MPI implementation specific resources (handle)
- errhandler - error handler to invoke in the event that an error is encountered during this function call (handle)

Output Parameters:
. session - new session (handle)

Info Hints:
    Following keys are supported:
    "thread_level" - Set MPI thread level. The default is MPI_THREAD_MULTIPLE.
                     Note this is different from the default in MPI_Init.
                     MPICH does not support different thread levels in different
                     sessions. The provided thread level will be the one set by
                     the first MPI_Session_init, MPI_Init, or MPI_Init_thread.
    "mpi_memory_alloc_kinds" - Set the memory allocation kinds to be used by
                               by the calling MPI process on MPI objects derived
                               from the Session.

.N ThreadSafe

.N Fortran

.N Errors
.N MPI_SUCCESS
.N MPI_ERR_ARG
.N MPI_ERR_ERRHANDLER
.N MPI_ERR_INFO
.N MPI_ERR_OTHER

D*/

