# F90wrap: an automated tool for constructing deep Python interfaces to modern Fortran codes

**URL:** <https://fortran-lang.discourse.group/t/f90wrap-an-automated-tool-for-constructing-deep-python-interfaces-to-modern-fortran-codes/513>\
**Category:** Uncategorized\
**Created:** [December 21, 2020, 9:26pm UTC](https://fortran-lang.discourse.group/t/f90wrap-an-automated-tool-for-constructing-deep-python-interfaces-to-modern-fortran-codes/513 "2020-12-21T21:26:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Beliavsky](https://avatars.discourse-cdn.com/v4/letter/b/ba8739/32.png) [@Beliavsky](https://fortran-lang.discourse.group/u/Beliavsky)\
**Post date:** [December 21, 2020, 9:26pm UTC](https://fortran-lang.discourse.group/t/f90wrap-an-automated-tool-for-constructing-deep-python-interfaces-to-modern-fortran-codes/513/1 "2020-12-21T21:26:10Z")

</div>

[f90wrap: an automated tool for constructing deep Python interfaces to modern Fortran codes](https://iopscience.iop.org/article/10.1088/1361-648X/ab82d2)  
by James R Kermode  
Published 5 May 2020  
Journal of Physics: Condensed Matter, Volume 32, Number 30  
Abstract  
f90wrap is a tool to automatically generate Python extension modules  
which interface to Fortran libraries that makes use of derived types.  
It builds on the capabilities of the popular f2py utility by  
generating a simpler Fortran 90 interface to the original Fortran code  
which is then suitable for wrapping with f2py, together with a  
higher-level Pythonic wrapper that makes the existance of an  
additional layer transparent to the final user. f90wrap has been used  
to wrap a number of large software packages of relevance to the  
condensed matter physics community, including the QUIP molecular  
dynamics code and the CASTEP density functional theory code.

[f90wrap is at Github](https://github.com/jameskermode/f90wrap)  
related thread: [Fortran package manager or python package manager?](https://fortran-lang.discourse.group/t/fortran-package-manager-or-python-package-manager/133)
