F2PY user guide and reference manual#
The purpose of the F2PY –Fortran to Python interface generator– utility
is to provide a connection between Python and Fortran. F2PY distributed as part
of NumPy (numpy.f2py) and once installed is also available as a standalone
command line tool. Originally created by Pearu Peterson, and older changelogs
are in the historical reference.
F2PY facilitates creating/building native Python C/API extension modules that make it possible
to call Fortran 77/90/95 external subroutines and Fortran 90/95 module subroutines as well as C functions;
to access Fortran 77
COMMONblocks and Fortran 90/95 module data, including allocatable arrays
from Python.
Note
Fortran 77 is essentially feature complete, and an increasing amount of
Modern Fortran is supported within F2PY. Most iso_c_binding interfaces
can be compiled to native extension modules automatically with f2py.
Bug reports welcome!
F2PY can be used either as a command line tool f2py or as a Python
module numpy.f2py. While we try to provide the command line tool as part
of the numpy setup, some platforms like Windows make it difficult to
reliably put the executables on the PATH. If the f2py command is not
available in your system, you may have to run it as a module:
python -m numpy.f2py
Using the python -m invocation is also good practice if you have multiple
Python installs with NumPy in your system (outside of virtual environments) and
you want to ensure you pick up a particular version of Python/F2PY.
If you run f2py with no arguments, and the line numpy Version at the
end matches the NumPy version printed from python -m numpy.f2py, then you
can use the shorter version. If not, or if you cannot run f2py, you should
replace all calls to f2py mentioned in this guide with the longer version.