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
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.
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.
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.
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.
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:
Matrix Storage Mode Conversion
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 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)
Nonlinear Programming (Constrained Minimization of Multivariable Function)
Interpolation and Approximation
Discrete Real Fourier Transforms
Discrete Cosine Transforms
Discrete Sine Transforms
Discrete Complex Fourier Transforms
Numerical Differentiation and Quadrature
Sine and Cosine Integrals
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.
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.
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.
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++.
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.
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.
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.
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.
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.
-[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
-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
-[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
-[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