Lahey Computer Systems, Inc.Fujitsu Ltd.
Lahey/Fujitsu Fortran 95 v5.7
Full Fortran 77, 90, and 95!

Speed. Dependability. Great Tech Support. Lahey/Fujitsu Fortran 95. The standard for Fortran programming from the leader in Fortran language systems.

Lahey/Fujitsu Fortran Language Systems LF95 for Windows We've combined our 35 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 ...

Optimizations and Microsoft tools top the list of new features in Lahey/Fujitsu Fortran 95 version 5.7 for Windows:

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 ( 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. Beta tester Houston Stokes, economics professor and software developer, writes about his software, "The main test problem on a Dell 600 with W2K runs 9.363 seconds with LF95 v5.6 and 8.2 seconds with v5.7. This is a 12.4% gain! Well worth the effort." 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

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:
  • Automatically converts Object Module Format (OMF) object files to Common Object File Format (COFF) enabling OMF and COFF objects to be linked together into the same executable.
  • Automatically generates Microsoft-compatible import libraries whenever a DLL is created. The ability to use Microsoft import libraries streamlines the process of linking mixed-language DLLs.
  • Allows faster linking of large programs. Link doesn't completely regenerate an executable file, it only replaces objects in the .exe that have changed since the last link.
  • Allows you to insert comments into executable files. This facilitates versioning and fingerprinting.

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 Lahey 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. An excellent overview of the standard is presented online by Steve Hollasch at A heavy-duty online discussion of floating point numbers and the standard is provided by David Goldberg at

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:

  • A new Resource Editor combines and improves the old menu and dialog editors and adds an image editor for icon, cursor, and bitmap-button creation. This substantially streamlines resource file maintenance.
  • The included Winteracter Application Wizard provides a quick and easy method of generating a reasonably substantial starter application tailored to your needs.
  • A major new graphics text subroutine group supersedes the old TX/FS/CL/GC groups. New features include access to any Windows font, rotated text, vertical text, elimination of character set files, and native proportional spacing.
  • Numerous other enhancements: Graphics can now be redirected to a dialog field instead of to a window. Windows and dialogs can now be combined. Menus can now be added to child windows in addition to the root window. Status bar help prompts can be attached to menu items. Support for progress bars is added. Routines to change the state of a field and move the cursor to a specific field are added. Mouse cursor is selectable and mouse double clicks are reported.

New features in SSL2 (Scientific Subroutine Library 2)
Linear Algebra

  • The inverse of a positive-definite symmetric matrix decomposed into the factors L, D and L(T)
  • System of linear equations with an unsymmetric or indefinite sparse real matrix (BICGSTAB(L) method)
  • Multiplication of a real band matrix and a real vector
Eigenvalue problems
  • Eigenvalues and eigenvectors of Hermite matrices
  • Eigenvalues and eigenvectors of real symmetric matrices
  • Singlevariate, multiple, and multivariate discrete real Fourier transform (mixed radix)
  • Singlevariate, multiple, and multivariate discrete complex Fourier transform (mixed radix, complex array)
Random numbers
  • Generation of normal random numbers (Wallace's method)

Other new features

  • The following Microsoft tools are included:
    Library mangaer, lib (Lahey's LM is still included)
    Make utility, nmake (Polyhedron's Automake is still included)
    Binary-file dumper, dumpbin
    Binary-file editor, editbin
  • Microsoft's C-runtime library (replaces Borland's).
  • Removed runtime limitation on number of open files.
  • New-wide option for fixed-format source extending to column 256.
  • Column position of offending code identified in compilation messages where possible.
  • More mixed-language programming examples.
  • Improved Language Reference, User's Guide, and WiSK Reference.


LF95 v5.7is available in three configurations: Express, Standard, and PRO:
LF95 Express includes the powerful Lahey/Fujitsu Fortran 95 optimizing compiler, linker, command line debugger, librarian, f90SQL-Lite, support for creating DLLs and calling the Windows APIs, online documentation, and unlimited e-mail support. Suggested retail price, $249. LF95 Standard adds 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, 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. Suggested retail price, $595. Note: Standard v5.7 no longer includes printed manuals.  LF95 PRO includes all of Standard and adds 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, printed manuals, and free phone support. Suggested retail price, $795.

LF95 Performance
LF95 5.7 offers significantly improved execution performance on most Fortran 90 codes, compared to LF90 4.5. The new Pentium Pro optimizations help performance on PII and PIII chips. According to beta tester Art Raiche, "Over the past two decades, my group has been actively engaged in research and code development in electromagnetic modeling and inversion for the mineral exploration industry. We use finite element, integral equation and hybrid methods, all of which imply a lot of work with large matrices. We make heavy use of the allocatable array feature of Fortran 90. " Depending upon the program, the new LF95 (version 5) has improved runtimes by factors of between 1.8 and 2.3 over LF90 version 4.5. LF95-compiled code running on a 333 MHz Pentium now runs quite a lot faster than the same code on a Unix SGI R8000 machine. The new compiler has allowed us to switch from Unix workstations to PCs for number crunching as well as program analysis."

LF95 Optimizations
Basic Optimization

  • Constant folding
  • Common subexpression elimination
  • Copy propagation
  • Strength Reduction
  • Algebraic simplifications
  • Dead code elimination
  • Peephole optimization
  • Loop invariant code motion
  • Transform array element to simple variable
  • Local Instruction scheduling
  • Address calculation optimization
Program Reconstruction Optimizations
  • Loop unrolling
  • Loop interchange
Procedure Optimization
  • Inlining mathematical functions
  • Stack optimization
  • I486/Pentium/Pentium PRO instruction selection
  • Using fast input/output libraries
Statically Link Fujitsu C, VC++, and Borland C++ Object Files
LF95 supports static linking with Fujitsu C, Microsoft Visual C++ version 2.0 and greater, and with Borland C++ version 4.5 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++, and Delphi
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++, and Borland Delphi. 

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:

  • Unlimited number of continuation lines in free or fixed source form 
  • DO UNTIL statement 
  • FIND statement 
  • STRUCTURE and END STRUCTURE statements 
  • UNION and END UNION statements 
  • MAP and END MAP statements 
  • RECORD statement 
  • Non-standard POINTER statement 
  • AUTOMATIC statement 
  • STATIC statement 
  • VALUE statement 
  • BYTE statement 
  • Hollerith constants 
  • Alternative forms of binary, octal, and hexadecimal constants 
  • Binary, octal, or hexadecimal constants in a DATA, declaration statement 
  • Period structure component separator 
  • Namelist input/output on internal file 
  • FORM = 'BINARY' 
  • TOTALREC specifier 
  • STATUS = 'SHR' 
  • Gw, $, \, and R edit descriptors 
  • LOC intrinsic function 
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 Development Environment

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
Lahey's Source On-Line Debugger (SOLD) is part of Lahey ED for Windows. You can edit, compile, link, execute, and debug your program all from within the editor. SOLD helps you detect and correct programming errors quickly. 

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. 

Display Variables - Right click on a variable to display its value. 

Watch Variables - Open a watch window to show variable values in any active program unit. Debug Mixed-Language Programs - Debug programs created from LF95 and Fujitsu C objects.

Other Development Tools
Complementing the Windows Development Environment, LF95 includes the Automake make utility, Lahey's Library Manager (LM) for building and working with library files, and Phar Lap's 386 LINK Linker. 

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. 

The visual menu designer, MenuEd, allows you to create menus in the conventional Windows horizontal format or as Windows 9x and NT floating menus. MenuEd saves menu layouts as reusable resource scripts. LF95 automatically compiles these scripts with the resource compiler and links the menus into your WiSK program. MenuEd also saves a Fortran source file containing type declaration statements with PARAMETER attributes defining identifiers for each item in the menu resource file. This file can be USE'd or INCLUDE'd by a WiSK program allowing you to reference items in the menu using meaningful names.

The visual dialog designer, DialogEd, allows you to interactively create Windows dialogs. Like MenuEd, DialogEd generates resource scripts and module or include files defining the identifiers of each dialog control. Various standard field types and controls are supported including string fields, list boxes, combo boxes, group boxes, push-buttons, picture frames, and labels. DialogEd also offers a "test" button to try out your dialogs without having to build or rebuild your application.

Fujitsu Visual Analyzer
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

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

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 Telephone Support
In addition to the free e-mail, fax, and postal mail technical support available with LF95, LF95 PRO includes free telephone support via Lahey's 775-831-2500 number. 

LF95 Specifications

Compiler Switches

-block Set default block size for OPEN statements
-[n]c Compile only
-[n]chk Check substrings and array subscripts, non-common variables accessed before initialization, and mismatched procedure arguments
-[n]co Display compiler options
-[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 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
-lib Specify library file names
-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
-[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
-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]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
-stack Specify the size of the stack area for a program
-[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, Pentium Pro, or Pentium II processor
-[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
-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

LF95 System Requirements

  • Windows® 9x, NT, Me, or 2000®
  • CD-ROM Drive
  • 80486DX, Pentium, Pentium Pro, Pentium II, or compatible processor
  • 24MB RAM
  • 60 MB of available hard disk space for LF95 Pro, 50 MB for LF95

home | back | comment | sales

CustomSolutionsPageDate: 19 February 2018
Copyright © 1997 - 2017 Custom Solutions