| 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 37 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 ...
LF95 PRO v5.7
LF95
PRO includes the powerful Lahey/Fujitsu Fortran 95
optimizing compiler, 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, linker, librarian, f90SQL-Lite,
support for creating DLLs and calling the Windows APIs, online documentation,
adds , 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, 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, and free
email support. Suggested retail price, $795.
New Features.
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. 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 manager, 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
Performance.
LF95 5.7 offers improved execution performance on most Fortran 77 and 90 codes. The new prefetch optimizations help performance on PIII and Athlon chips. "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. See Fortran SOURCE, Volume 17, Issue 2, "What is Prefetch?" for a description of the prefetch optimization."
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
- Prefetch Pentium III / Athlon
Statically
Link Fujitsu C and VC++ Object Files.
LF95 supports static
linking with Fujitsu C and Microsoft Visual C++ version 2.0 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++, Delphi, Microsoft .NET languages.
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++, Borland Delphi, and Microsoft .NET languages.
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
The WinFDB debugger provides a Windows graphical interface for debugging your Fortran code.
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.
Examine Registers - Open the registers window to examine processor registers and flags.
Visual Step - Visual Step mode allows the user to automatically step through the program at a comprehensible pace.
Watch Variables - Open a watch window to show selected variable values in any active program unit.
Mixed-Language Programs - Debug programs created from LF95 and Fujitsu C objects.
Other Development Tools
Complementing the Windows Development Environment, LF95 includes the Microsoft's make utility (nmake), Automake make utility; Microsoft's library manager (lib) and Lahey's Library Manager (LM) for building and working with library files; and Microsoft's linker (link).
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.
Click here to view/download WiSK examples.
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 Email Support.
Free e-mail, fax, and postal mail technical support available with LF95.
LF95 Specifications
Compiler Switches
| -ap |
Guarantee consistency of REAL and COMPLEX calculations |
| -block |
Set default block size for OPEN statements |
| -[n]c |
Create object and/or module files without an executable |
| -[n]chk |
Check substrings and array subscripts, non-common variables accessed before initialization, and mismatched procedure arguments |
| -[n]chkglobal |
Generate compiler error messages, and perform full compile and runtime checking |
| -[n]co |
Display compiler options |
| -[n]cover |
Generate information for use by the coverage tool |
| -[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]f90sql |
Create an application using f90SQL |
| -[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 |
| -[n]info |
Display informational messages at compile time |
| -[n]li |
Avoid recognizing non-standard Lahey intrinsic procedures |
| -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 |
| -[no]map |
Link only. Create a map file with the same name as output file |
| -[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 |
| -nologo |
Link only. Show linker logo |
| -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]pause |
Create pause after program completion |
| -[n]pca |
Prevent invoked subprograms from storing into constants |
| -[n]prefetch 1|2 |
Generate prefetch optimizations |
| -[n]private |
Set default block size for OPEN statements |
| -[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 |
| -[n]split |
Create temporary files for each program unit |
| -stack |
Specify the size of the stack area for a program |
| -[n]staticlib |
Static or dynamic linkinf of Fortran runtime libraries |
| -[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 or Pentium MMX processor |
| -tpp |
Generate code optimized for Intel Pentium Pro, Pentium II, Pentium III, or Celeron processors, or generic counterparts |
| -[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 |
| -warn,-fullwarn |
Enable linker 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 |
| -[n]zero |
Include variables initialized to zero |
LF95 System Requirements
- Windows® 9x, NT, Me, 2000®, or XP.
- CD-ROM Drive.
- Intel Pentium-compatible and AMD processors.
- 24MB RAM.
- 60 MB of available hard disk space for LF95 Pro, 50 MB for LF95.
|