Lahey/Fujitsu Fortran 95 v6.2 for Linuxde Lahey Computer Systems
LF95 para Linux incluye soporte total para Fortran 95/90/77, paralelización automática, compatibilidad OpenMP 2.0, diagnósticos en tiempo de compilación, mejoras en la velocidad de I/O, enhebrado seguro en BLAS y LAPACK, mejoras en los diagnósticos runtime, Winteracter Starter Kit, enhebrado seguro en las librerías matemáticas SSL2 y mucho más.
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
"Our application is based on the finitedifference timedomain
method. Using the autoparallelization feature of LF95 PRO v6.2,
we reduced the execution time by approximately 50 %."
Masafumi Fujii
Dept. of Electrical, Electronic and System Engineering
Toyama University, Toyama, Japan

 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.
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.
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.
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
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 
Red Hat v9.0 
2.4.206 
2.3.2 
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 
SuSE v8.2 
2.4.204 
2.3.2 
