Fortran 95 (Win32) language systemSpeed. 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. 
 
MATLAB compatibility. 
Integration files are provided to support using the LF Fortran 95 compiler
within MATLAB. These files provide seamless integration with
MATLAB and external API procedures. MATLAB example code should
not require any modification when LF Fortran 95 support is
enabled. 
  
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. 
 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.  
 
  
  
  
  
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 
  
 
LF Fortran 95 Specifications
Compiler Switches   
  
    
      | -[n]ap | 
      Guarantee
        consistency of REAL and COMPLEX calculations | 
     
    
      | -[n]blas | 
      Link
        with optimized BLAS library | 
     
    
      | -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]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
         | 
      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]inline
        [] | 
      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
        [] | 
      Create
        source listings | 
     
    
      | -[n]maxfatals
         | 
      Specify
        maximum number of fatal errors allowed before stopping
        compilation | 
     
    
      | -ml
         | 
      Generate
        code compatible with other languages | 
     
    
      | -mldefault
         | 
      Specify
        default mixed language target | 
     
    
      | -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 | 
     
    
      | -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
         | 
      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
         | 
      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
         | 
      Trap
        numeric data processor (NDP) exceptions at runtime | 
     
    
      | -[n]unroll
        [] | 
      Control
        loop unrolling | 
     
    
      | -[n]varheap
        [] | 
      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
        [] | 
      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© Server 2003
      
 - Windows XP Professional
      
 - Windows XP Home Edition
      
 - Windows 2000 Professional
      
 - Windows 2000 Server
 
     
   - Memory
 
    
      - 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 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
XP, 2000, NT 4.0, Me, 98, and 95. |