Lahey Fortran 90 v4.5 maintenance update

The update program below will update the current version of your product to the latest maintenance release version. This is only for owners of the same numbered version of the product. To update, download the update program below and run it in Windows.

The maintenance version is the alpha character after the version number. It is displayed in the first line of the banner when the compiler is invoked, as well as in listing files. The update program will update your product from any previous maintenance version.

To digress to a previous version, the product must be reinstalled from the product CD, then the update program for the desired maintenance release could be run. (Saving downloaded updates is recommended for this purpose. Previous versions can also be  requested from

  • LF90 v4.50i patch program (1 MB). Last updated 5/16/99.
    The downloaded file Patch45i.exe should be 1,045,003 bytes.
    Note: This v4.50i patch can only be used to update LF90 version 4.50c or newer. If your existing version is v4.50a or v4.50b, download the v4.50c patch below, and install it first.
  • LF90 v4.50c patch program (1.6 MB). Last updated 6/17/98.
    The downloaded file Patch45c.exe should be 1,679,882 bytes.
  • LF90 v4.5 Release Notes Please read this before downloading and installing the update program.
  • LF90 v4.5 Bug Fix Descriptions of bugs fixed in the maintenance updates.
  • Projected release date for next update: (Undetermined)

Lahey Fortran 90 v4.5 Release Notes

The following descriptions are cumulative.

Version 4.50i

  • -PAUSE compiler option added
    Specifying -PAUSE will cause the executable program linked with -WINCONSOLE to wait for a keystroke from the user at program completion, before returning to the operating system. This switch can be used to keep the console window from vanishing at program completion, thereby allowing the user to view the final console output.
  • -WINCONSOLE compiler and linker option is now the default
    The default compiler or linker option will be -WINCONSOLE unless -NWIN or -WIN is specified. Previously the default was -NWIN. This change was made to accommodate the majority of development being for 32-bit platforms.
    Important Note: Application target platforms of Windows 3.x or DOS will be impacted by this change. Change your build procedures, such as .FIG files, to specify -NWIN.
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50h

  • Compiler warning changed to fatal
    The severity of the following compiler diagnostic message has been changed from a warning to a fatal error: "<NAME> does not appear in an ASSIGN statement in this scoping unit".
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50g

  • Execution speed degradation fixed
    An execution speed degradation with v4.50f will no longer occur for applications containing uninitialized arrays in COMMON block(s). The slowdown was introduced in v4.50f in the improvement described below as "EXE file size reduction", due to word boundary misalignment.
  • REPEAT function
    The REPEAT function is now allowed in an initialization expression.
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50f

  • EXE file size reduction
    The executable file size for programs with uninitialized arrays in COMMON block(s) will now be smaller relative to the size of those arrays.
  • NDP exceptions trapped by Windows (or winconsole) applications
    Programs created with -WIN[CONSOLE] and -TRAP <diou> will now trap NDP exceptions. Previously, this was functioning correctly only with -NWIN.
  • Compiler diagnostic added
    Parameter constants cannot have the SAVE attribute, nor be specified in the SAVE statement.
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50e

  • Scratch files opened by a "schizo" program under straight DOS
    A program linked as a "schizo" application (-bind -winconsole) and run under straight DOS will no longer produce an error attempting to open a scratch file. This was occurring because of an unsupported API function in the Phar Lap DOS-Extender.
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50d

  • CPU_TIME subroutine enhancements
    CPU_TIME has been upgraded to use the high performance counter which will provide better granularity under the Windows 95 operating system. The high performance counter has resolution of less than a microsecond. It still returns a "clock time", measuring elapsed time for a routine so it may return inaccurate results if you have other processes running when you are trying to time program performance. The high resolution counter is also available under DOS and Win 3.1 when the program is created as a "schizo" application (-bind -winconsole), which utilizes the Phar Lap Dos-Extender emulation of the high performance counter.
  • EXP function
    When compiled with the -ninln option, the EXP function will now return zero when the X argument is negative infinity, and will return infinity when the X argument is positive infinity. Previously, the function would return NaN.
    Note: The -ap and -g compiler options force the -ninln option.
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50c

  • WiSK Dialog and Menu Editors
    The WiSK versions of the editors will now refuse to load resource files which were generated using the full version of Winteracter. In this case, use the editors distributed with the full Winteracter. The buttons in Lahey ED for Windows will invoke the first Dialog or Menu Editor application on the PATH.
  • OpenGL support
    Microsoft import libraries are included in the LIB subdirectory for OpenGL static linking support (see FILELIST.TXT). A demo program will be available in a future v4.5 patch.
  • Automake Configuration File Editor (AMEDIT.EXE)
    More compiler configurations added: Windows and Win32 Console Debug, and Windows and Win32 Console Optimized.
  • New Phar Lap Linker version 9.1
    Fixes bugs for debugging only.
  • INQUIRE statement EXIST= specifier
    Previously, the INQUIRE statement's EXIST= specifier incorrectly returned TRUE only if the specified UNIT was connected. This has been changed to return TRUE if the input/output unit in the UNIT= specifier is a valid value for a unit number of an external file.
  • See LF90 v4.5 Bug Fix Descriptions.
  • Version 4.50a and 4.50b

  • Automake
    If you run AM, which invokes AUTOMAKE.EXE, and no AUTOMAKE.FIG file exists in the current directory, the Automake Configuration File Editor will display to facilitate creating an AUTOMAKE.FIG file for your project. Subsequently, you can change your Automake settings by running AMEDIT from the command line.
  • Phar Lap Librarian, 386|LIB
    386lib.exe is included in this release for those with Makes or batch files which use 386lib syntax. However, the LF90 driver utilizes the LM librarian.
  • SYSTEM subroutine
    Optional logical argument DOSBOX added to the SYSTEM subroutine to allow you to disable the creation and display of a DOS console window when calling SYSTEM from a Windows application to run (spawn) another Windows application. Setting DOSBOX=.FALSE. suppresses preceding the specified CMD argument with "COMMAND /C ". If no DOSBOX argument is present, it defaults to .TRUE..
    Example: CALL SYSTEM("mywinapp.exe",DOSBOX=.FALSE.)
    Warning: Setting DOSBOX=.FALSE. is only valid for running an application; it should not be set to .FALSE. for internal operating system commands (i.e., dir, copy, md, etc.).
    Important Note: Existing object modules (.OBJ) containing CALL SYSTEM statements and compiled with previous versions of LF90 must be recompiled before linking.
  • See LF90 v4.5 Bug Fix Descriptions.

  • Lahey Fortran 90 v4.5 Bug Fix Descriptions

    The following descriptions are cumulative.

    Fixed in Version 4.50i

  • Numeric labels are in a random order in the cross reference (-xref option) listing.
  • Internal compiler error when WRITE statement output is ISHFTC with certain constant arguments.
  • Internal compiler error when argument to PRESENT function is a function name.
  • Fixed in Version 4.50h

  • Incorrect diagnostic that derived type is undefined when the definition succeeds the reference.
  • Linker error when path contains a dot (period) character.
  • Compiler fails to diagnose illegal automatic or assumed-shape specifier.
  • Internal compiler error on Assigned GOTO statement when variable is not ASSIGNed.
  • Fixed in Version 4.50g

  • When outputting a value of zero with the format edit descriptor 'G16.6E2', 6 zeros are printed to the right of the decimal point; it should be 5 according to the Fortran 90 Standard.
  • The /EXTRACTALL option of the librarian (LM) aborts with an invalid record type error.
  • Incorrect result from MINLOC and MAXLOC when ARRAY argument contains HUGE values.
  • REPEAT is not allowed in an initialization expression.
  • Incorrect fatal error where ISHFT is used in an initialization expression.
  • Incorrect fatal error on initialization expression containing a computation with 0**x.
  • Internal compiler error on bad code where an equivalenced item of undetermined length is implicitly typed.
  • Execution speed slowdown in v4.50f for programs containing uninitialized arrays in COMMON block(s).
  • Fixed in Version 4.50f

  • NDP exception is not trapped with -TRAP and -WIN[CONSOLE].
  • LM gets invalid page fault or other fatal error when attempting to create a list file from import1.lib.
  • Incorrect error message "Insufficient RAM to continue execution" when argument to ADJUSTL is a zero-length substring.
  • Internal compiler error when array argument to EOSHIFT contains an unbounded array subscript.
  • Internal compiler error when array argument to CSHIFT contains an unbounded array subscript.
  • Parameter constants cannot have the SAVE attribute, nor be specified in the SAVE statement.
  • Too many bytes written to direct file when WRITE statement's REC= specifier has a COMMON variable value.
  • Under Windows NT, handles opened by SYSTEM routine are not closed.
  • Passing command-line arguments to program in Lahey ED debugger does not work correctly if the exe path contains a space character.
  • Fixed in Version 4.50e

  • The order of multiplicands in an assignment incorrectly affects the result in an optimized program.
  • The result of negation of a complex number array section is not negative.
  • Internal compiler error when a series of CONTAINed subroutines are terminated by END, rather than END SUBROUTINE statements.
  • Internal compiler error when ALLOCATEing an array defined in a module in a subroutine without any declaration statements.
  • No compiler diagnostic when EQUIVILENCE of an object with the TARGET attribute.
  • Unable to OPEN a scratch file with a program linked with -bind and -winconsole under straight DOS.
  • Fixed in Version 4.50d

  • When the Lahey ED Debugger Watch Window is open, if the current program unit contains a character variable longer than 120 characters, unexpected application errors can occur.
  • Fixed in Version 4.50c

  • Internal compiler error when POS argument of IBITS function is passed a 2-byte integer.
  • Internal compiler error on invalid assignment of an integer in a PARAMETER statement.
  • Internal compiler error on code computing exponent of a derived type array element.
  • EXIST keyword of INQUIRE statement incorrectly returning FALSE when unit does exist (returns TRUE only if unit is connected).
  • Fatal error loading program in SOLD90 or Lahey ED Debugger.
  • "Unknown error during program load ..." error message when invoking Lahey ED Debugger when exe file was invalid from linker errors.
  • Lahey ED Debugger Watches Dialog hangs or causes illegal operation when program contains a very large derived type structure.
  • Automake Configuration File Editor known problem with AM command under Windows NT when no AUTOMAKE.FIG file exists.
  • WiSK Dialog and Menu Editors remove needed definitions beginning with "IDOK".
  • Visual Analyzer fails analysis of program containing many nested modules in large number of source files.

    Privacy Policy

    © 2007-2022 Lahey Computer Systems, Inc. All Rights Reserved.
    Lahey Computer Systems, Inc., P.O. Box 6091, Incline Village, NV 89450 USA