Programs for Programmers

LF90 Fortran v4.5 Win32


Lahey Compilers Fujitsu compiler


Please refer to the prices page for information about Lahey compilers that are under development and still supported.


Lahey Fortran 90

Speed - Dependability - Great Tech Support.

Lahey Computer Systems Inc. have combined 30+ years of writing award-winning Fortran language systems with Intel's highly-optimized code generator and a Windows development environment to deliver the most-productive, best-supported Fortran 90 language system for the PC. And as always, there are no hidden or additional tech support fees when you purchase a Lahey product. You get free, unlimited, expert tech support via e-mail, web page, fax, phone, and postal mail.

Whether you write new Fortran programs or downsize existing applications, you need speed, dependability, and great tech support. You need Lahey Fortran 90 v4.5!

LF90 v4.5 Delivers

1. Fortran-Smart Windows Development Environment

Lahey Fortran Windows development


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:

Find Errors: 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 quicker than ever before.


Fortran-Smart Windows Debugger

Lahey's Source On-Line Debugger is part of Lahey ED for Windows. You can edit, compile, link, execute, and debug your program all from within the editor. Windows 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 DLLs: Debug LF90 DLLs called by LF90 programs.

Additional Bundled Tools

Complementing the Windows Development Environment, LF90 includes a 32-bit extended-DOS debugger and execution profiler, the Automake make utility with interactive configuration file editor, librarian, and the Phar Lap TNT DOS-Extender, Linker, and Virtual Memory Manager.

2. Fujitsu Visual Analyzer

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 90 standard.

3. 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. It is now included with LF90 v4.5. 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

4. State-of-the-Art Intel Pentium and Pentium Pro Optimizations

Code runs fast with LF90. LF90's Intel-designed code generator uses common optimization techniques as well as instruction scheduling, loop unrolling, loop interchange, loop distribution, strip mining and pre-loading, loop blocking, and alternate loops. The alliance of Lahey and Intel technology has produced a Fortran 90 to handle the most demanding code.

5. DOS, Windows 3.1x, Windows 95 and NT Support

Create Windows 3.1x, Windows 95, Windows NT, and Extended-DOS Fortran applications. Create Windows applications with the Winteracter Starter Kit, or by calling the Win32 API directly from LF90 code, or through 32-bit Fortran DLL interfaces to Windows programs created with other language systems. Create extended-DOS applications with the bundled Phar Lap DOS Extender. Extended-DOS applications run from all Windows' DOS prompts.

Beginning with LF90 v4.0, the driver, compiler, linker, librarian, and make utility are 32-bit, Windows executables. These tools offer improved performance under Windows NT and support the use of long filenames. These same tools are also bound to the Phar Lap TNT DOS-Extender and Virtual Memory Manager -- you can use the same tools under DOS.

6. Enhanced Winteracter Starter Kit

LF90 v4.5 includes an enhanced 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 a Fortran 90-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 enhanced WiSK offers semi-modeless dialog boxes, radio buttons, improvements to the visual dialog and menu editors, and a handful of miscellaneous new procedures.

The visual menu designer, MenuEd, allows you to create menus in the conventional Windows horizontal format or as Windows 95 and NT floating menus. MenuEd saves menu layouts as reusable resource scripts. LF90 automatically compiles these scripts with the resource compiler and links the menus into your WiSK program. MenuEd also saves a Fortran source file containing PARAMETER statements 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.
Lahey Winteracter Start kit WisK

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.
Lahey compiler WisK dialog editor

7. Statically Link with VC++ and Borland C++ object files

Version 4.5 of LF90 supports static linking with Microsoft Visual C++ version 2.0 and greater and with Borland C++ version 4.5 and greater. Now you can 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.

8. DLL Interfaces to Delphi, Borland C++, Visual Basic, and Visual C++

Create 32-bit Windows DLLs from your Fortran routines and call the Fortran routines from 32-bit Windows programs created with Borland Delphi, Borland C++, Microsoft Visual Basic, and Microsoft Visual C++.

9. Win32 API Access

LF90 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.

10. Portable User Interface and Graphics Routines

LF90 includes the Lahey/INTERACTER Starter Kit (LISK). LISK is a collection of portable user-interface and graphics routines. LISK allows you to include portable GUIs and screen graphics in your programs using only Fortran code.

LISK offers routines of the following kinds: character graphics, character manipulation, clearing, cursor control, fixed-field input handling, general graphics, graphics character output, graphics drawing primitives, graphics style selection, hardware identification, informational, input parameter selection, keyboard and mouse handling, menu handling, mouse cursor control, operating system interface, screen manipulation, text attribute, text output, and window management.

