FIX: F1001: omf_ms.c:1.118, line 2785; Common Block Too Large

Last reviewed: September 11, 1997
Article ID: Q67420
5.00 5.10 | 5.00 5.10
MS-DOS     | OS/2
kbtool kbfixlist kbbuglist kberrmsg

The information in this article applies to:

  • Microsoft FORTRAN for MS-DOS, versions 5.0 and 5.1
  • Microsoft FORTRAN for OS/2, versions 5.0 and 5.1

SYMPTOMS

When the data in a COMMON block exceeds 45,940,736 (44,864K) bytes, the Microsoft FORTRAN version 5.0 compiler generates the following error:

   fatal error F1001: Internal Compiler Error
   (compiler file '@(#)omf_ms.c:1.118', line 2785)

With Microsoft FORTRAN version 5.1, the followin error is produced:

   fatal error F1001: Internal Compiler Error
   (compiler file '@(#)omf_ms.c:1.119', line 2787)

RESOLUTION

Although using a slightly smaller amount of data allows compilation, using this much data in a single module will violate other limitations of the FORTRAN compiler and linker. For example, decreasing the size of the INTEGER array in the above code sample allows compilation with FORTRAN 5.0, but generates the following linker error:

   fatal error L1047: too many group, segment, and class names in
   one module

The only practical solution is to decrease the size of the arrays significantly. The largest quantity of data that does not violate the limits on the number of group, segment, and class names is 15,990,784 bytes, or 244 segments of 64K bytes per segment.

STATUS

Microsoft has confirmed this to be a problem in FORTRAN versions 5.0 and 5.1. This problem was corrected in FORTRAN PowerStation.

MORE INFORMATION

The following code generates this error:

       INTEGER*1 A(45940737)
       COMMON  A
       END

Any combination of data that adds up to more then 44,864K bytes will generate this error. The COMMON block can be named or unnamed.

The following is another code sample that generates this error:

       REAL*4 A(3388,3388)
       INTEGER*1 B(26561)
       COMMON /TEST/ A,B
       END


Additional reference words: 5.00 5.10
KBCategory: kbtool kbfixlist kbbuglist kberrmsg
KBSubcategory: FLIss
Solution Type : kbfix


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: September 11, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.