Thanks for the suggestions, @shahmoradi and @certik! I did some further investigations with the cffi, ctypes and Cython. I would say that from my perspective they are all fairly similar, but maybe the differences become more apparent when working with much larger APIs. The most pragmatic approach seems to be to just pre-build the platform specific shared library file and include that with the Python package in a directory. Cython and cffi have the possibility to build module files with setup tools but I haven’t found any way to link the Fortran shared library statically. So you end up having to build wheels and patch them with tools like auditwheel and delocate (with no real option on Windows). Here it would be neat if fpm would have an option to build shared libraries. At the moment I have been doing that with CMake. If you guys would be interested in writing something up on Fortran-C interfacing for the Fortran-lang documentation I would be happy to contribute.
I think that LFortran is a really good idea and would love to see that extended to automatic interface generation. Personally I prototype all my Python code in Jupyter Lab and have found that it dramatically increases my productivity. When LFortran starts supporting arrays I see myself working mostly there and then transferring the code to an IDE for refactoring.