The information in this article applies to:
SYMPTOMSIn Microsoft FORTRAN versions 4.0, 4.01, 4.1, 5.0 and 5.1, when compiling a program that contains an array over 2,147,483,648 bytes long under MS-DOS or OS/2 with the /Fa or /Fc option, the third pass of the compiler generates the following error: If the /Fa or /Fc option is not included on compile, the object module, when linked, will generate an invalid executable that incorrectly reflects the minimum load size, as indicated by the EXEMOD utility. STATUS
Microsoft has confirmed this to be a problem in Microsoft FORTRAN
versions 4.x and 5.x for MS-DOS and OS/2.
MORE INFORMATIONNote: An array this large cannot be declared in a code module compiled with Microsoft FORTRAN because of the linker limit of 244, 64K segments per module. (The limit stated in the manual is 255 segments per module, but 11 segments are preassigned.) Thus, even under OS/2, the largest possible data item is 64K times 244 or 15,990,784 bytes. If the internal compiler error does not occur, the following linker error should be generated: The following code reproduces the problem:
Compiling a program with an array dimensioned to 200,000,000 (one less
zero) generates the following errors during the third pass of the
compiler:
The options /Fa or /Fc are not needed to generate this error. Compiling a program with an array dimensioned to 20,000,000 (two less zeros than the original array) generates the following error during link:
Additional query words: nofps 5.00 5.10
Keywords : |
Last Reviewed: November 1, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |