Fax: +44(0)1865 300 232


Lahey combined our 40 years of producing award-winning Fortran language systems with Fujitsu's compiler expertise and high-performance code generator to deliver the most-productive, best-supported Fortran 95 language system for the PC. Whether you write new Fortran programs or downsize existing applications, you need speed, dependability, and great tech support. You need LF Fortran v7.3!
June 2012 LF Fortran 7.3.1 released:
BUGS FIXED in Visual Studio 2010 Fortran Integration
LF95 PRO adds Microsoft's Visual Studio 2010 Shell with Lahey's exclusive Fortran Integration, the Winteracter Starter Kit, WiSK, for creating Windows GUIs and displaying graphics, Polyhedron's Automake utility, Fujitsu's WinFDB Windows debugger, the Coverage Analysis Tool that detects unexecuted code and performs range-of-operation checking, the Sampler Tool (an execution profiler) that helps tune program performance, Fujitsu's Visual Analyzer, the Fujitsu SSL2 math library (an extensive library and a proven performer on Fujitsu mainframes and workstations) and the Fujitsu C compiler.
LF Fortran 95 7.3 offers improved execution performance on most Fortran 77 and 90 codes. The new optimizations help performance on Pentium(R) 4 and Xeon(TM) chips. "We tested v7.3 Win32 optimizations on a 2.4GHz P4 with 512 MB of PC2100 RAM, running Windows XP, using Polyhedron’s (www.polyhedron.com) Fortran benchmarks. Specifying the new switches -tp4, -sse2, -zfm, -o2, and -inline the 90 benchmarks ran an average of 15.4% faster and the 77 benchmarks 4.4% faster than they did when built with LF Fortran v7.0."
Basic Optimization
Program Reconstruction Optimizations
Procedure Optimization
Others
LF Fortran 95 supports static linking with Fujitsu C and Microsoft Visual C++ version 2.0 and greater. 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.
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.
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.
LF Fortran 95 extends its language support in other directions adding many legacy Fortran features, including VAX structures and the various UNIX service routines. These features further facilitate your move to cost/performance efficiency on the PC platform:
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 initialization for structure components, the NULL intrinsic for initializing pointers, the FORALL construct, and a standard CPU_TIME intrinsic procedure.
IEEE Standard 754 support
IEEE Standard 754 defines the representation and behavior of 32- and 64-bit floating point numbers. IEEE 754 support provides for consistency of basic computational results among platforms that use IEEE 754. An excellent overview of the standard is presented online by Steve Hollasch at http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html. A heavy-duty online discussion of floating point numbers and the standard is provided by David Goldberg at http://docs.sun.com/source/806-3568/index.html.
Features
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 coloring Expandable code Method tips for intrinsic functions Quick info for local and global variables Block commenting and indenting Brace matching Block Reformatting img title="Lahey Fortran Visual Studio 2010 block reformatting" src="/web_images//lahey/F95VS2010LFReformatBefore.jpg" alt="Lahey Fortran Visual Studio 2010 block reformatting" width="528" height="529" /> And after:
Code Completion
Code Snippets
Collapsible Regions
And collapsed:
Find All References Go To Declaration
The edit cursor will then jump to the line that contains the declaration for the name:
Navigation Bars
Smart Indenting Building Projects and Viewing Errors
To watch a variable within the scope of the current procedure, open the Debug menu and select "QuickWatch". A dialog will appear that allows you to type the name of the variable you want to watch. If the name matches a valid variable in the program, it will be added to the watch list. To view a watch window, open the Debug menu and expand the "Windows" item. Select "Watch" from the "Windows" sub menu.
Class View and Object Browser
The Object Browser is similar to Class View but shows more information. It also displays the names defined in the application you are developing. You can open Object Browser from the View menu. There are three panes: an Objects pane on the left, a Members pane on the upper right, and a Description pane on the lower right. If you resize the Object Browser into a single column, the Objects pane moves to the top, the Members pane to the middle, and the Description pane to the bottom. The Objects pane contains an expandable tree of names whose top-level nodes represent Projects. Expand a Project name in the Objects pane to list the Main Program and/or Modules defined within it. Variables, constants, procedures, TYPEs, INTERFACEs, and USEs for the selected Object are listed in the Members pane. Details on the item selected in the Objects pane or Members pane appear in the Description pane. Note that if a project contains subprogram(s) and no Main Program definition, a placeholder for the Main Program named "(MAIN)" will appear in the Objects pane. Right-click on an item in the Members pane to find all references to that name or to open files, and navigate directly to the line where the name is defined. You can also click on a USEd module name in the Description pane to jump to that member in Object Browser.
MSBuild support Visual SourceSafe support Fortran-Smart Windows Debugger The WinFDB debugger provides a Windows graphical interface for debugging your Fortran code. Incrementally execute your program - Single step through your program. Step into or over calls to other routines. Stop on Break Points - Click in the margin of your source code to set break points. Examine Registers - Open the registers window to examine processor registers and flags. Visual Step - Visual Step mode allows the user to automatically step through the program at a comprehensible pace. Watch Variables - Open a watch window to show selected variable values in any active program unit. Mixed-Language Programs - Debug programs created from LF Fortran 95 and Fujitsu C objects. Other Development ToolsComplementing the Windows Development Environment, LF Fortran 95 includes the Microsoft's make utility (nmake), Automake make utility; Microsoft's library manager (lib) and Lahey's Library Manager (LM) for building and working with library files; and Microsoft's linker (link). Winteracter Starter Kit.
|
| -[n]ap | Guarantee consistency of REAL and COMPLEX calculations |
| -[n]blas | Link with optimized BLAS library |
| -block <value> | Set default block size for OPEN statements |
| -[n]c | Create object and/or module files without an executable |
| -[n]chk [<args>] | Check substrings and array subscripts, non-common variables accessed before initialization, and mismatched procedure arguments |
| -[n]chkglobal | Generate compiler error messages, and perform full compile and runtime checking |
| -[n]co | Display compiler options |
| -[n]concc | Support carriage control characters in console I/O |
| -[n]cover | Generate information for use by the coverage tool |
| -[n]dal | Deallocate allocatable arrays |
| -[n]dbl | Extend REAL and COMPLEX variables, arrays, constants, and functions to KIND=8 |
| -[n]dll | Generate a dynamic link library |
| -[n]f95 | Generate warnings for non-standard Fortran 95 |
| -file <name> | Ensure driver interprets file name as name of file and not a switch argument |
| -[n]fix | Interpret source files as Fortran 95 fixed source form |
| -[n]g | Generate debugger information |
| -i <path> | Specify search path for Fortran INCLUDE files |
| -[n]in | Equivalent to including an IMPLICIT NONE statement in each program unit |
| -[n]info | Display informational messages at compile time |
| -[n]inline [<value>] | Inline user-defined procedures |
| -[n]lapack | Link with optimized LAPACK library |
| -[n]li | Avoid recognizing non-standard Lahey intrinsic procedures |
| -[n]long | Extend all default INTEGER variables, arrays, constants, and functions to KIND=8 |
| -[n]lst [<args>] | Create source listings |
| -[n]maxfatals <value> | Specify maximum number of fatal errors allowed before stopping compilation |
| -ml <arg> | Generate code compatible with other languages |
| -mldefault <arg> | Specify default mixed language target |
| -mod <path> | Specify search path for module files |
| -o <name> | Override default object file name |
| -o0 | Optimization level 0 - perform no optimization |
| -o1 | Optimization level 1 - perform full optimization |
| -o2 | -o1 plus loop and array optimizations |
| -out | Specify output file name |
| -[n]pause | Create pause after program completion |
| -[n]pca | Prevent invoked subprograms from storing into constants |
| -[n]prefetch <value> | Generate prefetch optimizations |
| -[n]private | Set default block size for OPEN statements |
| -[n]quad | Extend all double-precision REAL and COMPLEX variables, arrays, rays, constants, and functions to KIND=16 |
| -[n]sav | Allocate local variables in a compiler-generated SAVE area |
| -[n]ssl2 | Link with optimized SSL II library |
| -[n]sse2 | Optimize using SSE2 instructions |
| -[n]staticlib | Static or dynamic linkinf of Fortran runtime libraries |
| -[n]staticlink | Statically link with code produced by another supported language system |
| -[n]stchk | Check for stack overflows |
| -[n]swm <args> | Suppress warning messages |
| -t4 | Generate code optimized for Intel 80386 or 80486 processor |
| -tpp | Generate code optimized for Intel Pentium Pro, Pentium II, Pentium III, or Celeron processors, or generic counterparts |
| -tp4 | Generate code optimized for Intel Pentium 4, Xeon, or generic counterparts |
| -[n]trace | Include procedure traceback and line numbers in runtime error messages |
| -[n]trap <args> | Trap numeric data processor (NDP) exceptions at runtime |
| -[n]unroll [<value>] | Control loop unrolling |
| -[n]varheap [<value>] | Allocate local variables on heap |
| -version | Display version and owner information only |
| -[n]vsw | Create a simple console-like Windows GUI application |
| -[n]w | Generate warning messages |
| -wide | Wide fixed form line length |
| -win | Create Windows application |
| -winconsole | Create Windows Console application |
| -[n]wisk | Create application that uses the Winteracter Starter Kit (WiSK) |
| -[n]wo | Generate warning messages for obsolescent Fortran 90 code |
| -[n]xref [<args>] | Create cross-reference listings |
| -[n]zero | Include variables initialized to zero |
| -[n]zfm | Enable flush-to-zero mode for SSE2 instructions |
With Visual Studio
Hardware
Operating System
New features in LF 7.3 Professional:
New features for the Professional version are:
1. Microsoft Visual Studio 2010 Shell included.
2. Microsoft Visual Studio 2010 Fortran integration:
- The most extensive VS Fortran integration on the market
- Integrated debugger - full debugging capability within VS
- Object Browser - information about your program structure and
identifiers at-a-glance
- New features added to VS Projects - Module Library template,
References, include files, and more
- Many new features added to Fortran code editor - code
completion, smart indenting, reformatting, navigation bars,
context-sensitive help, snippets, and more
- Many other improvements to Fortran integration features
previously for VS 2008
- Improved stability
3. Winteracter Starter Kit v9.1
New Features in WiSK 9.1
Version 7.3 is also compatible with Visual Studio 2008.