The main value is that Fortran intrinsically knows
about both Fortran and C types, whereas C knows nothing
about Fortran types. Hence, it is much safer and portable
to use Fortran to write any code that involves a Fortran
type. For most subroutines, one layer of Fortran wrappers
is enough. For subroutines with choice buffers, however, we
have to write another layer of wrappers in C to decode the
C descriptor for the choice buffer before calling the backend
MPI C libraries. Thus, we designed an F08 binding
framework embodied by the following directory tree: