To avoid interference with the MPI communication layers, which may be present in the coupled programs, CommLib uses client-server inter-communication which is an MPI2 feature. This allows direct exchange of data between processes belonging to different communicators, i.e. the COMM_WORLD communicators of the independent programs. Moreover, we can exploit the features of the communication fabric (e.g. Infiniband or Intel Omni-Path architectures) available on the system to reduce the communication overhead. Indeed, our benchmarks show that the overhead introduced by CommLib is negligible compared to the wall time even for large systems (see Sec. 4). The CommLib can be extended to use other communication mechanisms in cases where MPI2 is not available without affecting its use in the coupled programs.