Skip to content

Releases: rjfarmer/gfort2py

Release v2.6.0

21 Jun 16:55
Compare
Choose a tag to compare

This release primarily updates support for numpy 2.0

Release v2.5.0

29 Feb 22:14
Compare
Choose a tag to compare
  • Fix bug when returning a derived type containing an allocatable array
  • Raise AttributeError instead of IndexError when trying to slice scalar derived type
  • Better error message when passing wrong number of arguments to a procedure
  • Fotran names are now treated as case insensitive
  • Debug output now uses Python's logging module

Release: v2.4.2

04 Feb 17:40
Compare
Choose a tag to compare
  • Add support for new platforms
  • Switch compile function to be mostly keyword only arguments
  • Various packages needed for building have had their minimum version bumped
  • mod data can now be exported as JSON

Release: v2.4.1

02 Dec 14:51
Compare
Choose a tag to compare
  • Add support for callback functions
  • Allows access to bind(C) variables and functions

Release: v2.4.0

16 Nov 11:08
Compare
Choose a tag to compare
  • Adds the ability to load Fortran code from either a string or file. This avoids the user needing to have to compile and build a shared library themselves.
  • Update to support Python 3.12
  • Update to support gfortran 13

Release: v2.3.0

16 Oct 14:53
Compare
Choose a tag to compare
  • Initial support for quad precision variables
  • Switch from pyparsing to cpyparsing for faster loading of the mod files
  • Add caching option of mod files for faster startups
  • Fix bug in optional character dummy arguments
  • Fix bug when we need to re-resolve runtime arguments

Release: v2.2.1

29 Aug 10:56
Compare
Choose a tag to compare

Fix issue with assumed shape character arrays

Release: v2.2.0

10 Jul 14:33
Compare
Choose a tag to compare

Add support for complex parameter arrays

Expand the kinds supported for integers, reals, and complex numbers

Allow functions to return an array as a result

Release: v2.1.0

02 Jul 17:53
Compare
Choose a tag to compare

Fixes bugs in logical parameters

Enables support for runtime-defined explicit arrays where the dimension requires evaluating a unary op i.e dimension(n+1) or dimension((n*2)+1)

Be more careful about using np.double for double-precision variables

Release: v2.0.0

25 Jun 11:07
Compare
Choose a tag to compare

After many years (and several complete re-writes) I am pleased to announce the release gfort2py v2.0.0. gfort2py is a Python library enabling the calling of Fortran code from Python. The main aim of this library is to make calling the Fortran code as easy as possible by minimising the number of changes to the Fortran code. All that is required is to have your code in a module and compiled as a shared library. No annotations or other changes needed.

Source code is available at https://github.com/rjfarmer/gfort2py

Gfort2py works with python >=3.7 and gfortran >=8. Note that there are many API breakages with the gfort2py 1.. series. Please refer to the README at https://github.com/rjfarmer/gfort2py/blob/main/README.md for examples of the new features.

Gfort2py supports many modern (and old) Fortran features including:

Scalars (ints, reals, logicals, characters)
Arrays of (ints, reals, logicals, characters): explicit, assumed shape, assumed size, and allocatable arrays.
Derived types including scalars and arrays.
Explicit arrays of derived types (assumed shape are not yet supported)
Allocatable strings (partial support)
Calling functions and subroutines.

More features are planned to be added over time.

Installation via pip:
python -m pip install --upgrade gfort2py

For those that want to get involved: Improvements to the test suite to include untested or new Fortran features (and Python code to test those features, even if it doesn’t yet work) is the most helpful. Otherwise, bug reports on broken features are also helpful.