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 35
years of producing awardwinning Fortran language systems with Fujitsu's
compiler expertise and highperformance code generator to deliver the mostproductive,
bestsupported 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
v6.2 Delivers!
Important features
include ...

Automatic Parallelization

Pentium 4 and Xeon optimizations with SSE2 instructions

OpenMP v2.0 Support

Prefetch optimizations for Pentium III and Athlon

Unsurpassed global compiletime and runtime diagnostics

Allocate arrays up to 2 GB

External file size 2**64 bytes

IMSL compatibility (IMSL available at extra charge)

New Wisk, Winteracter Starter Kit

Threadsafe BLAS and LAPACK v3.0 (includes SSE2 version)

Threadsafe SSL2 math library (includes SSE2 version)

Automake, automatic make utility

ALLOCATABLE attributes on array components

Character variable length limit: 2,147,483,647

MPI compatible with MPICH source included

FDB debugger

Compatible with TotalView parallel debugger
LF95 v6.2 is available
in two configurations, Express and PRO:
LF95
Express includes the powerful Lahey/Fujitsu Fortran 95
optimizing compiler, command line debugger, linkcompatibility with g77 and egcs, online documentation, and free email support. Suggested retail price, $249.
LF95
PRO adds autoparallelization, OpenMP compatibility, the Winteracter Starter Kit, WiSK, for creating Windows GUIs
and displaying graphics, threadsafe BLAS and LAPACK, Polyhedron's Automake utility, the Fujitsu SSL2 math
library (threadsafe for parallel applications), and free phone support. Suggested
retail price, $695.
LF95
Performance
LF95 6.2 features P4 optimizations with SSE2 instructions. We tested v6.2 optimizations on a 1.8GHz P4 with 512 MB of PC2100 RAM, running SuSE 8.1, using Polyhedron's (www.polyhedron.com) Fortran benchmarks. Specifying the new switches tp4, sse2, zfm, o2, and x, the 90 benchmarks ran an average of 12.4% faster and the 77 benchmarks 7.9% faster than they did when built with LF95 Linux v6.1. Try LF95 v6.2 on your code today!
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
Others

P4 with SSE2 instructions

Prefetch for Pentium III and Athlon processors

I486/Pentium/Pentium
PRO instruction selection

Using fast input/output
libraries
Link
Fujitsu C, g77, and egcs object files
LF95 supports static
linking with Fujitsu C, g77, or egcs. 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.
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

Nonstandard 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

IMPLICIT UNDEFINED statement

Namelist input/output
on internal file

FORM = 'BINARY'

TOTALREC specifier

STATUS = 'SHR'

Gw, $, \, and R edit
descriptors

LOC intrinsic function

The following service
subroutines: ABORT, BEEP, BIC, BIS, CLOCK, CLOCKM, DATE, EXIT, ERRSAV,
ERRSTR, ERRSET, ERRTRA, FDATE, FREE,GETARG, GETDAT, GETLOG, GETPARM, GETTIM,
GMTIME, IBTOD, IDATE, IETOM, ITIME, IVALUE, LTIME, MTOIE, PERROR, PRNSET,
QSORT, SETRCD, SETBIT, SIGNAL, SLEEP

