I gave a presentation on using derived types defined in Fortran via iso_c_binding in C and other languages (Using objects across language boundaries — Fortran OOP Seminar Series). It also links in the summary to two production projects which make of this feature in quite some different way.
However, for both cases only one of the languages needs full access to the internals, while the other is using a rather opaque representation and performing actions via API calls.
The question in the title is somewhat ambiguous. Are you interested in examples of Fortran apps/libraries calling C, or C apps/libraries which call Fortran? Personally, I’d say the former is more common; in the other direction it’s more common to see Python calling Fortran via C-conforming interfaces. But there’s still a lot of code in the wild which doesn’t use the standard interoperability, LAPACK is one of them.
A few projects I used as stepping stones to learn about Fortran-C interoperability include:
I also have snippets of code showing Fortran bindings to parts of nanoflann (C++), BLIS (C), Eigen++ (C++), and the C standard library, and the C++ standard template library. For one project I connected the widgets in a Python Jupyter notebook to an eigenvalue computation in Fortran via a Cython bridge.