|

Lahey/Fujitsu
Linux64 Fortran v8.1
Fortran 95/90/77/IV
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 39 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!
LF64 v8.1
Delivers!
Important features include ...
- Intel
EM64T and AMD AMD64 64-bit optimizations
- Unsurpassed
global compile-time and runtime diagnostics
- Automatic
Parallelization
- OpenMP
Support
- Wisk,
Winteracter Starter Kit - Graphics package
- Small
and medium memory models
- BLAS
and LAPACK v4.0 routines - thread-safe
- Fujitsu's
SSL2 math library - thread-safe
- Fujitsu's
FDB debugger
- Automake,
automatic make utility
- COMPLEX
constants (Fortran 2003) supported
New
Features in LF64 v8.1
*
COMPLEX constants (a Fortran 2003 feature) are now supported
REAL,
PARAMETER :: a = 1.0
REAL,
PARAMETER :: b = 2.0
COMPLEX
:: c = (a,b)
*
suboptions "f" and "o" are supported
within --chk and --chkglobal option
"f"
checks whether a file is connected with two devices at the
same time
"o"
checks overlapping dummy arguments
checks
when an INTENT(OUT) assumed-size array is referenced, whether
the variable is defined
checks
when a variable with SAVE is referenced, whether the variable
is defined forces "a" and "u" suboptions
*
A new information message has been added:
2003-I
"a.h", line 1: 'xxx' is declared in INCLUDE but
never referenced
To
suppress the message, you can specify:
lfc
--info -swm 2003 a.f95
*
Updated User Guide and Language Reference on-line PDF
documentation
LF64 v8.1 is available in two configurations, Express
and PRO:
LF64 Express includes
the powerful Lahey/Fujitsu Fortran 95 optimizing compiler,
command line debugger, online documentation, and free e-mail
support.
LF64
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, and the Fujitsu SSL2 math library
(thread-safe for parallel applications).
LF64
Performance
Polyhedron Software (www.polyhedron.com) ran their suite of
Fortran benchmarks on a Pentium D820 dual core 2.8 GHz processor,
with 2 x 1MB L2 cache and 800 MHz FSB, and running SUSE 9.3
Linux. Specifying the switch --fast, the benchmarks ran an
average of 21.8% faster than they did when built with LF95
Linux v6.2. Try LF64 v8.1 on your code today!
LF64 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
- SSE2
and SSE3 instructions
- Prefetch
instructions
- Using
fast input/output libraries
Link GNU C and assembly object
files
LF64 supports static linking with GNU C or assembly. 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
LF64 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, BIC, BIS, CLOCK, CLOCKM,
CLOCKV, DATE, ERROR, ERRSAV, ERRSET, ERRSTR, ERRTRA, EXIT,
FDATE, FLUSH, FREE, GETARG, GETCL, GETDAT, GETENV, GETLOG,
GETPARM, GETTIM, GETTOD, GMTIME, IBTOD, IDATE, IETOM, IOSTAT_MSG,
ITIME, IVALUE, LTIME, MTOIE, PERROR, PRECFILL, PRNSET, PROMPT,
QSORT, REDLEN, SETBIT, SETRCD, SLEEP, SLITE, SLITET, TIMER
- The
following service functions: ACCESS, ALARM, BIT, CHDIR,
CHMOD, CTIME, DRAND, DTIME, ETIME, FGETC, FORK, FPUTC, FSEEK,
FSEEKO64, FSTAT, FSTAT64, FTELL, FTELLO64, GETC, GETCWD,
GETFD, GETGID, GETPID, GETUID, HOSTNM, IARGC, IERRNO, INMAX,
IOINIT, IRAND, ISATTY, JDATE, KILL, LINK, LNBLNK, LONG,
LSTAT, LSTAT64, MALLOC, NARGS, PUTC, RAN, RAND, RENAME,
RINDEX, RTC, SECNDS, SECOND, SH, SHORT, SIGNAL, STAT, STAT64,
SYMLNK, SYSTEM, TCLOSE, TIME, TIMEF, TTYNAM, UNLINK, WAIT
ANSI/ISO-Compliant Fortran 95
LF64 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
LF64 Linux Express includes e-mail technical support at no
extra charge.
Automatic
Parallelization
The LF64 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, LF64 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 LF64 User's Guide.
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. LF64 PRO v8.1 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 LF64 Linux PRO v8.1 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
95-callable, 64-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.
Designed for use with X11R6 and Open Motif 2.2.
X/Winteracter offers a wide range of powerful GUI capabilities
to the Fortran 9x developer under X Windows, including:
- Multiple
windows.
- Memory
bitmap manipulation & bitmap viewer windows.
- Text
editor windows, with optional command lines.
- Event
handling.
- Text
based menus, including floating menus (toolbars have still
to be implemented).
- Dialog
handling, including tabbed dialogs and nearly all control
types (grid controls are the current exception).
- Common
dialogs, e.g. file selector, message box, etc.
- Presentation
graphics.
- and
more!
Below are
examples of WiSK's capabilities.

BLAS
and LAPACK
BLAS is a library for vector and matrix operations.
The BLAS thread-safe version is based on BLAS provided on
Netlib. 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.
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. 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
LF64
System Requirements
Hardware
- Intel©
EM64T or AMD© AMD64 64-bit processor.
- 32
MB of RAM.
- 70
MB of available hard disk space for LF64 Linux PRO; 40 MB
for LF64 Linux Express.
Software
- X-Windows
to useWiSK and view the online PDF documentation.
- 64-bit
version of as, the GNU assembler.
- 64-bit
version of ld, the GNU linker.
- 64-bit
versions of C startup and support object files crt1.o, crti.o,
crtn.o, crtbegin. o, and crtend.o.
- 64-bit
versions of C runtime and support libraries libc, libm,
libpthread, librt, libgcc, libgcc_eh, libgcc_s, and libelf.
- A compatible
version of the Linux operating system. Table 1 shows the
versions of Linux that are known to be compatible with LF64.
Other Linux variants might be compatible if they include
kernel version 2.6.9 or later and libc version 2.3.4 or
later.
|
LF64
v8.1 supported distributions
|
| CentOS
5 |
2.6.18 |
2.5-18 |
| Fedora
8 |
2.6.23 |
2.7-2 |
| Ubuntu
8.04 |
2.6.24 |
2.7-10 |
| Open
SUSE 10.3 |
2.6.22 |
2.6.1 |
| (*)
The latest patches should be applied. |
|
|
|