This is to designate a subset of the compute communicator processes as the ones that actually stage I/O. For serial I/O (e.g., sequential-access Fortran unformatted I/O) one can select the process 0 as the staging process. For parallel I/O, you can select a subset of processes from all the compute processes to achieve an optimal I/O bandwidth.
There are a few ways to create I/O staging communicators out of the compute communicator (the handle for the created I/O staging communicator object is returned in iocomm):
A single staging communicator object can be used for all subsequent I/O. But a flexible arrangement is possible. For example, if the maximum read and write rates can be obtained with different numbers of processes on a machine, you may want to define two I/O staging communicator objects, one for reads and the other for writes.