The following service
functions: ACCESS, ALARM, BIT, CHDIR, CHMOD, CTIME, DRAND, DTIME, ETIME,
FGETC, FPUTC, FSEEK, FSTAT, FTELL, GETC, GETCWD, GETFD, GETPID, HOSTNM,
IARGC, IERRNO, INMAX, IOINIT, IRAND, JDATE, KILL, LNBLNK, LONG, LSTAT,
MALLOC, NARGS, PUTC, RAN, RAND, RENAME, RINDEX, RTC, SECOND, SECNDS, SETDAT,
SETTIM, SHORT, STAT, TIME, TIMEF, UNLINK
ANSI/ISOCompliant
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.
Free Technical Support
LF95 Linux Express
includes email technical support at no extra charge.
Automatic Parallelization
The LF95 compiler automatically parallelizes DO loops and array operations without you having to make modifications to the program. This makes it easy to migrate source programs to other platforms (as long as the program conforms with the Fortran Standard). The effect is to save elapsed execution time by using two or more CPUs simultaneously. For instance, if a DO loop can be executed in parallel by dividing it in half, then, theoretically, the execution time of this DO loop may be cut in half. In practice, improving performance requires some care and some work on the part of the programmer. During compilation, the autoparallel function will return information regarding which processes were (and which were not) parallelized and why. While certain loops can be analyzed sufficiently to be parallelized by the compiler without input from the programmer, many loops have data dependencies that prevent automatic parallelization because of the potential for incorrect results. For that reason, LF95 PRO also includes optimization control lines (OCLs) that provide information necessary for the compiler to parallelize these otherwise unparallelizable loops. The OCLs are Fortran comments in a particular format, for example:
!OCL PARALLEL
Note that programs with OCLs are standardconforming and can be compiled with other compilers that do not support OCLs.
Four compiler switches control automatic parallelization: parallel, threads, threadstack, and ocl. Details of automatic parallelization (loop slicing, interchange, distribution, fusion, and reduction, as well as OCL syntax and specifiers) are documented in the LF95 User's Guide.
OpenMP v2.0 Compatibility
OpenMP specifies a set of compiler directives, library routines, and environment variables for sharedmemory parallelism in Fortran and C/C++ programs. LF95 Linux PRO v6.2 supports the OpenMP v2.0 specification for Fortran. Like automatic parallelization, OpenMP directives are used to parallelize a program that runs on a computer with more than one processor. With OpenMP you have more control over how code is parallelized, but also more coding to do.
The LF95 Linux PRO v6.2 CD includes the OpenMP v2.0 Fortran specification in PDF.
Winteracter Starter Kit
Use the Winteracter
Starter Kit  WiSK  for creating true X/Windows programs with Fortran.
WiSK is a subset of the X/Winteracter Library created by Interactive
Software Services, Ltd. (X/Winteracter is available from Lahey.) X/Winteracter
is a Fortran 95callable, 32bit, X/Windows, userinterface and graphics
development kit. Derived from X/Winteracter, WiSK provides
a library of subroutines for window management, input handling, dialog
management, and high resolution graphics. Motif v2.2 is supported. Linux distributions such as Red Hat and SuSE are now shipping v2.2 as standard.
A new Resource Editor combines and improves the old menu and dialog editors and adds an image editor for icon, cursor,and bitmapbutton creation. This substantially streamlines resource file maintenance. The included Winteracter Application Wizard provides a quick and easy method of generating a substantial starter application tailored to your needs.
A new Graphics Text(GT) group supersedes the Graphics Character Output group. The new GT interface is easier to understand and typically requires fewer subroutine calls. New features include the following: software fonts defined within the library rather than in external data files, thus eliminating the need to distribute and locate these files; all graphics text can optionally be plotted on an opaque background; underlining is available; text can be rotated and/or vertical;handling of proportional spacing has been improved, using 'native' font spacing, where available; vectorbased software
fonts can be drawn in a bold style; and character size is now expressed in a more meaningful manner. 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. The mouse cursor is selectable and mouse doubleclicks are reported.
BLAS and LAPACK
BLAS is a library for vector and matrix operations. The BLAS threadsafe version is based on BLAS
provided on Netlib. Included in LF95 v6.2 is an optimized version for the Pentium 4 with SSE2 instructions. BLAS includes 57 functions. The total number of routines for all precision types amounts to approximately 170.
BLAS threadsafe version provides the following routines:
Level 1 BLAS : Vector operations
Level 2 BLAS : Matrix and vector operations
Level 3 BLAS : Matrix and matrix operations
SparseBLAS : Sparse vector operations
The threadsafe implementation of BLAS has exactly the same subroutine names and calling
parameters as those of the Netlib baseline version.
Differences include:

the threadsafe version can be used in the environment of SMP (Symmetric Multiple
Processing)

subroutines of the threadsafe version can be called from an OpenMP Fortran program
The purpose of using BLAS threadsafe version is to have a subroutine concurrently perform
operations on different sets of data that are independent from each other, and thus reduce the
time necessary to finish all the operations.
LAPACK is a library of linear algebra routines. The LAPACK threadsafe version is based on LAPACK 3.0 provided on Netlib. Included in LF95 v6.2 is an optimized version for the Pentium 4 with SSE2 instructions. LAPACK includes approximately 300 functions. The total number of routines for all precision types amounts to approximately 1100.
LAPACK provides the following routines:
 Linear equations
 Linear least squares problems
 Eigenvalue problems
 Singular value decomposition
The LAPACK threadsafe version, like the BLAS version, can be called from an OpenMP program in the environment of SMP.
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. Included in LF95 v6.2 is an optimized version for the Pentium 4 with SSE2 instructions. SSL2 offers over 250 optimized threadsafe 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 Telephone Support.
In addition to the
free email, fax, and postal technical support,
LF95 PRO includes free telephone support via Lahey's 7758312500 number.
LF95
System Requirements

glibc 2.2.4 and higher (see below for tested distributions).

XWindows to view online pdf manuals.

35MB of available hard disk space for LF95 Express, 70MB for LF95 PRO.

32MB RAM.

CDROM Drive.

80486DX or Pentiumcompatible processor

We support LF95 v6.2 on the following distributions:
Distribution 
Kernel 
libc 
Debian v3.0 
2.2.20 
2.2.5 
Mandrake v8.2 
2.4.186 
2.2.4 
Mandrake v9.0 
2.4.19 
2.2.5 
Mandrake v9.1 
2.4.21 
2.3.1 
Red Hat v7.2 
2.4.7 
2.2.4 
Red Hat v7.3 
2.4.18 
2.2.5 
Red Hat v8.0 
2.4.18 
2.2.93 
Slackware v8.1 
2.4.18 
2.2.5 
SuSE v7.2 
2.4.4 
2.2.2 
SuSE v7.3 
2.4.10 
2.2.4 
SuSE v8.0 
2.4.18 
2.2.5 
SuSE v8.1 
2.4.19 
2.2.5 
