| 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 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
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 compile-time 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
- Thread-safe
BLAS and LAPACK v3.0 (includes SSE2 version)
- Thread-safe
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,
link-compatibility with g77 and egcs, online documentation, and
free e-mail support. Suggested retail price, $249.
LF95
PRO adds auto-parallelization, OpenMP compatibility,
the Winteracter Starter Kit, WiSK, for creating
Windows GUIs and displaying graphics, thread-safe BLAS and LAPACK,
Polyhedron's Automake utility, the Fujitsu SSL2 math library
(thread-safe 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
- 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
- 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/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.
Free
Technical Support
LF95 Linux
Express includes e-mail 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 auto-parallel 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 standard-conforming 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 and at www.lahey.com/doc.htm.
OpenMP
v2.0 Compatibility
OpenMP
specifies a set of compiler directives, library routines, and
environment variables for shared-memory 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. You can also view the specification at www.lahey.com/doc.htm.
You can learn more about OpenMP at www.openmp.org.
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
95-callable, 32-bit, X/Windows, user-interface 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
bitmap-button 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; vector-based 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
double-clicks are reported.


BLAS
and LAPACK
BLAS
is a library for vector and matrix operations. The BLAS
thread-safe 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 thread-safe version provides the following routines:
Level 1 BLAS : Vector operations
Level 2 BLAS : Matrix and vector operations
Level 3 BLAS : Matrix and matrix operations
Sparse-BLAS : Sparse vector operations
The thread-safe implementation of BLAS has exactly the same
subroutine names and calling parameters as those of the Netlib
baseline version.
Differences include:
- the thread-safe version can be used in the environment of
SMP (Symmetric Multiple Processing)
- subroutines of the thread-safe version can be called from an
OpenMP Fortran program
The purpose of using BLAS thread-safe 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
thread-safe 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 thread-safe 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 thread-safe
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 e-mail, fax, and postal technical support,
LF95 PRO includes free telephone support via Lahey's 775-831-2500
number.
LF95
System Requirements
- glibc
2.2.4 and higher (see below for tested distributions).
- X-Windows
to view online pdf manuals.
- 35MB
of available hard disk space for LF95 Express, 70MB for LF95
PRO.
- 32MB
RAM.
- CD-ROM
Drive.
- 80486DX
or Pentium-compatible 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.18-6 |
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 |
|