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
v5.7 Delivers!
Important new features
include ...
Optimizations and Microsoft tools top the list of new features in Lahey/Fujitsu Fortran 95 version 5.7 for Windows:
Prefetch optimizations for PIII and Athlon
We tested v5.7's prefetch optimization on a 1.4GHz Athlon, with 256MB DDE 133 SDRAM, running Windows 2000 Pro SP2
using Polyhedron's (www.polyhedron.com) Fortran 77 and 90 benchmarks. Using the "-prefetch 1" switch,
the 77 benchmarks ran an average of 12.9% faster than they did when built with LF95 v5.6. The 90 benchmarks
ran an average 2.8% faster. Beta tester Houston Stokes, economics professor and software developer, writes about
his software, "The main test problem on a Dell 600 with W2K runs 9.363 seconds with LF95 v5.6 and 8.2 seconds
with v5.7. This is a 12.4% gain! Well worth the effort." See Fortran SOURCE, Volume 17, Issue 2, "What
is Prefetch?" for a description of the prefetch optimization."
Improvements in logical conditional processing
The processing of complex logical expressions is improved with
optimization level 1 (-o1). For example, the Polyhedron benchmark program
PNPOLY.FOR contains the following logical IF block (PNPOLY is a logical function):
IF ( (((Yp(i).LE.Y) .AND. (Y.LT.Yp(j))) .OR.
&((Yp(j).LE.Y) .AND. (Y.LT.Yp(i)))) ) THEN
IF ( X.LT.((Xp(j)-Xp(i))*
& ( (Y-Yp(i))/ (Yp(j)-Yp(i)) )+Xp(i)) )
& PNPOLY = .NOT.PNPOLY
ENDIF
Compiled with LF95 v5.7 and -o1, the performance of PNPOLY is increased by
65% over PNPOLY built with previous versions of LF95.
Microsoft Incremental Linker (link) included
Link replaces 386|LINK and offers the following advantages:
- Automatically converts Object Module Format (OMF) object files to Common Object File Format (COFF) enabling
OMF and COFF objects to be linked together into the same executable.
- Automatically generates Microsoft-compatible import libraries whenever a DLL is created. The ability to use
Microsoft import libraries streamlines the process of linking mixed-language DLLs.
- Allows faster linking of large programs. Link doesn't completely regenerate an executable file, it only replaces
objects in the .exe that have changed since the last link.
- Allows you to insert comments into executable files. This facilitates versioning and fingerprinting.
Fortran runtime libraries as DLLs
A copy of the Fortran runtime is provided as a collection of DLLs.
Dynamic linking with the Fortran runtime allows multiple executables to
use the same copy of the Fortran runtime, thereby reducing the size of
each executable. It also maintains continuity of I/O between code
residing in a main program and code residing in a DLL. For example, a unit
number can be opened in a main program and passed to code in
a DLL. The DLL will be able to perform I/O operations on the opened unit. It is
not possible to do this with a statically linked runtime because the program and
the DLL would each have its own copy of the runtime and the runtime in the DLL
would not be aware of connections made by the runtime in the main program. The
new -nstaticlib switch links with the DLL runtime. Note that user-created programs
that are distributed still need to be linked with the static runtime libraries - users
of LF95 do not have license to redistribute the Fortran runtime DLLs. Please contact
Lahey Sales if you need to redistribute the Fortran
runtime DLLs.
IEEE Standard 754 support
IEEE Standard 754 defines the representation and behavior of 32- and
64-bit floating point numbers. IEEE 754 support provides for consistency of basic computational results among platforms that use
IEEE 754. An excellent overview of the standard is presented online by
Steve Hollasch at http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html. A heavy-duty online
discussion of floating point numbers and the standard is provided by
David Goldberg at http://docs.sun.com/source/806-3568/index.html.
Stack option changes
The default stack size is now 1MB (compared to 100K in v5.6). A new stack option accepts both reserve and commit arguments: -stack n[:m] (where n=reserve, m=commit). The maximum amount of stack is not automatically committed at the time the program is loaded. This can lead to faster load times for LF95 executables. Additional stack is allocated as needed with increases controlled by the commit argument. Even after a program is linked, the maximum amount of stack (specified by the reserve argument) and how much the stack is increased when more is required (specified by the commit argument) can be modified using the included "editbin" utility.
New Winteracter Starter Kit (WiSK)
The new WiSK is based on Winteracter v4.10. Following are some of the new features:
- 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 reasonably substantial starter application tailored to your needs.
- A major new graphics text subroutine group supersedes the old TX/FS/CL/GC groups. New features include access to any Windows font, rotated text, vertical text, elimination of character set files, and native proportional spacing.
- 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. Mouse cursor is selectable and mouse double clicks are reported.
New features in SSL2 (Scientific Subroutine Library 2)
Linear Algebra
- The inverse of a positive-definite symmetric matrix decomposed into the factors L, D and L(T)
- System of linear equations with an unsymmetric or indefinite sparse real matrix (BICGSTAB(L) method)
- Multiplication of a real band matrix and a real vector
Eigenvalue problems
- Eigenvalues and eigenvectors of Hermite matrices
- Eigenvalues and eigenvectors of real symmetric matrices
Transforms
- Singlevariate, multiple, and multivariate discrete real Fourier transform (mixed radix)
- Singlevariate, multiple, and multivariate discrete complex Fourier transform (mixed radix, complex array)
Random numbers
- Generation of normal random numbers (Wallace's method)
Other new features
- The following Microsoft tools are included:
Library mangaer, lib (Lahey's LM is still included)
Make utility, nmake (Polyhedron's Automake is still included)
Binary-file dumper, dumpbin
Binary-file editor, editbin
- Microsoft's C-runtime library (replaces Borland's).
- Removed runtime limitation on number of open files.
- New-wide option for fixed-format source extending to column 256.
- Column position of offending code identified in compilation messages where possible.
- More mixed-language programming examples.
- Improved Language Reference, User's Guide, and WiSK Reference.
LF95 v5.7is available
in three configurations: Express, Standard, and PRO:
LF95
Express includes the powerful Lahey/Fujitsu Fortran 95 optimizing compiler, linker, command line debugger, librarian, f90SQL-Lite, support for creating DLLs and calling the Windows APIs, online documentation, and unlimited e-mail support. Suggested retail price, $249.
LF95
Standard adds the Fortran-smart integrated development environment, the Winteracter Starter Kit, WiSK, for creating Windows GUIs and displaying graphics, Polyhedron's Automake utility, Fujitsu's WinFDB Windows debugger, the Coverage Analysis Tool that detects unexecuted code and performs range-of-operation checking, the Sampler Tool (an execution profiler) that helps tune program performance. Suggested retail price, $595. Note: Standard v5.7 no longer includes printed manuals.
LF95
PRO includes all of Standard and adds the Fujitsu Visual Analyzer, the Fujitsu SSL2 math library (an extensive library and a proven performer on Fujitsu mainframes and workstations), the Fujitsu C compiler, printed manuals, and free phone support. Suggested retail price, $795.
LF95
Performance
LF95 5.7 offers significantly improved execution
performance on most Fortran 90 codes, compared to LF90 4.5. The new Pentium Pro optimizations help performance
on PII and PIII chips. According to beta tester Art Raiche, "Over the past two decades, my group has been
actively engaged in research and code development in electromagnetic modeling and inversion for the mineral exploration
industry. We use finite element, integral equation and hybrid methods, all of which imply a lot of work with large
matrices. We make heavy use of the allocatable array feature of Fortran 90. " Depending upon the program, the new
LF95 (version 5) has improved runtimes by factors of between 1.8 and 2.3 over LF90 version 4.5. LF95-compiled code running
on a 333 MHz Pentium now runs quite a lot faster than the same code on a Unix SGI R8000 machine. The new compiler has
allowed us to switch from Unix workstations to PCs for number crunching as well as program analysis."
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
- I486/Pentium/Pentium PRO instruction selection
- Using fast input/output libraries
Statically Link Fujitsu C, VC++, and Borland C++ Object Files
LF95 supports static linking with Fujitsu C, Microsoft
Visual C++ version 2.0 and greater, and with Borland C++ version 4.5 and greater. 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.
DLL Interfaces to Visual Basic, VC++, Borland C++, and Delphi
Create 32-bit Windows
DLLs from your Fortran routines and call the Fortran routines from 32-bit
Windows programs created with Microsoft Visual Basic, Microsoft Visual
C++, Borland C++, and Borland Delphi.
Win32 API Access
LF95 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.
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.
Fortran-Smart
Windows Development Environment
Fortran-Smart Windows Editor
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.
Locate problems - 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 faster
than ever before.
Fortran-Smart
Windows Debugger
Lahey's Source On-Line
Debugger (SOLD) is part of Lahey ED for Windows. You can edit, compile,
link, execute, and debug your program all from within the editor. 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 Mixed-Language Programs - Debug programs created
from LF95 and Fujitsu C objects.
Other
Development Tools
Complementing the
Windows Development Environment, LF95 includes the Automake make utility,
Lahey's Library Manager (LM) for building and working with library files,
and Phar Lap's 386 LINK Linker.
Winteracter
Starter Kit
Use the 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 available from Lahey.) Winteracter
is a Fortran 95-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 visual menu designer,
MenuEd, allows you to create menus in the conventional Windows horizontal
format or as Windows 9x and NT floating menus. MenuEd saves menu
layouts as reusable resource scripts. LF95 automatically compiles these
scripts with the resource compiler and links the menus into your WiSK
program. MenuEd also saves a Fortran source file containing type
declaration statements with PARAMETER attributes 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.
Fujitsu
Visual Analyzer
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 95 standard.
LF95 beta tester
Barry Santana says, "Fujitsu Visual Analyzer has been a great help in avoiding
conflicts in the modifications. The help that Lahey Technical Support has
provided quickly and without hassle has provided this project with a much
needed shot in the arm! It has confirmed that my decision to switch to
the Lahey compiler was correct. Thanks for all the help."
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 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 mail technical support available with LF95,
LF95 PRO includes free telephone support via Lahey's 775-831-2500 number.
LF95
Specifications
Compiler
Switches
-block |
Set default block size for OPEN statements |
-[n]c |
Compile only |
-[n]chk |
Check substrings and array subscripts, non-common
variables accessed before initialization, and mismatched procedure arguments |
-[n]co |
Display compiler options |
-[n]dal |
Deallocate allocatable arrays |
-[n]dbl |
Extend REAL and COMPLEX variables, arrays, constants,
and functions
to KIND=8 |
-[n]dll |
Generate a dynamic link library |
-[n]f95 |
Generate warnings for non-standard Fortran 95 |
-file |
Ensure driver interprets file name as name of
file and not a switch argument |
-[n]fix |
Interpret source files as Fortran 95 fixed source
form. |
-[n]g |
Generate debugger information |
-i |
Specify search path for Fortran INCLUDE files |
-[n]in |
Equivalent to including an IMPLICIT NONE statement
in each program unit |
-lib |
Specify library file names |
-libpath |
Specify search path for libraries |
-[n]long |
Extend all default INTEGER variables, arrays,
constants, and functions to KIND=8 |
-[n]lst |
Create source listings |
-[n]maxfatals |
Specify maximum number of fatal errors allowed
before stopping compilation |
-ml |
Generate code compatible with other languages |
-mod |
Specify search path for module files |
-o |
Override default object file name |
-o0 |
Optimization level 0 - perform no optimization |
-o1 |
Optimization level 1 - perform full optimization |
-out |
Specify output file name |
-[n]quad |
Extend all double-precision REAL and COMPLEX
variables, arrays, rays, constants, and functions to KIND=16 |
-[n]sav |
Allocate local variables in a compiler-generated
SAVE area |
-stack |
Specify the size of the stack area for a program |
-[n]staticlink |
Statically link with code produced by another
supported language system |
-[n]stchk |
Check for stack overflows |
-[n]swm |
Suppress warning messages |
-t4 |
Generate code optimized for Intel 80386 or 80486
processor |
-tp |
Generate code optimized for Intel Pentium, Pentium
Pro, or Pentium II processor |
-[n]trace |
Include procedure traceback and line numbers
in runtime error messages |
-[n]trap |
Trap numeric data processor (NDP) exceptions
at runtime |
-[n]vsw |
Create a simple console-like Windows GUI application |
-[n]w |
Generate warning messages |
-win[console] |
Create Windows or Windows Console application |
-[n]wisk |
Create application that uses the Winteracter
Starter Kit (WiSK) |
-[n]wo |
Generate warning messages for obsolescent Fortran
90 code |
-[n]xref |
Create cross-reference listings |
LF95
System Requirements
- Windows® 9x, NT, Me, or 2000®
- CD-ROM Drive
- 80486DX, Pentium, Pentium
Pro, Pentium II, or compatible processor
- 24MB RAM
- 60 MB of available hard
disk space for LF95 Pro, 50 MB for LF95
|