Essential Lahey Fortran 90 v4.0

In supporting older FORTRAN 77 code, the Fortran 90 Standard includes often redundant and sometimes inefficient language features from the past. In Essential Lahey Fortran 90 we have streamlined the 90 Standard into one highly efficient and powerful Fortran 90 subset.

New in Essential LF90 v4.0

  • Winteracter Starter Kit, WiSK

  • The Winteracter Starter Kit, WiSK, is a 32-bit Windows and Fortran 90 graphics development toolkit for creating Windows user-interfaces and displaying graphics. WiSK is a subset of the full Winteracter Library. WiSK includes MenuED and DialogED -- interactive, visual design tools for creating Windows menus and dialog boxes.
  • Fortran 95 features

  • The intrinsic subroutine CPU_TIME returns the processor time.
    The intrinsic functions CEILING and FLOOR now take the optional KIND argument.
    The functions MAXLOC and MINLOC are extended with the optional DIM argument.
    MAXVAL, MINVAL, PRODUCT, and SUM functions are extended to allow the MASK argument as the second positional argument.
    Optional name specification is added to the END INTERFACE statement.
  • Lahey ED Developer v3.80

  • Long filename support is implemented for all functions, including debugging. We enabled the editing and saving of files with extensions .RC (resource files), .C, and .H. New Lahey Fortran toolbar buttons are added for WiSK MenuED and DialogED. New user-definable color schemes, scrollable window bar tabs, status bar improvements, default colors, and separate toolbars for LF95, LF90, and Essential LF90 are included.
  • Long filename support

  • Long filenames are supported in the compiler, linker and other utilities (except as arguments to the CFIG386 and REBINDB).
  • Native, 32-bit Windows tools

  • The compiler, driver, librarian, linker, and a few other utilities are now native, 32-bit Windows applications. This resolves some previously reported problems running these tools under NT.
  • Development platforms

  • font size=-1>Essential LF90 now operates only on the Windows 9x and NT operating systems. DOS, Windows 3.1x, and Win32s are supported for target application platforms.
  • New target application type

  • When used in combination, the -BIND and -WINCONSOLE compiler options will build the target application as a bound, extended-DOS and 32-bit Windows console application that will run as a native Windows application if executed under Windows 9x or NT and will run as a DOS-Extended application under straight DOS or Windows 3.1x.
  • New compiler option -WIN

  • Specify -WIN to build native, 32-bit Windows applications. The -WINCONSOLE option is still available for programs utilizing console I/O.
  • New compiler option -PAUSE

  • Running a program built with the -WINCONSOLE and -PAUSE options causes the following message to display when the program completes execution: "Program completed. Press Enter to Continue." Use the -NPAUSE option to suppress this feature. This feature was added to keep the console window open for viewing output.
  • Installation program enhancements

  • Install takes advantage of Windows 9x and NT Autoplay and offers online registration.
  • Language changes

  • The STOP statement no longer accepts a stop code. Construct Names are no longer permitted on block IF and CASE construct statements. CASE DEFAULT must be last case in a CASE construct. Variables declared but never used and variables set but never used now receive warnings instead of fatal errors.
  • LISK is removed

  • LISK, the Lahey INTERACTER Starter Kit, is removed in favor of WiSK, described above.
Essential Lahey Fortran 90 enforces structured Fortran 90 coding, removes obsolescent and redundant Fortran 77 and 90 features, and preserves the strengths of the Fortran language.

Essential Lahey Fortran 90 Rationale.
Essential Lahey Fortran 90 Syntax Specification.
Download Essential Lahey Fortran 90 example code.

Why should you teach with Essential LF90?

Essential LF90 is a clean, self-contained language with few redundancies, appropriate for teaching the basics of modern Fortran programming. Here's what Essential LF90 does:
  • Omits all obsolescent features of Fortran 90.

  • Example: Arithmetic IF and assigned GO TO
  • Eliminates clutter.

  • Example: The optional comma after DO
  • Makes selections among redundant variants.

  • Example: Entity-oriented vs. attribute-oriented declarations
  • Imposes requirements where the full Fortran 90 language grants options.

  • Example: IMPLICIT NONE in every main program or module
  • Eliminates storage association.

  • Example: COMMON, EQUIVALENCE, and implicit procedure interface
