| 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 AthlonWe 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 processingThe 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 DLLsA 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 supportIEEE 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 changesThe 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
 
  Eigenvalue problemsThe 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 
  TransformsEigenvalues and eigenvectors of Hermite matricesEigenvalues and eigenvectors of real symmetric matrices
 
  Random numbersSinglevariate, 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: 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
 
  Program Reconstruction
OptimizationsConstant foldingCommon subexpression eliminationCopy propagationStrength ReductionAlgebraic simplificationsDead code eliminationPeephole optimizationLoop invariant code motionTransform array element to simple variableLocal Instruction schedulingAddress calculation optimization 
  Procedure OptimizationLoop unrollingLoop interchange 
  OthersInlining mathematical functionsStack optimization 
  Statically Link Fujitsu C, VC++, and Borland C++ Object FilesI486/Pentium/Pentium PRO instruction selectionUsing 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 95Unlimited 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  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 Drive80486DX, Pentium, Pentium
  Pro, Pentium II, or compatible processor24MB RAM60 MB of available hard
  disk space for LF95 Pro, 50 MB for LF95 |