Tel: +44(0)1865 300 579
Fax: +44(0)1865 300 232

Lahey/Fujitsu Fortran 95 v5.7
Full Fortran 77, 90, and 95
Compatible with Windows® XP, 2000, Me, NT, or 9x
Speed. Dependability. Great Tech Support. Lahey/Fujitsu Fortran 95. The standard for Fortran programming from the leader in Fortran language systems.
We've combined our 37 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 Lahey/Fujitsu Fortran 95!
LF95 v5.7 Delivers!
Important new features include ...
LF95 PRO v5.7
LF95 PRO includes the powerful Lahey/Fujitsu Fortran 95 optimizing compiler, the Fortran-smart integrated development environment, the Winteracter Starter Kit, WiSK, for creating Windows GUIs and displaying graphics, Polyhedron's Automake utility, Fujitsu's WinFDB Windows debugger, linker, librarian, f90SQL-Lite, support for creating DLLs and calling the Windows APIs, online documentation, adds , 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, the Fujitsu Visual Analyzer, the Fujitsu SSL2 math library (an extensive library and a proven performer on Fujitsu mainframes and workstations), the Fujitsu C compiler, and free email support. Suggested retail price, $795.
New Features.
Prefetch optimizations for PIII and Athlon.
"We tested v5.7’s prefetch optimization on a 1.4GHz Athlon, with 256MB DDE 133 SDRAM, running Windows 2000 Pro SP2 using Polyhedron’s (www.polyhedron.com) Fortran 77 and 90 benchmarks. Using the "-prefetch 1" switch, the 77 benchmarks ran an average of 12.9% faster than they did when built with LF95 v5.6. The 90 benchmarks ran an average 2.8% faster. See Fortran SOURCE, Volume 17, Issue 2, "What is Prefetch?" for a description of the prefetch optimization."
Improvements in logical conditional processing.
The processing of complex logical expressions is improved with optimization level 1 (-o1). For example, the Polyhedron benchmark program PNPOLY.FOR contains the following logical IF block (PNPOLY is a logical function):
IF ( (((Yp(i).LE.Y) .AND. (Y.LT.Yp(j))) .OR.
&((Yp(j).LE.Y) .AND. (Y.LT.Yp(i)))) ) THEN
IF ( X.LT.((Xp(j)-Xp(i))*
& ( (Y-Yp(i))/ (Yp(j)-Yp(i)) )+Xp(i)) )
& PNPOLY = .NOT.PNPOLY
ENDIF
Compiled with LF95 v5.7 and -o1, the performance of PNPOLY is increased by 65% over PNPOLY built with previous versions of LF95.
Microsoft Incremental Linker (link) included.
Link replaces 386|LINK and offers the following advantages:
Fortran runtime libraries as DLLs.
A copy of the Fortran runtime is provided as a collection of DLLs. Dynamic linking with the Fortran runtime allows multiple executables to use the same copy of the Fortran runtime, thereby reducing the size of each executable. It also maintains continuity of I/O between code residing in a main program and code residing in a DLL. For example, a unit number can be opened in a main program and passed to code in a DLL. The DLL will be able to perform I/O operations on the opened unit. It is not possible to do this with a statically linked runtime because the program and the DLL would each have its own copy of the runtime and the runtime in the DLL would not be aware of connections made by the runtime in the main program. The new –nstaticlib switch links with the DLL runtime. Note that user-created programs that are distributed still need to be linked with the static runtime libraries – users of LF95 do not have license to redistribute the Fortran runtime DLLs. Please contact Sales if you need to redistribute the Fortran runtime DLLs.
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. 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.
Stack option changes.
The default stack size is now 1MB (compared to 100K in v5.6). A new stack option accepts both reserve and commit arguments: -stack n[:m] (where n=reserve, m=commit). The maximum amount of stack is not automatically committed at the time the program is loaded. This can lead to faster load times for LF95 executables. Additional stack is allocated as needed with increases controlled by the commit argument. Even after a program is linked, the maximum amount of stack (specified by the reserve argument) and how much the stack is increased when more is required (specified by the commit argument) can be modified using the included "editbin" utility.
New Winteracter Starter Kit (WiSK).
The new WiSK is based on Winteracter v4.10. Following are some of the new features:
New features in SSL2 (Scientific Subroutine Library 2).
Linear Algebra
Eigenvalue problems
Transforms
Random numbers
Other new features.
LF95 Performance.
LF95 5.7 offers improved execution performance on most Fortran 77 and 90 codes. The new prefetch optimizations help performance on PIII and Athlon chips. "We tested v5.7’s prefetch optimization on a 1.4GHz Athlon, with 256MB DDE 133 SDRAM, running Windows 2000 Pro SP2 using Polyhedron’s (www.polyhedron.com) Fortran 77 and 90 benchmarks. Using the "-prefetch 1" switch, the 77 benchmarks ran an average of 12.9% faster than they did when built with LF95 v5.6. The 90 benchmarks ran an average 2.8% faster. See Fortran SOURCE, Volume 17, Issue 2, "What is Prefetch?" for a description of the prefetch optimization."
LF95 Optimizations.
Basic Optimization
Program Reconstruction Optimizations
Procedure Optimization
Others
Statically Link Fujitsu C and VC++ Object Files.
LF95 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.
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.
LF95 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.
LF95 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:
ANSI/ISO-Compliant Fortran 95.
LF95 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.

