Features
Compiler Features
LF Fortran 95 Performance
LF Fortran 95 7.3 offers improved execution performance on most Fortran 77 and 90 codes. The new optimisations help performance on Pentium(R) 4 and Xeon(TM) chips.
Optimisations
Basic optimisation
- Constant folding
- Common subexpression elimination
- Copy propagation
- Strength Reduction
- Algebraic simplifications
- Dead code elimination
- Peephole optimisation
- Loop invariant code motion
- Transform array element to simple variable
- Local Instruction scheduling
- Address calculation optimisation
- Array optimisation
Program Reconstruction Optimisations
- Loop unrolling
- Loop interchange
Procedure Optimisation
- Inlining mathematical functions
- Stack optimisation
- Inline user-defined
Others
- Pentium/Pentium PRO/Pentium 4 instruction
- Using fast input/output libraries
- Prefetch Pentium III / Athlon
- SSE2 instruction optimisations
- Enable flush-to-zero mode for SSE2
Statically Link Fujitsu C and Borland C++ Object Files
LF Fortran 95 supports static linking with Fujitsu C and Borland C++ Object Files. Combine your Fortran and C/C++ code into one executable. For the routines you don't want to develop yourself, you can also link with C/C++ routines from commercially available libraries.
DLL Interfaces to Visual Basic, VC++, Borland C++, Delphi, Microsoft .NET languages
Create 32-bit Windows DLLs from your Fortran routines and call the Fortran routines from 32-bit Windows programs created with Microsoft Visual Basic, Microsoft Visual C++, Borland C++, Borland Delphi, and Microsoft .NET languages.
Win32 API Access
LF Fortran 95 supports direct calls from Fortran to functions in the Win32 API. For a narrow range of applications, this might be the last little bit of glue you need to pull off your project. Note that this is not for the faint-hearted! You'll need to be a Windows programmer to get all but the most basic functionality. That's because the API was written to be called from C. And consequently, arguments need to be passed as C expects them. Structures and callback routines pose additional problems. Clearly, this would be a difficult way to build a Windows application from scratch.
Legacy Fortran Support
LF Fortran 95 extends its language support in other directions adding many legacy Fortran features, including VAX structures and the various UNIX service routines.
ANSI/ISO-Compliant Fortran 95
LF Fortran 95 is a complete implementation of the ANSI/ISO Fortran 95 standard. Fortran 95 offers some small but important improvements over Fortran 90, including the ability to create your own elemental procedures, default initialisation for structure components, the NULL intrinsic for initialising pointers, the FORALL construct, and a standard CPU_TIME intrinsic procedure.
Visual Studio integration
Project system
The project is a basic building block that Visual Studio uses to create applications. A project will normally take a set of one or more source files and produce a compiled executable, but a project can also produce things like DLLs or static libraries, or do other sorts of processing. All the source files within a project are usually written in one programming language, and are compiled with one compiler. The LF95 integration package provides several type of projects, and allows users of previous versions of Visual Studio to automatically upgrade their native Fortran projects to VS 2010. The LF95 project facility automatically scans all source files at build time and ensures all files are built in the proper order to satisfy module dependencies.
On-line integrated help
The VS2010 integration package provides documentation that is integrated into Visual Studio help system. The comprehensive documentation covers the Fortran language, LF95 compiler usage, and Fortran-smart Visual Studio editing features.
Syntax colouring
Syntax colouring provides the ability to differentiate code elements based on color. For example, a keyword may appear in blue, comments may appear in green, while character strings might be maroon. The integration package allows the user to customise the colorising scheme.
Expandable code
Expandable code can make the chore of navigating through sections of code easier by allowing you to collapse a region of code into a single line.
Method tips for intrinsic functions
Parameter Info is a feature that helps the user write code by displaying information about intrinsic procedures as the user is typing. Parameter Info is currently implemented for all Fortran 95 intrinsic procedures, and Lahey extensions supported by LF95.
Quick info for local and global variables
Quick Info provides the user with information about variables and intrinsic procedures by displaying an informational tooltip window when the mouse is hovered over a name.
Block commenting and indenting
Block commenting is a feature that allows the user to quickly comment or uncomment selected blocks of code. Block indenting allows the user to change the indentation of a selected block of code. Both of these features work for code that is highlighted.
Brace matching
Parenthesis matching is a feature that locates a matching parenthesis and highlights the parenthesis pair. This feature can be quite useful when examining a complex statement.
Block reformatting
Free-format source code feature that allows the user to quickly reformat the current line, selected blocks of code or the entire document.
Code completion
A source code editor feature that assists rapid development by offering an alphabetical list of possible keywords, names, and code snippets that might be entered as code is typed into the editor.
Code snippets
Assists rapid development by allowing pre-defined blocks of code to be easily inserted into the editor. Snippets are normally code that is often entered, such as IF constructs, FUNCTION definitions and header comment blocks.
Find all references
Allows the user to display a list of all known references to a name within all of the source code in the Solution.
Navigation bars
Use the drop-down navigation bars above a Fortran code editor window to view or jump to a module or procedure definition within the code.
Smart indenting
Free-format source code feature that allows the editor to indent the last line entered (terminated by the Enter key) as appropriate in relation to the previous line or the beginning statement of a code block.
Building projects and viewing errors
To build a Fortran project, select the 'Build Solution' or 'Rebuild Solution' option from the Build pull down menu. The Error List window shows any build errors that occurred.
Integrated debugger
Beginning with Visual Studio 2010, Fortran programs are debugged using Visual Studio, which hosts the FDB command line debugger. The LF95 Fortran integration package uses Visual Studio debugging interfaces to host the FDB command line debugger. This allows you to debug your Fortran program using the Visual Studio Debug menu. While debugging, you can watch the values of variables change during program execution and set breakpoints with a mouse click.
Class view and object browser
Class View displays the entity names defined in the application you are developing. The Object Browser is similar to Class View but shows more information. It also displays the names defined in the application you are developing.
Automation support
Automation is the ability to control Visual Studio, solutions and projects with software. It allows the user to programmatically control project creation and modification, to set project and file compilation options, and to build and execute projects.
MSBuild support
MSBuild is Microsoft's XML-based build system. It is integrated with Visual Studio, but it can also be used on the command line. The LF95 Project facility uses MSbuild when building projects. For a comprehensive description of MSBuild, see the MSDN documentation for msbuild.exe.
Visual SourceSafe support
The Fortran integration package supports the Visual SourceSafe VCS. From Visual Studio, the user with Visual SourceSafe installed will be able to easily place entire Fortran solutions under version control.