ObjexxFPL: Objexx Fortran-Python Library
The ObjexxFPL is an open source Python library that provides Fortran-compatible array, string, formatted i/o, and intrinsic function support for Fortran-to-Python migrations and some additional components and capabilities to support reengineering and modernization of technical Python applications.
Fortran Migration
The ObjexxFPL provides the array, string, and intrinsic function support for Objexx Fortran-to-Python conversions and Fortran—Python integration. The key ObjexxFPL capabilities are described below.
Input/Output
Global & Logical Unit I/O
The ObjexxFPL includes Fortranic global and logical unit i/o support including functions such as open, read, write, inquire, backspace, rewind, flush, and close.
Formatted I/O
The ObjexxFPL has a Fortran-compatible formatted i/o system that provides both very complete Fortran formatting support and excellent integration with native Python stream i/o.
List-Directed I/O
The ObjexxFPL provides Fortranic list-directed i/o.
Binary I/O
The ObjexxFPL provides a BinaryFile class that supports Fortranic binary i/o.
Direct Access I/O
The ObjexxFPL provides a DirectAccessFile class that supports Fortranic record-based, formatted and binary direct access i/o.
Functions
Intrinsic Functions
The ObjexxFPL provides wide coverage of Fortran 77-2018 intrinsic functions.
Additional Functions
In addition to the Fortran intrinsic support the ObjexxFPL has a set of useful math/numeric, string, and character functions.
Array
Most Fortran-to-Python conversions use the option of migration to NumPy arrays but the ObjexxFPL provides a more Fortranic array emulation for cases where that is preferred.
ObjexxFPL Arrays have the attributes of Fortran 77-2018 arrays, including:
- Each dimension can have an arbitrary index range.
- Column major element ordering: Nested loops ordered to provide efficient contiguous element access are still efficient in the Python.
- Array passing "tricks": Arrays and array elements can be passed to functions where they are declared with a different rank or dimensions.
- Assumed size array arguments.
- Assumed shape array arguments.
- Array slice (section) support.
ObjexxFPL Array uses a NumPy array internally but there is a performance overhead for the Fortranic emulation.
Fstring
Most Fortran-to-Python conversions use the option of migration to native Python strings but the ObjexxFPL provides a more Fortranic string emulation for cases where that is preferred.
Fstrings have the attributes of Fortran strings, including:
- Mutability.
- Fixed length.
- Character indexing starts from 1.
- "Live" substrings.
- Concatenation support.
- Trailing space is ignored by comparison operations.
Platforms
The ObjexxFPL is written in Python 3 and is compatible with all platforms with recent Python 3 versions.
Licensing
The ObjexxFPL is included with our Fortran-to-Python conversion projects and can be licensed separately. The ObjexxFPL is provided in Python source form with a perpetual, royalty-free license.
Contact Objexx for current ObjexxFPL licensing information.