An extension for IPython that help to use Fortran in your interactive session.
Project description
Compile and import Fortran symbols from a code cell, 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 namespace.
- author:
Martín Gaitán <gaitan@gmail.com>
- homepage:
- documentation:
see this notebook
Install
You can install or upgrade via pip
pip install -U fortran-magic
or directly from the repository using the %install_ext magic command:
In[1]: %install_ext https://raw.github.com/mgaitan/fortran_magic/master/fortranmagic.py
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 f1 is already available:
In[4]: f1(1.0, 2.1415) Out[4]: 9.26574066397734e-05
See the documentation for details.
Changelog
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
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
0.1 / 2013-09-08
First public release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.