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 LF Fortran v7.1!
LF Fortran v7.1 Delivers!
Important features include ...
LF Fortran 95
Performance.
LF Fortran 95 7.1 offers improved execution performance on most Fortran 77 and 90 codes. The new optimizations help performance on Pentium(R) 4 and Xeon(TM) chips. "We tested v7.1 Win32 optimizations on a 2.4GHz P4 with 512 MB of PC2100 RAM, running Windows XP, using Polyhedron’s (www.polyhedron.com) Fortran benchmarks. Specifying the new switches -tp4, -sse2, -zfm, -o2, and -inline the 90 benchmarks ran an average of 15.4% faster and the 77 benchmarks 4.4% faster than they did when built with LF Fortran v7.0."
LF Fortran 95
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
- Array optimization
Program Reconstruction Optimizations
- Loop unrolling
- Loop interchange
Procedure Optimization
- Inlining mathematical functions
- Stack optimization
- Inline user-defined
Others
- Pentium/Pentium PRO/Pentium 4 instruction
- Using fast input/output libraries
- Prefetch Pentium III / Athlon
- SSE2 instruction optimizations
- Enable flush-to-zero mode for SSE2
Statically
Link Fujitsu C and VC++ Object Files.
LF Fortran 95 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.
LF Fortran 95 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.
LF Fortran 95 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.
LF Fortran 95 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.
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.
Visual Studio .NET 2003 Development Environment.
Visual Studio .NET 2003
Visual Studio .NET 2003 is the industry standard in development
environments. The Win32 Visual Studio integration includes project management facilities, project/code templates, on-line integrated help, and Fortran-smart editing.
Win32 Project Types
- Empty Project (Win32) provides a solution and project without any
source files. The user can add items to this project by using
the "Project/Add New Item" menu selection.
- Static Library (Win32) consists of a library project,
example subroutine, and function procedures. The user should change the
procedure name, function result type, and argument list to suit. If either
the function or subroutine is not required, it may be removed. When compiled,
this project type creates a library file with the .lib
extension, which may be called by other native Fortran 95 applications.
- Dynamic-Link Library (Win32) consists of a DLL project and
example subroutine and function procedures, which are marked for export. The
user should change the procedure name and export list, function result type,
and argument list to suit. If either the function or subroutine is not
required, it may be removed. When compiled, this project type creates a
dynamic link library with the .dll extension, which may
be called by any application (including .NET managed applications) that can
import the procedures.
- Console Application (Win32) consists of a console project and a
skeletal main program. The user should change the program name to suit. When
compiled, this project type creates a console application. If this application
is invoked from a console, it executes within the console. If the application
is invoked from an icon, the Run menu, or Windows Explorer, it creates a
console to run in, and destroys the console when the program completes
execution.
- WiSK Simple Application (Win32) this is a project that opens
a window, handles a close request, and contains an empty resource file. This
project type compiles into a Windows GUI application.
- WiSK Skeleton Application (Win32) this is a project that
opens a window containing a menu, and captures a number of events, such as
keydown, mouse button and mouse move events, menu selection, pushbutton, expose
and resize events. It contains a resource file which defines menu items.
This project type compiles into a Windows GUI application.
Additional Project Types Supplied with Visual Studio
- Setup and Deployment Project allows the programmer to create
installation programs that can ease the task of distributing .NET applications.
A setup project packages the files that comprise an application and facilitates
the creation of directory structures.
- Database Project provides a means of manipulating databases
and designing and executing SQL scripts and queries without having to create
an application.
On-line Integrated Help
The on-line integrated help provides Fortran for .NET installation and getting
started instructions, a Fortran for .NET Users Guide, and a Fortran for
.NET language reference. It also includes the MSDN Library and Visual Studio
SDK help.
Fortran-Smart Editing
The Fortran for .NET language system provides the Visual Studio editor with
the smarts to recognize and color-code Fortran language syntax.
For more information on Visual Studio .NET 2003, please click here.
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 LF Fortran 95 and Fujitsu C objects.
Other Development Tools
Complementing the Windows Development Environment, LF Fortran 95 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.
LF Fortran 95 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 LF Fortran 95.
LF Fortran 95 Specifications
Compiler Switches
| -[n]ap |
Guarantee consistency of REAL and COMPLEX calculations |
| -[n]blas |
Link with optimized BLAS library |
| -block <value> |
Set default block size for OPEN statements |
| -[n]c |
Create object and/or module files without an executable |
| -[n]chk [<args>] |
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]concc |
Support carriage control characters in console I/O |
| -[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]f95 |
Generate warnings for non-standard Fortran 95 |
| -file <name> |
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 <path> |
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]inline [<value>] |
Inline user-defined procedures |
| -[n]lapack |
Link with optimized LAPACK library |
| -[n]li |
Avoid recognizing non-standard Lahey intrinsic procedures |
| -[n]long |
Extend all default INTEGER variables, arrays, constants, and functions to KIND=8 |
| -[n]lst [<args>] |
Create source listings |
| -[n]maxfatals <value> |
Specify maximum number of fatal errors allowed before stopping compilation |
| -ml <arg> |
Generate code compatible with other languages |
| -mldefault <arg> |
Specify default mixed language target |
| -mod <path> |
Specify search path for module files |
| -o <name> |
Override default object file name |
| -o0 |
Optimization level 0 - perform no optimization |
| -o1 |
Optimization level 1 - perform full optimization |
| -o2 |
-o1 plus loop and array optimizations |
| -out |
Specify output file name |
| -[n]pause |
Create pause after program completion |
| -[n]pca |
Prevent invoked subprograms from storing into constants |
| -[n]prefetch <value> |
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]ssl2 |
Link with optimized SSL II library |
| -[n]sse2 |
Optimize using SSE2 instructions |
| -[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 <args> |
Suppress warning messages |
| -t4 |
Generate code optimized for Intel 80386 or 80486 processor |
| -tpp |
Generate code optimized for Intel Pentium Pro, Pentium II, Pentium III, or Celeron processors, or generic counterparts |
| -tp4 |
Generate code optimized for Intel Pentium 4, Xeon, or generic counterparts |
| -[n]trace |
Include procedure traceback and line numbers in runtime error messages |
| -[n]trap <args> |
Trap numeric data processor (NDP) exceptions at runtime |
| -[n]unroll [<value>] |
Control loop unrolling |
| -[n]varheap [<value>] |
Allocate local variables on heap |
| -version |
Display version and owner information only |
| -[n]vsw |
Create a simple console-like Windows GUI application |
| -[n]w |
Generate warning messages |
| -wide |
Wide fixed form line length |
| -win |
Create Windows application |
| -winconsole |
Create 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 [<args>] |
Create cross-reference listings |
| -[n]zero |
Include variables initialized to zero |
| -[n]zfm |
Enable flush-to-zero mode for SSE2 instructions |
LF Fortran 95 System Requirements
With Visual Studio
- Processor
450-megahertz (MHz) Pentium II-class processor,
600-MHz Pentium III-class processor recommended
- Operating System
Visual Studio .NET 2003 can be installed onto any of the following systems:
- Microsoft Windows©Vista (see notes)
- Microsoft Windows© Server 2003
- Windows XP Professional
- Windows XP Home Edition
- Windows 2000 Professional
- Windows 2000 Server
- Memory
- Windows Vista:
160 megabytes (MB) of RAM
- Windows Server 2003:
160 megabytes (MB) of RAM
- Windows XP Professional:
160 MB of RAM
- Windows XP Home Edition:
96 MB of RAM
- Windows 2000 Professional:
96 MB of RAM
- Windows 2000 Server:
192 MB of RAM
- Hard Disk
- 900 MB of available space required on system drive, 3.3 gigabytes (GB)
of available space required on installation drive
- Additional 1.9 GB of available space required for optional MSDN Library
documentation
- Drive
CD-ROM or DVD-ROM drive
- Display
Super VGA (1024 x 768) or higher-resolution display with 256 colors
- Mouse
Microsoft Mouse or compatible pointing device
Command-line Only
To use LF Fortran 95 without the Visual Studio .NET Fortran Integration:
- An 80486DX, Pentium series or compatible processor
- Microsoft Windows Vista, XP, 2000, NT 4.0, Me, 98, or 95
- 32 MB of RAM
- 35 to 65 MB of available hard disk space on the installation drive,
depending on the sub-features selected
Target Operating System
LF Fortran 95 applications are compatible with Microsoft Windows Vista, XP, 2000, NT 4.0, Me, 98, and 95.
|