Essential LF90 does retain statement labels for the sake of input-output exception handling and DO WHILE in recognition of its popularity in some quarters. With Essential LF90, programs are more easily maintained and can still be run on the full Lahey Fortran 90 or any other compiler that supports the 90 standard. 

Fortran-Smart Windows Development Environment

Essential LF90 includes a Windows Development Environment featuring the Fortran-smart Windows Editor and the Fortran-smart Debugger. 

Essential Lahey Fortran 90Integrated Editor and Debugger

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:

Find Errors: 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 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 quicker than ever before.

Fortran-Smart Windows Debugger

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.

Complementing the Windows Development Environment, Essential LF90 includes a 32-bit extended-DOS debugger and execution profiler, the Phar Lap TNT DOS-Extender, a linker, librarian, virtual memory manager, and over 550 pages of online documentation describing the language features and tools. Essential LF90 runs on Windows 3.1x, Windows 95, and Windows NT. You can create 32-bit Windows console-mode programs and 32-bit extended-DOS programs. Using the Winteracter Starter Kit, you can create 32-bit Windows applications with menus and dialog boxes. 

Winteracter Starter Kit
Essential LF90 v4.0 includes 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 90-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 enhanced WiSK offers semi-modeless dialog boxes, radio buttons, improvements to the visual dialog and menu editors, and a handful of miscellaneous new procedures.

The visual menu designer, MenuEd, allows you to create menus in the conventional Windows horizontal format or as Windows 95 and NT floating menus. MenuEd saves menu layouts as reusable resource scripts. Essential LF90 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 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 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.

Structured coding practice required by Essential LF90

  • Fortran 90 free source form.
  • INTENT specified for all subprogram dummy arguments.
  • INTENT(IN) specified for function dummy arguments.
  • 7 Dummy arrays must be assumed-shape.
  • Explicit interfaces for all procedures.
  • PROGRAM statement.
  • Labeled statements must be referenced.
  • RESULT clause on RECURSIVE FUNCTION statement.
  • Type declaration statements all use double colon syntax.
  • Program unit type and name on END program unit statement.
  • Type name on END TYPE statement.
  • POSITION specified in OPEN statement for sequential files.
  • CASE DEFAULT must be first or last case when present.
  • STOP statement to end program.
  • RETURN statement to return from subprogram.

Obsolescent and redundant features removed from Essential LF90

To promote a more efficient and modern programming language the Fortran 90 features listed below are not supported in the Essential LF90 language. If you use a Fortran 90 feature that is not supported, an on-screen error message is provided.
  • ALLOCATABLE, INTENT, POINTER, SAVE, DIMENSION, PARAMETER, and TARGET statements. Specify these attributes in the type declaration statement instead.
  • INTRINSIC and EXTERNAL statements. Use explicit interfaces instead.
  • ASSIGN, Assigned GO TO, Alternate RETURN, CONTINUE, ENTRY, and Computed GO TO statements. Use structured programming constructs instead.
  • INCLUDE files. Use modules instead.
  • DATA and BLOCK DATA. Initialize in type declaration statement or assignment statement instead.
  • COMMON blocks. Use modules as global data facility instead.
  • DOUBLE PRECISION statement. Declare double-precision REALs with the REAL statement instead.
  • Statement function statement. Use internal procedures instead.
  • Specific intrinsic functions. Use generics instead.
  • DO label. Use DO, END DO instead.
  • Assumed-size arrays. Use assumed-shape arrays instead.
  • EQUIVALENCE statement.
  • PAUSE statement.
  • Non-INTEGER DO variables and expressions.
  • Multiple statements on a line.
  • LOGICAL case expression. 
  • Branch to END IF from outside IF block.
  • BLANK specifier on OPEN or INQUIRE statement.
  • BN, BZ, D, H, P, S, and X edit descriptors. D exponent accepted on input at runtime.

Essential LF90 Statements

Assignment Statement
Derived-TYPE Definition Statement
Pointer Assignment Statement

Essential LF90 System Requirements

Windows® 9x, NT, or XP®
80486DX, Pentium, Pentium Pro, Pentium II or compatible processor
25 MB available hard disk space