FIX: Incorrect F2128 Huge Segment Boundary Error

ID: Q80101


The information in this article applies to:
  • Microsoft FORTRAN for MS-DOS, versions 5.0, 5.1
  • Microsoft FORTRAN for OS/2, versions 5.0, 5.1


SYMPTOMS

An attempt to compile an application in the OS/2 operating system fails and the compiler generates a protection violation. An attempt to compile the application in the MS-DOS operating system fails and the second pass of the compiler generates the following message:

error F2128: ~k.~~~ : huge array cannot be aligned to segment boundary
The "~" and "~~~" characters represent symbol characters high in the ASCII table.


CAUSE

The application contains a complicated combination of DATA statements, EQUIVALENCE statements, I/O statements, or array declarations.


RESOLUTION

Many minor code changes eliminate this error. In the code example, reducing the size of the I array below 131,072 bytes or removing the DATA statement, EQUIVALENCE statement, or an executable statement eliminates the error.


STATUS

Microsoft has confirmed this to be a problem in FORTRAN versions 5.0 and 5.1 for MS-DOS and OS/2. This problem was corrected in FORTRAN PowerStation, version 1.0.


MORE INFORMATION

Sample Code


C Compile options needed: None

      CHARACTER*12 NAME1
      INTEGER I(32769)
      INTEGER J

      EQUIVALENCE (I, J)
      DATA NAME1 /'OFFSET.DAT'/ 

1     FORMAT()
      WRITE (*, 1)
      WRITE (*, 1)
      OPEN (1, FILE = NAME1, ERR = 9999)
      READ (1, *, END = 9999, ERR = 9999)
      OPEN (1, FILE = NAME1, ERR = 9999)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
      WRITE (*, 1)
9999  END 

Additional query words: 5.00 5.10 buglist5.00 buglist5.10 fixlist1.00

Keywords :
Version : :5.0,5.1
Platform :
Issue type :


Last Reviewed: November 3, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.