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!
Important new features
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
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
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)
- 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
- Eigenvalues and eigenvectors of Hermite matrices
- Eigenvalues and eigenvectors of real symmetric matrices
- Singlevariate, multiple, and multivariate discrete real Fourier transform (mixed radix)
- Singlevariate, multiple, and multivariate discrete complex Fourier transform (mixed radix, complex array)
- 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:
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.
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.
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 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."
- 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
- Loop unrolling
- Loop interchange
- Inlining mathematical functions
- Stack optimization
Statically Link Fujitsu C, VC++, and Borland C++ Object Files
- I486/Pentium/Pentium PRO instruction selection
- Using fast input/output libraries
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:
ANSI/ISO-Compliant Fortran 95
- Unlimited number of
continuation lines in free or fixed source form
- DO UNTIL statement
- FIND statement
- STRUCTURE and END STRUCTURE
- UNION and END UNION
- MAP and END MAP statements
- RECORD statement
- Non-standard POINTER
- 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
- IMPLICIT UNDEFINED statement
- Namelist input/output
on internal file
- FORM = 'BINARY'
- TOTALREC specifier
- STATUS = 'SHR'
- Gw, $, \, and R edit
- 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
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.
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.
Errors - Color syntax highlighting makes errors obvious and
dramatically reduces compile-edit cycles.
Time - Drag & drop text using the mouse. Right click to
look up functions in other source files, open include files, and do bracket
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.
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.
execute your program - Single step through your program. Step
into or over calls to other routines.
on Break Points - Click in the margin of your source code to
set break points.
Variables - Right click on a variable to display its value.
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.
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.
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
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.
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."
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:
Matrix Storage Mode
and Matrix Inversion (Direct Method)
Least Squares Solution
Eigenvectors of a Real Matrix
Eigenvectors of a Complex Matrix
Eigenvectors of a Real Symmetric Matrix
Eigenvectors of a Hermitian Matrix
Eigenvectors of a Real Symmetric Band Matrix
Eigenvectors of a Real Symmetric Generalized Eigenproblem
Eigenvectors of a Real Symmetric Band Generalized Eigenproblem
Nonlinear Simultaneous Equations
Function with a Variable
of Multivariable Function
of Sum of Squares of Functions (Nonlinear Least Squares Solution)
Nonlinear Programming (Constrained Minimization of Multivariable Function)
Interpolation and Approximation
Discrete Real Fourier Transforms
Discrete Cosine Transforms
Discrete Sine Transforms
Discrete Complex Fourier Transforms
Numerical Differentiation and Quadrature
Sine and Cosine Integrals
Normal Distribution Functions
Pseudo Random Numbers
Pseudo Random Generation
Pseudo Random Testing
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.
||Set default block size for OPEN statements
||Check substrings and array subscripts, non-common
variables accessed before initialization, and mismatched procedure arguments
||Display compiler options
||Deallocate allocatable arrays
||Extend REAL and COMPLEX variables, arrays, constants,
||Generate a dynamic link library
||Generate warnings for non-standard Fortran 95
||Ensure driver interprets file name as name of
file and not a switch argument
||Interpret source files as Fortran 95 fixed source
||Generate debugger information
||Specify search path for Fortran INCLUDE files
||Equivalent to including an IMPLICIT NONE statement
in each program unit
||Specify library file names
||Specify search path for libraries
||Extend all default INTEGER variables, arrays,
constants, and functions to KIND=8
||Create source listings
||Specify maximum number of fatal errors allowed
before stopping compilation
||Generate code compatible with other languages
||Specify search path for module files
||Override default object file name
||Optimization level 0 - perform no optimization
||Optimization level 1 - perform full optimization
||Specify output file name
||Extend all double-precision REAL and COMPLEX
variables, arrays, rays, constants, and functions to KIND=16
||Allocate local variables in a compiler-generated
||Specify the size of the stack area for a program
||Statically link with code produced by another
supported language system
||Check for stack overflows
||Suppress warning messages
||Generate code optimized for Intel 80386 or 80486
||Generate code optimized for Intel Pentium, Pentium
Pro, or Pentium II processor
||Include procedure traceback and line numbers
in runtime error messages
||Trap numeric data processor (NDP) exceptions
||Create a simple console-like Windows GUI application
||Generate warning messages
||Create Windows or Windows Console application
||Create application that uses the Winteracter
Starter Kit (WiSK)
||Generate warning messages for obsolescent Fortran
||Create cross-reference listings
- 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