Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

An extension for IPython that help to use Fortran in your interactive session.

Project Description

Fortran magic

.. image::
:alt: Latest PyPI version

.. image::
:alt: Number of PyPI downloads

Compile and import symbols from a cell with Fortran code, using f2py.

The contents of the cell are written to a `.f90` file in the
directory `IPYTHONDIR/fortran` using a filename with the hash of the
code. This file is then compiled. The resulting module
is imported and all of its symbols are injected into the user's

:author: Martín Gaitán <>
:documentation: see `this notebook`__

__ documentation_
.. _documentation:


You can install or upgrade via pip

pip install -U fortran-magic

Basic usage

Once it's installed, you can load it with ``%load_ext fortranmagic``.
Then put your Fortran code in a cell started with the cell magic ``%%fortran``. For example::

In[2]: %load_ext fortranmagic

In[3]: %%fortran

subroutine f1(x, y, z)
real, intent(in) :: x,y
real, intent(out) :: z

z = sin(x+y)

end subroutine f1

Every symbol is automatically imported. So the subroutine `f1` is already available in your python session as a function::

In[4]: f1(1.0, 2.1415)
Out[4]: 9.26574066397734e-05

See the documentation_ for further details.


0.7 / 2016-03-13

- Fix cross compatibility with older NumPy and Python 3.

Thanks to `Elliott Sales de Andrade`_ for this contribution

.. _Elliott Sales de Andrade:

0.6 / 2015-12-02

- Decode text before printing
- Call f2py module instead of binary (numpy >=1.10 is mandatory)
- Check if f2py command failed

Thanks to `Juan Luis Cano Rodríguez`_ for this contribution

.. _Juan Luis Cano Rodriguez:

0.5 / 2015-01-21

- Call f2py via subprocess. It fixes problems finding fortran compilers under Windows. (Thanks to `David Powell`_ )

.. _David Powell:

0.4.3 / 2013-12-09

- Fix two python3.2+ incompatibilities (Thanks `Ramon Crehuet`_ for the report)

.. _Ramon Crehuet:

0.4.2 / 2013-10-08

- Implement the ``--extra`` option (Thanks to `Denis Vasilyev`_ for the help)
- Include ``%%fortran``'s args in the hashing, so the same cell are
recompiled with the same code but different arguments

.. _Denis Vasilyev:

0.3 / 2013-10-03

- Added ``%fortran_config`` to set and persist default arguments
for ``%%fortran``
- Improve documentation

0.2.1 / 2013-09-24

- Packaged and registered in pypi
- Starting a version's changelog

0.2 / 2013-09-19

- Fortran highlighting in a ``%%fortran`` cell
- Works (or it should) in any platform (linux/windows/osx)
and with py3 (thanks to `Bradley Froehle`_)
- Many f2py's arguments exposed as magic arguments
- Verbosity handling
- Improved documentation

.. _Bradley Froehle:

0.1 / 2013-09-08

- First public release

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(9.6 kB) Copy SHA256 Hash SHA256
Wheel 3.4 Mar 13, 2016
(7.1 kB) Copy SHA256 Hash SHA256
Source None Mar 13, 2016

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers