Once an I/O routine completes, it is safe to free any opaque
objects passed as arguments to that routine.
For example,
the comm and info used in an MPI_FILE_OPEN,
or the etype and filetype
used in an MPI_FILE_SET_VIEW,
can be freed without affecting access to the file.
Note that for nonblocking routines
and split collective operations,
the operation must be completed
before it is safe to reuse data buffers passed as arguments.
As in communication, datatypes must be committed before they can
be used in file manipulation or data access operations.
For example, the etype and filetype must be
committed before calling MPI_FILE_SET_VIEW,
and the datatype must be committed before calling
MPI_FILE_READ or MPI_FILE_WRITE.
MPI-Standard for MARMOT