![]() |
![]() |
|||||
ObjexxFCL: Objexx Fortran Compatibility LibraryThe ObjexxFCL is a C++ library that provides Fortran-compatible array, string, formatted i/o, and intrinsic function support for Fortran-to-C++ migrations and some additional components and capabilities to support reengineering and modernization of technical C++ applications. Fortran MigrationThe core components of the ObjexxFCL provide the array, string, and intrinsic function support for Objexx Fortran-to-C++ conversions and Fortran—C++ integration. FArrayFArrays have the attributes of Fortran 77 arrays, including:
FstringFstrings have the attributes of Fortran 77 strings, including:
Formatted I/OThe ObjexxFCL provides a Fortran-like formatted read and write system that works within C++ stream-based i/o. This is designed to work in-line within stream-based i/o rather than with the separate format descriptor of Fortran 77 and C to avoid the unsafe C-style i/o and to provide a starting point for subsequent i/o evolution within the preferred C++ i/o model. ByteThe byte type is a C++ equivalent of Fortran's INTEGER*1. Intrinsic FunctionsThe ObjexxFCL provides Fortran 77 intrinsic functions. C++ EvolutionThe ObjexxFCL contains components that support the evolution of technical applications after conversion from Fortran to C++ or as part of a modernization process. There are also components and functions that provide useful services for technical computing that C++ and its standard library are missing. FArrayTechnical applications often depend on fast, safe arrays and the ObjexxFCL provides some powerful array support, such as the ability to migrate to dynamic array sizing via explicit calls or a de-centralized automatic mechanism for the common situation where the sizes for different parts of the array dimensions are determined in locations scattered throughout the code. The FArray arrays provide these capabilities that Fortran 77 arrays lack (some of which are provided by Fortran 95):
ChunkVector: Very Large VectorsChunkVector is similar in interface to std::vector but uses multiple contiguous "chunks" of user-specified size to avoid allocation failures for very large vectors in a fragmented memory environment and to greatly reduce the performance cost of resizing operations. In typical use there is no performance degradation for ChunkVector element access compared to std::vector. CArray & Cstring: Safe C-Style Array and String WrappersThese are lightweight wrappers around C-style arrays and strings that catch memory errors such as leaks and buffer overflows. This allows the safe use of functions requiring those C-style types. Byte TypesThe byte and ubyte types are signed and unsigned single byte numeric types. Beyond emulating Fortran's INTEGER*1 the byte types support C++ bit operations and avoid unwanted conversions to/from the char type. Numeric, String, and Character FunctionsIn addition to the Fortran 77 intrinsic support there are numeric, string, and character functions that extend and fill holes in the C++ standard library. LicensingThe ObjexxFCL is included with our Fortran-to-C++ conversion projects and can be licensed separately. The ObjexxFCL is provided in C++ source form with a perpetual, royalty-free license that allows client modification. Platforms/PricingThe ObjexxFCL is written in ISO Standard C++ and is known to be compatible with the current releases of the major 32 and 64-bit C++ compilers on mainstream platforms and should be compatible with all standard compliant C++ compilers. Contact Objexx for current ObjexxFCL pricing information. |
|
|||||
| | | | | | | | | | | ||||||
| Copyright © 2012 Objexx Engineering, Inc. All Rights Reserved. | ||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |