In many applications, the most natural computer language to write in may be different from the most natural language to provide a library in. For example, many scientific computing applications are written in Fortran, while many software libraries-particularly those dealing with complicated data structures or dynamic memory management-are written in C. Providing an interface so that Fortran programs can call routines written in C can be a tedious and error-prone process. We describe here a tool that automatically generates a Fortran-callable wrapper for routines written in C, using only a small, structured comment and the declaration of the routine in C. This tool has been used on two large software packages, PETSc and the MPICH implementat...