Fortran-Smart Windows Editor
Lahey ED for Windows leads the way in intelligent, language-sensitive editing. Up and running straight out of the box for the new user but still highly configurable, ED fits the way you want to work.
Locate problems - Lahey ED automatically highlights syntax and semantic errors generated by the compiler and positions the cursor on the offending line in your source code.
Reduce Errors - Color syntax highlighting makes errors obvious and dramatically reduces compile-edit cycles.
Save Time - Drag & drop text using the mouse. Right click to look up functions in other source files, open include files, and do bracket matching.
Boost Productivity - Lahey ED formats and writes code for you with smart indenting, code templates, auto-correction, code completion, and automatic case conversion. You'll produce legible, correct code faster than ever before.
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 LF95 and Fujitsu C objects.
Other Development Tools
Complementing the Windows Development Environment, LF95 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.
Use the Winteracter Starter Kit - WiSK - for creating true Windows programs with Fortran. WiSK is a subset of the Winteracter Library created by Interactive Software Services, Ltd. (Winteracter is available from Lahey.) Winteracter is a Fortran 95-callable, 32-bit, Windows, user-interface and graphics development kit. Derived from Winteracter, WiSK provides a library of subroutines for window management, input handling, dialog management, and high resolution graphics, plus custom versions of the visual menu and dialog designers.
Click here to view/download WiSK examples.
Visually analyze the call structure and logic flow of your Fortran and C source code. Display a detailed cross reference of all the variables in the program and where modules and commons are defined and referenced. Show C global variable definitions and references as well. VA can help you understand someone else's code, detect subtle programming errors across multiple files, and verify compliance with the Fortran 95 standard.
LF95 beta tester Barry Santana says, "Fujitsu Visual Analyzer has been a great help in avoiding conflicts in the modifications. The help that Lahey Technical Support has provided quickly and without hassle has provided this project with a much needed shot in the arm! It has confirmed that my decision to switch to the Lahey compiler was correct. Thanks for all the help."
Fujitsu Scientific Subroutine Library 2.
The Fujitsu Scientific Subroutine Library 2 (SSL2) has been in use for years in Japan on Fujitsu mainframe and workstation hardware. SSL2 offers over 250 optimized routines in the following areas:
Linear Algebra
Matrix Storage Mode Conversion
Matrix Manipulation
Linear Equations and Matrix Inversion (Direct Method)
Least Squares Solution
Eigenvalues and Eigenvectors
Eigenvalues and Eigenvectors of a Real Matrix
Eigenvalues and Eigenvectors of a Complex Matrix
Eigenvalues and Eigenvectors of a Real Symmetric Matrix
Eigenvalues and Eigenvectors of a Hermitian Matrix
Eigenvalues and Eigenvectors of a Real Symmetric Band Matrix
Eigenvalues and Eigenvectors of a Real Symmetric Generalized Eigenproblem
Eigenvalues and Eigenvectors of a Real Symmetric Band Generalized Eigenproblem
Nonlinear Equations
Polynomial Equations
Transcendental Equations
Nonlinear Simultaneous Equations
Extrema
Minimization of Function with a Variable
Unconstrained Minimization of Multivariable Function
Unconstrained Minimization of Sum of Squares of Functions (Nonlinear Least Squares Solution)
Linear Programming
Nonlinear Programming (Constrained Minimization of Multivariable Function)
Interpolation and Approximation
Interpolation
Approximation
Smoothing
Series
Transforms
Discrete Real Fourier Transforms
Discrete Cosine Transforms
Discrete Sine Transforms
Discrete Complex Fourier Transforms
Laplace Transform
Numerical Differentiation and Quadrature
Differential Equations
Special Functions
Elliptic Integrals
Exponential Integral
Sine and Cosine Integrals
Fresnel Integrals
Gamma Functions
Error Functions
Bessel Functions
Normal Distribution Functions
Pseudo Random Numbers
Pseudo Random Generation
Pseudo Random Testing
Free Email Support.
Free e-mail, fax, and postal mail technical support available with LF95.
LF95 Specifications
Compiler Switches
LF95 System Requirements
-ap
Guarantee consistency of REAL and COMPLEX calculations
-block
Set default block size for OPEN statements
-[n]c
Create object and/or module files without an executable
-[n]chk
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]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]f90sql
Create an application using f90SQL
-[n]f95
Generate warnings for non-standard Fortran 95
-file
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
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]li
Avoid recognizing non-standard Lahey intrinsic procedures
-libpath
Specify search path for libraries
-[n]long
Extend all default INTEGER variables, arrays, constants, and functions to KIND=8
-[n]lst
Create source listings
-[no]map
Link only. Create a map file with the same name as output file
-[n]maxfatals
Specify maximum number of fatal errors allowed before stopping compilation
-ml
Generate code compatible with other languages
-mod
Specify search path for module files
-nologo
Link only. Show linker logo
-o
Override default object file name
-o0
Optimization level 0 - perform no optimization
-o1
Optimization level 1 - perform full optimization
-out
Specify output file name
-[n]pause
Create pause after program completion
-[n]pca
Prevent invoked subprograms from storing into constants
-[n]prefetch 1|2
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]split
Create temporary files for each program unit
-stack
Specify the size of the stack area for a program
-[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
Suppress warning messages
-t4
Generate code optimized for Intel 80386 or 80486 processor
-tp
Generate code optimized for Intel Pentium or Pentium MMX processor
-tpp
Generate code optimized for Intel Pentium Pro, Pentium II, Pentium III, or Celeron processors, or generic counterparts
-[n]trace
Include procedure traceback and line numbers in runtime error messages
-[n]trap
Trap numeric data processor (NDP) exceptions at runtime
-[n]vsw
Create a simple console-like Windows GUI application
-[n]w
Generate warning messages
-warn,-fullwarn
Enable linker warning messages
-win[console]
Create Windows or 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
Create cross-reference listings
-[n]zero
Include variables initialized to zero