11. Port Legacy FORTRAN 77 to the PC

LF90 is designed to port legacy Fortran code from workstations, minicomputers, and mainframes to the PC. LF90's 32-bit operation and 4GB capacity move large programs easily without sacrificing performance. A collection of DEC/VAX and IBM/VS intrinsics make porting even easier.

12. ANSI/ISO Compliant Fortran 90

Lahey Fortran 90 is a complete implementation of the ANSI/ISO Fortran 90 Standard. It incorporates all of FORTRAN 77 and adds features that make Fortran 90 the language of choice for scientific computing.

13. Fortran 95 Intrinsic Procedures

LF90 includes a number of Fortran 95 intrinsic procedures. Intrinsic functions CEILING and FLOOR now take the optional KIND argument. The functions MAXLOC and MINLOC are extended with the optional DIM argument like those for the functions MAXVAL and MINVAL. The functions MAXVAL, MINVAL, PRODUCT, and SUM already have a DIM argument but, for consistency with MAXLOC and MINLOC, are extended to allow their MASK argument as the second positional argument. The new intrinsic subroutine CPU_TIME returns the processor time.


LF90 Specifications

Compiler Switches

-[n]ap             Guarantee consistency of REAL and COMPLEX
-[n]bind           Bind DOS-Extender to application
-block <value>     Set default blocksize for OPEN statements
-[n]c              Compile only
-[n]chk            Check substrings and array subscripts
-[n]co             Display compiler options
-[n]dal            Automatically deallocate allocatable arrays
-[n]dbl            Extend all REAL and COMPLEX variables, arrays,

                     constants, and functions to KIND 8
-[n]dll            Generate a dynamic link library
-[n]f90[f]         Generate warning or fatal messages for
                     non-standard Fortran 90 code
-[n]file           Ensure driver interprets filename as name of
                     file and not a switch argument
-[n]fix            Interpret source files as Fortran 90 fixed or
                     free source form
-[n]g              Information for debugger
-[n]hed            Include headers on direct files
-i <path>          Specify search path for Fortran INCLUDE

-[n]in             Equivalent to including an IMPLICIT NONE
                     statement in each program unit
-[n]inln           Generate in-line code for numeric intrinsics
                     for increased execution speed
-[n]lisk           Compile code that contains Lahey/INTERACTER
                     Starter Kit calls
-[n]lst <args>     Create source listings
-[n]maxfatals      Specify maximum number of fatal errors allowed

                     before stopping compilation
-[n]ml <arg>       Generate code compatible with other languages
-mod <path>        Specify search path for module files
-o0                Optimization Level 0: perform no optimizations
                     beyond instruction scheduling and register
-o1                Optimization Level 1: perform machine-
                     independent optimizations like loop

                     unrolling, constant folding, and
                     induction variable simplification
-o3                Optimization Level 3: perform interprocedural
                     optimizations and create opportunities for
                     further optimizations
-o name            Override default object file name
-out <name>        Specify output file name
-[n]pca            Protect constant arguments by preventing

                     invoked subprograms from storing into
                     arithmetic constants
-[n]sav            Allocate local variables in compiler-
                     generated SAVE area
-[n]staticlink     Static link with another language
-[n]stchk          Check for stack overflows
-[n]swm <args>     Suppress warning messages
-[n]syn            Check program syntax and semantics only
-t3                Target Processor is 386
-t4                Target Processor is 486
-tp                Target Processor is Pentium
-tpp               Target Processor is Pentium Pro
-[n]trace          Location and call traceback for runtime

-[n]trap <args>    Trap numeric data processor (NDP)
                     exceptions at execution
-[n]vax            Compile code that contains DEC/VAX and
                     IBM/VS extensions
-[n]vm             Bind virtual memory manager to application
-[n]w              Generate warning messages
-[n]win            Create Windows application
-[n]win32s         Create Windows application compatible with

-[n]wisk           Compile code that contains Winteracter 
                     Starter Kit calls

-[n]winconsole     Create Windows Console application
-[n]wo             Generate warning messages for obsolescent
                     Fortran 90 code
-[n]wrap           Format error messages
-[n]xref <args>    Create cross-reference listings

LF90 System Requirements

  • Windows® 3.1x, 9x, NT, or 2000®.
  • 80486DX, Pentium, Pentium Pro, Pentium II, or compatible processor.
  • 24MB RAM.
  • 70MB hard disk space for complete installation, 50MB for typical.


Lahey Computer Systems Inc Home Page